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 2009/09/30 03:38:49 UTC
svn commit: r820143 - in /roller/trunk:
apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/
apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/
apps/weblogger/web/WEB-INF/ apps/weblogger/web/WEB-INF/classes/ apps/webl...
Author: snoopdave
Date: Wed Sep 30 01:38:48 2009
New Revision: 820143
URL: http://svn.apache.org/viewvc?rev=820143&view=rev
Log:
Fix for ROL-1304 "Set frontpage blog in Roller install page"
I used most of the code from Vivien's patch (thanks!) but did things a little differently. Instead of having a separate Frontpage Config page, I added the Weblog picker an aggregation checkbox right into the Setup page. I also fixed the Global Config page to use a combo-box instead of requiring the user to type a weblog handle.
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Setup.java
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml
roller/trunk/apps/weblogger/web/WEB-INF/jsps/admin/GlobalConfig.jsp
roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Setup.jsp
roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml
roller/trunk/apps/weblogger/web/roller-ui/styles/roller.css
roller/trunk/tools/lib/taglibs-string.jar
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java?rev=820143&r1=820142&r2=820143&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalConfig.java Wed Sep 30 01:38:48 2009
@@ -18,6 +18,7 @@
package org.apache.roller.weblogger.ui.struts2.admin;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -29,6 +30,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.PropertiesManager;
+import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.plugins.PluginManager;
import org.apache.roller.weblogger.business.plugins.comment.WeblogEntryCommentPlugin;
@@ -37,6 +39,7 @@
import org.apache.roller.weblogger.config.runtime.RuntimeConfigDefs;
import org.apache.roller.weblogger.pojos.GlobalPermission;
import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
+import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.interceptor.ServletRequestAware;
@@ -68,7 +71,10 @@
// GET on the GlobalConfig!save URL and thus sets all checkboxes to false
private String httpMethod = "GET";
+ // weblogs for frontpage blog chooser
+ private Collection<Weblog> weblogs;
+
public GlobalConfig() {
this.actionName = "globalConfig";
this.desiredMenu = "admin";
@@ -102,6 +108,14 @@
addError("Unexpected error accessing Roller properties");
}
+ try {
+ WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
+ setWeblogs(mgr.getWeblogs(true, null, null, null, 0, -1));
+ } catch (WebloggerException ex) {
+ log.error("Error getting weblogs", ex);
+ addError("frontpageConfig.weblogs.error");
+ }
+
// set config def used to draw the view
RuntimeConfigDefs defs = WebloggerRuntimeConfig.getRuntimeConfigDefs();
List<ConfigDef> configDefs = defs.getConfigDefs();
@@ -260,4 +274,11 @@
httpMethod = req.getMethod();
}
+ public Collection<Weblog> getWeblogs() {
+ return weblogs;
+ }
+
+ public void setWeblogs(Collection<Weblog> weblogs) {
+ this.weblogs = weblogs;
+ }
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Setup.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Setup.java?rev=820143&r1=820142&r2=820143&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Setup.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Setup.java Wed Sep 30 01:38:48 2009
@@ -18,11 +18,15 @@
package org.apache.roller.weblogger.ui.struts2.core;
+import java.util.Collection;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.PropertiesManager;
+import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.business.WebloggerFactory;
-import org.apache.roller.weblogger.business.UserManager;
+import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
+import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
@@ -35,6 +39,13 @@
private long userCount = 0;
private long blogCount = 0;
+
+ private String frontpageBlog;
+ private Boolean aggregated;
+
+ // weblogs for frontpage blog chooser
+ private Collection<Weblog> weblogs;
+
public Setup() {
@@ -57,6 +68,14 @@
public String execute() {
try {
+ WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
+ setWeblogs(mgr.getWeblogs(true, null, null, null, 0, -1));
+ } catch (WebloggerException ex) {
+ log.error("Error getting weblogs", ex);
+ addError("frontpageConfig.weblogs.error");
+ }
+
+ try {
setUserCount(WebloggerFactory.getWeblogger().getUserManager().getUserCount());
setBlogCount(WebloggerFactory.getWeblogger().getWeblogManager().getWeblogCount());
} catch (WebloggerException ex) {
@@ -66,6 +85,27 @@
return SUCCESS;
}
+ public String save() {
+ PropertiesManager mgr = WebloggerFactory.getWeblogger().getPropertiesManager();
+ try {
+ RuntimeConfigProperty frontpageBlogProp = mgr.getProperty("site.frontpage.weblog.handle");
+ frontpageBlogProp.setValue(frontpageBlog);
+ mgr.saveProperty(frontpageBlogProp);
+
+ RuntimeConfigProperty aggregatedProp = mgr.getProperty("site.frontpage.weblog.aggregated");
+ aggregatedProp.setValue(aggregated.toString());
+ mgr.saveProperty(aggregatedProp);
+
+ WebloggerFactory.getWeblogger().flush();
+
+ addMessage("frontpageConfig.values.saved");
+
+ } catch (WebloggerException ex) {
+ log.error("ERROR saving frontpage configuration", ex);
+ addError("frontpageConfig.values.error");
+ }
+ return "home";
+ }
public long getUserCount() {
return userCount;
@@ -82,5 +122,28 @@
public void setBlogCount(long blogCount) {
this.blogCount = blogCount;
}
+
+ public Collection<Weblog> getWeblogs() {
+ return weblogs;
+ }
+
+ public void setWeblogs(Collection<Weblog> weblogs) {
+ this.weblogs = weblogs;
+ }
+ public String getFrontpageBlog() {
+ return frontpageBlog;
+ }
+
+ public void setFrontpageBlog(String frontpageBlog) {
+ this.frontpageBlog = frontpageBlog;
+ }
+
+ public Boolean getAggregated() {
+ return aggregated;
+ }
+
+ public void setAggregated(Boolean aggregated) {
+ this.aggregated = aggregated;
+ }
}
Modified: roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties?rev=820143&r1=820142&r2=820143&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties Wed Sep 30 01:38:48 2009
@@ -351,12 +351,13 @@
configForm.siteName=Site Name (for main page and RSS feed)
configForm.shortName=Short name (shown in site banner)
configForm.siteDescription=Site Description (for main page and RSS feed)
-configForm.frontpageWeblogHandle=Handle of weblog to serve as frontpage blog
+configForm.frontpageWeblogHandle=Weblog to serve as frontpage blog
configForm.frontpageWeblogAggregated=Enable aggregated site-wide frontpage
configForm.siteAdminEmail=Site Administrator''s email address
configForm.absoluteUrl=Absolute URL to site (if required)
configForm.suspendPingProcessing=Suspend all ping processing?
configForm.allowUserWeblogCreation=Allow users to create new weblogs?
+configForm.none=None specified
configForm.userSettings=User Settings
configForm.accountActivation=Require new users to activate accounts via email
@@ -676,13 +677,16 @@
index.setFrontpage=Designate a frontpage weblog
index.setFrontpageHelp=\
-You must specify a weblog to serve as the frontpage of your Roller site. \
-You can do this by going to the <b>Server Admin->Configuration</b> page. \
-In the field labelled "Handle of the weblog to server as the frontpage" enter \
-the handle of the weblog you want to front your site. Once you''re done \
-you won''t see this irritating page any longer.
-index.setFrontpageBy=Designate a frontpage weblog on the
-index.setFrontpagePage=Server Admin Page
+You must specify a weblog to serve as the front page weblog, you can do this \
+via the <b>Server Admin->Configuration</b> page or the form that will appear \
+below once you have created at least one weblog.
+
+frontpageConfig.frontpageBlogName=Name of weblog to serve as frontpage blog
+frontpageConfig.frontpageAgregated=Enable aggregated site-wide frontpage
+frontpageConfig.save=Save
+frontpageConfig.values.saved=Properties successfully saved
+frontpageConfig.values.error=Error saving properties
+frontpageConfig.weblogs.error=Unexpected error accessing Weblogs
# ------------------------------------------------------ Invitations management
Modified: roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml?rev=820143&r1=820142&r2=820143&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/classes/struts.xml Wed Sep 30 01:38:48 2009
@@ -87,6 +87,7 @@
<action name="setup"
class="org.apache.roller.weblogger.ui.struts2.core.Setup">
<result name="success" type="tiles">.Setup</result>
+ <result name="home" type="redirectAction">home</result>
</action>
<action name="login"
@@ -154,7 +155,7 @@
class="org.apache.roller.weblogger.ui.struts2.admin.GlobalConfig">
<result name="success" type="tiles">.GlobalConfig</result>
</action>
-
+
<action name="userAdmin"
class="org.apache.roller.weblogger.ui.struts2.admin.UserAdmin">
<result name="success" type="tiles">.UserAdmin</result>
Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/admin/GlobalConfig.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/admin/GlobalConfig.jsp?rev=820143&r1=820142&r2=820143&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/admin/GlobalConfig.jsp (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/admin/GlobalConfig.jsp Wed Sep 30 01:38:48 2009
@@ -37,34 +37,58 @@
<%-- special condition for comment plugins --%>
<s:if test="#pd.name == 'users.comments.plugins'">
- <td class="field"><s:checkboxlist theme="roller" list="pluginsList" name="commentPlugins" listKey="id" listValue="name" /></td>
+ <td class="field"><s:checkboxlist theme="roller" list="pluginsList"
+ name="commentPlugins" listKey="id" listValue="name" /></td>
</s:if>
-
+
+ <%-- special condition for front page blog --%>
+ <s:elseif test="#pd.name == 'site.frontpage.weblog.handle'">
+ <td class="field">
+ <select name='<s:property value="#pd.name"/>'>
+ <option value=''>
+ <s:text name="configForm.none" />
+ </option> <s:iterator id="weblog" value="weblogs">
+ <option value='<s:property value="#weblog.handle"/>'
+ <s:if test='properties[#pd.name].value == #weblog.handle'>selected='true'</s:if> >
+ <s:property value="#weblog.name"/>
+ </option>
+ </s:iterator>
+ </select>
+ </td>
+ </s:elseif>
+
<%-- "string" type means use a simple textbox --%>
<s:elseif test="#pd.type == 'string'">
- <td class="field"><input type="text" name='<s:property value="#pd.name"/>' value='<s:property value="properties[#pd.name].value"/>' size="35" /></td>
+ <td class="field"><input type="text" name='<s:property value="#pd.name"/>'
+ value='<s:property value="properties[#pd.name].value"/>' size="35" /></td>
</s:elseif>
<%-- "text" type means use a full textarea --%>
<s:elseif test="#pd.type == 'text'">
<td class="field">
- <textarea name='<s:property value="#pd.name"/>' rows="<s:property value="#pd.rows"/>" cols="<s:property value="#pd.cols"/>"><s:property value="properties[#pd.name].value"/></textarea>
+ <textarea name='<s:property value="#pd.name"/>'
+ rows="<s:property value="#pd.rows"/>"
+ cols="<s:property value="#pd.cols"/>"><s:property value="properties[#pd.name].value"/>
+ </textarea>
</td>
</s:elseif>
<%-- "boolean" type means use a checkbox --%>
<s:elseif test="#pd.type == 'boolean'">
<s:if test="properties[#pd.name].value == 'true'">
- <td class="field"><input type="checkbox" name='<s:property value="#pd.name"/>' CHECKED></td>
+ <td class="field"><input type="checkbox"
+ name='<s:property value="#pd.name"/>' CHECKED></td>
</s:if>
<s:else>
- <td class="field"><input type="checkbox" name='<s:property value="#pd.name"/>'></td>
+ <td class="field"><input type="checkbox"
+ name='<s:property value="#pd.name"/>'></td>
</s:else>
</s:elseif>
<%-- if it's something we don't understand then use textbox --%>
<s:else>
- <td class="field"><input type="text" name='<s:property value="#pd.name"/>' size="50" /></td>
+ <td class="field"><input type="text"
+ name='<s:property value="#pd.name"/>' size="50" /></td>
</s:else>
<td class="description"><%-- <s:text name="" /> --%></td>
Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Setup.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Setup.jsp?rev=820143&r1=820142&r2=820143&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Setup.jsp (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Setup.jsp Wed Sep 30 01:38:48 2009
@@ -20,53 +20,86 @@
<s:text name="index.prompt" /><br /><br />
<div style="width:75%">
<ul>
- <%--
+ <%--
Tell the user how to complete their Roller install, with helpful
notes and links to the appropriate places in the Roller UI.
--%>
<%-- STEP 1: Create a user if you don't already have one --%>
<li><b><s:text name="index.createUser" />
- <s:if test="userCount > 0"> -
+ <s:if test="userCount > 0"> -
<s:text name="index.createUserDone">
<s:param value="userCount" />
</s:text>
</s:if>
</b><br /><br />
<s:text name="index.createUserHelp" /><br /><br />
- <s:text name="index.createUserBy" />
+ <s:text name="index.createUserBy" />
<a href='<s:url action="register"/>'>
<s:text name="index.createUserPage" />
</a>.
<br /><br /><br />
</li>
-
+
<%-- STEP 2: Create a weblog if you don't already have one --%>
<li><b><s:text name="index.createWeblog" />
- <s:if test="blogCount > 0"> -
+ <s:if test="blogCount > 0"> -
<s:text name="index.createWeblogDone">
<s:param value="blogCount" />
</s:text>
</s:if>
</b><br /><br />
<s:text name="index.createWeblogHelp" /><br /><br />
- <s:text name="index.createWeblogBy" />
+ <s:text name="index.createWeblogBy" />
<a href='<s:url action="createWeblog"/>'>
<s:text name="index.createWeblogPage" />
</a>
<br /><br /><br />
</li>
-
+
<%-- STEP 3: Designate a weblog to be the frontpage weblot --%>
<li><b><s:text name="index.setFrontpage" /></b><br />
<br />
<s:text name="index.setFrontpageHelp" /><br />
<br />
- <s:text name="index.setFrontpageBy" />
- <a href='<s:url action="globalConfig" namespace="/roller-ui/admin" />'>
- <s:text name="index.setFrontpagePage" />
- </a>
+
+ <s:if test="blogCount > 0">
+ <s:form action="setup!save">
+ <table style="margin-left:2em;width:70%">
+ <tr>
+ <td class="label">
+ <s:text name="frontpageConfig.frontpageBlogName" />
+ </td>
+ <td class="field">
+ <s:select list="weblogs"
+ listKey="handle"
+ listValue="name"
+ name="frontpageBlog"
+ value="frontpageBlog" />
+ </td>
+ </tr>
+ <tr>
+ <td class="label">
+ <s:text name="frontpageConfig.frontpageAgregated" />
+ <br /><br />
+ </td>
+ <td class="field">
+ <s:checkbox name="aggregated" value="aggregated" />
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="label">
+ <div class="control">
+ <s:submit key="frontpageConfig.save" />
+ </div>
+ </td>
+ </tr>
+ </table>
+
+ </s:form>
+ </s:if>
+
</li>
-
+
</ul>
</div>
Modified: roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml?rev=820143&r1=820142&r2=820143&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/tiles.xml Wed Sep 30 01:38:48 2009
@@ -160,6 +160,10 @@
<put-attribute name="content" value="/WEB-INF/jsps/admin/GlobalConfig.jsp" />
</definition>
+ <definition name=".FrontpageConfig" extends=".tiles-simplepage" >
+ <put-attribute name="content" value="/WEB-INF/jsps/admin/FrontpageConfig.jsp" />
+ </definition>
+
<definition name=".UserAdmin" extends=".tiles-tabbedpage" >
<put-attribute name="content" value="/WEB-INF/jsps/admin/UserAdmin.jsp" />
</definition>
Modified: roller/trunk/apps/weblogger/web/roller-ui/styles/roller.css
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/roller-ui/styles/roller.css?rev=820143&r1=820142&r2=820143&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/roller-ui/styles/roller.css (original)
+++ roller/trunk/apps/weblogger/web/roller-ui/styles/roller.css Wed Sep 30 01:38:48 2009
@@ -33,6 +33,7 @@
th, td {
border: none;
vertical-align: top;
+ padding: 2px;
}
a {
Modified: roller/trunk/tools/lib/taglibs-string.jar
URL: http://svn.apache.org/viewvc/roller/trunk/tools/lib/taglibs-string.jar?rev=820143&r1=820142&r2=820143&view=diff
==============================================================================
Binary files - no diff available.