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 <[email protected]>
Authored: Sun Aug 19 11:17:46 2018 -0400
Committer: Dave Johnson <[email protected]>
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))" />&nbsp;
-                    <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))" />&nbsp;
-                    <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))"/>&nbsp;
+                    <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))"/>&nbsp;
+                    <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 */

Reply via email to