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')}" 
/>&nbsp;&nbsp;
                 <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" />


Reply via email to