You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2007/04/07 20:01:49 UTC

svn commit: r526464 [2/2] - in /incubator/roller/trunk: ./ apps/planet/ apps/planet/src/java/org/apache/roller/planet/business/ apps/planet/src/java/org/apache/roller/planet/business/hibernate/ apps/planet/src/java/org/apache/roller/planet/pojos/ apps/...

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/PlanetModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/PlanetModel.java?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/PlanetModel.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/model/PlanetModel.java Sat Apr  7 11:01:47 2007
@@ -27,6 +27,8 @@
 import org.apache.roller.RollerException;
 import org.apache.roller.planet.business.PlanetFactory;
 import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.pojos.PlanetData;
+import org.apache.roller.planet.pojos.PlanetGroupData;
 import org.apache.roller.planet.pojos.PlanetSubscriptionData;
 import org.apache.roller.pojos.ThemeTemplate;
 import org.apache.roller.pojos.WebsiteData;
@@ -164,7 +166,9 @@
         List list = new ArrayList();
         try {
             PlanetManager planetManager = PlanetFactory.getPlanet().getPlanetManager();
-            List subs = planetManager.getTopSubscriptions(groupHandle, 0, length);
+            PlanetData defaultPlanet = planetManager.getPlanet("default");
+            PlanetGroupData planetGroup = planetManager.getGroup(defaultPlanet, groupHandle);
+            List subs = planetManager.getTopSubscriptions(planetGroup, 0, length);
             for (Iterator it = subs.iterator(); it.hasNext();) {
                 PlanetSubscriptionData sub = (PlanetSubscriptionData) it.next();
                 // TODO needs pojo wrapping from planet

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/PlanetEntriesPager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/PlanetEntriesPager.java?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/PlanetEntriesPager.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/pagers/PlanetEntriesPager.java Sat Apr  7 11:01:47 2007
@@ -20,16 +20,18 @@
 
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Collections;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.planet.business.Planet;
 import org.apache.roller.planet.business.PlanetFactory;
 import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.pojos.PlanetData;
 import org.apache.roller.planet.pojos.PlanetEntryData;
 import org.apache.roller.planet.pojos.PlanetGroupData;
+import org.apache.roller.planet.pojos.PlanetSubscriptionData;
 
 
 /**
@@ -94,12 +96,20 @@
                 
                 List rawEntries = null;
                 if (feedURL != null) {
-                    rawEntries = planetManager.getFeedEntries(feedURL, offset, length+1);
+                    PlanetSubscriptionData sub = planetManager.getSubscription(feedURL);
+                    rawEntries = planetManager.getEntries(sub, offset, length+1);
                 } else if (groupHandle != null) {
-                    PlanetGroupData group = planetManager.getGroup(groupHandle);
-                    rawEntries = planetManager.getAggregation(group, startDate, null, offset, length+1);
+                    PlanetData planet = planetManager.getPlanet("default");
+                    PlanetGroupData group = planetManager.getGroup(planet, groupHandle);
+                    rawEntries = planetManager.getEntries(Collections.singletonList(group), startDate, null, offset, length+1);
                 } else {
-                    rawEntries = planetManager.getAggregation(startDate, null, offset, length+1);
+                    PlanetData planet = planetManager.getPlanet("default");
+                    PlanetGroupData groupAll = planetManager.getGroup(planet, "all");
+                    PlanetGroupData groupDefault = planetManager.getGroup(planet, "default");
+                    List groups = new ArrayList();
+                    groups.add(groupAll);
+                    groups.add(groupDefault);
+                    rawEntries = planetManager.getEntries(groups, startDate, null, offset, length+1);
                 }
                 
                 // check if there are more results for paging

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/plugins/SmileysPlugin.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/plugins/SmileysPlugin.java?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/plugins/SmileysPlugin.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/plugins/SmileysPlugin.java Sat Apr  7 11:01:47 2007
@@ -84,7 +84,7 @@
             
             Pattern[] tempP = new Pattern[SmileysPlugin.smileyDefs.size()];
             String[] tempS = new String[SmileysPlugin.smileyDefs.size()];
-            //System.out.println("# smileys: " + smileyDefs.size());
+            System.out.println("# smileys: " + smileyDefs.size());
             int count = 0;
             Enumeration enum1 = SmileysPlugin.smileyDefs.propertyNames();
             while(enum1.hasMoreElements()) {
@@ -97,7 +97,7 @@
                         "\" class=\"smiley\"" +
                         " alt=\"" + smileyAlt + "\"" +
                         " title=\"" + smileyAlt +"\" />";
-                //System.out.println(smiley + "=" + tempS[count]);
+                System.out.println(smiley + "=" + tempS[count]);
                 count++;
             }
             SmileysPlugin.smileyPatterns = tempP;

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/servlets/PlanetFeedServlet.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/servlets/PlanetFeedServlet.java?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/servlets/PlanetFeedServlet.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/servlets/PlanetFeedServlet.java Sat Apr  7 11:01:47 2007
@@ -30,10 +30,10 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.RollerException;
 import org.apache.roller.config.RollerRuntimeConfig;
-import org.apache.roller.planet.business.Planet;
 import org.apache.roller.planet.business.PlanetFactory;
 import org.apache.roller.planet.business.PlanetManager;
-import org.apache.roller.business.RollerFactory;
+import org.apache.roller.planet.pojos.PlanetData;
+import org.apache.roller.planet.pojos.PlanetGroupData;
 import org.apache.roller.pojos.StaticTemplate;
 import org.apache.roller.pojos.Template;
 import org.apache.roller.ui.rendering.Renderer;
@@ -131,7 +131,8 @@
         try {
             // populate the rendering model
             if (request.getParameter("group") != null) {
-                model.put("group", planet.getGroup(request.getParameter("group")));
+                PlanetData planetObject = planet.getPlanet("default");
+                model.put("group", planet.getGroup(planetObject, request.getParameter("group")));
             }
             model.put("planet", planet);
             model.put("date", new Date());

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/cache/PlanetCache.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/cache/PlanetCache.java?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/cache/PlanetCache.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/cache/PlanetCache.java Sat Apr  7 11:01:47 2007
@@ -161,7 +161,8 @@
         // still null, we need to get a fresh value
         if(lastModified == null) {
             
-            lastModified = PlanetFactory.getPlanet().getPlanetManager().getLastUpdated();
+            // TODO: ROLLER40 last updated for planet
+            lastModified = null; // PlanetFactory.getPlanet().getPlanetManager().getLastUpdated();
             
             if (lastModified == null) {
                 lastModified = new Date();

Added: incubator/roller/trunk/testdata/WEB-INF/security.xml
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/testdata/WEB-INF/security.xml?view=auto&rev=526464
==============================================================================
--- incubator/roller/trunk/testdata/WEB-INF/security.xml (added)
+++ incubator/roller/trunk/testdata/WEB-INF/security.xml Sat Apr  7 11:01:47 2007
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+-->
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
+    "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<!--
+Minimal security.xml needed for running UI unit tests.
+-->
+
+<beans>
+
+    <!-- ======================== FILTER CHAIN ======================= -->
+    <bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy">
+        <property name="filterInvocationDefinitionSource">
+            <value>
+                CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
+                PATTERN_TYPE_APACHE_ANT
+                /**=httpSessionContextIntegrationFilter,authenticationProcessingFilter,rememberMeProcessingFilter,channelProcessingFilter,remoteUserFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
+            </value>
+        </property>
+    </bean>
+
+    <!-- ======================== AUTHENTICATION ======================= -->
+    
+    <!-- Note the order that entries are placed against the objectDefinitionSource is critical.
+         The FilterSecurityInterceptor will work from the top of the list down to the FIRST pattern that matches the request URL.
+         Accordingly, you should place MOST SPECIFIC (ie a/b/c/d.*) expressions first, with LEAST SPECIFIC (ie a/.*) expressions last -->
+    <bean id="filterInvocationInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
+        <property name="authenticationManager" ref="authenticationManager"/>
+        <property name="accessDecisionManager" ref="accessDecisionManager"/>
+         <property name="objectDefinitionSource">
+            <value>
+                PATTERN_TYPE_APACHE_ANT
+                /roller-ui/login-redirect.jsp=admin,editor
+                /roller-ui/yourProfile**=admin,editor
+                /roller-ui/createWebsite**=admin,editor
+                /roller-ui/yourWebsites**=admin,editor
+                /roller-ui/authoring/**=admin,editor
+                /roller-ui/admin/**=admin
+                /rewrite-status*=admin
+            </value>
+                <!-- Add this to above list for LDAP/SSO configuration -->
+                <!-- /roller-ui/user.do*=register -->
+        </property>
+    </bean>
+
+    <bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">
+        <property name="providers">
+            <list>
+                <ref local="daoAuthenticationProvider"/> 
+                <!-- Uncomment this for LDAP/SSO configuration <ref local="ldapAuthProvider"/> -->
+                <ref local="anonymousAuthenticationProvider"/>                
+                <!-- rememberMeAuthenticationProvider added programmatically -->
+            </list>
+        </property>
+    </bean>
+  
+    <!-- Log failed authentication attempts to commons-logging -->
+    <bean id="loggerListener" class="org.acegisecurity.event.authentication.LoggerListener"/> 
+             
+    <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
+         <property name="userDetailsService" ref="mockAuthenticationDao" />
+         <!-- <property name="userDetailsService" ref="jdbcAuthenticationDao"/> -->
+         <property name="userCache" ref="userCache"/>
+    </bean>
+    
+    <bean id="mockAuthenticationDao" class="org.apache.roller.ui.MockAcegiUserDetailsService" />        
+    <!-- Read users from database
+    <bean id="jdbcAuthenticationDao" class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">                
+        <property name="dataSource">
+            <bean class="org.springframework.jndi.JndiObjectFactoryBean">
+                <property name="jndiName" value="java:comp/env/jdbc/rollerdb"/>
+            </bean>
+        </property>                
+        <property name="usersByUsernameQuery">
+            <value>SELECT username,passphrase,isenabled FROM rolleruser WHERE username = ?</value>
+        </property>
+        <property name="authoritiesByUsernameQuery">
+            <value>SELECT username,rolename FROM userrole WHERE username = ?</value>
+        </property>
+    </bean> -->
+
+    <bean id="userCache" class="org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
+        <property name="cache">
+            <bean class="org.springframework.cache.ehcache.EhCacheFactoryBean">
+                <property name="cacheManager">
+                    <bean class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/>
+                </property>
+                <property name="cacheName" value="userCache"/>
+            </bean>
+        </property>
+    </bean>
+   
+    <bean id="anonymousAuthenticationProvider" class="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">
+        <property name="key" value="anonymous"/>
+    </bean>
+    
+    <bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter">
+        <property name="rolePrefix" value=""/>
+    </bean>
+
+    <bean id="accessDecisionManager" class="org.acegisecurity.vote.AffirmativeBased">
+        <property name="allowIfAllAbstainDecisions" value="false"/>
+        <property name="decisionVoters">
+            <list>
+                <ref local="roleVoter"/>
+            </list>
+        </property>
+    </bean>
+    
+    <!-- ===================== HTTP REQUEST SECURITY ====================
+    <bean id="httpSessionContextIntegrationFilter" class="org.acegisecurity.context.HttpSessionContextIntegrationFilter"/>
+    
+    <bean id="authenticationProcessingFilter" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
+        <property name="authenticationManager" ref="authenticationManager"/>
+        <property name="authenticationFailureUrl" value="/roller-ui/login.do?error=true"/>
+        <property name="defaultTargetUrl" value="/"/>
+        <property name="filterProcessesUrl" value="/roller_j_security_check"/>
+        <property name="rememberMeServices" ref="rememberMeServices"/>
+    </bean>
+    
+    <bean id="anonymousProcessingFilter" class="org.acegisecurity.providers.anonymous.AnonymousProcessingFilter">
+        <property name="key" value="anonymous"/>
+        <property name="userAttribute" value="anonymous,ROLE_ANONYMOUS"/>
+    </bean>
+    
+    <bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter">
+        <property name="authenticationEntryPoint" ref="authenticationProcessingFilterEntryPoint"/>
+    </bean>
+    
+    <bean id="remoteUserFilter" class="org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter"/>
+
+    <bean id="authenticationProcessingFilterEntryPoint" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
+        <property name="loginFormUrl" value="/roller-ui/login.do"/>
+        <property name="forceHttps" value="false"/>
+    </bean> -->
+
+    <!-- ===================== REMEMBER ME ==================== -->
+    <bean id="rememberMeProcessingFilter" class="org.acegisecurity.ui.rememberme.RememberMeProcessingFilter">
+        <property name="authenticationManager" ref="authenticationManager"/>
+        <property name="rememberMeServices" ref="rememberMeServices"/>
+    </bean>
+ 
+    <bean id="rememberMeServices" class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices"> 
+         <property name="userDetailsService" ref="mockAuthenticationDao" />
+         <!-- <property name="userDetailsService" ref="jdbcAuthenticationDao"/> -->
+        <property name="key" value="rollerlovesacegi"/> 
+        <property name="parameter" value="rememberMe"/>
+    </bean> 
+  
+    <bean id="rememberMeAuthenticationProvider" class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider"> 
+        <property name="key" value="rollerlovesacegi"/>
+    </bean> 
+    
+    <!-- ===================== SSL SWITCHING ====================
+    <bean id="channelProcessingFilter" class="org.acegisecurity.securechannel.ChannelProcessingFilter">
+        <property name="channelDecisionManager" ref="channelDecisionManager"/>
+        <property name="filterInvocationDefinitionSource">
+            <value>
+                PATTERN_TYPE_APACHE_ANT
+            </value>
+        </property>
+    </bean>
+                
+    <bean id="channelDecisionManager" class="org.acegisecurity.securechannel.ChannelDecisionManagerImpl">
+        <property name="channelProcessors">
+            <list>
+                <bean class="org.acegisecurity.securechannel.SecureChannelProcessor"/>
+                <bean class="org.acegisecurity.securechannel.InsecureChannelProcessor"/>
+            </list>
+        </property>
+    </bean> -->
+    
+</beans>

Modified: incubator/roller/trunk/tools/roller-planet/roller-planet-business.jar
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/tools/roller-planet/roller-planet-business.jar?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
Binary files - no diff available.

Modified: incubator/roller/trunk/web/WEB-INF/classes/commons-logging.properties
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/classes/commons-logging.properties?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/commons-logging.properties (original)
+++ incubator/roller/trunk/web/WEB-INF/classes/commons-logging.properties Sat Apr  7 11:01:47 2007
@@ -14,4 +14,4 @@
 # copyright in this work, please see the NOTICE file in the top level
 # directory of this distribution.
 
-org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory
\ No newline at end of file
+org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
\ No newline at end of file

Added: incubator/roller/trunk/web/WEB-INF/classes/org/apache/xmlrpc/webserver/XmlRpcServlet.properties
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/classes/org/apache/xmlrpc/webserver/XmlRpcServlet.properties?view=auto&rev=526464
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/org/apache/xmlrpc/webserver/XmlRpcServlet.properties (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/org/apache/xmlrpc/webserver/XmlRpcServlet.properties Sat Apr  7 11:01:47 2007
@@ -0,0 +1,3 @@
+# Sample ResourceBundle properties file
+blogger=org.apache.roller.webservices.xmlrpc.BloggerAPIHandler
+metaWeblog=org.apache.roller.webservices.xmlrpc.MetaWeblogAPIHandler

Modified: incubator/roller/trunk/web/WEB-INF/classes/planet-hibernate.cfg.xml
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/classes/planet-hibernate.cfg.xml?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/planet-hibernate.cfg.xml (original)
+++ incubator/roller/trunk/web/WEB-INF/classes/planet-hibernate.cfg.xml Sat Apr  7 11:01:47 2007
@@ -42,7 +42,8 @@
         
         
         <!-- Map Planet pojo classes -->
-        <mapping resource="org/apache/roller/planet/pojos/PlanetConfigData.hbm.xml" />
+        <mapping resource="org/apache/roller/planet/pojos/PlanetData.hbm.xml" />
+        <mapping resource="org/apache/roller/planet/pojos/PropertyData.hbm.xml" />
         <mapping resource="org/apache/roller/planet/pojos/PlanetGroupData.hbm.xml" />
         <mapping resource="org/apache/roller/planet/pojos/PlanetEntryData.hbm.xml" />
         <mapping resource="org/apache/roller/planet/pojos/PlanetSubscriptionData.hbm.xml" />

Modified: incubator/roller/trunk/web/WEB-INF/classes/planet.properties
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/classes/planet.properties?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/planet.properties (original)
+++ incubator/roller/trunk/web/WEB-INF/classes/planet.properties Sat Apr  7 11:01:47 2007
@@ -40,7 +40,7 @@
 # properties in this file are accessed like this ...
 #    PlanetConfig.getProperty("propname");
 
-persistence.planet.classname=org.apache.roller.planet.business.hibernate.HibernateRollerPlanetImpl
+persistence.planet.classname=org.apache.roller.planet.business.hibernate.HibernatePlanetImpl
 
 # Absolute URL to site
 site.absoluteurl=http://localhost:8080/planet

Added: incubator/roller/trunk/web/WEB-INF/classes/planetRuntimeConfigDefs.xml
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/classes/planetRuntimeConfigDefs.xml?view=auto&rev=526464
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/planetRuntimeConfigDefs.xml (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/planetRuntimeConfigDefs.xml Sat Apr  7 11:01:47 2007
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  The ASF licenses this file to You
+  under the Apache License, Version 2.0 (the "License"); you may not
+  use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.  For additional information regarding
+  copyright in this work, please see the NOTICE file in the top level
+  directory of this distribution.
+-->
+
+<!--
+  STOP!!!!  This is NOT a Roller configuration file!!
+  Users of Roller should never need to edit this file.  The properties listed
+  here are changed on the Roller Admin Settings page.
+  
+  This file defines what properties are made available to get/set
+  during the running of the Roller application.  These properties
+  are stored in the database and the code *must* be able to make
+  use of changed values during runtime.
+  
+  Also included in this file is meta-data which defines what class
+  of property we are dealing with, it's default value, and information
+  on how to populate the display that allows for changing the value.
+  
+  NOTE: order does matter!!  the display is populated in a linear fashion
+	starting from the first display-group and moving down.
+-->
+
+<runtime-configs> 
+
+ <!--
+   The global-properties represents the base set of roller runtime properties.
+   In *most* cases you should be putting your properties here and they can
+   then be changed from the admin configuration page at ...
+        /admin/rollerConfig.do
+ -->
+ <config-def name="global-properties">
+
+   <!-- Site Settings Group -->
+   <display-group name="siteSettings" key="ConfigForm.siteSettings" >
+       
+       <property-def  name="site.name"  key="ConfigForm.title">
+           <type>string</type>
+           <default-value>Roller Planet</default-value>
+       </property-def>
+       <property-def  name="site.description"  key="ConfigForm.description">
+           <type>string</type>
+           <default-value>A default install of the Roller Planet open source aggregation server</default-value>
+       </property-def>
+       <property-def  name="site.adminname"  key="ConfigForm.adminName">
+           <type>string</type>
+           <default-value></default-value>
+       </property-def>
+       <property-def  name="site.adminemail"  key="ConfigForm.adminEmail">
+           <type>string</type>
+           <default-value></default-value>
+       </property-def>
+       <property-def  name="site.absoluteurl"  key="ConfigForm.absoluteUrl">
+           <type>string</type>
+           <default-value></default-value>
+       </property-def>
+       <property-def  name="site.proxyhost"  key="ConfigForm.proxyHost">
+           <type>string</type>
+           <default-value></default-value>
+       </property-def>
+       <property-def  name="site.proxyport"  key="ConfigForm.proxyPort">
+           <type>string</type>
+           <default-value>0</default-value>
+       </property-def>
+       
+   </display-group >
+   
+ </config-def>
+ 
+</runtime-configs>

Modified: incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetConfig.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetConfig.jsp?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetConfig.jsp (original)
+++ incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetConfig.jsp Sat Apr  7 11:01:47 2007
@@ -15,92 +15,94 @@
   copyright in this work, please see the NOTICE file in the top level
   directory of this distribution.
 -->
+<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
 <%@ include file="/WEB-INF/jsps/taglibs.jsp" %>
-<script type="text/javascript">
-<!--
-function refreshEntries()
-{
-    document.planetConfigForm.method.value = "refreshEntries";
-    document.planetConfigForm.submit();
-}
-function syncWebsites()
-{
-    document.planetConfigForm.method.value = "syncWebsites";
-    document.planetConfigForm.submit();
-}
-// -->
-</script>
-
-<html:form action="/roller-ui/admin/planetConfig" method="post">
-    <html:hidden property="id" />
-    <html:hidden property="cacheDir" />
-    <html:hidden property="templateDir" />
-    <html:hidden property="outputDir" />
-    <html:hidden property="method" value="saveConfig" />
-    
-    <p class="subtitle"><fmt:message key="planetConfig.subtitle" /></p>
-    <p><fmt:message key="planetConfig.prompt" /></p>
 
-    <table class="formtable">
+<% try { %>
 
-    <tr>
-        <td class="label"><label for="title" /><fmt:message key="planetConfig.title" /></label></td>
-        <td class="field"><html:text property="title" size="40" maxlength="255" /></td>
-        <td class="description"><fmt:message key="planetConfig.tip.title" /></td>
-    </tr>
-
-    <tr>
-        <td class="label"><label for="description" /><fmt:message key="planetConfig.description" /></label></td>
-        <td class="field"><html:text property="description" size="40" maxlength="255" /></td>
-        <td class="description"><fmt:message key="planetConfig.tip.description" /></td>
-    </tr>
-
-    <tr>
-        <td class="label"><label for="siteURL" /><fmt:message key="planetConfig.siteUrl" /></label></td>
-        <td class="field"><html:text property="siteURL" size="40" maxlength="255" /></td>
-        <td class="description"><fmt:message key="planetConfig.tip.siteUrl" /></td>
-    </tr>
-
-    <tr>
-        <td class="label"><label for="adminEmail" /><fmt:message key="planetConfig.adminEmail" /></label></td>
-        <td class="field"><html:text property="adminEmail" size="40" maxlength="255" /></td>
-        <td class="description"><fmt:message key="planetConfig.tip.adminEmail" /></td>
-    </tr>
-
-    <tr>
-        <td class="label"><label for="proxyHost" /><fmt:message key="planetConfig.proxyHost" /></label></td>
-        <td class="field"><html:text property="proxyHost" size="40" maxlength="255" /></td>
-        <td class="description"><fmt:message key="planetConfig.tip.proxyHost" /></td>
-    </tr>
-
-    <tr>
-        <td class="label"><label for="proxyPort" /><fmt:message key="planetConfig.proxyPort" /></label></td>
-        <td class="field"><html:text property="proxyPort" size="6" maxlength="6" /></td>
-        <td class="description"><fmt:message key="planetConfig.tip.proxyPort" /></td>
-    </tr>
+<%-- Start by parsing our config defs using the jstl xml toolkit --%>
+<%-- Then we'll progress through the config defs and print out the form --%>
+<x:parse var="configDefs">
+  <%= org.apache.roller.planet.config.PlanetRuntimeConfig.getRuntimeConfigDefsAsString() %>
+</x:parse>
 
-    </table>
 
-    <br />
-    <div class="control">
-        <input type="submit" value='<fmt:message key="planetConfig.button.post" />' />
-    </div>
-    
-    <br />           
-    <h3><fmt:message key="planetConfig.title.control" /></h3>
-    <p><i><fmt:message key="planetConfig.prompt.control" /></i></p>
-    
-    <input type="button" name="refresh"
-       value='<fmt:message key="planetConfig.button.refreshEntries" />'
-       onclick="refreshEntries()" />  
-
-    <input type="button" name="sync"
-       value='<fmt:message key="planetConfig.button.syncWebsites" />'
-       onclick="syncWebsites()" /> 
+<roller:StatusMessage/>
 
-</html:form>
+<p class="subtitle"><fmt:message key="planetConfig.subtitle" /></a>
+<p><fmt:message key="configForm.prompt" /></a>
 
+<form action="planetConfig.do" method="post">
 
+<input type="hidden" name="method" value="update">
 
+    <table class="formtableNoDesc">
+    
+    <x:forEach select="$configDefs//config-def[@name='global-properties']/display-group">
+        <c:set var="displayGroupKey"><x:out select="@key"/></c:set>
+    
+        <tr>
+            <td colspan="3"><h2><fmt:message key="${displayGroupKey}" /></h2></td>
+        </tr>
+    
+        <x:forEach select="property-def">
+            <c:set var="propLabelKey"><x:out select="@key"/></c:set>
+            <c:set var="name"><x:out select="@name"/></c:set>
+        
+            <tr>
+                <td class="label"><fmt:message key="${propLabelKey}" /></td>
+              
+                <%-- choose the right html input element for the display --%>
+                <x:choose>
+                
+                  <%-- "string" type means use a simple textbox --%>
+                  <x:when select="type='string'">
+                    <td class="field"><input type="text" name='<c:out value="${name}"/>' value='<c:out value="${PlanetProps[name].value}"/>' size="35" /></td>
+                  </x:when>
+                  
+                  <%-- "text" type means use a full textarea --%>
+                  <x:when select="type='text'">
+                    <td class="field">
+                      <textarea name='<c:out value="${name}"/>' rows="<x:out select="rows"/>" cols="<x:out select="cols"/>"><c:out value="${PlanetProps[name].value}"/></textarea>
+                    </td>
+                  </x:when>
+                  
+                  <%-- "boolean" type means use a checkbox --%>
+                  <x:when select="type='boolean'">
+                    <c:choose>
+                      <c:when test="${PlanetProps[name].value eq 'true'}">
+                          <td class="field"><input type="checkbox" name='<c:out value="${name}"/>' CHECKED></td>
+                      </c:when>
+                      <c:otherwise>
+                          <td class="field"><input type="checkbox" name='<c:out value="${name}"/>'></td>
+                      </c:otherwise>
+                    </c:choose>
+                  </x:when>
+                  
+                  <%-- if it's something we don't understand then use textbox --%>
+                  <x:otherwise>
+                    <td class="field"><input type="text" name='<c:out value="${name}"/>' size="50" /></td>
+                  </x:otherwise>
+                </x:choose>
+                
+                <td class="description"><%-- <fmt:message key="" /> --%></td>
+            </tr>
+          
+        </x:forEach>
+      
+        <tr>
+            <td colspan="2">&nbsp;</td>
+        </tr>
+        
+    </x:forEach>
+
+    </table>
+    
+    <div class="control">
+        <input class="buttonBox" type="submit" value="<fmt:message key="configForm.save"/>"/>
+    </div>
+    
+<form>
+<% } catch (Exception e) { e.printStackTrace(); } %>
 
 

Modified: incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetGroups.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetGroups.jsp?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetGroups.jsp (original)
+++ incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetGroups.jsp Sat Apr  7 11:01:47 2007
@@ -30,118 +30,114 @@
 }
 // -->
 </script>
-<c:if test="${!(model.unconfigured)}" >
 
-    <p class="subtitle"><fmt:message key="planetGroups.subtitle" /></p>
+<p class="subtitle"><fmt:message key="planetGroups.subtitle" /></p>
 
-    <p>
-    <c:if test="${empty planetSubscriptionForm.id}" >
-        <fmt:message key="planetGroups.prompt.add" />
-    </c:if>
-    <c:if test="${!empty planetSubscriptionForm.id}" >
-        <fmt:message key="planetGroups.prompt.edit" />
-    </c:if>
-    </p>
-    
-    <html:form action="/roller-ui/admin/planetGroups" method="post">
-        <html:hidden property="method" value="saveGroup" />
-        <html:hidden property="id" />
-        
-        <div class="formrow">
-            <label for="title" class="formrow" />
-                <fmt:message key="planetGroups.title" /></label>
-            <html:text property="title" size="40" maxlength="255" />
-            <img src="../images/help.png" alt="help" 
-                title='<fmt:message key="planetGroups.tip.title" />' />
-        </div>
-        
-        <div class="formrow">
-            <label for="handle" class="formrow" />
-                <fmt:message key="planetGroups.handle" /></label>
-            <html:text property="handle" size="40" maxlength="255" />
-            <img src="../images/help.png" alt="help" 
-                title='<fmt:message key="planetGroups.tip.handle" />' />
-        </div>
-        
-        <p />
-        <div class="formrow">
-            <label class="formrow" />&nbsp;</label>
-            <input type="submit" 
-                value='<fmt:message key="planetGroups.button.save" />' />
-            &nbsp;
-            <input type="button" 
-                value='<fmt:message key="planetGroups.button.cancel" />' 
-                onclick="cancelEditing()"/>
-            <c:if test="${!empty planetGroupForm.id}" >
-                &nbsp;&nbsp;
-                <input type="button" 
-                   value='<fmt:message key="planetGroups.button.delete" />' 
-                   onclick="deleteGroup()" />
-            </c:if>
-        </div>
-
-    </html:form>
-    
-    <br style="clear:left" />
-    
-    <h2><fmt:message key="planetGroups.existingTitle" /></h2>
-    <p><i><fmt:message key="planetGroups.existingPrompt" /></i></p>
-    
-    <table class="rollertable">
-        <tr class="rHeaderTr">
-           <th class="rollertable" width="30%">
-               <fmt:message key="planetGroups.column.title" />
-           </th>
-           <th class="rollertable" width="50%">
-               <fmt:message key="planetGroups.column.handle" />
-           </th>
-           <th class="rollertable" width="10%">
-               <fmt:message key="planetGroups.column.edit" />
-           </th>
-           <th class="rollertable" width="10%">
-               <fmt:message key="planetGroups.column.subscriptions" />
-           </th>
-        </tr>
-        <c:forEach var="group" items="${model.groups}" >
-            <roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">
-            
-                <td class="rollertable">
-                       <c:out value="${group.title}" />
-                </td>
-                
-                <td class="rollertable">
-                       <c:out value="${group.handle}" />
-                </td>
-                
-                <td class="rollertable">
-                    <roller:link page="/roller-ui/admin/planetGroups.do">
-                        <roller:linkparam 
-                            id="method" value="getGroups" />                   
-                        <roller:linkparam 
-                            id="groupHandle" name="group" property="handle" />                   
-                        <img src='<c:url value="/images/page_white_edit.png"/>' border="0" alt="icon" 
-                            title="<fmt:message key='planetGroups.edit.tip' />" />
-                    </roller:link>
-                </td>       
-                                        
-                <td class="rollertable">
-                    <roller:link page="/roller-ui/admin/planetSubscriptions.do">
-                        <roller:linkparam 
-                            id="method" value="getSubscriptions" />                   
-                        <roller:linkparam 
-                            id="groupHandle" name="group" property="handle" />                   
-                        <img src='<c:url value="/images/page_white_edit.png"/>' border="0" alt="icon" 
-                            title="<fmt:message key='planetGroups.subscriptions.tip' />" />
-                    </roller:link>
-                </td>       
-                                        
-            </roller:row>
-       </c:forEach>
-    </table>
+<p>
+<c:if test="${empty planetSubscriptionForm.id}" >
+    <fmt:message key="planetGroups.prompt.add" />
 </c:if>
-<c:if test="${model.unconfigured}" >
-    <fmt:message key="planetGroups.unconfigured" />
+<c:if test="${!empty planetSubscriptionForm.id}" >
+    <fmt:message key="planetGroups.prompt.edit" />
 </c:if>
+</p>
+
+<html:form action="/roller-ui/admin/planetGroups" method="post">
+    <html:hidden property="method" value="saveGroup" />
+    <html:hidden property="id" />
+
+    <div class="formrow">
+        <label for="title" class="formrow" />
+            <fmt:message key="planetGroups.title" /></label>
+        <html:text property="title" size="40" maxlength="255" />
+        <img src="../images/help.png" alt="help" 
+            title='<fmt:message key="planetGroups.tip.title" />' />
+    </div>
+
+    <div class="formrow">
+        <label for="handle" class="formrow" />
+            <fmt:message key="planetGroups.handle" /></label>
+        <html:text property="handle" size="40" maxlength="255" />
+        <img src="../images/help.png" alt="help" 
+            title='<fmt:message key="planetGroups.tip.handle" />' />
+    </div>
+
+    <p />
+    <div class="formrow">
+        <label class="formrow" />&nbsp;</label>
+        <input type="submit" 
+            value='<fmt:message key="planetGroups.button.save" />' />
+        &nbsp;
+        <input type="button" 
+            value='<fmt:message key="planetGroups.button.cancel" />' 
+            onclick="cancelEditing()"/>
+        <c:if test="${!empty planetGroupForm.id}" >
+            &nbsp;&nbsp;
+            <input type="button" 
+               value='<fmt:message key="planetGroups.button.delete" />' 
+               onclick="deleteGroup()" />
+        </c:if>
+    </div>
+
+</html:form>
+
+<br style="clear:left" />
+
+<h2><fmt:message key="planetGroups.existingTitle" /></h2>
+<p><i><fmt:message key="planetGroups.existingPrompt" /></i></p>
+
+<table class="rollertable">
+    <tr class="rHeaderTr">
+       <th class="rollertable" width="30%">
+           <fmt:message key="planetGroups.column.title" />
+       </th>
+       <th class="rollertable" width="50%">
+           <fmt:message key="planetGroups.column.handle" />
+       </th>
+       <th class="rollertable" width="10%">
+           <fmt:message key="planetGroups.column.edit" />
+       </th>
+       <th class="rollertable" width="10%">
+           <fmt:message key="planetGroups.column.subscriptions" />
+       </th>
+    </tr>
+    <c:forEach var="group" items="${model.groups}" >
+        <roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">
+
+            <td class="rollertable">
+                   <c:out value="${group.title}" />
+            </td>
+
+            <td class="rollertable">
+                   <c:out value="${group.handle}" />
+            </td>
+
+            <td class="rollertable">
+                <roller:link page="/roller-ui/admin/planetGroups.do">
+                    <roller:linkparam 
+                        id="method" value="getGroups" />                   
+                    <roller:linkparam 
+                        id="groupHandle" name="group" property="handle" />                   
+                    <img src='<c:url value="/images/page_white_edit.png"/>' border="0" alt="icon" 
+                        title="<fmt:message key='planetGroups.edit.tip' />" />
+                </roller:link>
+            </td>       
+
+            <td class="rollertable">
+                <roller:link page="/roller-ui/admin/planetSubscriptions.do">
+                    <roller:linkparam 
+                        id="method" value="getSubscriptions" />                   
+                    <roller:linkparam 
+                        id="groupHandle" name="group" property="handle" />                   
+                    <img src='<c:url value="/images/page_white_edit.png"/>' border="0" alt="icon" 
+                        title="<fmt:message key='planetGroups.subscriptions.tip' />" />
+                </roller:link>
+            </td>       
+
+        </roller:row>
+   </c:forEach>
+</table>
+
 
 
 

Modified: incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetSubscriptions.jsp
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetSubscriptions.jsp?view=diff&rev=526464&r1=526463&r2=526464
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetSubscriptions.jsp (original)
+++ incubator/roller/trunk/web/WEB-INF/jsps/admin/PlanetSubscriptions.jsp Sat Apr  7 11:01:47 2007
@@ -30,141 +30,133 @@
 }
 // -->
 </script>
-<c:if test="${!(model.unconfigured)}" >
 
-    <h1>
-        <fmt:message key="planetSubscriptions.title" />    
+<h1>
+    <fmt:message key="planetSubscriptions.title" />    
+    <c:if test='${planetSubscriptionFormEx.groupHandle != "external"}' >
+       &nbsp;[group: <c:out value="${planetSubscriptionFormEx.groupHandle}" />]
+    </c:if>        
+</h1>
+
+<c:choose>
+    <c:when test='${empty planetSubscriptionFormEx.id && planetSubscriptionFormEx.groupHandle == "external"}' >
+        <p class="subtitle"><fmt:message key="planetSubscriptions.subtitle.addMain" /></p>
+        <p><fmt:message key="planetSubscriptions.prompt.addMain" /></p>
+    </c:when>
+    <c:when test='${empty planetSubscriptionFormEx.id && planetSubscriptionFormEx.groupHandle != "external"}' >
+        <p class="subtitle">
+            <fmt:message key="planetSubscriptions.subtitle.add" >
+                <fmt:param value="${planetSubscriptionFormEx.groupHandle}" />
+            </fmt:message>
+        </p>
+        <p><fmt:message key="planetSubscriptions.prompt.add" /></p>
+    </c:when>
+    <c:when test="${!empty planetSubscriptionFormEx.id}" >
+        <p class="subtitle"><fmt:message key="planetSubscriptions.subtitle.edit" /></p>
+        <p><fmt:message key="planetSubscriptions.prompt.edit" /></p>
+    </c:when>
+</c:choose>
+
+<html:form action="/roller-ui/admin/planetSubscriptions" method="post">
+    <html:hidden property="method" value="saveSubscription" />
+    <html:hidden property="id" />
+    <html:hidden property="groupHandle" />
+    <html:hidden property="inboundlinks" />
+    <html:hidden property="inboundblogs" />
+
+    <div class="formrow">
+        <label for="title" class="formrow" />
+            <fmt:message key="planetSubscription.title" /></label>
+        <html:text property="title" size="40" maxlength="255" />
+        <img src="../images/help.png" alt="help" 
+            title='<fmt:message key="planetSubscription.tip.title" />' />
+    </div>
+
+    <div class="formrow">
+        <label for="feedURL" class="formrow" />
+            <fmt:message key="planetSubscription.feedUrl" /></label>
+        <html:text property="feedURL" size="40" maxlength="255" />
+        <img src="../images/help.png" alt="help" 
+            title='<fmt:message key="planetSubscription.tip.feedUrl" />' />
+    </div>
+
+    <div class="formrow">
+        <label for="siteURL" class="formrow" />
+            <fmt:message key="planetSubscription.siteUrl" /></label>
+        <html:text property="siteURL" size="40" maxlength="255" />
+        <img src="../images/help.png" alt="help" 
+            title='<fmt:message key="planetSubscription.tip.siteUrl" />' />
+    </div>
+
+    <p />
+    <div class="formrow">
+        <label class="formrow" />&nbsp;</label>
+        <input type="submit" 
+            value='<fmt:message key="planetSubscriptions.button.save" />' />
+        &nbsp;
+        <input type="button" 
+            value='<fmt:message key="planetSubscriptions.button.cancel" />' 
+            onclick="cancelEditing()"/>
+        <c:if test="${!empty planetSubscriptionFormEx.id}" >
+            &nbsp;&nbsp;
+            <input type="button" 
+               value='<fmt:message key="planetSubscriptions.button.delete" />' 
+               onclick="deleteSubscription()" />
+        </c:if>
+    </div>
+
+    <br style="clear:left" />
+
+    <h2>
+        <fmt:message key="planetSubscriptions.existingTitle" />
         <c:if test='${planetSubscriptionFormEx.groupHandle != "external"}' >
            &nbsp;[group: <c:out value="${planetSubscriptionFormEx.groupHandle}" />]
-        </c:if>        
-    </h1>
-   
-    <c:choose>
-        <c:when test='${empty planetSubscriptionFormEx.id && planetSubscriptionFormEx.groupHandle == "external"}' >
-            <p class="subtitle"><fmt:message key="planetSubscriptions.subtitle.addMain" /></p>
-            <p><fmt:message key="planetSubscriptions.prompt.addMain" /></p>
-        </c:when>
-        <c:when test='${empty planetSubscriptionFormEx.id && planetSubscriptionFormEx.groupHandle != "external"}' >
-            <p class="subtitle">
-                <fmt:message key="planetSubscriptions.subtitle.add" >
-                    <fmt:param value="${planetSubscriptionFormEx.groupHandle}" />
-                </fmt:message>
-            </p>
-            <p><fmt:message key="planetSubscriptions.prompt.add" /></p>
-        </c:when>
-        <c:when test="${!empty planetSubscriptionFormEx.id}" >
-            <p class="subtitle"><fmt:message key="planetSubscriptions.subtitle.edit" /></p>
-            <p><fmt:message key="planetSubscriptions.prompt.edit" /></p>
-        </c:when>
-    </c:choose>
-    
-    <html:form action="/roller-ui/admin/planetSubscriptions" method="post">
-        <html:hidden property="method" value="saveSubscription" />
-        <html:hidden property="id" />
-        <html:hidden property="groupHandle" />
-        <html:hidden property="inboundlinks" />
-        <html:hidden property="inboundblogs" />
-        
-        <div class="formrow">
-            <label for="title" class="formrow" />
-                <fmt:message key="planetSubscription.title" /></label>
-            <html:text property="title" size="40" maxlength="255" />
-            <img src="../images/help.png" alt="help" 
-                title='<fmt:message key="planetSubscription.tip.title" />' />
-        </div>
-        
-        <div class="formrow">
-            <label for="feedURL" class="formrow" />
-                <fmt:message key="planetSubscription.feedUrl" /></label>
-            <html:text property="feedURL" size="40" maxlength="255" />
-            <img src="../images/help.png" alt="help" 
-                title='<fmt:message key="planetSubscription.tip.feedUrl" />' />
-        </div>
-        
-        <div class="formrow">
-            <label for="siteURL" class="formrow" />
-                <fmt:message key="planetSubscription.siteUrl" /></label>
-            <html:text property="siteURL" size="40" maxlength="255" />
-            <img src="../images/help.png" alt="help" 
-                title='<fmt:message key="planetSubscription.tip.siteUrl" />' />
-        </div>
-
-        <p />
-        <div class="formrow">
-            <label class="formrow" />&nbsp;</label>
-            <input type="submit" 
-                value='<fmt:message key="planetSubscriptions.button.save" />' />
-            &nbsp;
-            <input type="button" 
-                value='<fmt:message key="planetSubscriptions.button.cancel" />' 
-                onclick="cancelEditing()"/>
-            <c:if test="${!empty planetSubscriptionFormEx.id}" >
-                &nbsp;&nbsp;
-                <input type="button" 
-                   value='<fmt:message key="planetSubscriptions.button.delete" />' 
-                   onclick="deleteSubscription()" />
-            </c:if>
-        </div>
-
-        <br style="clear:left" />
-
-        <h2>
-            <fmt:message key="planetSubscriptions.existingTitle" />
-            <c:if test='${planetSubscriptionFormEx.groupHandle != "external"}' >
-               &nbsp;[group: <c:out value="${planetSubscriptionFormEx.groupHandle}" />]
-            </c:if>
-        </h2>
-        <p><i><fmt:message key="planetSubscriptions.existingPrompt" /></i></p>
-
-        <table class="rollertable">
-            <tr class="rHeaderTr">
-               <th class="rollertable" width="30%">
-                   <fmt:message key="planetSubscriptions.column.title" />
-               </th>
-               <th class="rollertable" width="60%">
-                   <fmt:message key="planetSubscriptions.column.feedUrl" />
-               </th>
-               <th class="rollertable" width="10%">
-                   <fmt:message key="planetSubscriptions.column.edit" />
-               </th>
-            </tr>
-            <c:forEach var="subscription" items="${model.subscriptions}" >
-                <roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">
-
-                    <td class="rollertable">
-                           <c:out value="${subscription.title}" />
-                    </td>
-
-                    <td class="rollertable">
-                        <str:left count="100" >
-                           <c:out value="${subscription.feedURL}" />
-                        </str:left>
-                    </td>
-
-                    <td class="rollertable">
-                        <roller:link page="/roller-ui/admin/planetSubscriptions.do">
-                            <roller:linkparam 
-                                id="method" value="getSubscriptions" />                   
-                            <roller:linkparam 
-                                id="groupHandle" 
-                                name="planetSubscriptionFormEx" 
-                                property="groupHandle" />                   
-                            <roller:linkparam 
-                                id="feedUrl" name="subscription" property="feedURL" />                   
-                            <img src='<c:url value="/images/page_white_edit.png"/>' border="0" alt="icon" 
-                                title="<fmt:message key='planetSubscription.edit.tip' />" />
-                        </roller:link>
-                    </td>       
-
-                </roller:row>
-           </c:forEach>
-        </table>
-    
-    </html:form>
-
-    
-</c:if>
-<c:if test="${model.unconfigured}" >
-    <fmt:message key="planetSubscriptions.unconfigured" />
-</c:if>
+        </c:if>
+    </h2>
+    <p><i><fmt:message key="planetSubscriptions.existingPrompt" /></i></p>
+
+    <table class="rollertable">
+        <tr class="rHeaderTr">
+           <th class="rollertable" width="30%">
+               <fmt:message key="planetSubscriptions.column.title" />
+           </th>
+           <th class="rollertable" width="60%">
+               <fmt:message key="planetSubscriptions.column.feedUrl" />
+           </th>
+           <th class="rollertable" width="10%">
+               <fmt:message key="planetSubscriptions.column.edit" />
+           </th>
+        </tr>
+        <c:forEach var="subscription" items="${model.subscriptions}" >
+            <roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">
+
+                <td class="rollertable">
+                       <c:out value="${subscription.title}" />
+                </td>
+
+                <td class="rollertable">
+                    <str:left count="100" >
+                       <c:out value="${subscription.feedURL}" />
+                    </str:left>
+                </td>
+
+                <td class="rollertable">
+                    <roller:link page="/roller-ui/admin/planetSubscriptions.do">
+                        <roller:linkparam 
+                            id="method" value="getSubscriptions" />                   
+                        <roller:linkparam 
+                            id="groupHandle" 
+                            name="planetSubscriptionFormEx" 
+                            property="groupHandle" />                   
+                        <roller:linkparam 
+                            id="feedUrl" name="subscription" property="feedURL" />                   
+                        <img src='<c:url value="/images/page_white_edit.png"/>' border="0" alt="icon" 
+                            title="<fmt:message key='planetSubscription.edit.tip' />" />
+                    </roller:link>
+                </td>       
+
+            </roller:row>
+       </c:forEach>
+    </table>
 
+</html:form>