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 15:17:59 UTC
[11/11] roller git commit: Switch to WebJars for Bootstrap,
JQuery and JQuery UI, llso remove unecessary usage of Angular.
Switch to WebJars for Bootstrap, JQuery and JQuery UI, llso remove unecessary usage of Angular.
Project: http://git-wip-us.apache.org/repos/asf/roller/repo
Commit: http://git-wip-us.apache.org/repos/asf/roller/commit/7cd8d6f6
Tree: http://git-wip-us.apache.org/repos/asf/roller/tree/7cd8d6f6
Diff: http://git-wip-us.apache.org/repos/asf/roller/diff/7cd8d6f6
Branch: refs/heads/bootstrap-ui
Commit: 7cd8d6f6e4b86789b895d4cdb4c542388faab7fc
Parents: bb92ba2
Author: Dave Johnson <sn...@gmail.com>
Authored: Sun Aug 19 11:17:46 2018 -0400
Committer: Dave Johnson <sn...@gmail.com>
Committed: Sun Aug 19 11:17:46 2018 -0400
----------------------------------------------------------------------
app/pom.xml | 26 +-
.../webapp/WEB-INF/jsps/editor/Comments.jsp | 1 -
.../WEB-INF/jsps/editor/CommentsSidebar.jsp | 4 -
.../WEB-INF/jsps/editor/EntriesSidebar.jsp | 4 -
.../webapp/WEB-INF/jsps/editor/EntryEdit.jsp | 5 -
.../WEB-INF/jsps/editor/MediaFileAddSuccess.jsp | 1 -
.../WEB-INF/jsps/editor/MediaFileEdit.jsp | 2 -
.../jsps/editor/MediaFileImageChooser.jsp | 2 -
.../WEB-INF/jsps/editor/MediaFileView.jsp | 5 -
.../WEB-INF/jsps/editor/StylesheetEdit.jsp | 4 -
.../webapp/WEB-INF/jsps/editor/TemplateEdit.jsp | 4 -
.../webapp/WEB-INF/jsps/editor/ThemeEdit.jsp | 322 +-
.../WEB-INF/jsps/editor/WeblogRemoveConfirm.jsp | 2 +
.../webapp/WEB-INF/jsps/taglibs-struts2.jsp | 3 +
.../webapp/WEB-INF/jsps/tiles/head-ajax.jsp | 27 -
app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp | 21 +-
.../main/webapp/roller-ui/JQueryUI-README.txt | 26 -
.../css/bootstrap-theme.css | 587 --
.../css/bootstrap-theme.css.map | 1 -
.../css/bootstrap-theme.min.css | 6 -
.../css/bootstrap-theme.min.css.map | 1 -
.../bootstrap-3.3.6-dist/css/bootstrap.css | 6760 ------------------
.../bootstrap-3.3.6-dist/css/bootstrap.css.map | 1 -
.../bootstrap-3.3.6-dist/css/bootstrap.min.css | 6 -
.../css/bootstrap.min.css.map | 1 -
.../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes
.../fonts/glyphicons-halflings-regular.svg | 288 -
.../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes
.../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes
.../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes
.../bootstrap-3.3.6-dist/js/bootstrap.js | 2363 ------
.../bootstrap-3.3.6-dist/js/bootstrap.min.js | 7 -
.../roller-ui/bootstrap-3.3.6-dist/js/npm.js | 13 -
.../images/animated-overlay.gif | Bin 1738 -> 0 bytes
.../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 212 -> 0 bytes
.../images/ui-bg_flat_55_fbec88_40x100.png | Bin 206 -> 0 bytes
.../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 336 -> 0 bytes
.../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 341 -> 0 bytes
.../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 332 -> 0 bytes
.../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 5824 -> 0 bytes
.../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 333 -> 0 bytes
.../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 292 -> 0 bytes
.../images/ui-icons_217bc0_256x240.png | Bin 4549 -> 0 bytes
.../images/ui-icons_2e83ff_256x240.png | Bin 4549 -> 0 bytes
.../images/ui-icons_469bdd_256x240.png | Bin 4549 -> 0 bytes
.../images/ui-icons_6da8d5_256x240.png | Bin 4549 -> 0 bytes
.../images/ui-icons_cd0a0a_256x240.png | Bin 4549 -> 0 bytes
.../images/ui-icons_d8e7f3_256x240.png | Bin 4549 -> 0 bytes
.../images/ui-icons_f9bd01_256x240.png | Bin 4549 -> 0 bytes
.../jquery-ui-1.11.0/jquery-ui.min.css | 7 -
.../roller-ui/jquery-ui-1.11.0/jquery-ui.min.js | 10 -
.../roller-ui/yui3/cssbase/cssbase-min.css | 8 -
.../webapp/roller-ui/yui3/cssbase/cssbase.css | 84 -
.../roller-ui/yui3/cssfonts/cssfonts-min.css | 8 -
.../webapp/roller-ui/yui3/cssfonts/cssfonts.css | 49 -
.../roller-ui/yui3/cssreset/cssreset-min.css | 8 -
.../webapp/roller-ui/yui3/cssreset/cssreset.css | 123 -
57 files changed, 237 insertions(+), 10553 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/pom.xml
----------------------------------------------------------------------
diff --git a/app/pom.xml b/app/pom.xml
index b35fe2f..88e0a47 100644
--- a/app/pom.xml
+++ b/app/pom.xml
@@ -33,7 +33,6 @@ limitations under the License.
<packaging>war</packaging>
<properties>
- <angular.version>1.2.29</angular.version>
<ant.version>1.10.1</ant.version>
<commons-validator.version>1.6</commons-validator.version>
<commons-beanutils.version>1.9.3</commons-beanutils.version>
@@ -185,6 +184,24 @@ limitations under the License.
</dependency>
<dependency>
+ <groupId>org.webjars</groupId>
+ <artifactId>bootstrap</artifactId>
+ <version>3.3.7</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.webjars</groupId>
+ <artifactId>jquery</artifactId>
+ <version>3.3.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.webjars</groupId>
+ <artifactId>jquery-ui</artifactId>
+ <version>1.12.1</version>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<scope>compile</scope>
@@ -399,19 +416,12 @@ limitations under the License.
</dependency>
<dependency>
- <groupId>org.webjars.npm</groupId>
- <artifactId>angular</artifactId>
- <version>${angular.version}</version>
- </dependency>
-
- <dependency>
<groupId>net.oauth.core</groupId>
<artifactId>oauth-provider</artifactId>
<scope>compile</scope>
<version>${oauth-core.version}</version>
</dependency>
-
<!-- Test deps -->
<dependency>
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp
index 03dedcf..04b5e7f 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/Comments.jsp
@@ -17,7 +17,6 @@
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
-<script src="<s:url value="/roller-ui/scripts/jquery-2.1.1.min.js" />"></script>
<%-- are we on a blog's comment management page or the global admin's comment management page? --%>
<s:if test="actionName == 'comments'">
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/CommentsSidebar.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/CommentsSidebar.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/CommentsSidebar.jsp
index ff6603c..af1b98d 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/CommentsSidebar.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/CommentsSidebar.jsp
@@ -17,10 +17,6 @@
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<link rel="stylesheet" media="all" href='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.css"/>'/>
-<script src="<s:url value="/roller-ui/scripts/jquery-2.1.1.min.js" />"></script>
-<script src='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.js"/>'></script>
-
<s:if test="actionName == 'comments'">
<s:set var="mainAction">comments</s:set>
</s:if>
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/EntriesSidebar.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/EntriesSidebar.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/EntriesSidebar.jsp
index f330a8c..9b52817 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/EntriesSidebar.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/EntriesSidebar.jsp
@@ -17,10 +17,6 @@
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<link rel="stylesheet" media="all" href='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.css"/>'/>
-<script src='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.js"/>'></script>
-
-
<h3><s:text name="weblogEntryQuery.sidebarTitle"/></h3>
<hr size="1" noshade="noshade"/>
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp
index 92c3717..7f821c0 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/EntryEdit.jsp
@@ -17,11 +17,6 @@
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<link rel="stylesheet" media="all" href='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.css"/>'/>
-
-<script src="<s:url value="/roller-ui/scripts/jquery-2.1.1.min.js" />"></script>
-<script src='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.js"/>'></script>
-
<%-- Prevent annoying scrolling. taken from http://stackoverflow.com/a/10548809/3591946 --%>
<script type="text/javascript">
$().ready(function () {
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileAddSuccess.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileAddSuccess.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileAddSuccess.jsp
index 1214149..ac72efe 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileAddSuccess.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileAddSuccess.jsp
@@ -16,7 +16,6 @@
directory of this distribution.
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<script src="<s:url value="/roller-ui/scripts/jquery-2.1.1.min.js" />"></script>
<style>
table.mediaFileTable {
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileEdit.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileEdit.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileEdit.jsp
index 670eaa6..665a095 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileEdit.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileEdit.jsp
@@ -18,8 +18,6 @@
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
<%@ page import="org.apache.roller.weblogger.config.WebloggerConfig" %>
-<script src="<s:url value="/roller-ui/scripts/jquery-2.1.1.min.js" />"></script>
-
<s:if test="bean.isImage">
<div class="mediaFileThumbnail">
<a href='<s:property value="bean.permalink" />' target="_blank">
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileImageChooser.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileImageChooser.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileImageChooser.jsp
index af0bbd6..58e4be2 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileImageChooser.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileImageChooser.jsp
@@ -17,8 +17,6 @@
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<script src="<s:url value="/roller-ui/scripts/jquery-2.1.1.min.js" />"></script>
-
<style>
.mediaObject {
width:120px;
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp
index 718ce4c..491a18d 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/MediaFileView.jsp
@@ -16,11 +16,6 @@
directory of this distribution.
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<link rel="stylesheet" media="all" href='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.css"/>' />
-
-<script src="<s:url value="/roller-ui/scripts/jquery-2.1.1.min.js" />"></script>
-<script src='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.js"/>'></script>
-
<script>
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
index cd771f6..7196d51 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/StylesheetEdit.jsp
@@ -16,7 +16,6 @@
directory of this distribution.
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<link rel="stylesheet" media="all" href='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.css"/>' />
<p class="subtitle"><s:text name="stylesheetEdit.subtitle" /></p>
@@ -89,9 +88,6 @@
</s:form>
- <script src="<s:url value='/roller-ui/scripts/jquery-2.1.1.min.js'></s:url>"></script>
- <script src="<s:url value='/roller-ui/jquery-ui-1.11.0/jquery-ui.min.js'></s:url>"></script>
-
<script>
function revertStylesheet() {
if (window.confirm('<s:text name="stylesheetEdit.confirmRevert"/>')) {
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp
index a07495a..6bbb505 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/TemplateEdit.jsp
@@ -16,7 +16,6 @@
directory of this distribution.
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<link rel="stylesheet" media="all" href='<s:url value="/roller-ui/jquery-ui-1.11.0/jquery-ui.min.css"/>' />
<p class="subtitle">
<s:text name="pageForm.subtitle" >
@@ -264,9 +263,6 @@ if (getCookie('control_advancedControl') != null) {
}
</script>
- <script src="<s:url value='/roller-ui/scripts/jquery-2.1.1.min.js'></s:url>"></script>
- <script src="<s:url value='/roller-ui/jquery-ui-1.11.0/jquery-ui.min.js'></s:url>"></script>
-
<script>
$(function() {
$( "#template-code-tabs" ).tabs();
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/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 4fde4f7..38857fa 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/ThemeEdit.jsp
@@ -16,146 +16,232 @@
directory of this distribution.
--%>
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<script src="<s:url value='/roller-ui/scripts/jquery-2.1.1.min.js' />"></script>
-<script src="<s:url value='/webjars/angular/1.2.29/angular.min.js' />"></script>
-
-<script>
-function fullPreview(selector) {
- selected = selector.selectedIndex;
- window.open('<s:url value="/roller-ui/authoring/preview/%{actionWeblog.handle}"/>?theme=' + selector.options[selected].value);
-}
-function updateThemeChooser(selected) {
- if (selected[0].value == 'shared') {
- $('#sharedChooser').addClass("selectedChooser");
- $('#customChooser').removeClass("selectedChooser");
- $('#sharedOptioner').show();
- $('#customOptioner').hide();
- } else {
- $('#customChooser').addClass("selectedChooser");
- $('#sharedChooser').removeClass("selectedChooser");
- $('#customOptioner').show();
- $('#sharedOptioner').hide();
- }
-}
-</script>
<p class="subtitle">
- <s:text name="themeEditor.subtitle" >
- <s:param value="actionWeblog.handle" />
- </s:text>
+ <s:text name="themeEditor.subtitle">
+ <s:param value="actionWeblog.handle"/>
+ </s:text>
</p>
-<s:form action="themeEdit!save">
- <s:hidden name="salt" />
- <s:hidden name="weblog" />
-
- <table width="100%" cellpadding="0" cellspacing="0">
- <tr>
- <td width="50%" valign="top">
- <div id="sharedChooser" class="chooser">
- <h2><input id="sharedRadio" type="radio" name="themeType" value="shared"
- <s:if test="!customTheme">checked</s:if>
- onclick="updateThemeChooser($(this))" />
- <s:text name="themeEditor.sharedTheme" /></h2>
- <s:text name="themeEditor.sharedThemeDescription" />
- </div>
- </td>
- <td width="50%" valign="top">
- <div id="customChooser" class="chooser">
- <h2><input id="customRadio" type="radio" name="themeType" value="custom"
- <s:if test="customTheme">checked</s:if>
- onclick="updateThemeChooser($(this))" />
- <s:text name="themeEditor.customTheme" /></h2>
- <s:text name="themeEditor.customThemeDescription" />
- </div>
- </td>
- </tr>
- </table>
-
- <div id="sharedOptioner" class="optioner" style="display:none;">
- <p>
- <s:if test="!customTheme">
- <s:text name="themeEditor.yourCurrentTheme" />:
+<s:form action="themeEdit!save" theme="bootstrap" cssClass="form-vertical">
+ <s:hidden name="salt"/>
+ <s:hidden name="weblog"/>
+
+ <%-- 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>
+ </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>
+ </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>
- <%-- The type of stylesheet we are using --%>
<s:if test="%{sharedThemeCustomStylesheet}">
- <s:text name="themeEditor.yourCustomStylesheet" />
+ <s:text name="themeEditor.yourCustomStylesheet"/>
</s:if>
<s:else>
- <s:text name="themeEditor.yourThemeStyleSheet" />
+ <s:text name="themeEditor.yourThemeStyleSheet"/>
</s:else>
- </s:if>
- <s:else>
- <s:text name="themeEditor.selectTheme" />:
- </s:else>
- </p>
- </div>
+ </p>
- <div id="customOptioner" class="optioner" style="display:none;">
- <%-- if already custom, an update must mean an import. --%>
- <s:if test="customTheme">
+ <%-- theme selector with preview image --%>
+ <p><s:text name="themeEditor.selectTheme"/></p>
<p>
- <span class="warning"><s:text name="themeEditor.importWarning" /></span>
- <s:hidden name="importTheme" value="true" />
+ <s:select id="themeSelector" name="selectedThemeId" list="themes"
+ listKey="id" listValue="name" size="1"
+ onchange="proposeSharedThemeChange(this[selectedIndex].value)"/>
</p>
- </s:if>
- <%-- shared, may be required to do an import if no custom templates present --%>
- <s:else>
+ <p id="themeDescription"></p>
+ <p><img id="themeThumbnail" src=""/></p>
+
+ </div>
+
+ <div id="sharedChangeProposed" style="display:none;">
+
+ <div id="sharedChangeToShared" style="display:none;">
+
+ <%-- Preview and Update buttons --%>
+ <p> <s:text name="themeEditor.previewDescription"/> </p>
+ <input type="button" name="themePreview" class="btn" style="margin-bottom:1em"
+ value="<s:text name='themeEditor.preview' />"
+ onclick="fullPreview($('#themeSelector').get(0))"/>
+
+ <s:submit cssClass="btn btn-default" value="%{getText('themeEditor.save')}"/>
+
+ </div>
+
+ <div id="sharedChangeToCustom" style="display:none;">
+
+ <%-- Update button --%>
+ <s:submit cssClass="btn btn-default" value="%{getText('themeEditor.save')}"/>
+
+ </div>
+ </div>
+
+ <%-- ********************************************************************************************************* --%>
+
+ <div id="customNoChange" style="display:none;">
+
+ <p class="lead"><s:text name="themeEditor.youAreUsingACustomTheme"/></p>
+
+ </div>
+
+ <div id="customChangeProposed" style="display:none;">
+
+ <p class="lead"><s:text name="themeEditor.youAreUsingACustomTheme"/></p>
+
+ <div class="alert-warning"><s:text name="themeEditor.proposedChangeToShared"/></div>
+
+ <%-- Preview and Update buttons --%>
+ <p> <s:text name="themeEditor.previewDescription"/> </p>
+ <input type="button" name="themePreview" class="btn" style="margin-bottom:1em"
+ value="<s:text name='themeEditor.preview' />"
+ onclick="fullPreview($('#themeSelector').get(0))"/>
+
<s:if test="firstCustomization">
<p>
- <s:text name="themeEditor.importRequired" />
- <s:hidden name="importTheme" value="true" />
+ <s:text name="themeEditor.importRequired"/>
+ <s:hidden name="importTheme" value="true"/>
</p>
</s:if>
<s:else>
- <%-- User has option not just to switch from shared to custom but also override present custom templates --%>
- <s:checkbox name="importTheme"/> <s:text name="themeEditor.importAndOverwriteTemplates" />
- <tags:help key="themeEditor.importAndOverwriteTemplates.tooltip"/>
+ <p><s:text name="themeEditor.existingTemplatesWarning"/></p>
+ <s:checkbox name="importTheme" label="%{getText('themeEditor.importAndOverwriteTemplates')}"/>
</s:else>
+
+ <s:submit cssClass="btn btn-default" value="%{getText('themeEditor.save')}"/>
+
+ </div>
+
+</s:form>
+
+<script type="text/javascript">
+
+ var proposedChangeType = ""
+ var proposedThemeId = ""
+ var originalThemeId = "<s:property value="themeId"/>"
+ var originalType = ""
+
+ $.when( $.ready ).then(function() {
+
+ <s:if test="customTheme">
+ originalType = "custom"
+ updateThemeTypeChooser($('#customRadio'));
+ previewImage('<s:property value="themes[0].id"/>');
+ </s:if>
+
+ <s:else>
+ originalType = "shared"
+ updateThemeTypeChooser($('#sharedRadio'));
+ previewImage('<s:property value="themeId"/>');
</s:else>
- </div>
+ });
- <div id="themeOptioner" class="optioner" ng-app="themeSelectModule" ng-controller="themeController">
- <p>
- <select id="themeSelector" name="selectedThemeId" size="1"
- ng-model="selectedTheme" ng-options="theme as theme.name for theme in themes track by theme.id"></select>
- </p>
-
- <p>{{ selectedTheme.description }}</p>
- <p>
- <img ng-src="<s:property value='siteURL'/>{{ selectedTheme.previewPath }}"/>
- </p>
- <p>
- <s:text name="themeEditor.previewDescription" />
- </p>
- </div>
+ function proposeThemeTypeChange(selected) {
+ if (selected[0].value === 'shared') {
+ proposedChangeType = "shared"
+ } else {
+ proposedChangeType = "custom"
+ }
+ updateThemeTypeChooser(selected)
+ }
- <div class="control">
- <span style="padding-left:7px">
- <input type="button" name="themePreview"
- value="<s:text name='themeEditor.preview' />"
- onclick="fullPreview($('#themeSelector').get(0))" />
+ function proposeSharedThemeChange(themeId) {
+ proposedThemeId = themeId;
+ if ( proposedThemeId !== originalThemeId ) {
+ $('#sharedChangeProposed').show();
+ $('#sharedChangeToShared').show();
+ $('#sharedChangeToCustom').hide();
+ }
+ previewImage(themeId)
- <s:submit value="%{getText('themeEditor.save')}" />
- </span>
- </div>
+ }
-</s:form>
+ function previewImage(themeId) {
+ $.ajax({
+ url: "<s:url value='themedata'/>",
+ data: {theme: themeId}, success: function (data) {
+ $('#themeDescription').html(data.description);
+ $('#themeThumbnail').attr('src', '<s:property value="siteURL" />' + data.previewPath);
+ }
+ });
+ }
+
+ function fullPreview(selector) {
+ selected = selector.selectedIndex;
+ window.open('<s:url value="/roller-ui/authoring/preview/%{actionWeblog.handle}"/>?theme='
+ + selector.options[selected].value);
+ }
+
+ function updateThemeTypeChooser(selected) {
+
+ if (selected[0].value === 'shared') {
+
+ $('#sharedChooser').addClass("panel-success");
+ $('#customChooser').removeClass("panel-success");
+
+ if ( proposedChangeType === "" || proposedChangeType !== originalType ) {
+ $('#sharedChangeProposed').show();
+ $('#customNoChange').hide();
+ $('#customChangeProposed').hide();
+
+ if ( originalType === "shared" ) {
+ $('#sharedChangeToShared').show();
+ $('#sharedChangeToCustom').hide();
+ } else {
+ $('#sharedChangeToCustom').show();
+ $('#sharedChangeToShared').hide();
+ }
+ }
+
+ } else {
+
+ $('#customChooser').addClass("panel-success");
+ $('#sharedChooser').removeClass("panel-success");
+
+ $('#sharedChangeProposed').hide();
+ $('#sharedNoChange').hide();
+
+ if ( proposedChangeType === "" || proposedChangeType === originalType ) {
+ $('#customNoChange').show();
+ $('#customChangeProposed').hide();
+ } else {
+ $('#customChangeProposed').show();
+ $('#customNoChange').hide();
+ }
+
+ }
+ }
-<%-- initializes the chooser/optioner/themeImport display at page load time --%>
-<script>
- angular.module('themeSelectModule', [])
- .controller('themeController', ['$scope', function($scope) {
- $.ajax({ url: "<s:url value='themedata'/>", async:false,
- success: function(data) { $scope.themes = data; }
- });
- <s:if test="customTheme">
- updateThemeChooser($('#customRadio'));
- $scope.selectedTheme = $scope.themes[0];
- </s:if>
- <s:else>
- updateThemeChooser($('#sharedRadio'));
- $scope.selectedTheme = $.grep($scope.themes, function(e){ return e.id == "<s:property value='themeId'/>"; })[0];
- </s:else>
- }]);
</script>
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/editor/WeblogRemoveConfirm.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/editor/WeblogRemoveConfirm.jsp b/app/src/main/webapp/WEB-INF/jsps/editor/WeblogRemoveConfirm.jsp
index 3dcea04..db4be40 100644
--- a/app/src/main/webapp/WEB-INF/jsps/editor/WeblogRemoveConfirm.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/editor/WeblogRemoveConfirm.jsp
@@ -34,6 +34,7 @@
<div class="row">
<div class="col-md-2">
+
<s:form action="weblogRemove!remove" theme="bootstrap" cssClass="form-horizontal">
<s:hidden name="salt" />
<s:hidden name="weblog" value="%{actionWeblog.handle}" />
@@ -42,6 +43,7 @@
</div>
<div class="col-md-2">
+
<s:form action="weblogConfig" method="post" theme="bootstrap" cssClass="form-horizontal">
<s:hidden name="salt" />
<s:hidden name="weblog" value="%{actionWeblog.handle}" />
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/taglibs-struts2.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/taglibs-struts2.jsp b/app/src/main/webapp/WEB-INF/jsps/taglibs-struts2.jsp
index e97d1e4..79ba287 100644
--- a/app/src/main/webapp/WEB-INF/jsps/taglibs-struts2.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/taglibs-struts2.jsp
@@ -29,3 +29,6 @@
<%@ taglib uri="/struts-bootstrap-tags" prefix="sboo" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="tags" %>
+
+
+
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/tiles/head-ajax.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/tiles/head-ajax.jsp b/app/src/main/webapp/WEB-INF/jsps/tiles/head-ajax.jsp
deleted file mode 100644
index 2a978ba..0000000
--- a/app/src/main/webapp/WEB-INF/jsps/tiles/head-ajax.jsp
+++ /dev/null
@@ -1,27 +0,0 @@
-<%--
-This default stuff goes in the HTML head element of each page
-You can override it with your own file via WEB-INF/tiles-def.xml
---%>
-
-<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-
-<%-- jquery --%>
-<script src="<s:url value="/roller-ui/scripts/jquery-2.1.1.min.js" />"></script>
-
-<%-- bootstrap --%>
-<link rel="stylesheet" media="all"
- href='<s:url value="/roller-ui/bootstrap-3.3.6-dist/css/bootstrap.min.css"/>' />
-<link rel="stylesheet" media="all"
- href='<s:url value="/roller-ui/bootstrap-3.3.6-dist/css/bootstrap-theme.min.css"/>' />
-<script src="<s:url value="/roller-ui/bootstrap-3.3.6-dist/js/bootstrap.min.js"/>"></script>
-
-<%-- the links generated by the Struts-Bootstrap plugin are 404s
-<sb:head includeScripts="false" includeScriptsValidation="false"/>
---%>
-
-<%-- roller Javascropt and styles --%>
-<link rel="stylesheet" media="all" href='<s:url value="/roller-ui/styles/roller.css"/>' />
-<script src="<s:url value="/theme/scripts/roller.js"/>"></script>
-
-<%-- struts2 head disabled until we need it --%>
-<%-- <s:head theme="ajax"/> --%>
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp b/app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp
index 7b7291c..7b06c3d 100644
--- a/app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp
@@ -5,20 +5,19 @@ You can override it with your own file via WEB-INF/tiles-def.xml
<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
-<%-- jquery --%>
-<script src="<s:url value="/roller-ui/scripts/jquery-2.1.1.min.js" />"></script>
-
-<%-- bootstrap --%>
-<link rel="stylesheet" media="all"
- href='<s:url value="/roller-ui/bootstrap-3.3.6-dist/css/bootstrap.min.css"/>' />
-<link rel="stylesheet" media="all"
- href='<s:url value="/roller-ui/bootstrap-3.3.6-dist/css/bootstrap-theme.min.css"/>' />
-<script src="<s:url value="/roller-ui/bootstrap-3.3.6-dist/js/bootstrap.min.js"/>"></script>
-
-<%-- the links generated by the Struts-Bootstrap plugin are 404s
+<%-- the links generated by the Struts-Bootstrap plugin are 404s
<sb:head includeScripts="false" includeScriptsValidation="false"></sb:head>
--%>
+<script src="<s:url value='/webjars/jquery/3.3.1/jquery.min.js' />"></script>
+
+<link href="<s:url value='/webjars/jquery-ui/1.12.1/jquery-ui.theme.css' />" rel="stylesheet" />
+<script src="<s:url value='/webjars/jquery-ui/1.12.1/jquery-ui.min.js' />"></script>
+
+<link href="<s:url value='/webjars/bootstrap/3.3.7/css/bootstrap.min.css' />" rel="stylesheet" />
+<link href="<s:url value='/webjars/bootstrap/3.3.7/css/bootstrap-theme.min.css' />" rel="stylesheet" />
+<script src="<s:url value='/webjars/bootstrap/3.3.7/js/bootstrap.min.js' />"></script>
+
<%-- roller Javascropt and styles --%>
<link rel="stylesheet" media="all" href='<s:url value="/roller-ui/styles/roller.css"/>' />
<script src="<s:url value="/theme/scripts/roller.js"/>"></script>
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/roller-ui/JQueryUI-README.txt
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/roller-ui/JQueryUI-README.txt b/app/src/main/webapp/roller-ui/JQueryUI-README.txt
deleted file mode 100644
index 96f1d79..0000000
--- a/app/src/main/webapp/roller-ui/JQueryUI-README.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-The JQuery UI folder (roller-ui/jquery-ui-1.11.0) was created by doing the following:
-
-1. Going to the JQuery UI download builder (http://jqueryui.com/download/) and choosing the latest stable version.
-2. Under Components, unselecting "toggle all" to make sure nothing selected.
-3. Choosing the components Roller uses: accordion, datepicker, dialog, autocomplete, and tabs.
- A full list can be obtained by opening up the current jquery-ui.min.js and reading the autogenerated comment header.
- Let the Download Builder select whatever additional prerequisites needed.
-4. Selecting theme "Redmond", or a different one if desired. (How each theme looks can be determined by going
- to: http://jqueryui.com/themeroller/ and selecting the "Gallery" tab.)
-5. For the subsequent download, extract into a new folder under roller-ui and delete all the non-"min" CSS
- and JS files within that folder. Also delete:
- a) the index.html and external/jquery/jquery.js files. (our JQuery is kept in the roller-ui/scripts folder.)
- b) the structure and theme CSS files (they are unused subsets of the jquery-ui.min.css)
-6. Update the Roller UI JSP's to point to the new JQuery UI folder and test all works.
-7. Delete the old JQuery folder after the Roller UI has been updated.
-8. Update this README as necessary if anything's changed.
-
-Following the above process when upgrading the JQuery UI version or changing the theme it uses will help to make sure all old files
-get deleted while no necessary files are accidentally removed.
-
-Notes:
-1. Recommended to keep the contents of the jquery-ui-1.11.0 folder within this folder, i.e., don't move the images or CSS' to other folders. This way,
-when we delete this folder as a part of upgrading the JQueryUI version we'll know that all the resources of this version have also been deleted.
-
-2. Recommended not to add non-JQuery resources into this folder; again, this way, when we delete this folder we won't have to worry about other
-resources still needed by Roller also getting deleted.
http://git-wip-us.apache.org/repos/asf/roller/blob/7cd8d6f6/app/src/main/webapp/roller-ui/bootstrap-3.3.6-dist/css/bootstrap-theme.css
----------------------------------------------------------------------
diff --git a/app/src/main/webapp/roller-ui/bootstrap-3.3.6-dist/css/bootstrap-theme.css b/app/src/main/webapp/roller-ui/bootstrap-3.3.6-dist/css/bootstrap-theme.css
deleted file mode 100644
index ebe57fb..0000000
--- a/app/src/main/webapp/roller-ui/bootstrap-3.3.6-dist/css/bootstrap-theme.css
+++ /dev/null
@@ -1,587 +0,0 @@
-/*!
- * Bootstrap v3.3.6 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-.btn-default,
-.btn-primary,
-.btn-success,
-.btn-info,
-.btn-warning,
-.btn-danger {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
-}
-.btn-default:active,
-.btn-primary:active,
-.btn-success:active,
-.btn-info:active,
-.btn-warning:active,
-.btn-danger:active,
-.btn-default.active,
-.btn-primary.active,
-.btn-success.active,
-.btn-info.active,
-.btn-warning.active,
-.btn-danger.active {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-}
-.btn-default.disabled,
-.btn-primary.disabled,
-.btn-success.disabled,
-.btn-info.disabled,
-.btn-warning.disabled,
-.btn-danger.disabled,
-.btn-default[disabled],
-.btn-primary[disabled],
-.btn-success[disabled],
-.btn-info[disabled],
-.btn-warning[disabled],
-.btn-danger[disabled],
-fieldset[disabled] .btn-default,
-fieldset[disabled] .btn-primary,
-fieldset[disabled] .btn-success,
-fieldset[disabled] .btn-info,
-fieldset[disabled] .btn-warning,
-fieldset[disabled] .btn-danger {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.btn-default .badge,
-.btn-primary .badge,
-.btn-success .badge,
-.btn-info .badge,
-.btn-warning .badge,
-.btn-danger .badge {
- text-shadow: none;
-}
-.btn:active,
-.btn.active {
- background-image: none;
-}
-.btn-default {
- text-shadow: 0 1px 0 #fff;
- background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
- background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
- background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #dbdbdb;
- border-color: #ccc;
-}
-.btn-default:hover,
-.btn-default:focus {
- background-color: #e0e0e0;
- background-position: 0 -15px;
-}
-.btn-default:active,
-.btn-default.active {
- background-color: #e0e0e0;
- border-color: #dbdbdb;
-}
-.btn-default.disabled,
-.btn-default[disabled],
-fieldset[disabled] .btn-default,
-.btn-default.disabled:hover,
-.btn-default[disabled]:hover,
-fieldset[disabled] .btn-default:hover,
-.btn-default.disabled:focus,
-.btn-default[disabled]:focus,
-fieldset[disabled] .btn-default:focus,
-.btn-default.disabled.focus,
-.btn-default[disabled].focus,
-fieldset[disabled] .btn-default.focus,
-.btn-default.disabled:active,
-.btn-default[disabled]:active,
-fieldset[disabled] .btn-default:active,
-.btn-default.disabled.active,
-.btn-default[disabled].active,
-fieldset[disabled] .btn-default.active {
- background-color: #e0e0e0;
- background-image: none;
-}
-.btn-primary {
- background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
- background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
- background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #245580;
-}
-.btn-primary:hover,
-.btn-primary:focus {
- background-color: #265a88;
- background-position: 0 -15px;
-}
-.btn-primary:active,
-.btn-primary.active {
- background-color: #265a88;
- border-color: #245580;
-}
-.btn-primary.disabled,
-.btn-primary[disabled],
-fieldset[disabled] .btn-primary,
-.btn-primary.disabled:hover,
-.btn-primary[disabled]:hover,
-fieldset[disabled] .btn-primary:hover,
-.btn-primary.disabled:focus,
-.btn-primary[disabled]:focus,
-fieldset[disabled] .btn-primary:focus,
-.btn-primary.disabled.focus,
-.btn-primary[disabled].focus,
-fieldset[disabled] .btn-primary.focus,
-.btn-primary.disabled:active,
-.btn-primary[disabled]:active,
-fieldset[disabled] .btn-primary:active,
-.btn-primary.disabled.active,
-.btn-primary[disabled].active,
-fieldset[disabled] .btn-primary.active {
- background-color: #265a88;
- background-image: none;
-}
-.btn-success {
- background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
- background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
- background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #3e8f3e;
-}
-.btn-success:hover,
-.btn-success:focus {
- background-color: #419641;
- background-position: 0 -15px;
-}
-.btn-success:active,
-.btn-success.active {
- background-color: #419641;
- border-color: #3e8f3e;
-}
-.btn-success.disabled,
-.btn-success[disabled],
-fieldset[disabled] .btn-success,
-.btn-success.disabled:hover,
-.btn-success[disabled]:hover,
-fieldset[disabled] .btn-success:hover,
-.btn-success.disabled:focus,
-.btn-success[disabled]:focus,
-fieldset[disabled] .btn-success:focus,
-.btn-success.disabled.focus,
-.btn-success[disabled].focus,
-fieldset[disabled] .btn-success.focus,
-.btn-success.disabled:active,
-.btn-success[disabled]:active,
-fieldset[disabled] .btn-success:active,
-.btn-success.disabled.active,
-.btn-success[disabled].active,
-fieldset[disabled] .btn-success.active {
- background-color: #419641;
- background-image: none;
-}
-.btn-info {
- background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
- background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
- background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #28a4c9;
-}
-.btn-info:hover,
-.btn-info:focus {
- background-color: #2aabd2;
- background-position: 0 -15px;
-}
-.btn-info:active,
-.btn-info.active {
- background-color: #2aabd2;
- border-color: #28a4c9;
-}
-.btn-info.disabled,
-.btn-info[disabled],
-fieldset[disabled] .btn-info,
-.btn-info.disabled:hover,
-.btn-info[disabled]:hover,
-fieldset[disabled] .btn-info:hover,
-.btn-info.disabled:focus,
-.btn-info[disabled]:focus,
-fieldset[disabled] .btn-info:focus,
-.btn-info.disabled.focus,
-.btn-info[disabled].focus,
-fieldset[disabled] .btn-info.focus,
-.btn-info.disabled:active,
-.btn-info[disabled]:active,
-fieldset[disabled] .btn-info:active,
-.btn-info.disabled.active,
-.btn-info[disabled].active,
-fieldset[disabled] .btn-info.active {
- background-color: #2aabd2;
- background-image: none;
-}
-.btn-warning {
- background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
- background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #e38d13;
-}
-.btn-warning:hover,
-.btn-warning:focus {
- background-color: #eb9316;
- background-position: 0 -15px;
-}
-.btn-warning:active,
-.btn-warning.active {
- background-color: #eb9316;
- border-color: #e38d13;
-}
-.btn-warning.disabled,
-.btn-warning[disabled],
-fieldset[disabled] .btn-warning,
-.btn-warning.disabled:hover,
-.btn-warning[disabled]:hover,
-fieldset[disabled] .btn-warning:hover,
-.btn-warning.disabled:focus,
-.btn-warning[disabled]:focus,
-fieldset[disabled] .btn-warning:focus,
-.btn-warning.disabled.focus,
-.btn-warning[disabled].focus,
-fieldset[disabled] .btn-warning.focus,
-.btn-warning.disabled:active,
-.btn-warning[disabled]:active,
-fieldset[disabled] .btn-warning:active,
-.btn-warning.disabled.active,
-.btn-warning[disabled].active,
-fieldset[disabled] .btn-warning.active {
- background-color: #eb9316;
- background-image: none;
-}
-.btn-danger {
- background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
- background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
- background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #b92c28;
-}
-.btn-danger:hover,
-.btn-danger:focus {
- background-color: #c12e2a;
- background-position: 0 -15px;
-}
-.btn-danger:active,
-.btn-danger.active {
- background-color: #c12e2a;
- border-color: #b92c28;
-}
-.btn-danger.disabled,
-.btn-danger[disabled],
-fieldset[disabled] .btn-danger,
-.btn-danger.disabled:hover,
-.btn-danger[disabled]:hover,
-fieldset[disabled] .btn-danger:hover,
-.btn-danger.disabled:focus,
-.btn-danger[disabled]:focus,
-fieldset[disabled] .btn-danger:focus,
-.btn-danger.disabled.focus,
-.btn-danger[disabled].focus,
-fieldset[disabled] .btn-danger.focus,
-.btn-danger.disabled:active,
-.btn-danger[disabled]:active,
-fieldset[disabled] .btn-danger:active,
-.btn-danger.disabled.active,
-.btn-danger[disabled].active,
-fieldset[disabled] .btn-danger.active {
- background-color: #c12e2a;
- background-image: none;
-}
-.thumbnail,
-.img-thumbnail {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
-}
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
- background-color: #e8e8e8;
- background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
- background-repeat: repeat-x;
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
- background-color: #2e6da4;
- background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
- background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
- background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
- background-repeat: repeat-x;
-}
-.navbar-default {
- background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
- background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
- background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
-}
-.navbar-default .navbar-nav > .open > a,
-.navbar-default .navbar-nav > .active > a {
- background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
- background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
- background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
- background-repeat: repeat-x;
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
-}
-.navbar-brand,
-.navbar-nav > li > a {
- text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
-}
-.navbar-inverse {
- background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
- background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
- background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-radius: 4px;
-}
-.navbar-inverse .navbar-nav > .open > a,
-.navbar-inverse .navbar-nav > .active > a {
- background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
- background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
- background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
- background-repeat: repeat-x;
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
-}
-.navbar-inverse .navbar-brand,
-.navbar-inverse .navbar-nav > li > a {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
-}
-.navbar-static-top,
-.navbar-fixed-top,
-.navbar-fixed-bottom {
- border-radius: 0;
-}
-@media (max-width: 767px) {
- .navbar .navbar-nav .open .dropdown-menu > .active > a,
- .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
- .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
- color: #fff;
- background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
- background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
- background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
- background-repeat: repeat-x;
- }
-}
-.alert {
- text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
-}
-.alert-success {
- background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
- background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
- background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
- background-repeat: repeat-x;
- border-color: #b2dba1;
-}
-.alert-info {
- background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
- background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
- background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
- background-repeat: repeat-x;
- border-color: #9acfea;
-}
-.alert-warning {
- background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
- background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
- background-repeat: repeat-x;
- border-color: #f5e79e;
-}
-.alert-danger {
- background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
- background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
- background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
- background-repeat: repeat-x;
- border-color: #dca7a7;
-}
-.progress {
- background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
- background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
- background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar {
- background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
- background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
- background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-success {
- background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
- background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
- background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-info {
- background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
- background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
- background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-warning {
- background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
- background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-danger {
- background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
- background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
- background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-striped {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.list-group {
- border-radius: 4px;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
-}
-.list-group-item.active,
-.list-group-item.active:hover,
-.list-group-item.active:focus {
- text-shadow: 0 -1px 0 #286090;
- background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
- background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
- background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
- background-repeat: repeat-x;
- border-color: #2b669a;
-}
-.list-group-item.active .badge,
-.list-group-item.active:hover .badge,
-.list-group-item.active:focus .badge {
- text-shadow: none;
-}
-.panel {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
-}
-.panel-default > .panel-heading {
- background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-primary > .panel-heading {
- background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
- background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
- background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-success > .panel-heading {
- background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
- background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
- background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-info > .panel-heading {
- background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
- background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
- background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-warning > .panel-heading {
- background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
- background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-danger > .panel-heading {
- background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
- background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
- background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
- background-repeat: repeat-x;
-}
-.well {
- background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
- background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
- background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
- background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
- background-repeat: repeat-x;
- border-color: #dcdcdc;
- -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
-}
-/*# sourceMappingURL=bootstrap-theme.css.map */