From f6f37985a5e5aa96fb79244f89ba1c998ce60ae0 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Wed, 20 Feb 2013 19:35:51 +0100 Subject: updated bootstrap, fixed tooltips --- module/api/ConfigApi.py | 6 +- module/web/static/css/bootstrap.css | 458 ++-- module/web/static/css/default/dashboard.less | 5 + module/web/static/css/default/style.less | 8 +- .../web/static/img/glyphicons-halflings-white.png | Bin module/web/static/img/glyphicons-halflings.png | Bin module/web/static/js/config.js | 2 +- module/web/static/js/libs/bootstrap-2.2.2.js | 2170 ------------------- module/web/static/js/libs/bootstrap-2.3.js | 2279 ++++++++++++++++++++ module/web/static/js/utils/animations.js | 11 +- module/web/static/js/views/headerView.js | 10 +- module/web/templates/default/base.html | 2 +- 12 files changed, 2640 insertions(+), 2311 deletions(-) mode change 100644 => 100755 module/web/static/img/glyphicons-halflings-white.png mode change 100644 => 100755 module/web/static/img/glyphicons-halflings.png delete mode 100755 module/web/static/js/libs/bootstrap-2.2.2.js create mode 100755 module/web/static/js/libs/bootstrap-2.3.js (limited to 'module') diff --git a/module/api/ConfigApi.py b/module/api/ConfigApi.py index 451e4f832..fcc0bdd14 100644 --- a/module/api/ConfigApi.py +++ b/module/api/ConfigApi.py @@ -53,7 +53,7 @@ class ConfigApi(ApiComponent): :rtype: list of PluginInfo """ - return [PluginInfo(section, config.name, config.description, False, False) + return [ConfigInfo(section, config.name, config.description, False, False) for section, config, values in self.core.config.iterCoreSections()] @UserContext @@ -67,7 +67,7 @@ class ConfigApi(ApiComponent): data = [] for name, config, values in self.core.config.iterSections(self.user): if not values: continue - item = PluginInfo(name, config.name, config.description, + item = ConfigInfo(name, config.name, config.description, self.core.pluginManager.isPluginType(name, "addons"), self.core.pluginManager.isUserPlugin(name), values.get("activated", False)) @@ -83,7 +83,7 @@ class ConfigApi(ApiComponent): :rtype: list of PluginInfo """ # TODO: filter user_context / addons when not allowed - return [PluginInfo(name, config.name, config.description, + return [ConfigInfo(name, config.name, config.description, self.core.pluginManager.isPluginType(name, "addons"), self.core.pluginManager.isUserPlugin(name)) for name, config, values in self.core.config.iterSections(self.user)] diff --git a/module/web/static/css/bootstrap.css b/module/web/static/css/bootstrap.css index 5ff5dff3d..70dfd726b 100755 --- a/module/web/static/css/bootstrap.css +++ b/module/web/static/css/bootstrap.css @@ -1,5 +1,5 @@ /*! - * Bootstrap v2.2.2 + * Bootstrap v2.3.0 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 @@ -215,7 +215,8 @@ a { color: #0088cc; text-decoration: none; } -a:hover { +a:hover, +a:focus { color: #005580; text-decoration: underline; } @@ -568,33 +569,47 @@ cite { .muted { color: #999999; } -a.muted:hover { +a.muted:hover, +a.muted:focus { color: #808080; } .text-warning { color: #c09853; } -a.text-warning:hover { +a.text-warning:hover, +a.text-warning:focus { color: #a47e3c; } .text-error { color: #b94a48; } -a.text-error:hover { +a.text-error:hover, +a.text-error:focus { color: #953b39; } .text-info { color: #3a87ad; } -a.text-info:hover { +a.text-info:hover, +a.text-info:focus { color: #2d6987; } .text-success { color: #468847; } -a.text-success:hover { +a.text-success:hover, +a.text-success:focus { color: #356635; } +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} h1, h2, h3, @@ -682,9 +697,13 @@ ol.inline { margin-left: 0; list-style: none; } -ul.inline > li, -ol.inline > li { +ul.inline > li, +ol.inline > li { display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; padding-left: 5px; padding-right: 5px; } @@ -747,9 +766,9 @@ blockquote { } blockquote p { margin-bottom: 0; - font-size: 16px; + font-size: 17.5px; font-weight: 300; - line-height: 25px; + line-height: 1.25; } blockquote small { display: block; @@ -867,7 +886,9 @@ pre code { display: none; } a.label:hover, -a.badge:hover { +a.label:focus, +a.badge:hover, +a.badge:focus { color: #ffffff; text-decoration: none; cursor: pointer; @@ -988,27 +1009,33 @@ table { border-top: 0; } .table-bordered thead:first-child tr:first-child > th:first-child, -.table-bordered tbody:first-child tr:first-child > td:first-child { +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { -webkit-border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; border-top-left-radius: 4px; } .table-bordered thead:first-child tr:first-child > th:last-child, -.table-bordered tbody:first-child tr:first-child > td:last-child { +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { -webkit-border-top-right-radius: 4px; -moz-border-radius-topright: 4px; border-top-right-radius: 4px; } .table-bordered thead:last-child tr:last-child > th:first-child, .table-bordered tbody:last-child tr:last-child > td:first-child, -.table-bordered tfoot:last-child tr:last-child > td:first-child { +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; border-bottom-left-radius: 4px; } .table-bordered thead:last-child tr:last-child > th:last-child, .table-bordered tbody:last-child tr:last-child > td:last-child, -.table-bordered tfoot:last-child tr:last-child > td:last-child { +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { -webkit-border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; border-bottom-right-radius: 4px; @@ -1043,8 +1070,8 @@ table { .table-striped tbody > tr:nth-child(odd) > th { background-color: #f9f9f9; } -.table-hover tbody tr:hover td, -.table-hover tbody tr:hover th { +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { background-color: #f5f5f5; } table td[class*="span"], @@ -1127,28 +1154,28 @@ table th[class*="span"], width: 924px; margin-left: 0; } -.table tbody tr.success td { +.table tbody tr.success > td { background-color: #dff0d8; } -.table tbody tr.error td { +.table tbody tr.error > td { background-color: #f2dede; } -.table tbody tr.warning td { +.table tbody tr.warning > td { background-color: #fcf8e3; } -.table tbody tr.info td { +.table tbody tr.info > td { background-color: #d9edf7; } -.table-hover tbody tr.success:hover td { +.table-hover tbody tr.success:hover > td { background-color: #d0e9c6; } -.table-hover tbody tr.error:hover td { +.table-hover tbody tr.error:hover > td { background-color: #ebcccc; } -.table-hover tbody tr.warning:hover td { +.table-hover tbody tr.warning:hover > td { background-color: #faf2cc; } -.table-hover tbody tr.info:hover td { +.table-hover tbody tr.info:hover > td { background-color: #c4e3f3; } form { @@ -1432,40 +1459,64 @@ textarea, .controls-row [class*="span"] + [class*="span"] { margin-left: 20px; } -input.span12, textarea.span12, .uneditable-input.span12 { +input.span12, +textarea.span12, +.uneditable-input.span12 { width: 926px; } -input.span11, textarea.span11, .uneditable-input.span11 { +input.span11, +textarea.span11, +.uneditable-input.span11 { width: 846px; } -input.span10, textarea.span10, .uneditable-input.span10 { +input.span10, +textarea.span10, +.uneditable-input.span10 { width: 766px; } -input.span9, textarea.span9, .uneditable-input.span9 { +input.span9, +textarea.span9, +.uneditable-input.span9 { width: 686px; } -input.span8, textarea.span8, .uneditable-input.span8 { +input.span8, +textarea.span8, +.uneditable-input.span8 { width: 606px; } -input.span7, textarea.span7, .uneditable-input.span7 { +input.span7, +textarea.span7, +.uneditable-input.span7 { width: 526px; } -input.span6, textarea.span6, .uneditable-input.span6 { +input.span6, +textarea.span6, +.uneditable-input.span6 { width: 446px; } -input.span5, textarea.span5, .uneditable-input.span5 { +input.span5, +textarea.span5, +.uneditable-input.span5 { width: 366px; } -input.span4, textarea.span4, .uneditable-input.span4 { +input.span4, +textarea.span4, +.uneditable-input.span4 { width: 286px; } -input.span3, textarea.span3, .uneditable-input.span3 { +input.span3, +textarea.span3, +.uneditable-input.span3 { width: 206px; } -input.span2, textarea.span2, .uneditable-input.span2 { +input.span2, +textarea.span2, +.uneditable-input.span2 { width: 126px; } -input.span1, textarea.span1, .uneditable-input.span1 { +input.span1, +textarea.span1, +.uneditable-input.span1 { width: 46px; } .controls-row { @@ -1689,7 +1740,9 @@ select:focus:invalid:focus { } .input-append, .input-prepend { - margin-bottom: 5px; + display: inline-block; + margin-bottom: 10px; + vertical-align: middle; font-size: 0; white-space: nowrap; } @@ -1700,7 +1753,9 @@ select:focus:invalid:focus { .input-append .uneditable-input, .input-prepend .uneditable-input, .input-append .dropdown-menu, -.input-prepend .dropdown-menu { +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { font-size: 14px; } .input-append input, @@ -2002,9 +2057,9 @@ legend + .control-group { /* Darken IE7 buttons by default so they stand out more given they won't have borders */ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - border: 1px solid #bbbbbb; + border: 1px solid #cccccc; *border: 0; - border-bottom-color: #a2a2a2; + border-bottom-color: #b3b3b3; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; @@ -2014,6 +2069,7 @@ legend + .control-group { box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); } .btn:hover, +.btn:focus, .btn:active, .btn.active, .btn.disabled, @@ -2029,7 +2085,8 @@ legend + .control-group { .btn:first-child { *margin-left: 0; } -.btn:hover { +.btn:hover, +.btn:focus { color: #333333; text-decoration: none; background-position: 0 -15px; @@ -2119,10 +2176,6 @@ input[type="button"].btn-block { .btn-inverse.active { color: rgba(255, 255, 255, 0.75); } -.btn { - border-color: #c5c5c5; - border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); -} .btn-primary { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); @@ -2142,6 +2195,7 @@ input[type="button"].btn-block { filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .btn-primary:hover, +.btn-primary:focus, .btn-primary:active, .btn-primary.active, .btn-primary.disabled, @@ -2173,6 +2227,7 @@ input[type="button"].btn-block { filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .btn-warning:hover, +.btn-warning:focus, .btn-warning:active, .btn-warning.active, .btn-warning.disabled, @@ -2204,6 +2259,7 @@ input[type="button"].btn-block { filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .btn-danger:hover, +.btn-danger:focus, .btn-danger:active, .btn-danger.active, .btn-danger.disabled, @@ -2235,6 +2291,7 @@ input[type="button"].btn-block { filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .btn-success:hover, +.btn-success:focus, .btn-success:active, .btn-success.active, .btn-success.disabled, @@ -2266,6 +2323,7 @@ input[type="button"].btn-block { filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .btn-info:hover, +.btn-info:focus, .btn-info:active, .btn-info.active, .btn-info.disabled, @@ -2297,6 +2355,7 @@ input[type="button"].btn-block { filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .btn-inverse:hover, +.btn-inverse:focus, .btn-inverse:active, .btn-inverse.active, .btn-inverse.disabled, @@ -2351,12 +2410,14 @@ input[type="submit"].btn.btn-mini { -moz-border-radius: 0; border-radius: 0; } -.btn-link:hover { +.btn-link:hover, +.btn-link:focus { color: #005580; text-decoration: underline; background-color: transparent; } -.btn-link[disabled]:hover { +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { color: #333333; text-decoration: none; } @@ -2373,7 +2434,7 @@ input[type="submit"].btn.btn-mini { background-repeat: no-repeat; margin-top: 1px; } -/* White icons with optional class, or on hover/active states of certain elements */ +/* White icons with optional class, or on hover/focus/active states of certain elements */ .icon-white, .nav-pills > .active > a > [class^="icon-"], .nav-pills > .active > a > [class*=" icon-"], @@ -2382,11 +2443,15 @@ input[type="submit"].btn.btn-mini { .navbar-inverse .nav > .active > a > [class^="icon-"], .navbar-inverse .nav > .active > a > [class*=" icon-"], .dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], .dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], .dropdown-menu > .active > a > [class^="icon-"], .dropdown-menu > .active > a > [class*=" icon-"], .dropdown-submenu:hover > a > [class^="icon-"], -.dropdown-submenu:hover > a > [class*=" icon-"] { +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { background-image: url("../img/glyphicons-halflings-white.png"); } .icon-glass { @@ -2740,6 +2805,7 @@ input[type="submit"].btn.btn-mini { } .icon-folder-close { background-position: -384px -120px; + width: 16px; } .icon-folder-open { background-position: -408px -120px; @@ -2964,8 +3030,6 @@ input[type="submit"].btn.btn-mini { margin-top: 8px; margin-left: 0; } -.btn-mini .caret, -.btn-small .caret, .btn-large .caret { margin-top: 6px; } @@ -2974,6 +3038,10 @@ input[type="submit"].btn.btn-mini { border-right-width: 5px; border-top-width: 5px; } +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} .dropup .btn-large .caret { border-bottom-width: 5px; } @@ -3033,7 +3101,8 @@ input[type="submit"].btn.btn-mini { .nav > li > a { display: block; } -.nav > li > a:hover { +.nav > li > a:hover, +.nav > li > a:focus { text-decoration: none; background-color: #eeeeee; } @@ -3071,7 +3140,8 @@ input[type="submit"].btn.btn-mini { padding: 3px 15px; } .nav-list > .active > a, -.nav-list > .active > a:hover { +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); background-color: #0088cc; @@ -3131,11 +3201,13 @@ input[type="submit"].btn.btn-mini { -moz-border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0; } -.nav-tabs > li > a:hover { +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { border-color: #eeeeee #eeeeee #dddddd; } .nav-tabs > .active > a, -.nav-tabs > .active > a:hover { +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { color: #555555; background-color: #ffffff; border: 1px solid #ddd; @@ -3152,7 +3224,8 @@ input[type="submit"].btn.btn-mini { border-radius: 5px; } .nav-pills > .active > a, -.nav-pills > .active > a:hover { +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { color: #ffffff; background-color: #0088cc; } @@ -3187,7 +3260,8 @@ input[type="submit"].btn.btn-mini { -moz-border-radius-bottomleft: 4px; border-bottom-left-radius: 4px; } -.nav-tabs.nav-stacked > li > a:hover { +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { border-color: #ddd; z-index: 2; } @@ -3212,7 +3286,8 @@ input[type="submit"].btn.btn-mini { border-bottom-color: #0088cc; margin-top: 6px; } -.nav .dropdown-toggle:hover .caret { +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { border-top-color: #005580; border-bottom-color: #005580; } @@ -3228,25 +3303,29 @@ input[type="submit"].btn.btn-mini { border-top-color: #555555; border-bottom-color: #555555; } -.nav > .dropdown.active > a:hover { +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { cursor: pointer; } .nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, -.nav > li.dropdown.open.active > a:hover { +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { color: #ffffff; background-color: #999999; border-color: #999999; } .nav li.dropdown.open .caret, .nav li.dropdown.open.active .caret, -.nav li.dropdown.open a:hover .caret { +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { border-top-color: #ffffff; border-bottom-color: #ffffff; opacity: 1; filter: alpha(opacity=100); } -.tabs-stacked .open > a:hover { +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { border-color: #999999; } .tabbable { @@ -3289,12 +3368,14 @@ input[type="submit"].btn.btn-mini { -moz-border-radius: 0 0 4px 4px; border-radius: 0 0 4px 4px; } -.tabs-below > .nav-tabs > li > a:hover { +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { border-bottom-color: transparent; border-top-color: #ddd; } .tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover { +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { border-color: transparent #ddd #ddd #ddd; } .tabs-left > .nav-tabs > li, @@ -3318,11 +3399,13 @@ input[type="submit"].btn.btn-mini { -moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px; } -.tabs-left > .nav-tabs > li > a:hover { +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { border-color: #eeeeee #dddddd #eeeeee #eeeeee; } .tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover { +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { border-color: #ddd transparent #ddd #ddd; *border-right-color: #ffffff; } @@ -3337,18 +3420,21 @@ input[type="submit"].btn.btn-mini { -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; } -.tabs-right > .nav-tabs > li > a:hover { +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { border-color: #eeeeee #eeeeee #eeeeee #dddddd; } .tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover { +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { border-color: #ddd #ddd #ddd transparent; *border-left-color: #ffffff; } .nav > .disabled > a { color: #999999; } -.nav > .disabled > a:hover { +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { text-decoration: none; background-color: transparent; cursor: default; @@ -3406,7 +3492,8 @@ input[type="submit"].btn.btn-mini { color: #777777; text-shadow: 0 1px 0 #ffffff; } -.navbar .brand:hover { +.navbar .brand:hover, +.navbar .brand:focus { text-decoration: none; } .navbar-text { @@ -3417,7 +3504,8 @@ input[type="submit"].btn.btn-mini { .navbar-link { color: #777777; } -.navbar-link:hover { +.navbar-link:hover, +.navbar-link:focus { color: #333333; } .navbar .divider-vertical { @@ -3432,7 +3520,9 @@ input[type="submit"].btn.btn-mini { } .navbar .btn-group .btn, .navbar .input-prepend .btn, -.navbar .input-append .btn { +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { margin-top: 0; } .navbar-form { @@ -3612,6 +3702,7 @@ input[type="submit"].btn.btn-mini { box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); } .navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, .navbar .btn-navbar:active, .navbar .btn-navbar.active, .navbar .btn-navbar.disabled, @@ -3673,9 +3764,10 @@ input[type="submit"].btn.btn-mini { bottom: -6px; top: auto; } -.navbar .nav li.dropdown > a:hover .caret { - border-top-color: #555555; - border-bottom-color: #555555; +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; } .navbar .nav li.dropdown.open > .dropdown-toggle, .navbar .nav li.dropdown.active > .dropdown-toggle, @@ -3735,7 +3827,9 @@ input[type="submit"].btn.btn-mini { text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); } .navbar-inverse .brand:hover, -.navbar-inverse .nav > li > a:hover { +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { color: #ffffff; } .navbar-inverse .brand { @@ -3758,7 +3852,8 @@ input[type="submit"].btn.btn-mini { .navbar-inverse .navbar-link { color: #999999; } -.navbar-inverse .navbar-link:hover { +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { color: #ffffff; } .navbar-inverse .divider-vertical { @@ -3771,7 +3866,8 @@ input[type="submit"].btn.btn-mini { background-color: #111111; color: #ffffff; } -.navbar-inverse .nav li.dropdown > a:hover .caret { +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { border-top-color: #ffffff; border-bottom-color: #ffffff; } @@ -3837,6 +3933,7 @@ input[type="submit"].btn.btn-mini { filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, .navbar-inverse .btn-navbar:active, .navbar-inverse .btn-navbar.active, .navbar-inverse .btn-navbar.disabled, @@ -3905,6 +4002,7 @@ input[type="submit"].btn.btn-mini { border-left-width: 0; } .pagination ul > li > a:hover, +.pagination ul > li > a:focus, .pagination ul > .active > a, .pagination ul > .active > span { background-color: #f5f5f5; @@ -3916,7 +4014,8 @@ input[type="submit"].btn.btn-mini { } .pagination ul > .disabled > span, .pagination ul > .disabled > a, -.pagination ul > .disabled > a:hover { +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { color: #999999; background-color: transparent; cursor: default; @@ -4029,7 +4128,8 @@ input[type="submit"].btn.btn-mini { -moz-border-radius: 15px; border-radius: 15px; } -.pager li > a:hover { +.pager li > a:hover, +.pager li > a:focus { text-decoration: none; background-color: #f5f5f5; } @@ -4043,6 +4143,7 @@ input[type="submit"].btn.btn-mini { } .pager .disabled > a, .pager .disabled > a:hover, +.pager .disabled > a:focus, .pager .disabled > span { color: #999999; background-color: #fff; @@ -4086,7 +4187,8 @@ input[type="submit"].btn.btn-mini { -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } -a.thumbnail:hover { +a.thumbnail:hover, +a.thumbnail:focus { border-color: #0088cc; -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); @@ -4393,10 +4495,10 @@ a.thumbnail:hover { .media-heading { margin: 0 0 5px; } -.media .pull-left { +.media > .pull-left { margin-right: 10px; } -.media .pull-right { +.media > .pull-right { margin-left: 10px; } .media-list { @@ -4408,8 +4510,8 @@ a.thumbnail:hover { z-index: 1030; display: block; visibility: visible; - padding: 5px; font-size: 11px; + line-height: 1.4; opacity: 0; filter: alpha(opacity=0); } @@ -4419,19 +4521,23 @@ a.thumbnail:hover { } .tooltip.top { margin-top: -3px; + padding: 5px 0; } .tooltip.right { margin-left: 3px; + padding: 0 5px; } .tooltip.bottom { margin-top: 3px; + padding: 5px 0; } .tooltip.left { margin-left: -3px; + padding: 0 5px; } .tooltip-inner { max-width: 200px; - padding: 3px 8px; + padding: 8px; color: #ffffff; text-align: center; text-decoration: none; @@ -4481,7 +4587,7 @@ a.thumbnail:hover { left: 0; z-index: 1010; display: none; - width: 236px; + max-width: 276px; padding: 1px; text-align: left; background-color: #ffffff; @@ -4522,6 +4628,9 @@ a.thumbnail:hover { -moz-border-radius: 5px 5px 0 0; border-radius: 5px 5px 0 0; } +.popover-title:empty { + display: none; +} .popover-content { padding: 9px 14px; } @@ -4765,7 +4874,7 @@ a.thumbnail:hover { background-color: #e5e5e5; border-bottom: 1px solid #ffffff; } -.dropdown-menu li > a { +.dropdown-menu > li > a { display: block; padding: 3px 20px; clear: both; @@ -4774,9 +4883,10 @@ a.thumbnail:hover { color: #333333; white-space: nowrap; } -.dropdown-menu li > a:hover, -.dropdown-menu li > a:focus, -.dropdown-submenu:hover > a { +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { text-decoration: none; color: #ffffff; background-color: #0081c2; @@ -4788,8 +4898,9 @@ a.thumbnail:hover { background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); } -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { color: #ffffff; text-decoration: none; outline: 0; @@ -4802,11 +4913,13 @@ a.thumbnail:hover { background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); } -.dropdown-menu .disabled > a, -.dropdown-menu .disabled > a:hover { +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { color: #999999; } -.dropdown-menu .disabled > a:hover { +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { text-decoration: none; background-color: transparent; background-image: none; @@ -4816,7 +4929,7 @@ a.thumbnail:hover { .open { *z-index: 1000; } -.open > .dropdown-menu { +.open > .dropdown-menu { display: block; } .pull-right > .dropdown-menu { @@ -4938,7 +5051,8 @@ a.thumbnail:hover { -o-transition: 0.6s ease-in-out left; transition: 0.6s ease-in-out left; } -.carousel-inner > .item > img { +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { display: block; line-height: 1; } @@ -4996,12 +5110,35 @@ a.thumbnail:hover { left: auto; right: 15px; } -.carousel-control:hover { +.carousel-control:hover, +.carousel-control:focus { color: #ffffff; text-decoration: none; opacity: 0.9; filter: alpha(opacity=90); } +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} +.carousel-indicators .active { + background-color: #fff; +} .carousel-caption { position: absolute; left: 0; @@ -5061,7 +5198,8 @@ a.thumbnail:hover { opacity: 0.2; filter: alpha(opacity=20); } -.close:hover { +.close:hover, +.close:focus { color: #000000; text-decoration: none; cursor: pointer; @@ -5115,6 +5253,9 @@ button.close { .collapse.in { height: auto; } +@-ms-viewport { + width: device-width; +} .hidden { display: none; visibility: hidden; @@ -5159,6 +5300,17 @@ button.close { display: none !important; } } +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} @media (max-width: 767px) { body { padding-left: 20px; @@ -5586,40 +5738,64 @@ button.close { .controls-row [class*="span"] + [class*="span"] { margin-left: 20px; } - input.span12, textarea.span12, .uneditable-input.span12 { + input.span12, + textarea.span12, + .uneditable-input.span12 { width: 710px; } - input.span11, textarea.span11, .uneditable-input.span11 { + input.span11, + textarea.span11, + .uneditable-input.span11 { width: 648px; } - input.span10, textarea.span10, .uneditable-input.span10 { + input.span10, + textarea.span10, + .uneditable-input.span10 { width: 586px; } - input.span9, textarea.span9, .uneditable-input.span9 { + input.span9, + textarea.span9, + .uneditable-input.span9 { width: 524px; } - input.span8, textarea.span8, .uneditable-input.span8 { + input.span8, + textarea.span8, + .uneditable-input.span8 { width: 462px; } - input.span7, textarea.span7, .uneditable-input.span7 { + input.span7, + textarea.span7, + .uneditable-input.span7 { width: 400px; } - input.span6, textarea.span6, .uneditable-input.span6 { + input.span6, + textarea.span6, + .uneditable-input.span6 { width: 338px; } - input.span5, textarea.span5, .uneditable-input.span5 { + input.span5, + textarea.span5, + .uneditable-input.span5 { width: 276px; } - input.span4, textarea.span4, .uneditable-input.span4 { + input.span4, + textarea.span4, + .uneditable-input.span4 { width: 214px; } - input.span3, textarea.span3, .uneditable-input.span3 { + input.span3, + textarea.span3, + .uneditable-input.span3 { width: 152px; } - input.span2, textarea.span2, .uneditable-input.span2 { + input.span2, + textarea.span2, + .uneditable-input.span2 { width: 90px; } - input.span1, textarea.span1, .uneditable-input.span1 { + input.span1, + textarea.span1, + .uneditable-input.span1 { width: 28px; } } @@ -5902,40 +6078,64 @@ button.close { .controls-row [class*="span"] + [class*="span"] { margin-left: 30px; } - input.span12, textarea.span12, .uneditable-input.span12 { + input.span12, + textarea.span12, + .uneditable-input.span12 { width: 1156px; } - input.span11, textarea.span11, .uneditable-input.span11 { + input.span11, + textarea.span11, + .uneditable-input.span11 { width: 1056px; } - input.span10, textarea.span10, .uneditable-input.span10 { + input.span10, + textarea.span10, + .uneditable-input.span10 { width: 956px; } - input.span9, textarea.span9, .uneditable-input.span9 { + input.span9, + textarea.span9, + .uneditable-input.span9 { width: 856px; } - input.span8, textarea.span8, .uneditable-input.span8 { + input.span8, + textarea.span8, + .uneditable-input.span8 { width: 756px; } - input.span7, textarea.span7, .uneditable-input.span7 { + input.span7, + textarea.span7, + .uneditable-input.span7 { width: 656px; } - input.span6, textarea.span6, .uneditable-input.span6 { + input.span6, + textarea.span6, + .uneditable-input.span6 { width: 556px; } - input.span5, textarea.span5, .uneditable-input.span5 { + input.span5, + textarea.span5, + .uneditable-input.span5 { width: 456px; } - input.span4, textarea.span4, .uneditable-input.span4 { + input.span4, + textarea.span4, + .uneditable-input.span4 { width: 356px; } - input.span3, textarea.span3, .uneditable-input.span3 { + input.span3, + textarea.span3, + .uneditable-input.span3 { width: 256px; } - input.span2, textarea.span2, .uneditable-input.span2 { + input.span2, + textarea.span2, + .uneditable-input.span2 { width: 156px; } - input.span1, textarea.span1, .uneditable-input.span1 { + input.span1, + textarea.span1, + .uneditable-input.span1 { width: 56px; } .thumbnails { @@ -6015,7 +6215,9 @@ button.close { margin-bottom: 2px; } .nav-collapse .nav > li > a:hover, - .nav-collapse .dropdown-menu a:hover { + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { background-color: #f2f2f2; } .navbar-inverse .nav-collapse .nav > li > a, @@ -6023,7 +6225,9 @@ button.close { color: #999999; } .navbar-inverse .nav-collapse .nav > li > a:hover, - .navbar-inverse .nav-collapse .dropdown-menu a:hover { + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { background-color: #111111; } .nav-collapse.in .btn-group { diff --git a/module/web/static/css/default/dashboard.less b/module/web/static/css/default/dashboard.less index 1cd9a1bc5..2677b4035 100644 --- a/module/web/static/css/default/dashboard.less +++ b/module/web/static/css/default/dashboard.less @@ -113,6 +113,11 @@ text-shadow: none; } + .tooltip { + text-shadow: none; + width: 100%; + } + } // Tag area with different effect on hover diff --git a/module/web/static/css/default/style.less b/module/web/static/css/default/style.less index 3e2a42abf..7c857227f 100644 --- a/module/web/static/css/default/style.less +++ b/module/web/static/css/default/style.less @@ -241,6 +241,7 @@ header .logo { line-height: 16px; .popover { // display: block; + max-width: none; width: 120%; left: -60%; // Half of width margin-left: 50%; @@ -251,8 +252,12 @@ header .logo { color: @greyDark; } - i.icon-tasks { + .iconf-list { cursor: pointer; + + &:hover { + color: @yellow; + } } .close { @@ -311,7 +316,6 @@ header .logo { .header-area { display: none; // hidden by default - overflow: hidden; position: absolute; line-height: 18px; top: @header-height; diff --git a/module/web/static/img/glyphicons-halflings-white.png b/module/web/static/img/glyphicons-halflings-white.png old mode 100644 new mode 100755 diff --git a/module/web/static/img/glyphicons-halflings.png b/module/web/static/img/glyphicons-halflings.png old mode 100644 new mode 100755 diff --git a/module/web/static/js/config.js b/module/web/static/js/config.js index 0c0eac3fc..5bdfcf201 100644 --- a/module/web/static/js/config.js +++ b/module/web/static/js/config.js @@ -11,7 +11,7 @@ require.config({ animate: "libs/jquery.animate-enhanced-0.99", omniwindow: "libs/jquery.omniwindow", select2: "libs/select2-3.2", - bootstrap: "libs/bootstrap-2.2.2", + bootstrap: "libs/bootstrap-2.3", underscore: "libs/lodash-1.0.rc3", backbone: "libs/backbone-0.9.10", diff --git a/module/web/static/js/libs/bootstrap-2.2.2.js b/module/web/static/js/libs/bootstrap-2.2.2.js deleted file mode 100755 index 56621401c..000000000 --- a/module/web/static/js/libs/bootstrap-2.2.2.js +++ /dev/null @@ -1,2170 +0,0 @@ -/* =================================================== - * bootstrap-transition.js v2.2.2 - * http://twitter.github.com/bootstrap/javascript.html#transitions - * =================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) - * ======================================================= */ - - $(function () { - - $.support.transition = (function () { - - var transitionEnd = (function () { - - var el = document.createElement('bootstrap') - , transEndEventNames = { - 'WebkitTransition' : 'webkitTransitionEnd' - , 'MozTransition' : 'transitionend' - , 'OTransition' : 'oTransitionEnd otransitionend' - , 'transition' : 'transitionend' - } - , name - - for (name in transEndEventNames){ - if (el.style[name] !== undefined) { - return transEndEventNames[name] - } - } - - }()) - - return transitionEnd && { - end: transitionEnd - } - - })() - - }) - -}(window.jQuery); -/* ========================================================= - * bootstrap-modal.js v2.2.2 - * http://twitter.github.com/bootstrap/javascript.html#modals - * ========================================================= - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================= */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* MODAL CLASS DEFINITION - * ====================== */ - - var Modal = function (element, options) { - this.options = options - this.$element = $(element) - .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) - this.options.remote && this.$element.find('.modal-body').load(this.options.remote) - } - - Modal.prototype = { - - constructor: Modal - - , toggle: function () { - return this[!this.isShown ? 'show' : 'hide']() - } - - , show: function () { - var that = this - , e = $.Event('show') - - this.$element.trigger(e) - - if (this.isShown || e.isDefaultPrevented()) return - - this.isShown = true - - this.escape() - - this.backdrop(function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(document.body) //don't move modals dom position - } - - that.$element - .show() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element - .addClass('in') - .attr('aria-hidden', false) - - that.enforceFocus() - - transition ? - that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) : - that.$element.focus().trigger('shown') - - }) - } - - , hide: function (e) { - e && e.preventDefault() - - var that = this - - e = $.Event('hide') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - this.escape() - - $(document).off('focusin.modal') - - this.$element - .removeClass('in') - .attr('aria-hidden', true) - - $.support.transition && this.$element.hasClass('fade') ? - this.hideWithTransition() : - this.hideModal() - } - - , enforceFocus: function () { - var that = this - $(document).on('focusin.modal', function (e) { - if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { - that.$element.focus() - } - }) - } - - , escape: function () { - var that = this - if (this.isShown && this.options.keyboard) { - this.$element.on('keyup.dismiss.modal', function ( e ) { - e.which == 27 && that.hide() - }) - } else if (!this.isShown) { - this.$element.off('keyup.dismiss.modal') - } - } - - , hideWithTransition: function () { - var that = this - , timeout = setTimeout(function () { - that.$element.off($.support.transition.end) - that.hideModal() - }, 500) - - this.$element.one($.support.transition.end, function () { - clearTimeout(timeout) - that.hideModal() - }) - } - - , hideModal: function (that) { - this.$element - .hide() - .trigger('hidden') - - this.backdrop() - } - - , removeBackdrop: function () { - this.$backdrop.remove() - this.$backdrop = null - } - - , backdrop: function (callback) { - var that = this - , animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $('