Author: gmazza
Date: Mon Jul 14 20:22:00 2014
New Revision: 1610513
URL: http://svn.apache.org/r1610513
Log:
ROL-2038 only dual themes have two tabs for mobile and standard, all others
just standard.
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
roller/trunk/app/src/main/resources/sql/createdb.vm
roller/trunk/app/src/main/resources/sql/droptables.sql
roller/trunk/app/src/main/resources/sql/macros.vm
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp
roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/SharedThemeFromDir.java
Mon Jul 14 20:22:00 2014
@@ -205,10 +205,12 @@ public class SharedThemeFromDir extends
themeMetadata.getPreviewImage(), previewFile);
}
- // avaialble types in the Roller
+ // available types with Roller
List<String> availableTypesList = new ArrayList<String>();
availableTypesList.add("standard");
- availableTypesList.add("mobile");
+ if (themeMetadata.getDualTheme()) {
+ availableTypesList.add("mobile");
+ }
// load stylesheet if possible
if (themeMetadata.getStylesheet() != null) {
@@ -225,8 +227,8 @@ public class SharedThemeFromDir extends
if (standardTemplateCode == null && mobileTemplateCode == null) {
throw new ThemeInitializationException(
"Error in getting template codes for template");
- } else if (mobileTemplateCode == null) {
- // cloning the standard template code if no mobile is present
+ } else if (mobileTemplateCode == null &&
themeMetadata.getDualTheme()) {
+ // clone the standard template code if no mobile is present
mobileTemplateCode = new ThemeMetadataTemplateCode();
mobileTemplateCode.setContentsFile(standardTemplateCode
.getContentsFile());
@@ -330,7 +332,7 @@ public class SharedThemeFromDir extends
if (standardTemplateCode == null && mobileTemplateCode == null) {
throw new ThemeInitializationException(
"Error in getting template codes for template");
- } else if (mobileTemplateCode == null) {
+ } else if (mobileTemplateCode == null &&
themeMetadata.getDualTheme()) {
// cloning the standard template code if no mobile is present
mobileTemplateCode = new ThemeMetadataTemplateCode();
mobileTemplateCode.setContentsFile(standardTemplateCode
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
Mon Jul 14 20:22:00 2014
@@ -58,7 +58,7 @@ import org.apache.roller.weblogger.util.
* Base implementation of a ThemeManager.
*
* This particular implementation reads theme data off the filesystem and
- * assumes that those themes are not changable at runtime.
+ * assumes that those themes are not changeable at runtime.
*/
@com.google.inject.Singleton
public class ThemeManagerImpl implements ThemeManager {
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadata.java
Mon Jul 14 20:22:00 2014
@@ -31,6 +31,7 @@ public class ThemeMetadata {
private String description = null;
private String author = null;
private String previewImage = null;
+ private Boolean dualTheme = false;
private ThemeMetadataTemplate stylesheet = null;
private Set<ThemeMetadataTemplate> templates = new
HashSet<ThemeMetadataTemplate>();
private Set<String> resources = new HashSet<String>();
@@ -110,4 +111,11 @@ public class ThemeMetadata {
this.stylesheet = stylesheet;
}
+ public Boolean getDualTheme() {
+ return dualTheme;
+ }
+
+ public void setDualTheme(Boolean dualTheme) {
+ this.dualTheme = dualTheme;
+ }
}
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeMetadataParser.java
Mon Jul 14 20:22:00 2014
@@ -60,6 +60,9 @@ public class ThemeMetadataParser {
theme.setDescription(root.getChildText("description"));
theme.setAuthor(root.getChildText("author"));
+ // dual-theme (standard & mobile) or one-theme-fits-all?
+
theme.setDualTheme("true".equalsIgnoreCase(root.getChildText("dualTheme")));
+
// if either id or name is null then throw a parsing exception
if(StringUtils.isEmpty(theme.getId()) ||
StringUtils.isEmpty(theme.getName())) {
throw new ThemeParsingException("'id' and 'name' are required
theme elements");
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/themes/WeblogCustomTheme.java
Mon Jul 14 20:22:00 2014
@@ -72,7 +72,7 @@ public class WeblogCustomTheme extends W
/**
* Get the collection of all templates associated with this Theme.
*/
- public List getTemplates() throws WebloggerException {
+ public List<? extends ThemeTemplate> getTemplates() throws
WebloggerException {
return
WebloggerFactory.getWeblogger().getWeblogManager().getPages(this.weblog);
}
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java
(original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/Theme.java
Mon Jul 14 20:22:00 2014
@@ -62,7 +62,7 @@ public interface Theme {
/**
* Get the list of all templates associated with this Theme.
*/
- List<ThemeTemplate> getTemplates() throws WebloggerException;
+ List<? extends ThemeTemplate> getTemplates() throws WebloggerException;
/**
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.java
Mon Jul 14 20:22:00 2014
@@ -80,7 +80,7 @@ public final class WeblogWrapper {
public List<ThemeTemplateWrapper> getPages() throws WebloggerException {
- List<ThemeTemplate> unwrapped = this.pojo.getTheme().getTemplates();
+ List<? extends ThemeTemplate> unwrapped =
this.pojo.getTheme().getTemplates();
List<ThemeTemplateWrapper> wrapped = new
ArrayList<ThemeTemplateWrapper>(unwrapped.size());
int i = 0;
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
Mon Jul 14 20:22:00 2014
@@ -112,26 +112,25 @@ public class StylesheetEdit extends UIAc
.getContents());
standardTemplateCode.setTemplateLanguage(stylesheetTmpl
.getTemplateLanguage());
-
- TemplateCode tCode = stylesheet
- .getTemplateCode(MOBILE_THEME_TYPE);
-
- WeblogThemeTemplateCode mobileTemplateCode = new
WeblogThemeTemplateCode(
- stylesheetTmpl.getId(), MOBILE_THEME_TYPE);
- mobileTemplateCode.setTemplate(tCode.getTemplate());
- mobileTemplateCode.setTemplateLanguage(tCode
- .getTemplateLanguage());
-
WebloggerFactory.getWeblogger().getWeblogManager()
.saveTemplateCode(standardTemplateCode);
- WebloggerFactory.getWeblogger().getWeblogManager()
- .saveTemplateCode(mobileTemplateCode);
+
+ TemplateCode tCode =
stylesheet.getTemplateCode(MOBILE_THEME_TYPE);
+ if (tCode != null) {
+ WeblogThemeTemplateCode mobileTemplateCode = new
WeblogThemeTemplateCode(
+ stylesheetTmpl.getId(), MOBILE_THEME_TYPE);
+ mobileTemplateCode.setTemplate(tCode.getTemplate());
+ mobileTemplateCode.setTemplateLanguage(tCode
+ .getTemplateLanguage());
+ WebloggerFactory.getWeblogger().getWeblogManager()
+ .saveTemplateCode(mobileTemplateCode);
+ }
WebloggerFactory.getWeblogger().getWeblogManager()
.savePage(stylesheetTmpl);
+ setTemplate(stylesheetTmpl);
WebloggerFactory.getWeblogger().flush();
- setTemplate(stylesheetTmpl);
// success message
addMessage("stylesheetEdit.create.success");
@@ -234,11 +233,6 @@ public class StylesheetEdit extends UIAc
WeblogThemeTemplateCode tc = stylesheet
.getTemplateCode(MOBILE_THEME_TYPE);
tc.setTemplate(getContentsMobile());
- } else {
- WeblogThemeTemplateCode tc = new WeblogThemeTemplateCode(
- stylesheet.getId(), MOBILE_THEME_TYPE);
- // empty, we've got no default mobile template
- tc.setTemplate("");
WebloggerFactory.getWeblogger().getWeblogManager()
.saveTemplateCode(tc);
}
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java
Mon Jul 14 20:22:00 2014
@@ -167,11 +167,6 @@ public class TemplateEditBean {
if (dataHolder.getTemplateCode("mobile") != null) {
WeblogThemeTemplateCode tc = dataHolder.getTemplateCode("mobile");
tc.setTemplate(contentsMobile);
- } else {
- WeblogThemeTemplateCode tc = new
WeblogThemeTemplateCode(dataHolder.getId(), "mobile");
- // empty, we've got no default mobile template
- tc.setTemplate("");
-
WebloggerFactory.getWeblogger().getWeblogManager().saveTemplateCode(tc);
}
// the rest of the template properties can only be modified when
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
Mon Jul 14 20:22:00 2014
@@ -175,19 +175,19 @@ public class Templates extends UIAction
// Create weblog template codes for available types.
WeblogThemeTemplateCode standardTemplCode = new
WeblogThemeTemplateCode(
newTemplate.getId(), "standard");
- WeblogThemeTemplateCode mobileTemplCode = new
WeblogThemeTemplateCode(
- newTemplate.getId(), "mobile");
-
standardTemplCode.setTemplate(newTemplate.getContents());
standardTemplCode.setTemplateLanguage("velocity");
+ WebloggerFactory.getWeblogger().getWeblogManager()
+ .saveTemplateCode(standardTemplCode);
+ /* TBI -- need a way for user to specify dual or single
template
+ WeblogThemeTemplateCode mobileTemplCode = new
WeblogThemeTemplateCode(
+ newTemplate.getId(), "mobile");
mobileTemplCode.setTemplate(newTemplate.getContents());
mobileTemplCode.setTemplateLanguage("velocity");
-
- WebloggerFactory.getWeblogger().getWeblogManager()
- .saveTemplateCode(standardTemplCode);
WebloggerFactory.getWeblogger().getWeblogManager()
.saveTemplateCode(mobileTemplCode);
+ */
// if this person happened to create a Weblog template from
// scratch then make sure and set the defaultPageId. What does
Modified: roller/trunk/app/src/main/resources/sql/createdb.vm
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/sql/createdb.vm?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/sql/createdb.vm (original)
+++ roller/trunk/app/src/main/resources/sql/createdb.vm Mon Jul 14 20:22:00 2014
@@ -531,13 +531,6 @@ alter table autoping add constraint ap_w
alter table autoping add constraint ap_pingtargetid_fk
foreign key (pingtargetid) references pingtarget(id) $!db.ADDL_FK_PARAMS ;
-
--- THE FOLLOWING CONSTRAINTS CAN NOT BE SUPPORTED FOR IMPORTING new-user.xml
--- alter table website add constraint website_defaultpageid_fk foreign key (
defaultpageid ) references webpage ( id );
--- alter table website add constraint website_weblogdayid_fk foreign key (
weblogdayid ) references webpage ( id );
--- alter table webpage add constraint webpage_websiteid_fk foreign key (
websiteid ) references website( id );
-
-
-- oauth indexes
create index oc_username_idx on roller_oauthconsumer( username$!db.INDEXSIZE
);
Modified: roller/trunk/app/src/main/resources/sql/droptables.sql
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/sql/droptables.sql?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/sql/droptables.sql (original)
+++ roller/trunk/app/src/main/resources/sql/droptables.sql Mon Jul 14 20:22:00
2014
@@ -50,7 +50,6 @@ drop table entryattribute;
drop table weblogentry;
drop table weblogcategory;
drop table webpage;
-drop table roller_weblogtheme;
drop table roller_templatecode;
-- core platform tables
Modified: roller/trunk/app/src/main/resources/sql/macros.vm
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/sql/macros.vm?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/sql/macros.vm (original)
+++ roller/trunk/app/src/main/resources/sql/macros.vm Mon Jul 14 20:22:00 2014
@@ -82,6 +82,20 @@ Define non-null column with default valu
#end
#end
+#**
+Rename a table.
+For Derby, will not work if there is a view or foreign key that references the
table.
+MySQL requires sp_rename command; unsure if works.
+**#
+#macro(renameTable $oldTableName $newTableName)
+#if ($db.DBTYPE == 'POSTGRESQL' || $db.DBTYPE == 'HSQLDB')
+alter table $oldTableName rename to $newTableName;
+#elseif ($db.DBTYPE == 'MYSQL')
+sp_rename '$oldTableName', '$newTableName';
+#else
+rename table $oldTableName TO $newTableName;
+#end
+#end
#**
Macro to account for lack of comparable long varchar in MySQL
Modified:
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
(original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp Mon
Jul 14 20:22:00 2014
@@ -66,15 +66,19 @@
<div id="template-code-tabs">
<ul>
<li class="selected"><a href="#tabStandard"><em>Standard</em></a></li>
- <li><a href="#tabMobile"><em>Mobile</em></a></li>
- </ul>
+ <s:if test="contentsMobile != null">
+ <li><a href="#tabMobile"><em>Mobile</em></a></li>
+ </s:if>
+ </ul>
<div>
<div id="tabStandard">
<s:textarea name="contentsStandard" cols="80" rows="30"
cssStyle="width:100%" />
</div>
- <div id="tabMobile">
- <s:textarea name="contentsMobile" cols="80" rows="30"
cssStyle="width:100%" />
- </div>
+ <s:if test="contentsMobile != null">
+ <div id="tabMobile">
+ <s:textarea name="contentsMobile" cols="80" rows="30"
cssStyle="width:100%" />
+ </div>
+ </s:if>
</div>
</div>
Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp
(original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp Mon
Jul 14 20:22:00 2014
@@ -101,16 +101,19 @@
<div id="template-code-tabs">
<ul>
<li class="selected"><a href="#tabStandard"><em>Standard</em></a></li>
- <li><a href="#tabMobile"><em>Mobile</em></a></li>
- </ul>
+ <s:if test="bean.contentsMobile != null">
+ <li><a href="#tabMobile"><em>Mobile</em></a></li>
+ </s:if>
+ </ul>
<div>
<div id="tabStandard">
<s:textarea name="bean.contentsStandard" cols="80" rows="30"
cssStyle="width:100%" />
-
- </div>
- <div id="tabMobile">
- <s:textarea name="bean.contentsMobile" cols="80" rows="30"
cssStyle="width:100%" />
</div>
+ <s:if test="bean.contentsMobile != null">
+ <div id="tabMobile">
+ <s:textarea name="bean.contentsMobile" cols="80" rows="30"
cssStyle="width:100%" />
+ </div>
+ </s:if>
</div>
</div>
Modified: roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml?rev=1610513&r1=1610512&r2=1610513&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml (original)
+++ roller/trunk/app/src/main/webapp/themes/basicmobile/theme.xml Mon Jul 14
20:22:00 2014
@@ -5,7 +5,9 @@
<name>Basic Mobile</name>
<description>Offers wide margins for blogging programming language source
code and a separate button for mobile viewing.</description>
<author>Roller Weblogger</author>
- <multiLayout>true</multiLayout>
+ <!-- dualTheme: Maintain separate mobile & standard templates and
stylesheets, default false,
+ not needed with responsive themes or where multi-device support is
not a concern. -->
+ <dualTheme>true</dualTheme>
<!-- theme preview image -->
<preview-image path="basic-preview.png" />