You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2018/08/19 20:26:18 UTC
roller git commit: More tweaks to Theme Edit page.
Repository: roller
Updated Branches:
refs/heads/bootstrap-ui 77e003d88 -> 840f46c63
More tweaks to Theme Edit page.
Project: http://git-wip-us.apache.org/repos/asf/roller/repo
Commit: http://git-wip-us.apache.org/repos/asf/roller/commit/840f46c6
Tree: http://git-wip-us.apache.org/repos/asf/roller/tree/840f46c6
Diff: http://git-wip-us.apache.org/repos/asf/roller/diff/840f46c6
Branch: refs/heads/bootstrap-ui
Commit: 840f46c63c86cbfe7da092ff0e956eac3fff3567
Parents: 77e003d
Author: Dave Johnson <sn...@gmail.com>
Authored: Sun Aug 19 16:26:15 2018 -0400
Committer: Dave Johnson <sn...@gmail.com>
Committed: Sun Aug 19 16:26:15 2018 -0400
----------------------------------------------------------------------
.../weblogger/business/MediaFileManager.java | 7 +
.../business/jpa/JPAMediaFileManagerImpl.java | 21 ++
.../business/themes/ThemeManagerImpl.java | 14 +-
.../resources/ApplicationResources.properties | 4 +-
.../webapp/WEB-INF/jsps/editor/ThemeEdit.jsp | 252 +++++++++++--------
.../jsps/tiles/tiles-simple-tabbedpage.jsp | 52 ++++
app/src/main/webapp/WEB-INF/tiles.xml | 15 +-
app/src/main/webapp/roller-ui/styles/roller.css | 19 +-
8 files changed, 266 insertions(+), 118 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/roller/blob/840f46c6/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java b/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java
index 71a7bcd..e345ddd 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/MediaFileManager.java
@@ -53,6 +53,13 @@ public interface MediaFileManager {
RollerMessages errors) throws WebloggerException;
/**
+ * Create theme media file.
+ * Same as createMediaFile() except no checks are done for uploads disabled, etc.
+ */
+ void createThemeMediaFile(Weblog weblog, MediaFile mediaFile,
+ RollerMessages errors) throws WebloggerException;
+
+ /**
* Update metadata for a media file
*/
void updateMediaFile(Weblog weblog, MediaFile mediaFile)
http://git-wip-us.apache.org/repos/asf/roller/blob/840f46c6/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
index ab3dc7b..4ebc046 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java
@@ -221,6 +221,27 @@ public class JPAMediaFileManagerImpl implements MediaFileManager {
}
}
+ public void createThemeMediaFile(Weblog weblog, MediaFile mediaFile,
+ RollerMessages errors) throws WebloggerException {
+
+ FileContentManager cmgr = WebloggerFactory.getWeblogger().getFileContentManager();
+ strategy.store(mediaFile);
+
+ // Refresh associated parent for changes
+ roller.flush();
+ strategy.refresh(mediaFile.getDirectory());
+
+ // update weblog last modified date. date updated by saveWeblog()
+ roller.getWeblogManager().saveWeblog(weblog);
+
+ cmgr.saveFileContent(weblog, mediaFile.getId(),
+ mediaFile.getInputStream());
+
+ if (mediaFile.isImageFile()) {
+ updateThumbnail(mediaFile);
+ }
+ }
+
private void updateThumbnail(MediaFile mediaFile) {
try {
FileContentManager cmgr = WebloggerFactory.getWeblogger()
http://git-wip-us.apache.org/repos/asf/roller/blob/840f46c6/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java b/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
index ed5f6a9..4f6367c 100644
--- a/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
+++ b/app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
@@ -317,19 +317,15 @@ public class ThemeManagerImpl implements ThemeManager {
justName = resourcePath;
} else {
- justPath = resourcePath.substring(0,
- resourcePath.lastIndexOf('/'));
+ justPath = resourcePath.substring(0, resourcePath.lastIndexOf('/'));
if (!justPath.startsWith("/")) {
justPath = "/" + justPath;
}
- justName = resourcePath.substring(resourcePath
- .lastIndexOf('/') + 1);
- mdir = fileMgr.getMediaFileDirectoryByName(weblog,
- justPath);
+ justName = resourcePath.substring(resourcePath.lastIndexOf('/') + 1);
+ mdir = fileMgr.getMediaFileDirectoryByName(weblog, justPath);
if (mdir == null) {
log.debug(" Creating directory: " + justPath);
- mdir = fileMgr.createMediaFileDirectory(weblog,
- justPath);
+ mdir = fileMgr.createMediaFileDirectory(weblog, justPath);
roller.flush();
}
}
@@ -354,7 +350,7 @@ public class ThemeManagerImpl implements ThemeManager {
log.debug(" Saving file: " + justName);
log.debug(" Saving in directory = " + mf.getDirectory());
RollerMessages errors = new RollerMessages();
- fileMgr.createMediaFile(weblog, mf, errors);
+ fileMgr.createThemeMediaFile(weblog, mf, errors);
try {
resource.getInputStream().close();
} catch (IOException ex) {
http://git-wip-us.apache.org/repos/asf/roller/blob/840f46c6/app/src/main/resources/ApplicationResources.properties
----------------------------------------------------------------------
diff --git a/app/src/main/resources/ApplicationResources.properties b/app/src/main/resources/ApplicationResources.properties
index 7f4b225..ce46a24 100644
--- a/app/src/main/resources/ApplicationResources.properties
+++ b/app/src/main/resources/ApplicationResources.properties
@@ -1285,7 +1285,7 @@ searchSummary.text=Showing {0} - {1} of total {2} search results
# ----------------------------------------------------------------------- Theme
themeEditor.title=Weblog Theme
-themeEditor.subtitle=Select theme for weblog <span>{0}</span>
+themeEditor.subtitle=Define the theme for weblog <span>{0}</span>.
themeEditor.sharedTheme=Shared Theme
themeEditor.sharedThemeDescription=This option is for users who don''t \
@@ -1303,6 +1303,8 @@ themeEditor.yourThemeStyleSheet=using the <em>Shared Theme</em> default styleshe
themeEditor.youAreUsingACustomTheme=This weblog is using a custom theme.
+themeEditor.thisTheme=This theme:
+
themeEditor.proposedChangeToShared=You are proposing to switch from a Custom Theme to a new Shared Theme.
themeEditor.proposedSharedThemeChange=You are proposing to switch to a new Shared Theme.
http://git-wip-us.apache.org/repos/asf/roller/blob/840f46c6/app/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
index 4a07c3e..53d27b1 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
@@ -29,128 +29,142 @@
<%-- Two choices side-by-side: choose Shared or Custom Theme --%>
- <div class="row equal">
-
- <div id="sharedChooser" class="col-md-6 panel">
- <div class="panel-heading">
- <h3 class="panel-title">
- <input id="sharedRadio" type="radio" name="themeType" value="shared"
- <s:if test="!customTheme">checked</s:if> onclick="proposeThemeTypeChange($(this))"/>
- <s:text name="themeEditor.sharedTheme"/>
- </h3>
- </div>
- <div class="chooser panel-body">
- <s:text name="themeEditor.sharedThemeDescription"/>
+ <div class="row row-display-flex">
+
+ <div class="col-xs-6">
+ <div class="panel panel-default">
+ <div class="panel-body" id="sharedChooser">
+ <h3>
+ <input id="sharedRadio" type="radio" name="themeType" value="shared"
+ <s:if test="!customTheme">checked</s:if> onclick="proposeThemeTypeChange($(this))"/>
+ <s:text name="themeEditor.sharedTheme"/>
+ </h3>
+ <s:text name="themeEditor.sharedThemeDescription"/>
+ </div>
</div>
</div>
- <div id="customChooser" class="col-md-6 panel">
- <div class="panel-heading">
- <h3 class="panel-title">
- <input id="customRadio" type="radio" name="themeType" value="custom"
- <s:if test="customTheme">checked</s:if> onclick="proposeThemeTypeChange($(this))"/>
- <s:text name="themeEditor.customTheme"/>
- </h3>
- </div>
- <div class="chooser panel-body">
- <s:text name="themeEditor.customThemeDescription"/>
+ <div class="col-xs-6">
+ <div class="panel panel-default">
+ <div class="panel-body" id="customChooser">
+ <h3>
+ <input id="customRadio" type="radio" name="themeType" value="custom"
+ <s:if test="customTheme">checked</s:if> onclick="proposeThemeTypeChange($(this))"/>
+ <s:text name="themeEditor.customTheme"/>
+ </h3>
+ <s:text name="themeEditor.customThemeDescription"/>
+ </div>
</div>
</div>
</div>
- <%-- ********************************************************************************************************* --%>
+ <%-- ================================================= --%>
- <div id="sharedNoChange" style="display:none;">
-
- <%-- you have shared theme X --%>
- <p class="lead">
- <s:text name="themeEditor.yourCurrentTheme"/>
- <b><s:property value="actionWeblog.theme.name"/></b>
- <s:if test="%{sharedThemeCustomStylesheet}">
- <s:text name="themeEditor.yourCustomStylesheet"/>
- </s:if>
- <s:else>
- <s:text name="themeEditor.yourThemeStyleSheet"/>
- </s:else>
- </p>
+ <div id="sharedNoChange" style="display:none;">
- </div>
+ <%-- you have shared theme X --%>
+ <p class="lead">
+ <s:text name="themeEditor.yourCurrentTheme"/>
+ <b><s:property value="actionWeblog.theme.name"/></b>
+ <s:if test="%{sharedThemeCustomStylesheet}">
+ <s:text name="themeEditor.yourCustomStylesheet"/>
+ </s:if>
+ <s:else>
+ <s:text name="themeEditor.yourThemeStyleSheet"/>
+ </s:else>
+ </p>
- <div id="themeChooser" style="display:none;">
+ </div>
- <%-- theme selector with preview image --%>
- <p><s:text name="themeEditor.selectTheme"/></p>
- <p>
- <s:select id="themeSelector" name="selectedThemeId" list="themes"
- listKey="id" listValue="name" size="1"
- onchange="proposeSharedThemeChange(this[selectedIndex].value)"/>
- </p>
- <p id="themeDescription"></p>
- <p><img id="themeThumbnail" src=""/></p>
+ <%-- ================================================= --%>
- </div>
+ <div id="themeChooser" style="display:none;">
- <div id="sharedChangeToShared" style="display:none;">
+ <%-- theme selector with preview image --%>
+ <p class="lead"><s:text name="themeEditor.selectTheme"/></p>
+ <p>
+ <s:select id="themeSelector" name="selectedThemeId" list="themes" style="width:20em"
+ listKey="id" listValue="name" size="1"
+ onchange="proposeSharedThemeChange(this[selectedIndex].value)"/>
+ </p>
+ <p><s:text name="themeEditor.thisTheme"/> <p id="themeDescription"></p>
+ <p><img id="themeThumbnail" src=""/></p>
- <div class="alert-warning" style="margin-top:3em; margin-bottom:2em; padding: 1em">
- <s:text name="themeEditor.proposedSharedThemeChange"/>
- </div>
+ </div>
- <%-- Preview and Update buttons --%>
- <p> <s:text name="themeEditor.previewDescription"/> </p>
- <input type="button" name="themePreview" class="btn"
- value="<s:text name='themeEditor.preview' />"
- onclick="fullPreview($('#themeSelector').get(0))"/>
+ <%-- ================================================= --%>
- <s:submit cssClass="btn btn-default" value="%{getText('themeEditor.save')}"/>
+ <div id="sharedChangeToShared" style="display:none;">
+ <div class="alert-warning" style="margin-top:3em; margin-bottom:2em; padding: 1em">
+ <s:text name="themeEditor.proposedSharedThemeChange"/>
</div>
- <div id="sharedChangeToCustom" style="display:none;">
+ <%-- Preview and Update buttons --%>
+ <p> <s:text name="themeEditor.previewDescription"/> </p>
+ <input type="button" name="themePreview" class="btn"
+ value="<s:text name='themeEditor.preview' />"
+ onclick="fullPreview($('#themeSelector').get(0))"/>
- <div class="alert-warning" style="margin-top:3em; margin-bottom:2em; padding: 1em">
- <s:text name="themeEditor.proposedSharedChangeToCustom"/>
- </div>
+ <s:submit cssClass="btn btn-default" value="%{getText('themeEditor.save')}"/>
- <s:if test="firstCustomization">
- <p>
- <s:text name="themeEditor.importRequired"/>
- <s:hidden name="importTheme" value="true"/>
- </p>
- </s:if>
- <s:else>
- <p><s:text name="themeEditor.existingTemplatesWarning"/></p>
- <s:checkbox name="importTheme" label="%{getText('themeEditor.importAndOverwriteTemplates')}"/>
- </s:else>
+ <input type="button" class="btn" onclick="cancelChanges()" value="<s:text name='generic.cancel'/>" />
- <%-- Update button --%>
- <s:submit cssClass="btn btn-default" value="%{getText('themeEditor.save')}"/>
+ </div>
- </div>
+ <%-- ================================================= --%>
- <%-- ********************************************************************************************************* --%>
+ <div id="sharedChangeToCustom" style="display:none;">
- <div id="customNoChange" style="display:none;">
- <p class="lead"><s:text name="themeEditor.youAreUsingACustomTheme"/></p>
+ <div class="alert-warning" style="margin-top:3em; margin-bottom:2em; padding: 1em">
+ <s:text name="themeEditor.proposedSharedChangeToCustom"/>
</div>
- <div id="customChangeToShared" style="display:none;">
+ <s:if test="firstCustomization">
+ <p>
+ <s:text name="themeEditor.importRequired"/>
+ <s:hidden name="importTheme" value="true"/>
+ </p>
+ </s:if>
+ <s:else>
+ <p><s:text name="themeEditor.existingTemplatesWarning"/></p>
+ <s:checkbox name="importTheme" label="%{getText('themeEditor.importAndOverwriteTemplates')}"/>
+ </s:else>
+
+ <%-- Update button --%>
+ <s:submit cssClass="btn btn-default" value="%{getText('themeEditor.save')}"/>
- <div class="alert-warning" style="margin-top:3em; margin-bottom:2em; padding: 1em">
- <s:text name="themeEditor.proposedChangeToShared"/>
- </div>
+ <input type="button" class="btn" onclick="cancelChanges()" value="<s:text name='generic.cancel'/>" />
+
+ </div>
+
+ <%-- ================================================= --%>
+
+ <div id="customNoChange" style="display:none;">
+ <p class="lead"><s:text name="themeEditor.youAreUsingACustomTheme"/></p>
+ </div>
- <%-- Preview and Update buttons --%>
- <p> <s:text name="themeEditor.previewDescription"/> </p>
- <input type="button" name="themePreview" class="btn" style="margin-bottom:2em"
- value="<s:text name='themeEditor.preview' />"
- onclick="fullPreview($('#themeSelector').get(0))"/>
+ <%-- ================================================= --%>
- <s:submit cssClass="btn btn-default" value="%{getText('themeEditor.save')}"/>
+ <div id="customChangeToShared" style="display:none;">
+ <div class="alert-warning" style="margin-top:3em; margin-bottom:2em; padding: 1em">
+ <s:text name="themeEditor.proposedChangeToShared"/>
</div>
+ <%-- Preview and Update buttons --%>
+ <p> <s:text name="themeEditor.previewDescription"/> </p>
+ <input type="button" name="themePreview" class="btn"
+ value="<s:text name='themeEditor.preview' />"
+ onclick="fullPreview($('#themeSelector').get(0))"/>
+
+ <s:submit cssClass="btn btn-default" value="%{getText('themeEditor.save')}"/>
+
+ <input type="button" class="btn" onclick="cancelChanges()" value="<s:text name='generic.cancel'/>" />
+
+ </div>
+
</s:form>
<script type="text/javascript">
@@ -185,6 +199,7 @@
previewImage(themeSelector.options[index].value)
} else {
+ proposedThemeId = originalThemeId
proposedChangeType = "custom"
}
updateView(selected)
@@ -192,10 +207,39 @@
function proposeSharedThemeChange(themeId) {
proposedThemeId = themeId;
- if ( originalType !== "custom" && proposedThemeId !== originalThemeId ) {
- }
previewImage(themeId)
- updateView($('sharedRadio'))
+ updateView($('#sharedRadio'))
+ }
+
+ function cancelChanges() {
+
+ proposedThemeId = originalThemeId;
+ proposedChangeType = originalType;
+
+ hideAll();
+
+ if ( originalType === "custom" ) {
+ $("#sharedRadio").prop("checked", false);
+ $("#customRadio").prop("checked", true);
+ updateView($("#customRadio"));
+
+ } else {
+ $("#sharedRadio").prop("checked", true);
+ $("#customRadio").prop("checked", false);
+ updateView($("#sharedRadio"));
+ $("#themeSelector").val(originalThemeId).change();
+ previewImage(originalThemeId)
+ }
+
+ }
+
+ function hideAll() {
+ $('#themeChooser').hide();
+ $('#customNoChange').hide();
+ $('#customChangeToShared').hide();
+ $('#sharedChangeToShared').hide();
+ $('#sharedNoChange').hide();
+ $('#sharedChangeToCustom').hide();
}
function previewImage(themeId) {
@@ -216,21 +260,26 @@
function updateView(selected) {
+ changed =
+ (proposedThemeId !== "" && proposedThemeId !== originalThemeId)
+ || (proposedChangeType !== "" && proposedChangeType !== originalType )
+
if (selected[0].value === 'shared') {
- $('#sharedChooser').addClass("panel-success");
- $('#customChooser').removeClass("panel-success");
+ $('#sharedChooser').css("background", "#bfb")
+ $('#customChooser').css("background", "white")
$('#themeChooser').show();
$('#customNoChange').hide();
$('#customChangeToShared').hide();
- if ( proposedThemeId === "") {
+ if ( !changed ) {
+ $('#sharedNoChange').show();
$('#sharedChangeToShared').hide();
$('#sharedChangeToCustom').hide();
- } else if ( proposedThemeId != originalThemeId ) {
+ } else {
if ( originalType === "shared" ) {
$('#sharedChangeToShared').show();
@@ -244,19 +293,22 @@
} else {
- $('#customChooser').addClass("panel-success");
- $('#sharedChooser').removeClass("panel-success");
+ $('#sharedChooser').css("background", "white")
+ $('#customChooser').css("background", "#bfb")
$('#themeChooser').hide();
$('#sharedNoChange').hide();
+ $('#sharedChangeToShared').hide();
+ $('#sharedChangeToCustom').hide();
+
$('#customChangeToShared').hide();
- if ( proposedChangeType !== "" || proposedChangeType !== originalType ) {
+ if ( !changed ) {
+ $('#customNoChange').show();
+ } else {
$('#sharedChangeToCustom').show();
$('#customNoChange').hide();
- } else {
- $('#customNoChange').show();
}
}
http://git-wip-us.apache.org/repos/asf/roller/blob/840f46c6/app/src/main/webapp/WEB-INF/jsps/tiles/tiles-simple-tabbedpage.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/tiles/tiles-simple-tabbedpage.jsp b/app/src/main/webapp/WEB-INF/jsps/tiles/tiles-simple-tabbedpage.jsp
new file mode 100644
index 0000000..a2bff81
--- /dev/null
+++ b/app/src/main/webapp/WEB-INF/jsps/tiles/tiles-simple-tabbedpage.jsp
@@ -0,0 +1,52 @@
+<%--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. The ASF licenses this file to You
+ under the Apache License, Version 2.0 (the "License"); you may not
+ use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. For additional information regarding
+ copyright in this work, please see the NOTICE file in the top level
+ directory of this distribution.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <link rel="icon" href="<%= request.getContextPath() %>/favicon.ico" type="image/x-icon">
+ <title><s:property value="getProp('site.shortName')"/>: <s:property value="pageTitle"/></title>
+ <tiles:insertAttribute name="head"/>
+ <style> <tiles:insertAttribute name="styles" /> </style>
+</head>
+<body>
+
+<tiles:insertAttribute name="bannerStatus"/>
+
+<div class="row">
+ <div class="col-md-12 roller-column-left">
+ <div class="panel panel-default">
+ <div class="panel-body">
+ <tiles:insertAttribute name="messages"/>
+ <h2 class="roller-page-title"><s:property value="pageTitle"/></h2>
+ <tiles:insertAttribute name="content"/>
+ </div>
+ </div>
+ </div>
+</div>
+
+<footer class="footer">
+ <div class="container">
+ <tiles:insertAttribute name="footer"/>
+ </div>
+</footer>
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/roller/blob/840f46c6/app/src/main/webapp/WEB-INF/tiles.xml
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/tiles.xml b/app/src/main/webapp/WEB-INF/tiles.xml
index 5804b0f..eef1052 100644
--- a/app/src/main/webapp/WEB-INF/tiles.xml
+++ b/app/src/main/webapp/WEB-INF/tiles.xml
@@ -43,7 +43,18 @@
<put-attribute name="sidebar" value="/WEB-INF/jsps/tiles/empty.jsp" />
<put-attribute name="footer" value="/WEB-INF/jsps/tiles/footer.jsp" />
</definition>
-
+
+ <definition name=".tiles-simple-tabbedpage" template="/WEB-INF/jsps/tiles/tiles-simple-tabbedpage.jsp">
+ <put-attribute name="bannerStatus" value="/WEB-INF/jsps/tiles/bannerStatus.jsp" />
+ <put-attribute name="userStatus" value="/WEB-INF/jsps/tiles/userStatus.jsp" />
+ <put-attribute name="head" value="/WEB-INF/jsps/tiles/head.jsp" />
+ <put-attribute name="styles" value="/WEB-INF/jsps/tiles/empty.jsp" />
+ <put-attribute name="menu" value="/WEB-INF/jsps/tiles/menu.jsp" />
+ <put-attribute name="messages" value="/WEB-INF/jsps/tiles/messages.jsp" />
+ <put-attribute name="content" value="${content}" />
+ <put-attribute name="footer" value="/WEB-INF/jsps/tiles/footer.jsp" />
+ </definition>
+
<definition name=".tiles-simplepage" template="/WEB-INF/jsps/tiles/tiles-simplepage.jsp">
<put-attribute name="banner" value="/WEB-INF/jsps/tiles/empty.jsp" />
<put-attribute name="bannerStatus" value="/WEB-INF/jsps/tiles/bannerStatus.jsp" />
@@ -347,7 +358,7 @@
<put-attribute name="styles" value="/WEB-INF/jsps/tiles/empty.jsp" />
</definition>
- <definition name=".ThemeEdit" extends=".tiles-tabbedpage" >
+ <definition name=".ThemeEdit" extends=".tiles-simple-tabbedpage" >
<put-attribute name="head" value="/WEB-INF/jsps/tiles/head.jsp" />
<put-attribute name="content" value="/WEB-INF/jsps/editor/ThemeEdit.jsp" />
</definition>
http://git-wip-us.apache.org/repos/asf/roller/blob/840f46c6/app/src/main/webapp/roller-ui/styles/roller.css
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/roller-ui/styles/roller.css b/app/src/main/webapp/roller-ui/styles/roller.css
index 31206a8..319a59a 100644
--- a/app/src/main/webapp/roller-ui/styles/roller.css
+++ b/app/src/main/webapp/roller-ui/styles/roller.css
@@ -293,12 +293,19 @@ div.image-controls input {
display: inline;
}
-#sharedChooser, #customChooser {
- height: 7em;
-}
-.equal{
- display: -ms-flexbox;
- display: -webkit-flex;
+
+/* theme edit */
+
+.row-display-flex {
+ display: flex;
+}
+.row-display-flex > [class*='col-'] {
display: flex;
+ flex-direction: column;
}
+
+#sharedChooser, #customChooser {
+ height: 10em;
+}
+