You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2005/11/29 20:40:23 UTC
svn commit: r349799 - in /incubator/roller/trunk:
src/org/roller/business/utils/ src/org/roller/pojos/
src/org/roller/presentation/website/actions/ web/website/
Author: agilliland
Date: Tue Nov 29 11:40:17 2005
New Revision: 349799
URL: http://svn.apache.org/viewcvs?rev=349799&view=rev
Log:
standardized templates code.
includes:
- new isRequired() method in WeblogTemplate pojo
- update template editing jsps to reflect which templates are required
- 200 to 210 database upgrade path for ensure all weblogs have a 'Weblog' template
- tweak to theme editor action
Modified:
incubator/roller/trunk/src/org/roller/business/utils/UpgradeDatabase.java
incubator/roller/trunk/src/org/roller/pojos/WeblogTemplate.java
incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java
incubator/roller/trunk/web/website/edit-page.jsp
incubator/roller/trunk/web/website/edit-pages.jsp
incubator/roller/trunk/web/website/edit-website.jsp
Modified: incubator/roller/trunk/src/org/roller/business/utils/UpgradeDatabase.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/business/utils/UpgradeDatabase.java?rev=349799&r1=349798&r2=349799&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/business/utils/UpgradeDatabase.java (original)
+++ incubator/roller/trunk/src/org/roller/business/utils/UpgradeDatabase.java Tue Nov 29 11:40:17 2005
@@ -111,6 +111,10 @@
UpgradeDatabase.upgradeTo200(con);
dbversion = 200;
}
+ if(dbversion < 210) {
+ UpgradeDatabase.upgradeTo210(con);
+ dbversion = 210;
+ }
// make sure the database version is the exact version
// we are upgrading too.
@@ -234,6 +238,80 @@
}
+ /**
+ * Upgrade database for Roller 1.3.0
+ */
+ private static void upgradeTo210(Connection con) throws RollerException {
+ try {
+ /*
+ * For Roller 2.1.0 we are going to standardize some of the
+ * weblog templates and make them less editable. To do this
+ * we need to do a little surgery.
+ *
+ * The goal for this upgrade is to ensure that ALL weblogs now have
+ * the required "Weblog" template as their default template.
+ */
+
+ mLogger.info("Doing upgrade to 210 ...");
+ mLogger.info("Ensuring that all weblogs use the 'Weblog' template as their default page");
+
+ // this query will give us all websites that have modified their
+ // default page to link to something other than "Weblog"
+ PreparedStatement selectUpdateWeblogs = con.prepareStatement(
+ "select website.id,template from website,webpage "+
+ "where webpage.id = website.defaultpageid "+
+ "and webpage.link != 'Weblog'");
+
+ // insert a new template for a website
+ PreparedStatement insertWeblogTemplate = con.prepareStatement(
+ "insert into webpage"+
+ "(id, name, description, link, websiteid, template) "+
+ "values(?,?,?,?,?,?)");
+
+ // update the default page for a website
+ PreparedStatement updateDefaultPage = con.prepareStatement(
+ "update website set defaultpageid = ? "+
+ "where id = ?");
+
+ String description = "This template is used to render the main "+
+ "page of your weblog.";
+ ResultSet websiteSet = selectUpdateWeblogs.executeQuery();
+ while (websiteSet.next()) {
+ String websiteid = websiteSet.getString(1);
+ String template = websiteSet.getString(2);
+ mLogger.info("Processing website: " + websiteid);
+
+ // insert new Weblog template
+ insertWeblogTemplate.clearParameters();
+ insertWeblogTemplate.setString( 1, websiteid+"q");
+ insertWeblogTemplate.setString( 2, "Weblog");
+ insertWeblogTemplate.setString( 3, description);
+ insertWeblogTemplate.setString( 4, "Weblog");
+ insertWeblogTemplate.setString( 5, websiteid);
+ insertWeblogTemplate.setString( 6, template);
+ insertWeblogTemplate.executeUpdate();
+
+ // update defaultpageid value
+ updateDefaultPage.clearParameters();
+ updateDefaultPage.setString( 1, websiteid+"q");
+ updateDefaultPage.setString( 2, websiteid);
+ updateDefaultPage.executeUpdate();
+ }
+
+
+ if (!con.getAutoCommit()) con.commit();
+
+ mLogger.info("Upgrade to 210 complete.");
+
+ } catch (SQLException e) {
+ mLogger.error("Problem upgrading database to version 210", e);
+ throw new RollerException("Problem upgrading database to version 210", e);
+ }
+
+ UpgradeDatabase.updateDatabaseVersion(con, 210);
+ }
+
+
/**
* Insert a new database.version property.
*
Modified: incubator/roller/trunk/src/org/roller/pojos/WeblogTemplate.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/pojos/WeblogTemplate.java?rev=349799&r1=349798&r2=349799&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/pojos/WeblogTemplate.java (original)
+++ incubator/roller/trunk/src/org/roller/pojos/WeblogTemplate.java Tue Nov 29 11:40:17 2005
@@ -2,6 +2,8 @@
import java.io.Serializable;
import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
import org.roller.RollerException;
import org.roller.model.Roller;
import org.roller.model.RollerFactory;
@@ -23,10 +25,20 @@
public class WeblogTemplate extends PersistentObject
implements Serializable, Template
{
- static final long serialVersionUID = -613737191638263428L;
+ public static final long serialVersionUID = -613737191638263428L;
- public static final String DEFAULT_PAGE = "Weblog";
-
+ public static final String DEFAULT_PAGE = "Weblog";
+
+ private static Set requiredTemplates = null;
+
+ static {
+ requiredTemplates = new HashSet();
+ requiredTemplates.add("Weblog");
+ requiredTemplates.add("_day");
+ requiredTemplates.add("_css");
+ requiredTemplates.add("_decorator");
+ }
+
private java.lang.String id;
private java.lang.String name;
private java.lang.String description;
@@ -62,7 +74,32 @@
{
setData(otherData);
}
+
+
+ /**
+ * Determine if this WeblogTemplate is required or not.
+ */
+ public boolean isRequired() {
+ /*
+ * this is kind of hacky right now, but it's like that so we can be
+ * reasonably flexible while we migrate old blogs which may have some
+ * pretty strange customizations.
+ *
+ * my main goal starting now is to prevent further deviations from the
+ * standardized templates as we move forward.
+ *
+ * eventually, the required flag should probably be stored in the db
+ * and possibly applicable to any template.
+ */
+ return (requiredTemplates.contains(this.name) || "Weblog".equals(this.link));
+ }
+
+ public void setRequired(boolean req) {
+ // this is an absurd workaround for our struts formbean generation stuff
+ }
+
+
/**
* @ejb:persistent-field
* @hibernate.id column="id"
Modified: incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java?rev=349799&r1=349798&r2=349799&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/website/actions/ThemeEditorAction.java Tue Nov 29 11:40:17 2005
@@ -415,10 +415,22 @@
ThemeTemplate theme_template = null;
while ( iter.hasNext() ) {
theme_template = (ThemeTemplate) iter.next();
- //String pageContent = (String) templates.get( pageName );
- WeblogTemplate template =
- userMgr.getPageByName(website, theme_template.getName());
+ WeblogTemplate template = null;
+
+ if(theme_template.getName().equals(WeblogTemplate.DEFAULT_PAGE)) {
+ // this is the main Weblog template
+ try {
+ template = userMgr.retrievePage(website.getDefaultPageId());
+ } catch(Exception e) {
+ // user may not have a default page yet
+ }
+ } else {
+ // any other template
+ template = userMgr.getPageByName(website, theme_template.getName());
+ }
+
+
if (template != null) {
// User already has page by that name, so overwrite it.
template.setContents(theme_template.getContents());
Modified: incubator/roller/trunk/web/website/edit-page.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/edit-page.jsp?rev=349799&r1=349798&r2=349799&view=diff
==============================================================================
--- incubator/roller/trunk/web/website/edit-page.jsp (original)
+++ incubator/roller/trunk/web/website/edit-page.jsp Tue Nov 29 11:40:17 2005
@@ -24,17 +24,38 @@
<table>
<tr>
<td><fmt:message key="pageForm.name" /><br />
- <html:text property="name" size="50"/>
+ <c:choose>
+ <c:when test="${page.required}">
+ <html:text style="background: #e5e5e5" property="name" size="50" readonly="true"/>
+ </c:when>
+ <c:otherwise>
+ <html:text property="name" size="50"/>
+ </c:otherwise>
+ </c:choose>
</td>
</tr>
<tr>
<td><fmt:message key="pageForm.link" /><br />
- <html:text property="link" size="50"/>
+ <c:choose>
+ <c:when test="${page.required}">
+ <html:text style="background: #e5e5e5" property="link" size="50" readonly="true"/>
+ </c:when>
+ <c:otherwise>
+ <html:text property="link" size="50"/>
+ </c:otherwise>
+ </c:choose>
</td>
</tr>
<tr>
<td><fmt:message key="pageForm.description" /><br />
- <html:textarea property="description" rows="3" cols="50"/>
+ <c:choose>
+ <c:when test="${page.required}">
+ <html:textarea style="background: #e5e5e5" property="description" rows="3" cols="50" readonly="true"/>
+ </c:when>
+ <c:otherwise>
+ <html:textarea property="description" rows="3" cols="50"/>
+ </c:otherwise>
+ </c:choose>
</td>
</tr>
</table>
Modified: incubator/roller/trunk/web/website/edit-pages.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/edit-pages.jsp?rev=349799&r1=349798&r2=349799&view=diff
==============================================================================
--- incubator/roller/trunk/web/website/edit-pages.jsp (original)
+++ incubator/roller/trunk/web/website/edit-pages.jsp Tue Nov 29 11:40:17 2005
@@ -43,7 +43,7 @@
<td class="center">
<c:choose>
- <c:when test="${p.id != website.defaultPageId}">
+ <c:when test="${!p.required}">
<roller:link forward="removePage.ok">
<roller:linkparam id="username" name="user" property="userName" />
<roller:linkparam id="pageId" name="p" property="id" />
Modified: incubator/roller/trunk/web/website/edit-website.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/website/edit-website.jsp?rev=349799&r1=349798&r2=349799&view=diff
==============================================================================
--- incubator/roller/trunk/web/website/edit-website.jsp (original)
+++ incubator/roller/trunk/web/website/edit-website.jsp Tue Nov 29 11:40:17 2005
@@ -14,6 +14,7 @@
<html:hidden property="method" value="update"/></input>
<html:hidden property="id"/></input>
+ <html:hidden property="defaultPageId" /></input>
<html:hidden property="weblogDayPageId" /></input>
<html:hidden property="handle"/></input>
<html:hidden property="editorTheme"/></input>
@@ -55,17 +56,6 @@
<td class="field">
<html:select property="timeZone" size="1" >
<html:options collection="timeZones" property="value" labelProperty="label"/>
- </html:select>
- </td>
- <td class="description"><%-- <fmt:message key="websiteSettings.tip." /> --%></td>
- </tr>
-
- <tr>
- <td class="label"><fmt:message key="websiteSettings.homePage" /></td>
- <td class="field">
- <html:select property="defaultPageId" size="1">
- <html:options collection="pages"
- property="id" labelProperty="name" />
</html:select>
</td>
<td class="description"><%-- <fmt:message key="websiteSettings.tip." /> --%></td>