Author: snoopdave
Date: Thu Jun 7 19:51:57 2007
New Revision: 545380
URL: http://svn.apache.org/viewvc?view=rev&rev=545380
Log:
Latest from trunk
Added:
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/util/UIUtils.java
- copied unchanged from r545377,
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/util/UIUtils.java
roller/branches/roller_guice/tools/buildtime/ant-1.7.0/
- copied from r545377, roller/trunk/tools/buildtime/ant-1.7.0/
roller/branches/roller_guice/tools/buildtime/ant-1.7.0/ant-junit.jar
- copied unchanged from r545377,
roller/trunk/tools/buildtime/ant-1.7.0/ant-junit.jar
roller/branches/roller_guice/tools/buildtime/ant-1.7.0/ant.jar
- copied unchanged from r545377,
roller/trunk/tools/buildtime/ant-1.7.0/ant.jar
Removed:
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/utils/UpgradeDatabase.java
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/ByteArrayOutputStreamWrapper.java
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/ByteArrayResponseWrapper.java
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/UIUtils.java
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/util/package.html
roller/branches/roller_guice/tools/buildtime/ant-1.6.2/
Modified:
roller/branches/roller_guice/apps/planet/build.xml
roller/branches/roller_guice/apps/weblogger/properties.xmlf
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/CompressionFilter.java
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/EntryEdit.jsp
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp
roller/branches/roller_guice/apps/weblogger/web/roller-ui/styles/roller.css
roller/branches/roller_guice/components/core/nbproject/ (props changed)
roller/branches/roller_guice/merges.txt
Modified: roller/branches/roller_guice/apps/planet/build.xml
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/planet/build.xml?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
--- roller/branches/roller_guice/apps/planet/build.xml (original)
+++ roller/branches/roller_guice/apps/planet/build.xml Thu Jun 7 19:51:57 2007
@@ -136,7 +136,7 @@
<include name="*.jar"/>
</fileset>
<pathelement location="${tools}/buildtime/junit-4.1.jar"/>
- <pathelement location="${tools}/buildtime/ant-1.6.2/ant-junit.jar"/>
+ <pathelement location="${tools}/buildtime/ant-1.7.0/ant-junit.jar"/>
<pathelement location="${tools}/buildtime/derby.jar"/>
<pathelement location="${tools}/buildtime/derbyclient.jar"/>
<pathelement location="${tools}/buildtime/derbynet.jar"/>
@@ -368,7 +368,7 @@
<classpath>
<path refid="test.path"/>
- <pathelement location="${tools}/buildtime/ant-1.6.2/ant.jar"/>
+ <pathelement location="${tools}/buildtime/ant-1.7.0/ant.jar"/>
</classpath>
</javac>
Modified: roller/branches/roller_guice/apps/weblogger/properties.xmlf
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/properties.xmlf?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/properties.xmlf (original)
+++ roller/branches/roller_guice/apps/weblogger/properties.xmlf Thu Jun 7
19:51:57 2007
@@ -237,7 +237,8 @@
</fileset>
<fileset refid="commons-httpclient.jar"/>
<pathelement location="${ro.tools}/buildtime/junit-4.1.jar"/>
- <pathelement location="${ro.tools}/buildtime/ant-1.6.2/ant-junit.jar"/>
+ <pathelement location="${ro.tools}/buildtime/ant-1.7.0/ant.jar"/>
+ <pathelement location="${ro.tools}/buildtime/ant-1.7.0/ant-junit.jar"/>
<pathelement location="${ro.tools}/buildtime/derby.jar"/>
<pathelement location="${ro.tools}/buildtime/derbyclient.jar"/>
<pathelement location="${ro.tools}/buildtime/derbynet.jar"/>
Modified:
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/CompressionFilter.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/CompressionFilter.java?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
---
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/CompressionFilter.java
(original)
+++
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/filters/CompressionFilter.java
Thu Jun 7 19:51:57 2007
@@ -20,20 +20,23 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
import java.util.zip.GZIPOutputStream;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.config.RollerConfig;
-import org.apache.roller.weblogger.ui.core.util.ByteArrayOutputStreamWrapper;
-import org.apache.roller.weblogger.ui.core.util.ByteArrayResponseWrapper;
/**
@@ -42,13 +45,10 @@
* Taken from More Servlets and JavaServer Pages from Prentice Hall and
* Sun Microsystems Press, http://www.moreservlets.com/.
* © 2002 Marty Hall; may be freely used or adapted.
- *
- * @web.filter name="CompressionFilter"
*/
-
public class CompressionFilter implements Filter {
- private static Log mLogger = LogFactory.getLog(CompressionFilter.class);
+ private static Log log = LogFactory.getLog(CompressionFilter.class);
private boolean enabled = true;
@@ -82,7 +82,7 @@
ByteArrayOutputStream outputStream =
responseWrapper.getByteArrayOutputStream();
// Get character array representing output.
- mLogger.debug("Pre-zip size:" + outputStream.size());
+ log.debug("Pre-zip size:" + outputStream.size());
// Make a writer that compresses data and puts
// it into a byte array.
@@ -95,7 +95,7 @@
// Gzip streams must be explicitly closed.
zipOut.close();
- mLogger.debug("Gzip size:" + byteStream.size());
+ log.debug("Gzip size:" + byteStream.size());
// Update the Content-Length header.
res.setContentLength(byteStream.size());
@@ -118,10 +118,10 @@
// is compression enabled?
if(RollerConfig.getBooleanProperty("compression.gzipResponse.enabled")) {
this.enabled = true;
- mLogger.info("Compressed Output ENABLED");
+ log.info("Compressed Output ENABLED");
} else {
this.enabled = false;
- mLogger.info("Compressed Output DISABLED");
+ log.info("Compressed Output DISABLED");
}
}
@@ -135,4 +135,110 @@
&& (browserEncodings.indexOf("gzip") != -1));
}
+
+ /**
+ * Implementation of HttpServletResponseWrapper that supports caching.
+ */
+ private class ByteArrayResponseWrapper extends HttpServletResponseWrapper {
+
+ private PrintWriter tpWriter;
+ private ByteArrayOutputStreamWrapper tpStream;
+
+
+ public ByteArrayResponseWrapper(ServletResponse inResp) throws
IOException {
+ super((HttpServletResponse) inResp);
+ tpStream = new
ByteArrayOutputStreamWrapper(inResp.getOutputStream());
+ tpWriter = new PrintWriter(new
OutputStreamWriter(tpStream,"UTF-8"));
+ }
+
+
+ public ServletOutputStream getOutputStream() throws IOException {
+ return tpStream;
+ }
+
+ public PrintWriter getWriter() throws IOException {
+ return tpWriter;
+ }
+
+ /**
+ * Get a String representation of the entire buffer.
+ */
+ public String toString() {
+ return tpStream.getByteArrayStream().toString();
+ }
+
+ public ByteArrayOutputStream getByteArrayOutputStream() throws
IOException {
+ return tpStream.getByteArrayStream();
+ }
+
+ }
+
+
+ /**
+ * Implementation of ServletOutputStream that allows the filter to hold the
+ * Response content for insertion into the cache.
+ */
+ private class ByteArrayOutputStreamWrapper extends ServletOutputStream {
+
+ protected OutputStream intStream;
+ protected ByteArrayOutputStream baStream;
+ protected boolean finallized = false;
+ protected boolean flushOnFinalizeOnly = true;
+
+
+ public ByteArrayOutputStreamWrapper(OutputStream outStream) {
+ intStream = outStream;
+ baStream = new ByteArrayOutputStream();
+ }
+
+ public ByteArrayOutputStreamWrapper() {
+ intStream = System.out;
+ baStream = new ByteArrayOutputStream();
+ }
+
+
+ public ByteArrayOutputStream getByteArrayStream() {
+ return baStream;
+ }
+
+ public void setFinallized() {
+ finallized = true;
+ }
+
+ public boolean isFinallized() {
+ return finallized;
+ }
+
+
+ public void write(int i) throws java.io.IOException {
+ baStream.write(i);
+ }
+
+ public void close() throws java.io.IOException {
+ if (finallized) {
+ processStream();
+ intStream.close();
+ }
+ }
+
+ public void flush() throws java.io.IOException {
+ if (baStream.size() != 0) {
+ if (!flushOnFinalizeOnly || finallized) {
+ processStream();
+ baStream = new ByteArrayOutputStream();
+ }
+ }
+ }
+
+ protected void processStream() throws java.io.IOException {
+ intStream.write(baStream.toByteArray());
+ intStream.flush();
+ }
+
+ public void clear() {
+ baStream = new ByteArrayOutputStream();
+ }
+
+ }
+
}
Modified:
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
---
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
(original)
+++
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java
Thu Jun 7 19:51:57 2007
@@ -80,6 +80,7 @@
public String execute() {
+
// set theme to current value
if(WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) {
setThemeId(null);
@@ -103,14 +104,17 @@
Weblog weblog = getActionWeblog();
+ // we are dealing with a custom theme scenario
if(WeblogTheme.CUSTOM.equals(getThemeType())) {
// only continue if custom themes are allowed
if(RollerRuntimeConfig.getBooleanProperty("themes.customtheme.allowed")) {
+
// do theme import if necessary
+ SharedTheme importTheme = null;
if(isImportTheme() &&
!StringUtils.isEmpty(getImportThemeId())) try {
ThemeManager themeMgr =
RollerFactory.getRoller().getThemeManager();
- SharedTheme importTheme =
themeMgr.getTheme(getImportThemeId());
+ importTheme = themeMgr.getTheme(getImportThemeId());
themeMgr.importTheme(getActionWeblog(), importTheme);
} catch(WebloggerException re) {
log.error("Error customizing theme for weblog -
"+getActionWeblog().getHandle(), re);
@@ -118,34 +122,67 @@
addError("Error importing theme");
}
- if(!hasActionErrors()) {
+ if(!hasActionErrors()) try {
weblog.setEditorTheme(WeblogTheme.CUSTOM);
log.debug("Saving custom theme for weblog
"+weblog.getHandle());
- // reset import theme checkbox
+ // save updated weblog and flush
+ UserManager userMgr =
RollerFactory.getRoller().getUserManager();
+ userMgr.saveWebsite(weblog);
+ RollerFactory.getRoller().flush();
+
+ // make sure to flush the page cache so ppl can see the
change
+ CacheManager.invalidate(weblog);
+
+ // TODO: i18n
+ addMessage("Successfully set theme to -
"+WeblogTheme.CUSTOM);
+ if(importTheme != null) {
+ addMessage("Successfully copied templates from theme -
"+importTheme.getName());
+ }
+
+ // reset import theme options
setImportTheme(false);
+ setImportThemeId(null);
+
+ } catch(WebloggerException re) {
+ log.error("Error saving weblog -
"+getActionWeblog().getHandle(), re);
+ addError("Error setting theme");
}
} else {
// TODO: i18n
addError("Sorry, custom themes are not allowed");
}
+ // we are dealing with a shared theme scenario
} else if("shared".equals(getThemeType())) {
- // validation
- myValidate();
- if(!hasActionErrors()) {
+ // make sure theme is valid and enabled
+ Theme newTheme = null;
+ if(getThemeId() == null) {
+ // TODO: i18n
+ addError("No theme specified");
+
+ } else {
+ try {
+ ThemeManager themeMgr =
RollerFactory.getRoller().getThemeManager();
+ newTheme = themeMgr.getTheme(getThemeId());
+
+ if(!newTheme.isEnabled()) {
+ // TODO: i18n
+ addError("Theme not enabled");
+ }
+
+ } catch(Exception ex) {
+ log.warn(ex);
+ // TODO: i18n
+ addError("Theme not found");
+ }
+ }
+
+ if(!hasActionErrors()) try {
weblog.setEditorTheme(getThemeId());
log.debug("Saving theme "+getThemeId()+" for weblog
"+weblog.getHandle());
- }
- } else {
- // invalid theme type
- // TODO: i18n
- addError("no valid theme type submitted");
- }
-
- if(!hasActionErrors()) {
- try {
+
// save updated weblog and flush
UserManager userMgr =
RollerFactory.getRoller().getUserManager();
userMgr.saveWebsite(weblog);
@@ -155,44 +192,21 @@
CacheManager.invalidate(weblog);
// TODO: i18n
- addMessage("Successfully updated theme");
+ addMessage("Successfully set theme to - "+newTheme.getName());
} catch(WebloggerException re) {
log.error("Error saving weblog -
"+getActionWeblog().getHandle(), re);
addError("Error setting theme");
}
- }
-
- return execute();
- }
-
-
- // validation
- private void myValidate() {
-
- String newTheme = getThemeId();
-
- // make sure theme is valid and enabled
- if(newTheme == null) {
- // TODO: i18n
- addError("No theme specified");
+ // unknown theme scenario, error
} else {
- try {
- ThemeManager themeMgr =
RollerFactory.getRoller().getThemeManager();
- Theme newThemeObj = themeMgr.getTheme(getThemeId());
-
- if(!newThemeObj.isEnabled()) {
- // TODO: i18n
- addError("Theme not enabled");
- }
-
- } catch(Exception ex) {
- log.warn(ex);
- // TODO: i18n
- addError("Theme not found");
- }
+ // invalid theme type
+ // TODO: i18n
+ addError("no valid theme type submitted");
}
+
+ return execute();
}
@@ -203,7 +217,8 @@
// has this weblog had a custom theme before?
public boolean isFirstCustomization() {
try {
- return
(getActionWeblog().getPageByAction(WeblogTemplate.ACTION_WEBLOG) == null);
+ UserManager umgr = RollerFactory.getRoller().getUserManager();
+ return (umgr.getPageByAction(getActionWeblog(),
WeblogTemplate.ACTION_WEBLOG) == null);
} catch (WebloggerException ex) {
log.error("Error looking up weblog template", ex);
}
Modified:
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
---
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
(original)
+++
roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java
Thu Jun 7 19:51:57 2007
@@ -27,7 +27,7 @@
import org.apache.roller.weblogger.config.RollerRuntimeConfig;
import org.apache.roller.weblogger.pojos.User;
import org.apache.roller.weblogger.pojos.Weblog;
-import org.apache.roller.weblogger.ui.core.util.UIUtils;
+import org.apache.roller.weblogger.ui.struts2.util.UIUtils;
import org.apache.roller.weblogger.ui.core.util.menu.Menu;
import org.apache.roller.weblogger.ui.core.util.menu.MenuHelper;
Modified:
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
---
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
(original)
+++
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
Thu Jun 7 19:51:57 2007
@@ -1352,10 +1352,16 @@
Beware though, managing a blog design of your own takes a bit of effort.
themeEditor.yourCurrentTheme=Your current theme is
-themeEditor.selectTheme=Select a new theme to preview
+themeEditor.selectTheme=Select a new shared theme for your blog
themeEditor.youMayCustomize=If you like you may customize a personal copy of \
this theme.
+themeEditor.templatesLink=Start editing your blog templates.
+themeEditor.templatesDescription=Now that you are using a custom theme the \
+design of your blog is defined entirely by you using a series of templates. \
+You can modify your templates as much as you like and if you ever decide you \
+want to start over you can do so by copying one of the existing themes.
+
themeEditor.previewLink=See how your blog will look with this theme.
themeEditor.previewDescription=How can you know if this is really the \
theme for you until you see it on your blog right? Click the link above \
@@ -1367,14 +1373,14 @@
different fonts, colors, etc, then try making your own stylesheet or \
borrow one from someoone else using your theme.
-themeEditor.import=I want to copy the templates from the selected theme into
my weblog.
+themeEditor.import=I want to copy the templates from an existing 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.
\
+custom theme you must copy the templates from an existing theme. \
Please select the theme you would like to use as a starting point for your
customizations.
-themeEditor.save=Save
+themeEditor.save=Update Theme
# ----------------------------------------------------------------------
Uploads
Modified:
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/EntryEdit.jsp
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/EntryEdit.jsp?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
---
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/EntryEdit.jsp
(original)
+++
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/EntryEdit.jsp
Thu Jun 7 19:51:57 2007
@@ -59,9 +59,8 @@
<s:text name="weblogEdit.published" />
(<s:text name="weblogEdit.updateTime" />
<s:date name="entry.updateTime" format="dd/MM/yyyy
hh:mm a" />)
- <a href='<s:property value="entry.permalink" />'>
- <s:property value="entry.permaLink" />
- </a>
+ <img src="<s:url
value="/images/launch-link.png"/>" />
+ <a href='<s:property value="entry.permalink"
/>'><s:text name="weblogEdit.permaLink" /></a>
</span>
</s:if>
<s:elseif test="bean.draft">
Modified:
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
---
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp
(original)
+++
roller/branches/roller_guice/apps/weblogger/web/WEB-INF/jsps/editor/ThemeEdit.jsp
Thu Jun 7 19:51:57 2007
@@ -47,6 +47,10 @@
$('sharedOptioner').hide();
}
}
+
+function toggleImportThemeDisplay() {
+ $('themeImport').toggle();
+}
-->
</script>
@@ -77,7 +81,14 @@
</table>
<div id="sharedOptioner" class="optioner" style="display:none;">
- <p><s:text name="themeEditor.yourCurrentTheme" />: <b><s:property
value="actionWeblog.theme.name"/></b></p>
+ <p>
+ <s:if test="!customTheme">
+ <s:text name="themeEditor.yourCurrentTheme" />: <b><s:property
value="actionWeblog.theme.name"/></b>
+ </s:if>
+ <s:else>
+ <s:text name="themeEditor.selectTheme" />
+ </s:else>
+ </p>
<p>
<s:select id="sharedSelector" name="themeId" list="themes"
listKey="id" listValue="name" size="1"
onchange="previewImage($('sharedPreviewImg'), this[selectedIndex].value)"/>
@@ -112,41 +123,63 @@
</div>
<div id="customOptioner" class="optioner" style="display:none;">
- <p>
- <s:if test="!firstCustomization">
+
+ <s:if test="firstCustomization">
+ <p>
<s:hidden name="importTheme" value="true" />
<span class="warning"><s:text
name="themeEditor.importRequired" /></span>
+ </p>
+ </s:if>
+ <s:else>
+ <s:if test="customTheme">
+ <p>
+ <s:url id="templatesUrl" action="templates">
+ <s:param name="weblog" value="%{actionWeblog.handle}"
/>
+ </s:url>
+ » <s:a href="%{templatesUrl}"><s:text
name="themeEditor.templatesLink" /></s:a><br/>
+ <s:text name="themeEditor.templatesDescription" />
+ </p>
</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)"/>
- </p>
- <p>
- <img id="customPreviewImg" src="" />
- <!-- initialize preview image at page load -->
- <script type="text/javascript">
+
+ <p>
+ <s:checkbox name="importTheme"
onclick="$('themeImport').toggle();" /><s:text name="themeEditor.import" />
+ </p>
+ </s:else>
+
+ <div id="themeImport" style="display:none;">
+ <s:if test="customTheme">
+ <p>
+ <span class="warning"><s:text
name="themeEditor.importWarning" /></span>
+ </p>
+ </s:if>
+
+ <p>
+ <s:select id="customSelector" name="importThemeId"
list="themes" listKey="id" listValue="name" size="1"
onchange="previewImage($('customPreviewImg'), this[selectedIndex].value)"/>
+ </p>
+ <p>
+ <img id="customPreviewImg" src="" />
+ <!-- initialize preview image at page load -->
+ <script type="text/javascript">
<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>
- » <a href="#"
onclick="fullPreview($('customSelector'))"><s:text
name="themeEditor.previewLink" /></a><br/>
- <s:text name="themeEditor.previewDescription" />
- </p>
+ </script>
+ </p>
+ <p>
+ » <a href="#"
onclick="fullPreview($('customSelector'))"><s:text
name="themeEditor.previewLink" /></a><br/>
+ <s:text name="themeEditor.previewDescription" />
+ </p>
+ </div>
+
<p><s:submit key="themeEditor.save" /></p>
</div>
</s:form>
-<%-- initializes the chooser/optioner display at page load time --%>
+<%-- initializes the chooser/optioner/themeImport display at page load time
--%>
<script type="text/javascript">
<s:if test="customTheme">
updateThemeChooser($('customRadio'));
@@ -154,4 +187,8 @@
<s:else>
updateThemeChooser($('sharedRadio'));
</s:else>
+
+ <s:if test="firstCustomization">
+ $('themeImport').show();
+ </s:if>
</script>
Modified:
roller/branches/roller_guice/apps/weblogger/web/roller-ui/styles/roller.css
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/roller-ui/styles/roller.css?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/roller-ui/styles/roller.css
(original)
+++ roller/branches/roller_guice/apps/weblogger/web/roller-ui/styles/roller.css
Thu Jun 7 19:51:57 2007
@@ -733,3 +733,9 @@
.optioner {
margin: 0px 30px 30px 30px;
}
+
+#themeImport {
+ width: 85%;
+ margin-left: auto;
+ margin-right: auto;
+}
Propchange: roller/branches/roller_guice/components/core/nbproject/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Jun 7 19:51:57 2007
@@ -0,0 +1 @@
+private
Modified: roller/branches/roller_guice/merges.txt
URL:
http://svn.apache.org/viewvc/roller/branches/roller_guice/merges.txt?view=diff&rev=545380&r1=545379&r2=545380
==============================================================================
--- roller/branches/roller_guice/merges.txt (original)
+++ roller/branches/roller_guice/merges.txt Thu Jun 7 19:51:57 2007
@@ -1,6 +1,9 @@
June 6, 2007
-svn merge -r 544667: https://svn.apache.org/repos/asf/roller/trunk
+svn merge -r 544948:545377 https://svn.apache.org/repos/asf/roller/trunk
+
+June 6, 2007
+svn merge -r 544667:544948 https://svn.apache.org/repos/asf/roller/trunk
June 5, 2007
svn merge -r 544642:544667 https://svn.apache.org/repos/asf/roller/trunk