Author: ghuber
Date: Sun Jan 29 19:27:04 2012
New Revision: 1237422
URL: http://svn.apache.org/viewvc?rev=1237422&view=rev
Log:
Deleting style sheet and template deleting when using shared themes.
Modified:
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateRemove.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties
roller/trunk/weblogger-web/src/main/resources/struts.xml
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEditError.jsp
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Templates.jsp
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
Modified:
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
---
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
(original)
+++
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java
Sun Jan 29 19:27:04 2012
@@ -22,14 +22,17 @@ import java.util.Collections;
import java.util.Date;
import java.util.List;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.themes.ThemeManager;
import org.apache.roller.weblogger.pojos.TemplateCode;
import org.apache.roller.weblogger.pojos.Theme;
import org.apache.roller.weblogger.pojos.ThemeTemplate;
+import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.pojos.WeblogTemplate;
import org.apache.roller.weblogger.pojos.WeblogTheme;
@@ -53,6 +56,9 @@ public class StylesheetEdit extends UIAc
private String contentsStandard = null;
private String contentsMobile = null;
+ // Do we have a custom stylesheet already for a custom theme
+ private boolean customStylesheet = false;
+
public StylesheetEdit() {
this.actionName = "stylesheetEdit";
this.desiredMenu = "editor";
@@ -124,6 +130,18 @@ public class StylesheetEdit extends UIAc
setTemplate(stylesheetTmpl);
}
+
+ if (!WeblogTheme.CUSTOM.equals(getActionWeblog()
+ .getEditorTheme())) {
+
+ ThemeTemplate override
=WebloggerFactory.getWeblogger()
+
.getWeblogManager().getPageByLink(getActionWeblog(),
getActionWeblog().getTheme().getStylesheet().getLink());
+
+ if(override != null) {
+ customStylesheet = true;
+ }
+ }
+
} catch (WebloggerException ex) {
log.error(
"Error finding/adding
stylesheet tempalate from weblog - "
@@ -313,6 +331,65 @@ public class StylesheetEdit extends UIAc
}
/**
+ * set theme to default stylesheet, ie delete it.
+ */
+ public String delete() {
+
+ if (getTemplate() == null) {
+ log.error("Unable to locate stylesheet template");
+ addError("error.recordnotfound");
+ return ERROR;
+ }
+
+ // make sure we are still using a shared theme so that deleting
is
+ // possible
+ if
(WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) {
+ log.error("Unable to delete stylesheet");
+ addError("stylesheetEdit.error.customTheme");
+ }
+
+ if (!hasActionErrors())
+ try {
+
+ WeblogTemplate stylesheet = getTemplate();
+
+ // Delete template and flush
+ WeblogManager mgr =
WebloggerFactory.getWeblogger()
+ .getWeblogManager();
+
+ // Remove template and page codes
+ mgr.removePage(stylesheet);
+
+ Weblog weblog = getActionWeblog();
+
+ // Clear for next custom theme
+ weblog.setCustomStylesheetPath(null);
+
+ // save updated weblog and flush
+ mgr.saveWeblog(weblog);
+
+ // notify caches
+ CacheManager.invalidate(stylesheet);
+
+ // Flush for operation
+ WebloggerFactory.getWeblogger().flush();
+
+ // success message
+ addMessage("stylesheetEdit.default.success",
+ stylesheet.getName());
+
+ } catch (Exception e) {
+ log.error("Error deleting stylesheet template
for weblog - "
+ +
getActionWeblog().getHandle(), e);
+
+ return ERROR;
+ }
+
+ return "delete";
+
+ }
+
+ /**
* Checks if is custom theme.
*
* @return true, if is custom theme
@@ -377,4 +454,23 @@ public class StylesheetEdit extends UIAc
public void setContentsMobile(String contents) {
this.contentsMobile = contents;
}
+
+ /**
+ * Checks if is custom stylesheet.
+ *
+ * @return true, if checks if is custom stylesheet
+ */
+ public boolean isCustomStylesheet() {
+ return customStylesheet;
+ }
+
+ /**
+ * Sets the custom stylesheet.
+ *
+ * @param customStylesheet
+ * the custom stylesheet
+ */
+ public void setCustomStylesheet(boolean customStylesheet) {
+ this.customStylesheet = customStylesheet;
+ }
}
Modified:
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateRemove.java
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateRemove.java?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
---
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateRemove.java
(original)
+++
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateRemove.java
Sun Jan 29 19:27:04 2012
@@ -20,13 +20,14 @@ package org.apache.roller.weblogger.ui.s
import java.util.Collections;
import java.util.List;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.WebloggerFactory;
-import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.pojos.WeblogTemplate;
+import org.apache.roller.weblogger.pojos.WeblogTheme;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.roller.weblogger.util.cache.CacheManager;
@@ -83,15 +84,14 @@ public class TemplateRemove extends UIAc
public String remove() {
if(getTemplate() != null) try {
- if(!getTemplate().isRequired()) {
- UserManager umgr =
WebloggerFactory.getWeblogger().getUserManager();
+ if(!getTemplate().isRequired() ||
!WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) {
// notify cache
CacheManager.invalidate(getTemplate());
-
+
WebloggerFactory.getWeblogger().getWeblogManager().removePage(getTemplate());
WebloggerFactory.getWeblogger().flush();
-
+
return SUCCESS;
} else {
// TODO: i18n
Modified:
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
---
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
(original)
+++
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java
Sun Jan 29 19:27:04 2012
@@ -210,6 +210,14 @@ public class Templates extends UIAction
}
+ /**
+ * Checks if is custom theme.
+ *
+ * @return true, if is custom theme
+ */
+ public boolean isCustomTheme() {
+ return (WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme()));
+ }
public List<WeblogTemplate> getTemplates() {
return templates;
Modified:
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
---
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
(original)
+++
roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
Sun Jan 29 19:27:04 2012
@@ -29,6 +29,7 @@ import org.apache.roller.weblogger.busin
import org.apache.roller.weblogger.business.themes.ThemeManager;
import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
import org.apache.roller.weblogger.pojos.Theme;
+import org.apache.roller.weblogger.pojos.ThemeTemplate;
import org.apache.roller.weblogger.pojos.WeblogTheme;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.pojos.WeblogPermission;
@@ -59,6 +60,8 @@ public class ThemeEdit extends UIAction
// the chosen import theme id
private String importThemeId = null;
+ // Do we have a custom stylesheet already
+ private boolean customStylesheet = false;
public ThemeEdit() {
this.actionName = "themeEdit";
@@ -73,6 +76,28 @@ public class ThemeEdit extends UIAction
public void myPrepare() {
+
+ // See if we have a custom style sheet from a custom theme.
+ try {
+ if
(WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())
+ && StringUtils.isNotEmpty(getActionWeblog()
+ .getCustomStylesheetPath())) {
+ customStylesheet = true;
+ } else if (!WeblogTheme.CUSTOM.equals(getActionWeblog()
+ .getEditorTheme())) {
+
+ ThemeTemplate override =WebloggerFactory.getWeblogger()
+
.getWeblogManager().getPageByLink(getActionWeblog(),
getActionWeblog().getTheme().getStylesheet().getLink());
+
+ if(override != null) {
+ customStylesheet = true;
+ }
+ }
+ } catch (WebloggerException ex) {
+ log.error("Error looking up stylesheet on weblog - "
+ + getActionWeblog().getHandle(), ex);
+ }
+
ThemeManager themeMgr =
WebloggerFactory.getWeblogger().getThemeManager();
setThemes(themeMgr.getEnabledThemesList());
}
@@ -262,4 +287,23 @@ public class ThemeEdit extends UIAction
this.importThemeId = importThemeId;
}
+ /**
+ * Checks if is custom stylesheet.
+ *
+ * @return true, if checks if is custom stylesheet
+ */
+ public boolean isCustomStylesheet() {
+ return customStylesheet;
+ }
+
+ /**
+ * Sets the custom stylesheet.
+ *
+ * @param customStylesheet
+ * the custom stylesheet
+ */
+ public void setCustomStylesheet(boolean customStylesheet) {
+ this.customStylesheet = customStylesheet;
+ }
+
}
Modified:
roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
---
roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties
(original)
+++
roller/trunk/weblogger-web/src/main/resources/ApplicationResources.properties
Sun Jan 29 19:27:04 2012
@@ -1613,6 +1613,7 @@ fix you can start over at any time by cl
stylesheetEdit.save=Save
stylesheetEdit.revert=Restore Stylesheet
+stylesheetEdit.delete=Delete Stylesheet
stylesheetEdit.noStylesheetOverride=\
Unfortunately, the theme you're using does not provide a custom \
@@ -1621,9 +1622,13 @@ your system administrator to see about e
stylesheetEdit.save.success=Stylesheet updated successfully.
stylesheetEdit.revert.success=Stylesheet reverted successfully.
+stylesheetEdit.default.success=Stylesheet deleted successfully. Your theme is
now using the Shared Theme default.
+stylesheetEdit.default.noStylesheetOverride=Note: clicking the stylesheet tab
will \
+recreate your custom override stylesheet again from the theme default!
stylesheetEdit.error.customTheme=Cannot revert stylesheet on custom themes.
-
+stylesheetEdit.confirmDelete=Are you sure you want to delete your stylesheet?
+stylesheetEdit.confirmRevert=Are you sure you want to revert your stylesheet
to the theme default?
# ------------------------------------------------------------------ Tabbed
Menu
@@ -1705,6 +1710,8 @@ bloggers who want to be able to create a
Beware though, managing a blog design of your own takes a bit of effort.
themeEditor.yourCurrentTheme=Your current theme is
+themeEditor.yourCustomStylesheet=using <em style="color:red">custom</em>
override stylesheet.
+themeEditor.yourThemeStyleSheet=using the <em>Shared Theme</em> default
stylesheet.
themeEditor.selectTheme=Select a new shared theme for your blog
themeEditor.youMayCustomize=If you like you may customize a personal copy of \
this theme.
Modified: roller/trunk/weblogger-web/src/main/resources/struts.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/resources/struts.xml?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
--- roller/trunk/weblogger-web/src/main/resources/struts.xml (original)
+++ roller/trunk/weblogger-web/src/main/resources/struts.xml Sun Jan 29
19:27:04 2012
@@ -402,6 +402,7 @@
class="org.apache.roller.weblogger.ui.struts2.editor.StylesheetEdit">
<result name="input" type="tiles">.StylesheetEdit</result>
<result name="error" type="tiles">.StylesheetEditError</result>
+ <result name="delete" type="tiles">.StylesheetEditError</result>
</action>
<action name="templates!*" method="{1}"
Modified:
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
---
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
(original)
+++
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
Sun Jan 29 19:27:04 2012
@@ -20,6 +20,26 @@
<script type="text/javascript" src="<s:url
value='/roller-ui/yui/element/element-min.js'></s:url>"></script>
<script type="text/javascript" src="<s:url
value='/roller-ui/yui/tabview/tabview-min.js'></s:url>"></script>
+<script type="text/javascript">
+// <!--
+ function revertStylesheet() {
+ if (window.confirm('<s:text
name="stylesheetEdit.confirmRevert"/>')) {
+ document.stylesheetEdit.action = "<s:url
action='stylesheetEdit!revert' />";
+ document.stylesheetEdit.submit();
+ }
+ };
+ <s:if test="%{customStylesheet}">
+ function deleteStylesheet() {
+ if (window.confirm('<s:text
name="stylesheetEdit.confirmDelete"/>')) {
+ document.stylesheetEdit.action = "<s:url
action='stylesheetEdit!delete' />";
+ document.stylesheetEdit.submit();
+ }
+ };
+ </s:if>
+
+// -->
+</script>
+
<p class="subtitle"><s:text name="stylesheetEdit.subtitle" /></p>
<p class="pagetip">
@@ -69,7 +89,11 @@
<td>
<s:submit value="%{getText('stylesheetEdit.save')}"
/>
<s:if test="!customTheme">
- <s:submit value="%{getText('stylesheetEdit.revert')}"
action="stylesheetEdit!revert" />
+ <s:submit value="%{getText('stylesheetEdit.revert')}"
onclick="revertStylesheet();return false;" />
+ </s:if>
+ <%-- Only delete if we have no custom templates ie
website.customStylesheetPath=null --%>
+ <s:if test="customStylesheet">
+ <s:submit value="%{getText('stylesheetEdit.delete')}"
onclick="deleteStylesheet();return false;" />
</s:if>
</td>
<td align="right">
Modified:
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEditError.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEditError.jsp?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
---
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEditError.jsp
(original)
+++
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/StylesheetEditError.jsp
Sun Jan 29 19:27:04 2012
@@ -18,5 +18,11 @@
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
<p class="subtitle"><s:text name="stylesheetEdit.subtitle" /></p>
-
-<div class="notification"><s:text name="stylesheetEdit.noStylesheetOverride"
/></div>
+<div class="notification">
+ <s:if test="customStylesheet">
+ <s:text name="stylesheetEdit.default.noStylesheetOverride" />
+ </s:if>
+ <s:else>
+ <s:text name="stylesheetEdit.noStylesheetOverride" />
+ </s:else>
+</div>
Modified:
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Templates.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Templates.jsp?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
---
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Templates.jsp
(original)
+++
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/Templates.jsp
Sun Jan 29 19:27:04 2012
@@ -64,9 +64,9 @@
<td style="vertical-align:middle"><s:property value="#p.action"
/></td>
<td style="vertical-align:middle"><s:property
value="#p.description" /></td>
-
+
<td class="center" style="vertical-align:middle">
- <s:if test="!#p.required">
+ <s:if test="!#p.required || !customTheme" >
<s:url id="removeUrl" action="templateRemove">
<s:param name="weblog" value="actionWeblog.handle"/>
<s:param name="removeId" value="#p.id"/>
Modified:
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp?rev=1237422&r1=1237421&r2=1237422&view=diff
==============================================================================
---
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
(original)
+++
roller/trunk/weblogger-webapp/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
Sun Jan 29 19:27:04 2012
@@ -89,6 +89,13 @@ function toggleImportThemeDisplay() {
<s:if test="!customTheme">
<s:text name="themeEditor.yourCurrentTheme" />:
<b><s:property value="actionWeblog.theme.name"/></b>
+ <%-- The type of stylesheet we are using --%>
+ <s:if test="%{customStylesheet}">
+ <s:text name="themeEditor.yourCustomStylesheet" />
+ </s:if>
+ <s:else>
+ <s:text name="themeEditor.yourThemeStyleSheet" />
+ </s:else>
</s:if>
<s:else>
<s:text name="themeEditor.selectTheme" />