Improved mobile layout, supported chrome packaged notifications
This commit is contained in:
parent
a4c219f518
commit
02f8f5fa61
166
app/css/app.css
166
app/css/app.css
@ -117,7 +117,6 @@ fieldset[disabled] .btn-tg.active {
|
||||
.tg_page_head .container {
|
||||
display: block;
|
||||
width: auto;
|
||||
padding: 0;
|
||||
}
|
||||
.tg_page_head .navbar-inverse {
|
||||
/*-webkit-app-region: drag;*/
|
||||
@ -131,18 +130,24 @@ fieldset[disabled] .btn-tg.active {
|
||||
margin: 0;
|
||||
}
|
||||
.tg_page_head .navbar > .container .navbar-brand {
|
||||
padding: 9px;
|
||||
padding: 9px 15px;
|
||||
opacity: 0.9;
|
||||
margin-left: 0;
|
||||
-webkit-transition: opacity swing .9s;
|
||||
}
|
||||
|
||||
.tg_page_head .navbar > .container .navbar-brand-alpha {
|
||||
color: #FFFFFF;
|
||||
font-size: 12px;
|
||||
padding-left: 5px;
|
||||
@media (max-width: 480px) {
|
||||
.tg_page_head .navbar > .container .navbar-brand {
|
||||
padding-left: 9px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 480px) {
|
||||
.tg_page_head .navbar-quick-nav {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.tg_head_logo {
|
||||
background: url(../img/Logo_2x.png) 0 0 no-repeat;
|
||||
background-size: 110px 31px;
|
||||
@ -162,6 +167,31 @@ fieldset[disabled] .btn-tg.active {
|
||||
.tg_page_head .navbar-inverse .navbar-nav > li > a:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
.tg_page_head .navbar-inverse .navbar-toggle {
|
||||
border-color: #497495;
|
||||
outline: 0;
|
||||
}
|
||||
.tg_page_head .navbar-inverse .navbar-collapse,
|
||||
.tg_page_head .navbar-inverse .navbar-form {
|
||||
border-color: #497495;
|
||||
}
|
||||
|
||||
.tg_page_head .navbar-inverse .navbar-toggle:hover,
|
||||
.tg_page_head .navbar-inverse .navbar-toggle:active,
|
||||
.tg_page_head .navbar-inverse .navbar-toggle:focus {
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
}
|
||||
|
||||
.tg_page_head .navbar-quick-nav {
|
||||
margin: 0;
|
||||
}
|
||||
.tg_page_head .navbar-quick-nav li {
|
||||
float: left;
|
||||
}
|
||||
.tg_page_head .navbar-quick-nav a {
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.tg_progress {
|
||||
height: 12px;
|
||||
@ -329,19 +359,19 @@ fieldset[disabled] .btn-tg.active {
|
||||
|
||||
.im_page_wrap {
|
||||
background: #FFF;
|
||||
/*max-width: 1000px;*/
|
||||
width: 1000px;
|
||||
max-width: 1000px;
|
||||
min-width: 300px;
|
||||
margin: 0 auto;
|
||||
|
||||
-webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
|
||||
/*margin-bottom: 40px;*/
|
||||
|
||||
border-radius: 0 0 3px 3px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.im_page_footer {
|
||||
font-size: 11px;
|
||||
text-align: center;
|
||||
@ -360,20 +390,21 @@ fieldset[disabled] .btn-tg.active {
|
||||
|
||||
.im_dialogs_col_wrap {
|
||||
float: left;
|
||||
width: 310px;
|
||||
width: 31%;
|
||||
border-right: 2px solid #E9EBED;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.im_history_col_wrap {
|
||||
float: left;
|
||||
width: 690px;
|
||||
width: 69%;
|
||||
}
|
||||
|
||||
|
||||
/* Dialogs list */
|
||||
.im_dialogs_col {
|
||||
width: 315px;
|
||||
/*min-width: 315px;*/
|
||||
margin-right: -7px;
|
||||
}
|
||||
.im_dialogs_col .nano > .pane {
|
||||
background : rgba(0,0,0,.0);
|
||||
@ -397,7 +428,7 @@ fieldset[disabled] .btn-tg.active {
|
||||
|
||||
.im_dialogs_search {
|
||||
padding: 14px 12px;
|
||||
/*border-right: 2px solid #E9EBED;*/
|
||||
position: relative;
|
||||
}
|
||||
.im_dialogs_search_field {
|
||||
font-size: 12px;
|
||||
@ -421,7 +452,7 @@ fieldset[disabled] .btn-tg.active {
|
||||
|
||||
.im_dialogs_search_clear {
|
||||
position: absolute;
|
||||
margin-left: 262px;
|
||||
right: 19px;
|
||||
margin-top: -23px;
|
||||
color: #999;
|
||||
width: 13px;
|
||||
@ -662,9 +693,9 @@ a.im_dialog:hover .im_dialog_date {
|
||||
}
|
||||
.im_history {
|
||||
padding: 20px 0 0 3px;
|
||||
/*max-width: 555px;*/
|
||||
max-width: 500px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.im_history_typing_wrap {
|
||||
@ -1061,21 +1092,20 @@ span.emoji {
|
||||
}
|
||||
|
||||
.im_send_panel_wrap {
|
||||
width: 526px;
|
||||
max-width: 526px;
|
||||
margin: 0 auto;
|
||||
padding: 10px 12px 22px 0;
|
||||
}
|
||||
.im_panel_fixed_bottom .im_send_form_wrap1 {
|
||||
.im_send_form_wrap {
|
||||
position: relative;
|
||||
}
|
||||
.im_panel_fixed_bottom .im_send_form {
|
||||
.im_send_form {
|
||||
max-width: 389px;
|
||||
margin: 0 auto;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 62px;
|
||||
}
|
||||
.im_send_form {
|
||||
width: 389px;
|
||||
float: left;
|
||||
right: 62px;
|
||||
}
|
||||
.im_submit {
|
||||
padding: 5px 12px;
|
||||
@ -1550,8 +1580,98 @@ img.img_fullsize {
|
||||
margin: 30px auto 10px;
|
||||
}
|
||||
|
||||
.im_page_footer {
|
||||
display: none;
|
||||
}
|
||||
.im_panel_own_photo,
|
||||
.im_panel_peer_photo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.im_send_form {
|
||||
left: 0;
|
||||
right: 0;
|
||||
max-width: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.im_dialog_peer {
|
||||
white-space: normal;
|
||||
height: 2.84em;
|
||||
}
|
||||
.im_dialog_message {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
/*.icon-message-status {
|
||||
margin-left: 0;
|
||||
margin-top: 18px;
|
||||
right: -1px;
|
||||
}*/
|
||||
|
||||
.icon-message-status {
|
||||
z-index: 10;
|
||||
margin-left: -5px;
|
||||
border-radius: 0;
|
||||
height: 34px;
|
||||
border: 0;
|
||||
width: 2px;
|
||||
margin-top: 1px;
|
||||
border: 0;
|
||||
}
|
||||
/*.icon-message-status {
|
||||
z-index: 10;
|
||||
margin-left: -15px;
|
||||
}*/
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.im_dialogs_col_wrap,
|
||||
.im_page_peer_not_selected .im_history_col_wrap {
|
||||
display: none;
|
||||
}
|
||||
.im_page_peer_not_selected .im_dialogs_col_wrap {
|
||||
display: block;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.im_page_peer_not_selected .im_dialogs_col {
|
||||
margin-right: 0;
|
||||
}
|
||||
.im_page_peer_not_selected .im_dialogs_col_wrap .pane {
|
||||
width: 12px;
|
||||
right: 0px;
|
||||
}
|
||||
.im_page_peer_not_selected .im_dialogs_col_wrap .pane > .slider {
|
||||
border-radius: 3px;
|
||||
margin: 0 3px;
|
||||
}
|
||||
|
||||
.im_dialogs_scrollable_wrap {
|
||||
padding: 0 12px 0 12px;
|
||||
}
|
||||
|
||||
.im_dialogs_col_wrap,
|
||||
.im_history_col_wrap {
|
||||
float: none;
|
||||
width: auto;
|
||||
max-width: auto;
|
||||
min-width: auto;
|
||||
}
|
||||
|
||||
.im_page_peer_not_selected .im_dialog_peer {
|
||||
white-space: nowrap;
|
||||
height: auto;
|
||||
}
|
||||
.im_page_peer_not_selected .im_dialog_message {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.settings_modal_window .modal-dialog {
|
||||
max-width: 502px;
|
||||
}
|
||||
|
@ -1,13 +1,13 @@
|
||||
<!doctype html>
|
||||
<html lang="en" ng-app="myApp"><!-- ng-csp=""-->
|
||||
<html lang="en" ng-app="myApp"><!-- ng-csp="" -->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Webogram</title>
|
||||
<link rel="stylesheet" href="vendor/angular/angular-csp.css"/>
|
||||
<link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.css"/>
|
||||
<link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.css?1"/>
|
||||
<link rel="stylesheet" href="vendor/jquery.nanoscroller/nanoscroller.css"/>
|
||||
<link rel="stylesheet" href="css/app.css?24"/>
|
||||
<link rel="stylesheet" href="css/app.css?25"/>
|
||||
<link rel="icon" href="favicon.ico" type="image/x-icon" />
|
||||
|
||||
<meta property="og:title" content="Webogram">
|
||||
@ -40,7 +40,7 @@
|
||||
<script type="text/javascript" src="vendor/angular/angular-route.js?1"></script>
|
||||
<script type="text/javascript" src="vendor/angular/angular-animate.js?1"></script>
|
||||
<script type="text/javascript" src="vendor/angular/angular-sanitize.js?1"></script>
|
||||
<script type="text/javascript" src="vendor/ui-bootstrap/ui-bootstrap-custom-tpls-0.10.0.js"></script>
|
||||
<script type="text/javascript" src="vendor/ui-bootstrap/ui-bootstrap-custom-tpls-0.10.0.js?1"></script>
|
||||
|
||||
<script type="text/javascript" src="vendor/jsbn/jsbn_combined.js"></script>
|
||||
<script type="text/javascript" src="vendor/cryptoJS/crypto.js?1"></script>
|
||||
@ -50,12 +50,12 @@
|
||||
<script type="text/javascript" src="js/lib/config.js"></script>
|
||||
<script type="text/javascript" src="js/lib/mtproto.js?19"></script>
|
||||
|
||||
<script type="text/javascript" src="js/util.js?1"></script>
|
||||
<script type="text/javascript" src="js/app.js?15"></script>
|
||||
<script type="text/javascript" src="js/services.js?20"></script>
|
||||
<script type="text/javascript" src="js/controllers.js?28"></script>
|
||||
<script type="text/javascript" src="js/filters.js?3"></script>
|
||||
<script type="text/javascript" src="js/directives.js?18"></script>
|
||||
<script type="text/javascript" src="js/util.js?2"></script>
|
||||
<script type="text/javascript" src="js/app.js?16"></script>
|
||||
<script type="text/javascript" src="js/services.js?21"></script>
|
||||
<script type="text/javascript" src="js/controllers.js?29"></script>
|
||||
<script type="text/javascript" src="js/filters.js?4"></script>
|
||||
<script type="text/javascript" src="js/directives.js?19"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -55,9 +55,9 @@ config(['$locationProvider', '$routeProvider', '$compileProvider', function($loc
|
||||
|
||||
|
||||
// $locationProvider.html5Mode(true);
|
||||
$routeProvider.when('/', {templateUrl: 'partials/welcome.html?3', controller: 'AppWelcomeController'});
|
||||
$routeProvider.when('/login', {templateUrl: 'partials/login.html?4', controller: 'AppLoginController'});
|
||||
$routeProvider.when('/im', {templateUrl: 'partials/im.html?12', controller: 'AppIMController', reloadOnSearch: false});
|
||||
$routeProvider.when('/', {templateUrl: 'partials/welcome.html?4', controller: 'AppWelcomeController'});
|
||||
$routeProvider.when('/login', {templateUrl: 'partials/login.html?5', controller: 'AppLoginController'});
|
||||
$routeProvider.when('/im', {templateUrl: 'partials/im.html?13', controller: 'AppIMController', reloadOnSearch: false});
|
||||
$routeProvider.otherwise({redirectTo: '/'});
|
||||
|
||||
}]);
|
||||
|
@ -11,7 +11,7 @@ chrome.app.runtime.onLaunched.addListener(function(launchData) {
|
||||
width: 1100,
|
||||
height: 700
|
||||
},
|
||||
minWidth: 1050,
|
||||
minWidth: 320,
|
||||
minHeight: 400,
|
||||
frame: 'chrome'
|
||||
});
|
||||
|
@ -220,7 +220,7 @@ angular.module('myApp.controllers', [])
|
||||
var wrappedDialog = AppMessagesManager.wrapForDialog(dialog.top_message, dialog.unread_count);
|
||||
if (pos !== false) {
|
||||
var prev = $scope.dialogs.splice(pos, 1);
|
||||
// wrappedDialog = angular.extend(prev[0], wrappedDialog);
|
||||
safeReplaceObject(prev, wrappedDialog);
|
||||
offset++;
|
||||
}
|
||||
$scope.dialogs.unshift(wrappedDialog);
|
||||
@ -300,6 +300,7 @@ angular.module('myApp.controllers', [])
|
||||
|
||||
$scope.history = [];
|
||||
$scope.typing = {};
|
||||
$scope.state = {};
|
||||
|
||||
var peerID,
|
||||
offset = 0,
|
||||
@ -345,9 +346,9 @@ angular.module('myApp.controllers', [])
|
||||
|
||||
if (preload) {
|
||||
$scope.typing = {};
|
||||
$scope.state = {loaded: true};
|
||||
$scope.$broadcast('ui_peer_change');
|
||||
$scope.$broadcast('ui_history_change');
|
||||
safeReplaceObject($scope.state, {loaded: true});
|
||||
}
|
||||
}
|
||||
|
||||
@ -368,7 +369,7 @@ angular.module('myApp.controllers', [])
|
||||
|
||||
$scope.$broadcast('ui_history_prepend');
|
||||
}, function () {
|
||||
$scope.state = {error: true};
|
||||
safeReplaceObject($scope.state, {error: true});
|
||||
});
|
||||
}
|
||||
|
||||
@ -388,19 +389,19 @@ angular.module('myApp.controllers', [])
|
||||
});
|
||||
$scope.history.reverse();
|
||||
|
||||
$scope.state = {loaded: true};
|
||||
safeReplaceObject($scope.state, {loaded: true});
|
||||
|
||||
$scope.$broadcast('ui_history_change');
|
||||
|
||||
AppMessagesManager.readHistory($scope.curDialog.inputPeer);
|
||||
|
||||
}, function () {
|
||||
$scope.state = {error: true};
|
||||
safeReplaceObject($scope.state, {error: true});
|
||||
});
|
||||
}
|
||||
|
||||
function showEmptyHistory () {
|
||||
$scope.state = {notSelected: true};
|
||||
safeReplaceObject($scope.state, {notSelected: true});
|
||||
$scope.history = [];
|
||||
|
||||
$scope.$broadcast('ui_history_change');
|
||||
|
@ -41,6 +41,7 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
|
||||
var dialogsWrap = $('.im_dialogs_wrap', element)[0],
|
||||
scrollableWrap = $('.im_dialogs_scrollable_wrap', element)[0],
|
||||
footer = $('.im_page_footer')[0],
|
||||
// dialogsSearch = $('im_dialogs_search', element)[0],
|
||||
moreNotified = false;
|
||||
|
||||
@ -83,7 +84,7 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
|
||||
function updateSizes () {
|
||||
$(element).css({
|
||||
height: $($window).height() - 162
|
||||
height: $($window).height() - footer.offsetHeight - 122
|
||||
});
|
||||
}
|
||||
|
||||
@ -107,8 +108,10 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
scrollable = $('.im_history_scrollable', element)[0],
|
||||
panelWrap = $('.im_history_panel_wrap', element)[0],
|
||||
sendPanelWrap = $('.im_send_panel_wrap', element)[0],
|
||||
sendFormWrap1 = $('.im_send_form_wrap1', element)[0],
|
||||
sendFormWrap = $('.im_send_form_wrap', element)[0],
|
||||
headWrap = $('.tg_page_head')[0],
|
||||
footer = $('.im_page_footer')[0],
|
||||
sendForm = $('.im_send_form', element)[0],
|
||||
moreNotified = false;
|
||||
|
||||
onContentLoaded(function () {
|
||||
@ -199,18 +202,6 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
});
|
||||
});
|
||||
|
||||
scope.$on('ui_editor_change', function (e, data) {
|
||||
if (data.start) {
|
||||
if (!$(sendPanelWrap).hasClass('im_panel_fixed_bottom')) {
|
||||
sendFormWrap1.style.height = sendFormWrap.offsetHeight + 'px';
|
||||
$(sendPanelWrap).addClass('im_panel_fixed_bottom');
|
||||
}
|
||||
} else {
|
||||
sendFormWrap1.style.height = 'auto';
|
||||
$(sendPanelWrap).removeClass('im_panel_fixed_bottom');
|
||||
}
|
||||
});
|
||||
|
||||
scope.$on('ui_editor_resize', updateSizes);
|
||||
|
||||
var atBottom = true;
|
||||
@ -230,11 +221,16 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
});
|
||||
|
||||
function updateSizes (heightOnly) {
|
||||
$(sendFormWrap).css({
|
||||
height: $(sendForm).height()
|
||||
});
|
||||
|
||||
var historyH = $($window).height() - panelWrap.offsetHeight - sendPanelWrap.offsetHeight - headWrap.offsetHeight - footer.offsetHeight;
|
||||
$(historyWrap).css({
|
||||
height: $($window).height() - panelWrap.offsetHeight - sendPanelWrap.offsetHeight - 90
|
||||
height: historyH
|
||||
});
|
||||
$(historyEl).css({
|
||||
minHeight: $($window).height() - panelWrap.offsetHeight - sendPanelWrap.offsetHeight - 90 - 44
|
||||
minHeight: historyH - 44
|
||||
});
|
||||
|
||||
if (heightOnly == true) return;
|
||||
@ -242,7 +238,6 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
onContentLoaded(function () {
|
||||
scrollableWrap.scrollTop = scrollableWrap.scrollHeight;
|
||||
updateScroller();
|
||||
// $(historyWrap).nanoScroller({scroll: 'bottom'});
|
||||
});
|
||||
}
|
||||
updateScroller(100);
|
||||
@ -282,7 +277,6 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
|
||||
var updatePromise;
|
||||
$(richTextarea).on('keyup', function (e) {
|
||||
scope.$emit('ui_editor_change', {start: false});
|
||||
updateHeight();
|
||||
|
||||
scope.draftMessage.text = richTextarea.innerText;
|
||||
@ -316,6 +310,10 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
updateSendSettings();
|
||||
|
||||
$(editorElement).on('keydown', function (e) {
|
||||
if (richTextarea) {
|
||||
updateHeight();
|
||||
}
|
||||
|
||||
if (e.keyCode == 13) {
|
||||
var submit = false;
|
||||
if (sendOnEnter && !e.shiftKey) {
|
||||
@ -325,17 +323,11 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
}
|
||||
|
||||
if (submit) {
|
||||
scope.$emit('ui_editor_change', {start: false});
|
||||
updateHeight();
|
||||
$(element).trigger('submit');
|
||||
return cancelEvent(e);
|
||||
}
|
||||
}
|
||||
|
||||
if (richTextarea) {
|
||||
scope.$emit('ui_editor_change', {start: true});
|
||||
updateHeight();
|
||||
}
|
||||
});
|
||||
|
||||
var lastTyping = 0;
|
||||
@ -370,7 +362,6 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
var newHeight = richTextarea.offsetHeight;
|
||||
if (height != newHeight) {
|
||||
height = newHeight;
|
||||
scope.$emit('ui_editor_change', {start: false});
|
||||
scope.$emit('ui_editor_resize');
|
||||
}
|
||||
};
|
||||
|
@ -2393,7 +2393,11 @@ angular.module('myApp.services', [])
|
||||
|
||||
notification.onclick = function () {
|
||||
notification.close();
|
||||
window.focus();
|
||||
if (window.chrome && chrome.app) {
|
||||
chrome.app.window.current().focus();
|
||||
} else {
|
||||
window.focus();
|
||||
}
|
||||
notificationsClear();
|
||||
if (data.onclick) {
|
||||
data.onclick();
|
||||
|
@ -57,3 +57,16 @@ function onContentLoaded (cb) {
|
||||
function tsNow () {
|
||||
return +new Date();
|
||||
}
|
||||
|
||||
function safeReplaceObject (wasObject, newObject) {
|
||||
for (var key in wasObject) {
|
||||
if (!newObject.hasOwnProperty(key) && key.charAt(0) != '$') {
|
||||
delete wasObject[key];
|
||||
}
|
||||
}
|
||||
for (var key in newObject) {
|
||||
if (newObject.hasOwnProperty(key)) {
|
||||
wasObject[key] = newObject[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
}
|
||||
},
|
||||
"permissions": [
|
||||
"notifications",
|
||||
"webview",
|
||||
{"fileSystem": ["write"]},
|
||||
"storage"
|
||||
|
@ -1,10 +1,25 @@
|
||||
<div class="tg_page_head">
|
||||
<div class="navbar navbar-static-top navbar-inverse" role="navigation">
|
||||
<div class="container">
|
||||
<div class="container" ng-init="navbarCollapsed = true">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" ng-click="navbarCollapsed = !navbarCollapsed">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="http://zhukov.github.io/webogram"><img src="img/Logo_2x.png" class="tg_head_logo" alt="Telegram logo" width="110" height="31" /></a>
|
||||
<ul class="nav navbar-nav navbar-quick-nav" ng-show="curDialog.peer">
|
||||
<li>
|
||||
<a href="#/im">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Back
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse">
|
||||
|
||||
|
||||
<div class="navbar-collapse" collapse="navbarCollapsed">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="https://github.com/zhukov/webogram" target="_blank">About</a></li>
|
||||
<li ng-if="isLoggedIn"><a href="" ng-click="openSettings()">Settings</a></li>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<div ng-include="'partials/head.html?2'"></div>
|
||||
<div ng-include="'partials/head.html?3'"></div>
|
||||
|
||||
<div class="im_page_wrap">
|
||||
<div class="im_page_wrap" ng-class="{im_page_peer_not_selected: !curDialog.peer}">
|
||||
|
||||
<div class="im_page_split clearfix">
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div ng-include="'partials/head.html?2'"></div>
|
||||
<div ng-include="'partials/head.html?3'"></div>
|
||||
|
||||
|
||||
<div class="login_form_wrap">
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div ng-include="'partials/head.html?2'"></div>
|
||||
<div ng-include="'partials/head.html?3'"></div>
|
||||
|
||||
|
||||
<div ng-show="showWelcome">
|
||||
|
411
app/vendor/bootstrap/config.json
vendored
Executable file
411
app/vendor/bootstrap/config.json
vendored
Executable file
@ -0,0 +1,411 @@
|
||||
{
|
||||
"vars": {
|
||||
"@gray-darker": "lighten(#000, 13.5%)",
|
||||
"@gray-dark": "lighten(#000, 20%)",
|
||||
"@gray": "lighten(#000, 33.5%)",
|
||||
"@gray-light": "lighten(#000, 60%)",
|
||||
"@gray-lighter": "lighten(#000, 93.5%)",
|
||||
"@brand-primary": "#428bca",
|
||||
"@brand-success": "#5cb85c",
|
||||
"@brand-info": "#5bc0de",
|
||||
"@brand-warning": "#f0ad4e",
|
||||
"@brand-danger": "#d9534f",
|
||||
"@body-bg": "#fff",
|
||||
"@text-color": "@gray-dark",
|
||||
"@link-color": "@brand-primary",
|
||||
"@link-hover-color": "darken(@link-color, 15%)",
|
||||
"@font-family-sans-serif": "\"Helvetica Neue\", Helvetica, Arial, sans-serif",
|
||||
"@font-family-serif": "Georgia, \"Times New Roman\", Times, serif",
|
||||
"@font-family-monospace": "Menlo, Monaco, Consolas, \"Courier New\", monospace",
|
||||
"@font-family-base": "@font-family-sans-serif",
|
||||
"@font-size-base": "14px",
|
||||
"@font-size-large": "ceil((@font-size-base * 1.25))",
|
||||
"@font-size-small": "ceil((@font-size-base * 0.85))",
|
||||
"@font-size-h1": "floor((@font-size-base * 2.6))",
|
||||
"@font-size-h2": "floor((@font-size-base * 2.15))",
|
||||
"@font-size-h3": "ceil((@font-size-base * 1.7))",
|
||||
"@font-size-h4": "ceil((@font-size-base * 1.25))",
|
||||
"@font-size-h5": "@font-size-base",
|
||||
"@font-size-h6": "ceil((@font-size-base * 0.85))",
|
||||
"@line-height-base": "1.428571429",
|
||||
"@line-height-computed": "floor((@font-size-base * @line-height-base))",
|
||||
"@headings-font-family": "inherit",
|
||||
"@headings-font-weight": "500",
|
||||
"@headings-line-height": "1.1",
|
||||
"@headings-color": "inherit",
|
||||
"@padding-base-vertical": "6px",
|
||||
"@padding-base-horizontal": "12px",
|
||||
"@padding-large-vertical": "10px",
|
||||
"@padding-large-horizontal": "16px",
|
||||
"@padding-small-vertical": "5px",
|
||||
"@padding-small-horizontal": "10px",
|
||||
"@padding-xs-vertical": "1px",
|
||||
"@padding-xs-horizontal": "5px",
|
||||
"@line-height-large": "1.33",
|
||||
"@line-height-small": "1.5",
|
||||
"@border-radius-base": "4px",
|
||||
"@border-radius-large": "6px",
|
||||
"@border-radius-small": "3px",
|
||||
"@component-active-color": "#fff",
|
||||
"@component-active-bg": "@brand-primary",
|
||||
"@caret-width-base": "4px",
|
||||
"@caret-width-large": "5px",
|
||||
"@table-cell-padding": "8px",
|
||||
"@table-condensed-cell-padding": "5px",
|
||||
"@table-bg": "transparent",
|
||||
"@table-bg-accent": "#f9f9f9",
|
||||
"@table-bg-hover": "#f5f5f5",
|
||||
"@table-bg-active": "@table-bg-hover",
|
||||
"@table-border-color": "#ddd",
|
||||
"@btn-font-weight": "normal",
|
||||
"@btn-default-color": "#333",
|
||||
"@btn-default-bg": "#fff",
|
||||
"@btn-default-border": "#ccc",
|
||||
"@btn-primary-color": "#fff",
|
||||
"@btn-primary-bg": "@brand-primary",
|
||||
"@btn-primary-border": "darken(@btn-primary-bg, 5%)",
|
||||
"@btn-success-color": "#fff",
|
||||
"@btn-success-bg": "@brand-success",
|
||||
"@btn-success-border": "darken(@btn-success-bg, 5%)",
|
||||
"@btn-info-color": "#fff",
|
||||
"@btn-info-bg": "@brand-info",
|
||||
"@btn-info-border": "darken(@btn-info-bg, 5%)",
|
||||
"@btn-warning-color": "#fff",
|
||||
"@btn-warning-bg": "@brand-warning",
|
||||
"@btn-warning-border": "darken(@btn-warning-bg, 5%)",
|
||||
"@btn-danger-color": "#fff",
|
||||
"@btn-danger-bg": "@brand-danger",
|
||||
"@btn-danger-border": "darken(@btn-danger-bg, 5%)",
|
||||
"@btn-link-disabled-color": "@gray-light",
|
||||
"@input-bg": "#fff",
|
||||
"@input-bg-disabled": "@gray-lighter",
|
||||
"@input-color": "@gray",
|
||||
"@input-border": "#ccc",
|
||||
"@input-border-radius": "@border-radius-base",
|
||||
"@input-border-focus": "#66afe9",
|
||||
"@input-color-placeholder": "@gray-light",
|
||||
"@input-height-base": "(@line-height-computed + (@padding-base-vertical * 2) + 2)",
|
||||
"@input-height-large": "(ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2)",
|
||||
"@input-height-small": "(floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2)",
|
||||
"@legend-color": "@gray-dark",
|
||||
"@legend-border-color": "#e5e5e5",
|
||||
"@input-group-addon-bg": "@gray-lighter",
|
||||
"@input-group-addon-border-color": "@input-border",
|
||||
"@dropdown-bg": "#fff",
|
||||
"@dropdown-border": "rgba(0,0,0,.15)",
|
||||
"@dropdown-fallback-border": "#ccc",
|
||||
"@dropdown-divider-bg": "#e5e5e5",
|
||||
"@dropdown-link-color": "@gray-dark",
|
||||
"@dropdown-link-hover-color": "darken(@gray-dark, 5%)",
|
||||
"@dropdown-link-hover-bg": "#f5f5f5",
|
||||
"@dropdown-link-active-color": "@component-active-color",
|
||||
"@dropdown-link-active-bg": "@component-active-bg",
|
||||
"@dropdown-link-disabled-color": "@gray-light",
|
||||
"@dropdown-header-color": "@gray-light",
|
||||
"@dropdown-caret-color": "#000",
|
||||
"@screen-xs": "480px",
|
||||
"@screen-xs-min": "@screen-xs",
|
||||
"@screen-phone": "@screen-xs-min",
|
||||
"@screen-sm": "768px",
|
||||
"@screen-sm-min": "@screen-sm",
|
||||
"@screen-tablet": "@screen-sm-min",
|
||||
"@screen-md": "992px",
|
||||
"@screen-md-min": "@screen-md",
|
||||
"@screen-desktop": "@screen-md-min",
|
||||
"@screen-lg": "1200px",
|
||||
"@screen-lg-min": "@screen-lg",
|
||||
"@screen-lg-desktop": "@screen-lg-min",
|
||||
"@screen-xs-max": "(@screen-sm-min - 1)",
|
||||
"@screen-sm-max": "(@screen-md-min - 1)",
|
||||
"@screen-md-max": "(@screen-lg-min - 1)",
|
||||
"@grid-columns": "12",
|
||||
"@grid-gutter-width": "0",
|
||||
"@grid-float-breakpoint": "@screen-xs",
|
||||
"@grid-float-breakpoint-max": "(@grid-float-breakpoint - 1)",
|
||||
"@navbar-height": "50px",
|
||||
"@navbar-margin-bottom": "@line-height-computed",
|
||||
"@navbar-border-radius": "@border-radius-base",
|
||||
"@navbar-padding-horizontal": "floor((@grid-gutter-width / 2))",
|
||||
"@navbar-padding-vertical": "((@navbar-height - @line-height-computed) / 2)",
|
||||
"@navbar-collapse-max-height": "340px",
|
||||
"@navbar-default-color": "#777",
|
||||
"@navbar-default-bg": "#f8f8f8",
|
||||
"@navbar-default-border": "darken(@navbar-default-bg, 6.5%)",
|
||||
"@navbar-default-link-color": "#777",
|
||||
"@navbar-default-link-hover-color": "#333",
|
||||
"@navbar-default-link-hover-bg": "transparent",
|
||||
"@navbar-default-link-active-color": "#555",
|
||||
"@navbar-default-link-active-bg": "darken(@navbar-default-bg, 6.5%)",
|
||||
"@navbar-default-link-disabled-color": "#ccc",
|
||||
"@navbar-default-link-disabled-bg": "transparent",
|
||||
"@navbar-default-brand-color": "@navbar-default-link-color",
|
||||
"@navbar-default-brand-hover-color": "darken(@navbar-default-brand-color, 10%)",
|
||||
"@navbar-default-brand-hover-bg": "transparent",
|
||||
"@navbar-default-toggle-hover-bg": "#ddd",
|
||||
"@navbar-default-toggle-icon-bar-bg": "#888",
|
||||
"@navbar-default-toggle-border-color": "#ddd",
|
||||
"@navbar-inverse-color": "@gray-light",
|
||||
"@navbar-inverse-bg": "#222",
|
||||
"@navbar-inverse-border": "darken(@navbar-inverse-bg, 10%)",
|
||||
"@navbar-inverse-link-color": "@gray-light",
|
||||
"@navbar-inverse-link-hover-color": "#fff",
|
||||
"@navbar-inverse-link-hover-bg": "transparent",
|
||||
"@navbar-inverse-link-active-color": "@navbar-inverse-link-hover-color",
|
||||
"@navbar-inverse-link-active-bg": "darken(@navbar-inverse-bg, 10%)",
|
||||
"@navbar-inverse-link-disabled-color": "#444",
|
||||
"@navbar-inverse-link-disabled-bg": "transparent",
|
||||
"@navbar-inverse-brand-color": "@navbar-inverse-link-color",
|
||||
"@navbar-inverse-brand-hover-color": "#fff",
|
||||
"@navbar-inverse-brand-hover-bg": "transparent",
|
||||
"@navbar-inverse-toggle-hover-bg": "#333",
|
||||
"@navbar-inverse-toggle-icon-bar-bg": "#fff",
|
||||
"@navbar-inverse-toggle-border-color": "#333",
|
||||
"@nav-link-padding": "10px 15px",
|
||||
"@nav-link-hover-bg": "@gray-lighter",
|
||||
"@nav-disabled-link-color": "@gray-light",
|
||||
"@nav-disabled-link-hover-color": "@gray-light",
|
||||
"@nav-open-link-hover-color": "#fff",
|
||||
"@nav-tabs-border-color": "#ddd",
|
||||
"@nav-tabs-link-hover-border-color": "@gray-lighter",
|
||||
"@nav-tabs-active-link-hover-bg": "@body-bg",
|
||||
"@nav-tabs-active-link-hover-color": "@gray",
|
||||
"@nav-tabs-active-link-hover-border-color": "#ddd",
|
||||
"@nav-tabs-justified-link-border-color": "#ddd",
|
||||
"@nav-tabs-justified-active-link-border-color": "@body-bg",
|
||||
"@nav-pills-border-radius": "@border-radius-base",
|
||||
"@nav-pills-active-link-hover-bg": "@component-active-bg",
|
||||
"@nav-pills-active-link-hover-color": "@component-active-color",
|
||||
"@pagination-color": "@link-color",
|
||||
"@pagination-bg": "#fff",
|
||||
"@pagination-border": "#ddd",
|
||||
"@pagination-hover-color": "@link-hover-color",
|
||||
"@pagination-hover-bg": "@gray-lighter",
|
||||
"@pagination-hover-border": "#ddd",
|
||||
"@pagination-active-color": "#fff",
|
||||
"@pagination-active-bg": "@brand-primary",
|
||||
"@pagination-active-border": "@brand-primary",
|
||||
"@pagination-disabled-color": "@gray-light",
|
||||
"@pagination-disabled-bg": "#fff",
|
||||
"@pagination-disabled-border": "#ddd",
|
||||
"@pager-bg": "@pagination-bg",
|
||||
"@pager-border": "@pagination-border",
|
||||
"@pager-border-radius": "15px",
|
||||
"@pager-hover-bg": "@pagination-hover-bg",
|
||||
"@pager-active-bg": "@pagination-active-bg",
|
||||
"@pager-active-color": "@pagination-active-color",
|
||||
"@pager-disabled-color": "@pagination-disabled-color",
|
||||
"@jumbotron-padding": "30px",
|
||||
"@jumbotron-color": "inherit",
|
||||
"@jumbotron-bg": "@gray-lighter",
|
||||
"@jumbotron-heading-color": "inherit",
|
||||
"@jumbotron-font-size": "ceil((@font-size-base * 1.5))",
|
||||
"@state-success-text": "#3c763d",
|
||||
"@state-success-bg": "#dff0d8",
|
||||
"@state-success-border": "darken(spin(@state-success-bg, -10), 5%)",
|
||||
"@state-info-text": "#31708f",
|
||||
"@state-info-bg": "#d9edf7",
|
||||
"@state-info-border": "darken(spin(@state-info-bg, -10), 7%)",
|
||||
"@state-warning-text": "#8a6d3b",
|
||||
"@state-warning-bg": "#fcf8e3",
|
||||
"@state-warning-border": "darken(spin(@state-warning-bg, -10), 5%)",
|
||||
"@state-danger-text": "#a94442",
|
||||
"@state-danger-bg": "#f2dede",
|
||||
"@state-danger-border": "darken(spin(@state-danger-bg, -10), 5%)",
|
||||
"@tooltip-max-width": "200px",
|
||||
"@tooltip-color": "#fff",
|
||||
"@tooltip-bg": "#000",
|
||||
"@tooltip-opacity": ".9",
|
||||
"@tooltip-arrow-width": "5px",
|
||||
"@tooltip-arrow-color": "@tooltip-bg",
|
||||
"@popover-bg": "#fff",
|
||||
"@popover-max-width": "276px",
|
||||
"@popover-border-color": "rgba(0,0,0,.2)",
|
||||
"@popover-fallback-border-color": "#ccc",
|
||||
"@popover-title-bg": "darken(@popover-bg, 3%)",
|
||||
"@popover-arrow-width": "10px",
|
||||
"@popover-arrow-color": "#fff",
|
||||
"@popover-arrow-outer-width": "(@popover-arrow-width + 1)",
|
||||
"@popover-arrow-outer-color": "rgba(0,0,0,.25)",
|
||||
"@popover-arrow-outer-fallback-color": "#999",
|
||||
"@label-default-bg": "@gray-light",
|
||||
"@label-primary-bg": "@brand-primary",
|
||||
"@label-success-bg": "@brand-success",
|
||||
"@label-info-bg": "@brand-info",
|
||||
"@label-warning-bg": "@brand-warning",
|
||||
"@label-danger-bg": "@brand-danger",
|
||||
"@label-color": "#fff",
|
||||
"@label-link-hover-color": "#fff",
|
||||
"@modal-inner-padding": "20px",
|
||||
"@modal-title-padding": "15px",
|
||||
"@modal-title-line-height": "@line-height-base",
|
||||
"@modal-content-bg": "#fff",
|
||||
"@modal-content-border-color": "rgba(0,0,0,.2)",
|
||||
"@modal-content-fallback-border-color": "#999",
|
||||
"@modal-backdrop-bg": "#000",
|
||||
"@modal-backdrop-opacity": ".5",
|
||||
"@modal-header-border-color": "#e5e5e5",
|
||||
"@modal-footer-border-color": "@modal-header-border-color",
|
||||
"@modal-lg": "900px",
|
||||
"@modal-md": "600px",
|
||||
"@modal-sm": "300px",
|
||||
"@alert-padding": "15px",
|
||||
"@alert-border-radius": "@border-radius-base",
|
||||
"@alert-link-font-weight": "bold",
|
||||
"@alert-success-bg": "@state-success-bg",
|
||||
"@alert-success-text": "@state-success-text",
|
||||
"@alert-success-border": "@state-success-border",
|
||||
"@alert-info-bg": "@state-info-bg",
|
||||
"@alert-info-text": "@state-info-text",
|
||||
"@alert-info-border": "@state-info-border",
|
||||
"@alert-warning-bg": "@state-warning-bg",
|
||||
"@alert-warning-text": "@state-warning-text",
|
||||
"@alert-warning-border": "@state-warning-border",
|
||||
"@alert-danger-bg": "@state-danger-bg",
|
||||
"@alert-danger-text": "@state-danger-text",
|
||||
"@alert-danger-border": "@state-danger-border",
|
||||
"@progress-bg": "#f5f5f5",
|
||||
"@progress-bar-color": "#fff",
|
||||
"@progress-bar-bg": "@brand-primary",
|
||||
"@progress-bar-success-bg": "@brand-success",
|
||||
"@progress-bar-warning-bg": "@brand-warning",
|
||||
"@progress-bar-danger-bg": "@brand-danger",
|
||||
"@progress-bar-info-bg": "@brand-info",
|
||||
"@list-group-bg": "#fff",
|
||||
"@list-group-border": "#ddd",
|
||||
"@list-group-border-radius": "@border-radius-base",
|
||||
"@list-group-hover-bg": "#f5f5f5",
|
||||
"@list-group-active-color": "@component-active-color",
|
||||
"@list-group-active-bg": "@component-active-bg",
|
||||
"@list-group-active-border": "@list-group-active-bg",
|
||||
"@list-group-active-text-color": "lighten(@list-group-active-bg, 40%)",
|
||||
"@list-group-link-color": "#555",
|
||||
"@list-group-link-heading-color": "#333",
|
||||
"@panel-bg": "#fff",
|
||||
"@panel-body-padding": "15px",
|
||||
"@panel-border-radius": "@border-radius-base",
|
||||
"@panel-inner-border": "#ddd",
|
||||
"@panel-footer-bg": "#f5f5f5",
|
||||
"@panel-default-text": "@gray-dark",
|
||||
"@panel-default-border": "#ddd",
|
||||
"@panel-default-heading-bg": "#f5f5f5",
|
||||
"@panel-primary-text": "#fff",
|
||||
"@panel-primary-border": "@brand-primary",
|
||||
"@panel-primary-heading-bg": "@brand-primary",
|
||||
"@panel-success-text": "@state-success-text",
|
||||
"@panel-success-border": "@state-success-border",
|
||||
"@panel-success-heading-bg": "@state-success-bg",
|
||||
"@panel-info-text": "@state-info-text",
|
||||
"@panel-info-border": "@state-info-border",
|
||||
"@panel-info-heading-bg": "@state-info-bg",
|
||||
"@panel-warning-text": "@state-warning-text",
|
||||
"@panel-warning-border": "@state-warning-border",
|
||||
"@panel-warning-heading-bg": "@state-warning-bg",
|
||||
"@panel-danger-text": "@state-danger-text",
|
||||
"@panel-danger-border": "@state-danger-border",
|
||||
"@panel-danger-heading-bg": "@state-danger-bg",
|
||||
"@thumbnail-padding": "4px",
|
||||
"@thumbnail-bg": "@body-bg",
|
||||
"@thumbnail-border": "#ddd",
|
||||
"@thumbnail-border-radius": "@border-radius-base",
|
||||
"@thumbnail-caption-color": "@text-color",
|
||||
"@thumbnail-caption-padding": "9px",
|
||||
"@well-bg": "#f5f5f5",
|
||||
"@well-border": "darken(@well-bg, 7%)",
|
||||
"@badge-color": "#fff",
|
||||
"@badge-link-hover-color": "#fff",
|
||||
"@badge-bg": "@gray-light",
|
||||
"@badge-active-color": "@link-color",
|
||||
"@badge-active-bg": "#fff",
|
||||
"@badge-font-weight": "bold",
|
||||
"@badge-border-radius": "10px",
|
||||
"@breadcrumb-padding-vertical": "8px",
|
||||
"@breadcrumb-padding-horizontal": "15px",
|
||||
"@breadcrumb-bg": "#f5f5f5",
|
||||
"@breadcrumb-color": "#ccc",
|
||||
"@breadcrumb-active-color": "@gray-light",
|
||||
"@breadcrumb-separator": "\"/\"",
|
||||
"@carousel-text-shadow": "0 1px 2px rgba(0,0,0,.6)",
|
||||
"@carousel-control-color": "#fff",
|
||||
"@carousel-control-width": "15%",
|
||||
"@carousel-control-opacity": ".5",
|
||||
"@carousel-control-font-size": "20px",
|
||||
"@carousel-indicator-active-bg": "#fff",
|
||||
"@carousel-indicator-border-color": "#fff",
|
||||
"@carousel-caption-color": "#fff",
|
||||
"@close-font-weight": "bold",
|
||||
"@close-color": "#000",
|
||||
"@close-text-shadow": "0 1px 0 #fff",
|
||||
"@code-color": "#c7254e",
|
||||
"@code-bg": "#f9f2f4",
|
||||
"@kbd-color": "#fff",
|
||||
"@kbd-bg": "#333",
|
||||
"@pre-bg": "#f5f5f5",
|
||||
"@pre-color": "@gray-dark",
|
||||
"@pre-border-color": "#ccc",
|
||||
"@pre-scrollable-max-height": "340px",
|
||||
"@text-muted": "@gray-light",
|
||||
"@abbr-border-color": "@gray-light",
|
||||
"@headings-small-color": "@gray-light",
|
||||
"@blockquote-small-color": "@gray-light",
|
||||
"@blockquote-border-color": "@gray-lighter",
|
||||
"@page-header-border-color": "@gray-lighter",
|
||||
"@hr-border": "@gray-lighter",
|
||||
"@component-offset-horizontal": "180px",
|
||||
"@container-tablet": "((720px + @grid-gutter-width))",
|
||||
"@container-sm": "@container-tablet",
|
||||
"@container-desktop": "((940px + @grid-gutter-width))",
|
||||
"@container-md": "@container-desktop",
|
||||
"@container-large-desktop": "((1140px + @grid-gutter-width))",
|
||||
"@container-lg": "@container-large-desktop"
|
||||
},
|
||||
"css": [
|
||||
"print.less",
|
||||
"type.less",
|
||||
"code.less",
|
||||
"grid.less",
|
||||
"tables.less",
|
||||
"forms.less",
|
||||
"buttons.less",
|
||||
"glyphicons.less",
|
||||
"button-groups.less",
|
||||
"input-groups.less",
|
||||
"navs.less",
|
||||
"navbar.less",
|
||||
"breadcrumbs.less",
|
||||
"pagination.less",
|
||||
"pager.less",
|
||||
"labels.less",
|
||||
"badges.less",
|
||||
"jumbotron.less",
|
||||
"thumbnails.less",
|
||||
"alerts.less",
|
||||
"progress-bars.less",
|
||||
"media.less",
|
||||
"list-group.less",
|
||||
"panels.less",
|
||||
"wells.less",
|
||||
"close.less",
|
||||
"component-animations.less",
|
||||
"dropdowns.less",
|
||||
"tooltip.less",
|
||||
"popovers.less",
|
||||
"modals.less",
|
||||
"carousel.less",
|
||||
"utilities.less",
|
||||
"responsive-utilities.less"
|
||||
],
|
||||
"js": [
|
||||
"alert.js",
|
||||
"button.js",
|
||||
"carousel.js",
|
||||
"dropdown.js",
|
||||
"modal.js",
|
||||
"tooltip.js",
|
||||
"popover.js",
|
||||
"tab.js",
|
||||
"affix.js",
|
||||
"collapse.js",
|
||||
"scrollspy.js",
|
||||
"transition.js"
|
||||
]
|
||||
}
|
346
app/vendor/bootstrap/css/bootstrap-theme.css
vendored
Executable file
346
app/vendor/bootstrap/css/bootstrap-theme.css
vendored
Executable file
@ -0,0 +1,346 @@
|
||||
/*!
|
||||
* Bootstrap v3.1.0 (http://getbootstrap.com)
|
||||
* Copyright 2011-2014 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, 0.2);
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 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, 0.125);
|
||||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
.btn:active,
|
||||
.btn.active {
|
||||
background-image: none;
|
||||
}
|
||||
.btn-default {
|
||||
background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
|
||||
background-image: linear-gradient(to bottom, #ffffff 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;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
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-primary {
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #2b669a;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus {
|
||||
background-color: #2d6ca2;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-primary:active,
|
||||
.btn-primary.active {
|
||||
background-color: #2d6ca2;
|
||||
border-color: #2b669a;
|
||||
}
|
||||
.btn-success {
|
||||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
||||
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-info {
|
||||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
||||
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-warning {
|
||||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
||||
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-danger {
|
||||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
||||
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;
|
||||
}
|
||||
.thumbnail,
|
||||
.img-thumbnail {
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:focus {
|
||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||
background-color: #e8e8e8;
|
||||
}
|
||||
.dropdown-menu > .active > a,
|
||||
.dropdown-menu > .active > a:hover,
|
||||
.dropdown-menu > .active > a:focus {
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
|
||||
background-color: #357ebd;
|
||||
}
|
||||
.navbar-default {
|
||||
background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
|
||||
background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
.navbar-default .navbar-nav > .active > a {
|
||||
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
|
||||
background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
|
||||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
|
||||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
.navbar-brand,
|
||||
.navbar-nav > li > a {
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
.navbar-inverse {
|
||||
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);
|
||||
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
}
|
||||
.navbar-inverse .navbar-nav > .active > a {
|
||||
background-image: -webkit-linear-gradient(top, #222222 0%, #282828 100%);
|
||||
background-image: linear-gradient(to bottom, #222222 0%, #282828 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
|
||||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
|
||||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.navbar-inverse .navbar-brand,
|
||||
.navbar-inverse .navbar-nav > li > a {
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.navbar-static-top,
|
||||
.navbar-fixed-top,
|
||||
.navbar-fixed-bottom {
|
||||
border-radius: 0;
|
||||
}
|
||||
.alert {
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.alert-success {
|
||||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
||||
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
|
||||
border-color: #b2dba1;
|
||||
}
|
||||
.alert-info {
|
||||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
||||
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
|
||||
border-color: #9acfea;
|
||||
}
|
||||
.alert-warning {
|
||||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
||||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
|
||||
border-color: #f5e79e;
|
||||
}
|
||||
.alert-danger {
|
||||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
||||
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
|
||||
border-color: #dca7a7;
|
||||
}
|
||||
.progress {
|
||||
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
||||
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
|
||||
}
|
||||
.progress-bar {
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
|
||||
}
|
||||
.progress-bar-success {
|
||||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
||||
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
|
||||
}
|
||||
.progress-bar-info {
|
||||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
||||
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
|
||||
}
|
||||
.progress-bar-warning {
|
||||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
||||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
|
||||
}
|
||||
.progress-bar-danger {
|
||||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
||||
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
|
||||
}
|
||||
.list-group {
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
.list-group-item.active,
|
||||
.list-group-item.active:hover,
|
||||
.list-group-item.active:focus {
|
||||
text-shadow: 0 -1px 0 #3071a9;
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
|
||||
border-color: #3278b3;
|
||||
}
|
||||
.panel {
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.panel-default > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||
}
|
||||
.panel-primary > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
|
||||
}
|
||||
.panel-success > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
||||
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
|
||||
}
|
||||
.panel-info > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
||||
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
|
||||
}
|
||||
.panel-warning > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
||||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
|
||||
}
|
||||
.panel-danger > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
||||
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
|
||||
}
|
||||
.well {
|
||||
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
||||
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
|
||||
border-color: #dcdcdc;
|
||||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
}
|
7
app/vendor/bootstrap/css/bootstrap-theme.min.css
vendored
Executable file
7
app/vendor/bootstrap/css/bootstrap-theme.min.css
vendored
Executable file
File diff suppressed because one or more lines are too long
3640
app/vendor/bootstrap/css/bootstrap.css
vendored
Normal file → Executable file
3640
app/vendor/bootstrap/css/bootstrap.css
vendored
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
7
app/vendor/bootstrap/css/bootstrap.min.css
vendored
Executable file
7
app/vendor/bootstrap/css/bootstrap.min.css
vendored
Executable file
File diff suppressed because one or more lines are too long
0
app/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot
vendored
Normal file → Executable file
0
app/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot
vendored
Normal file → Executable file
0
app/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg
vendored
Normal file → Executable file
0
app/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg
vendored
Normal file → Executable file
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
0
app/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf
vendored
Normal file → Executable file
0
app/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf
vendored
Normal file → Executable file
0
app/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff
vendored
Normal file → Executable file
0
app/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff
vendored
Normal file → Executable file
1217
app/vendor/bootstrap/js/bootstrap.js
vendored
Normal file → Executable file
1217
app/vendor/bootstrap/js/bootstrap.js
vendored
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
7
app/vendor/bootstrap/js/bootstrap.min.js
vendored
Executable file
7
app/vendor/bootstrap/js/bootstrap.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
@ -2,63 +2,10 @@
|
||||
* angular-ui-bootstrap
|
||||
* http://angular-ui.github.io/bootstrap/
|
||||
|
||||
* Version: 0.10.0 - 2014-01-28
|
||||
* Version: 0.10.0 - 2014-02-10
|
||||
* License: MIT
|
||||
*/
|
||||
angular.module("ui.bootstrap", ["ui.bootstrap.dropdownToggle","ui.bootstrap.transition","ui.bootstrap.modal","ui.bootstrap.position","ui.bootstrap.bindHtml","ui.bootstrap.tooltip"]);
|
||||
/*
|
||||
* dropdownToggle - Provides dropdown menu functionality in place of bootstrap js
|
||||
* @restrict class or attribute
|
||||
* @example:
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle">My Dropdown Menu</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="choice in dropChoices">
|
||||
<a ng-href="{{choice.href}}">{{choice.text}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
*/
|
||||
|
||||
angular.module('ui.bootstrap.dropdownToggle', []).directive('dropdownToggle', ['$document', '$location', function ($document, $location) {
|
||||
var openElement = null,
|
||||
closeMenu = angular.noop;
|
||||
return {
|
||||
restrict: 'CA',
|
||||
link: function(scope, element, attrs) {
|
||||
scope.$watch('$location.path', function() { closeMenu(); });
|
||||
element.parent().bind('click', function() { closeMenu(); });
|
||||
element.bind('click', function (event) {
|
||||
|
||||
var elementWasOpen = (element === openElement);
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
if (!!openElement) {
|
||||
closeMenu();
|
||||
}
|
||||
|
||||
if (!elementWasOpen && !element.hasClass('disabled') && !element.prop('disabled')) {
|
||||
element.parent().addClass('open');
|
||||
openElement = element;
|
||||
closeMenu = function (event) {
|
||||
if (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
$document.unbind('click', closeMenu);
|
||||
element.parent().removeClass('open');
|
||||
closeMenu = angular.noop;
|
||||
openElement = null;
|
||||
};
|
||||
$document.bind('click', closeMenu);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
|
||||
angular.module("ui.bootstrap", ["ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.dropdownToggle","ui.bootstrap.modal","ui.bootstrap.position","ui.bootstrap.bindHtml","ui.bootstrap.tooltip"]);
|
||||
angular.module('ui.bootstrap.transition', [])
|
||||
|
||||
/**
|
||||
@ -142,6 +89,135 @@ angular.module('ui.bootstrap.transition', [])
|
||||
return $transition;
|
||||
}]);
|
||||
|
||||
angular.module('ui.bootstrap.collapse', ['ui.bootstrap.transition'])
|
||||
|
||||
.directive('collapse', ['$transition', function ($transition, $timeout) {
|
||||
|
||||
return {
|
||||
link: function (scope, element, attrs) {
|
||||
|
||||
var initialAnimSkip = true;
|
||||
var currentTransition;
|
||||
|
||||
function doTransition(change) {
|
||||
var newTransition = $transition(element, change);
|
||||
if (currentTransition) {
|
||||
currentTransition.cancel();
|
||||
}
|
||||
currentTransition = newTransition;
|
||||
newTransition.then(newTransitionDone, newTransitionDone);
|
||||
return newTransition;
|
||||
|
||||
function newTransitionDone() {
|
||||
// Make sure it's this transition, otherwise, leave it alone.
|
||||
if (currentTransition === newTransition) {
|
||||
currentTransition = undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function expand() {
|
||||
if (initialAnimSkip) {
|
||||
initialAnimSkip = false;
|
||||
expandDone();
|
||||
} else {
|
||||
element.removeClass('collapse').addClass('collapsing');
|
||||
doTransition({ height: element[0].scrollHeight + 'px' }).then(expandDone);
|
||||
}
|
||||
}
|
||||
|
||||
function expandDone() {
|
||||
element.removeClass('collapsing');
|
||||
element.addClass('collapse in');
|
||||
element.css({height: 'auto'});
|
||||
}
|
||||
|
||||
function collapse() {
|
||||
if (initialAnimSkip) {
|
||||
initialAnimSkip = false;
|
||||
collapseDone();
|
||||
element.css({height: 0});
|
||||
} else {
|
||||
// CSS transitions don't work with height: auto, so we have to manually change the height to a specific value
|
||||
element.css({ height: element[0].scrollHeight + 'px' });
|
||||
//trigger reflow so a browser realizes that height was updated from auto to a specific value
|
||||
var x = element[0].offsetWidth;
|
||||
|
||||
element.removeClass('collapse in').addClass('collapsing');
|
||||
|
||||
doTransition({ height: 0 }).then(collapseDone);
|
||||
}
|
||||
}
|
||||
|
||||
function collapseDone() {
|
||||
element.removeClass('collapsing');
|
||||
element.addClass('collapse');
|
||||
}
|
||||
|
||||
scope.$watch(attrs.collapse, function (shouldCollapse) {
|
||||
if (shouldCollapse) {
|
||||
collapse();
|
||||
} else {
|
||||
expand();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
|
||||
/*
|
||||
* dropdownToggle - Provides dropdown menu functionality in place of bootstrap js
|
||||
* @restrict class or attribute
|
||||
* @example:
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle">My Dropdown Menu</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="choice in dropChoices">
|
||||
<a ng-href="{{choice.href}}">{{choice.text}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
*/
|
||||
|
||||
angular.module('ui.bootstrap.dropdownToggle', []).directive('dropdownToggle', ['$document', '$location', function ($document, $location) {
|
||||
var openElement = null,
|
||||
closeMenu = angular.noop;
|
||||
return {
|
||||
restrict: 'CA',
|
||||
link: function(scope, element, attrs) {
|
||||
scope.$watch('$location.path', function() { closeMenu(); });
|
||||
element.parent().bind('click', function() { closeMenu(); });
|
||||
element.bind('click', function (event) {
|
||||
|
||||
var elementWasOpen = (element === openElement);
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
if (!!openElement) {
|
||||
closeMenu();
|
||||
}
|
||||
|
||||
if (!elementWasOpen && !element.hasClass('disabled') && !element.prop('disabled')) {
|
||||
element.parent().addClass('open');
|
||||
openElement = element;
|
||||
closeMenu = function (event) {
|
||||
if (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
$document.unbind('click', closeMenu);
|
||||
element.parent().removeClass('open');
|
||||
closeMenu = angular.noop;
|
||||
openElement = null;
|
||||
};
|
||||
$document.bind('click', closeMenu);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
|
||||
angular.module('ui.bootstrap.modal', ['ui.bootstrap.transition'])
|
||||
|
||||
/**
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,64 +2,11 @@
|
||||
* angular-ui-bootstrap
|
||||
* http://angular-ui.github.io/bootstrap/
|
||||
|
||||
* Version: 0.10.0 - 2014-01-28
|
||||
* Version: 0.10.0 - 2014-02-10
|
||||
* License: MIT
|
||||
*/
|
||||
angular.module("ui.bootstrap", ["ui.bootstrap.tpls", "ui.bootstrap.dropdownToggle","ui.bootstrap.transition","ui.bootstrap.modal","ui.bootstrap.position","ui.bootstrap.bindHtml","ui.bootstrap.tooltip"]);
|
||||
angular.module("ui.bootstrap", ["ui.bootstrap.tpls", "ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.dropdownToggle","ui.bootstrap.modal","ui.bootstrap.position","ui.bootstrap.bindHtml","ui.bootstrap.tooltip"]);
|
||||
angular.module("ui.bootstrap.tpls", ["template/modal/backdrop.html","template/modal/window.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html"]);
|
||||
/*
|
||||
* dropdownToggle - Provides dropdown menu functionality in place of bootstrap js
|
||||
* @restrict class or attribute
|
||||
* @example:
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle">My Dropdown Menu</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="choice in dropChoices">
|
||||
<a ng-href="{{choice.href}}">{{choice.text}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
*/
|
||||
|
||||
angular.module('ui.bootstrap.dropdownToggle', []).directive('dropdownToggle', ['$document', '$location', function ($document, $location) {
|
||||
var openElement = null,
|
||||
closeMenu = angular.noop;
|
||||
return {
|
||||
restrict: 'CA',
|
||||
link: function(scope, element, attrs) {
|
||||
scope.$watch('$location.path', function() { closeMenu(); });
|
||||
element.parent().bind('click', function() { closeMenu(); });
|
||||
element.bind('click', function (event) {
|
||||
|
||||
var elementWasOpen = (element === openElement);
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
if (!!openElement) {
|
||||
closeMenu();
|
||||
}
|
||||
|
||||
if (!elementWasOpen && !element.hasClass('disabled') && !element.prop('disabled')) {
|
||||
element.parent().addClass('open');
|
||||
openElement = element;
|
||||
closeMenu = function (event) {
|
||||
if (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
$document.unbind('click', closeMenu);
|
||||
element.parent().removeClass('open');
|
||||
closeMenu = angular.noop;
|
||||
openElement = null;
|
||||
};
|
||||
$document.bind('click', closeMenu);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
|
||||
angular.module('ui.bootstrap.transition', [])
|
||||
|
||||
/**
|
||||
@ -143,6 +90,135 @@ angular.module('ui.bootstrap.transition', [])
|
||||
return $transition;
|
||||
}]);
|
||||
|
||||
angular.module('ui.bootstrap.collapse', ['ui.bootstrap.transition'])
|
||||
|
||||
.directive('collapse', ['$transition', function ($transition, $timeout) {
|
||||
|
||||
return {
|
||||
link: function (scope, element, attrs) {
|
||||
|
||||
var initialAnimSkip = true;
|
||||
var currentTransition;
|
||||
|
||||
function doTransition(change) {
|
||||
var newTransition = $transition(element, change);
|
||||
if (currentTransition) {
|
||||
currentTransition.cancel();
|
||||
}
|
||||
currentTransition = newTransition;
|
||||
newTransition.then(newTransitionDone, newTransitionDone);
|
||||
return newTransition;
|
||||
|
||||
function newTransitionDone() {
|
||||
// Make sure it's this transition, otherwise, leave it alone.
|
||||
if (currentTransition === newTransition) {
|
||||
currentTransition = undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function expand() {
|
||||
if (initialAnimSkip) {
|
||||
initialAnimSkip = false;
|
||||
expandDone();
|
||||
} else {
|
||||
element.removeClass('collapse').addClass('collapsing');
|
||||
doTransition({ height: element[0].scrollHeight + 'px' }).then(expandDone);
|
||||
}
|
||||
}
|
||||
|
||||
function expandDone() {
|
||||
element.removeClass('collapsing');
|
||||
element.addClass('collapse in');
|
||||
element.css({height: 'auto'});
|
||||
}
|
||||
|
||||
function collapse() {
|
||||
if (initialAnimSkip) {
|
||||
initialAnimSkip = false;
|
||||
collapseDone();
|
||||
element.css({height: 0});
|
||||
} else {
|
||||
// CSS transitions don't work with height: auto, so we have to manually change the height to a specific value
|
||||
element.css({ height: element[0].scrollHeight + 'px' });
|
||||
//trigger reflow so a browser realizes that height was updated from auto to a specific value
|
||||
var x = element[0].offsetWidth;
|
||||
|
||||
element.removeClass('collapse in').addClass('collapsing');
|
||||
|
||||
doTransition({ height: 0 }).then(collapseDone);
|
||||
}
|
||||
}
|
||||
|
||||
function collapseDone() {
|
||||
element.removeClass('collapsing');
|
||||
element.addClass('collapse');
|
||||
}
|
||||
|
||||
scope.$watch(attrs.collapse, function (shouldCollapse) {
|
||||
if (shouldCollapse) {
|
||||
collapse();
|
||||
} else {
|
||||
expand();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
|
||||
/*
|
||||
* dropdownToggle - Provides dropdown menu functionality in place of bootstrap js
|
||||
* @restrict class or attribute
|
||||
* @example:
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle">My Dropdown Menu</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="choice in dropChoices">
|
||||
<a ng-href="{{choice.href}}">{{choice.text}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
*/
|
||||
|
||||
angular.module('ui.bootstrap.dropdownToggle', []).directive('dropdownToggle', ['$document', '$location', function ($document, $location) {
|
||||
var openElement = null,
|
||||
closeMenu = angular.noop;
|
||||
return {
|
||||
restrict: 'CA',
|
||||
link: function(scope, element, attrs) {
|
||||
scope.$watch('$location.path', function() { closeMenu(); });
|
||||
element.parent().bind('click', function() { closeMenu(); });
|
||||
element.bind('click', function (event) {
|
||||
|
||||
var elementWasOpen = (element === openElement);
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
if (!!openElement) {
|
||||
closeMenu();
|
||||
}
|
||||
|
||||
if (!elementWasOpen && !element.hasClass('disabled') && !element.prop('disabled')) {
|
||||
element.parent().addClass('open');
|
||||
openElement = element;
|
||||
closeMenu = function (event) {
|
||||
if (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
$document.unbind('click', closeMenu);
|
||||
element.parent().removeClass('open');
|
||||
closeMenu = angular.noop;
|
||||
openElement = null;
|
||||
};
|
||||
$document.bind('click', closeMenu);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
|
||||
angular.module('ui.bootstrap.modal', ['ui.bootstrap.transition'])
|
||||
|
||||
/**
|
||||
@ -998,9 +1074,9 @@ angular.module("template/modal/backdrop.html", []).run(["$templateCache", functi
|
||||
angular.module("template/modal/window.html", []).run(["$templateCache", function($templateCache) {
|
||||
$templateCache.put("template/modal/window.html",
|
||||
"<div tabindex=\"-1\" class=\"modal fade {{ windowClass }}\" ng-class=\"{in: animate}\" ng-style=\"{'z-index': 1050 + index*10, display: 'block'}\" ng-click=\"close($event)\">\n" +
|
||||
" <div class=\"modal_close_wrap\" ng-click=\"close($event)\">\n" +
|
||||
" <div class=\"modal_close\"></div>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"modal_close_wrap\" ng-click=\"close($event)\">\n" +
|
||||
" <div class=\"modal_close\"></div>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"modal-dialog\"><div class=\"modal-content\" ng-transclude></div></div>\n" +
|
||||
"</div>");
|
||||
}]);
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user