Author: agilliland
Date: Wed Jun  6 11:00:48 2007
New Revision: 544902

URL: http://svn.apache.org/viewvc?view=rev&rev=544902
Log:
fix up theme chooser so that when a user is doing a custom theme for the first 
time they are forced to copy templates from an existing theme as a starting 
point.


Modified:
    
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
    
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
    roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp

Modified: 
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java?view=diff&rev=544902&r1=544901&r2=544902
==============================================================================
--- 
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
 (original)
+++ 
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
 Wed Jun  6 11:00:48 2007
@@ -33,6 +33,7 @@
 import org.apache.roller.weblogger.pojos.Theme;
 import org.apache.roller.weblogger.pojos.WeblogTheme;
 import org.apache.roller.weblogger.pojos.Weblog;
+import org.apache.roller.weblogger.pojos.WeblogTemplate;
 import org.apache.roller.weblogger.ui.struts2.util.UIAction;
 import org.apache.roller.weblogger.util.cache.CacheManager;
 
@@ -84,6 +85,7 @@
             setThemeId(null);
         } else {
             setThemeId(getActionWeblog().getTheme().getId());
+            setImportThemeId(getActionWeblog().getTheme().getId());
         }
         
         
if(!RollerRuntimeConfig.getBooleanProperty("themes.customtheme.allowed")) {
@@ -196,6 +198,16 @@
     
     public boolean isCustomTheme() {
         return (WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme()));
+    }
+    
+    // has this weblog had a custom theme before?
+    public boolean isFirstCustomization() {
+        try {
+            return 
(getActionWeblog().getPageByAction(WeblogTemplate.ACTION_WEBLOG) == null);
+        } catch (WebloggerException ex) {
+            log.error("Error looking up weblog template", ex);
+        }
+        return false;
     }
     
     

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?view=diff&rev=544902&r1=544901&r2=544902
==============================================================================
--- 
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties 
(original)
+++ 
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties 
Wed Jun  6 11:00:48 2007
@@ -1370,6 +1370,9 @@
 themeEditor.import=I want to copy the templates from the selected theme into 
my weblog.
 themeEditor.importWarning=WARNING: this operation may overwrite some of your \
 existing templates.
+themeEditor.importRequired=Since this is the first time you are going to try a 
\
+custom theme you must copy the templates from an existing theme to start with. 
\
+Please select the theme you would like to use as a starting point for your 
customizations.
 
 themeEditor.save=Save
 

Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp?view=diff&rev=544902&r1=544901&r2=544902
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp Wed Jun  
6 11:00:48 2007
@@ -113,8 +113,14 @@
     
     <div id="customOptioner" class="optioner" style="display:none;">
         <p>
-            <s:checkbox name="importTheme" /><s:text name="themeEditor.import" 
/><br/>
-            <span class="warning"><s:text name="themeEditor.importWarning" 
/></span>
+            <s:if test="!firstCustomization">
+                <s:hidden name="importTheme" value="true" />
+                <span class="warning"><s:text 
name="themeEditor.importRequired" /></span>
+            </s:if>
+            <s:else>
+                <s:checkbox name="importTheme" /><s:text 
name="themeEditor.import" /><br/>
+                <span class="warning"><s:text name="themeEditor.importWarning" 
/></span>
+            </s:else>
         </p>
         <p>
             <s:select id="customSelector" name="importThemeId" list="themes" 
listKey="id" listValue="name" size="1" 
onchange="previewImage($('customPreviewImg'), this[selectedIndex].value)"/>
@@ -123,7 +129,12 @@
             <img id="customPreviewImg" src="" />
             <!-- initialize preview image at page load -->
             <script type="text/javascript">
-            previewImage($('customPreviewImg'), '<s:property 
value="themes[0].id"/>');
+                <s:if test="customTheme">
+                    previewImage($('customPreviewImg'), '<s:property 
value="themes[0].id"/>');
+                </s:if>
+                <s:else>
+                    previewImage($('customPreviewImg'), '<s:property 
value="themeId"/>');
+                </s:else>
             </script>
         </p>
         <p>


Reply via email to