From a3715e410eae6078e416ccdae3ae9ba36265e619 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Sat, 3 Sep 2016 08:27:40 -0400 Subject: show alarms on top of modals as well Former-commit-id: fa3da1700499e8b90892f571034e9d939e3e140e --- www/css/style.css | 2 + www/external/ionic.content.banner.js | 189 +++++++++++++++++++++ www/external/ionic.content.banner.min.css | 1 + www/index.html | 4 +- www/lang/locale-en.json | 4 +- www/lib/ionic-content-banner/.bower.json | 55 ------ www/lib/ionic-content-banner/.idea/.name | 1 - .../.idea/ionic-content-banner.iml | 11 -- www/lib/ionic-content-banner/.idea/misc.xml | 14 -- www/lib/ionic-content-banner/.idea/modules.xml | 8 - www/lib/ionic-content-banner/.idea/vcs.xml | 6 - www/lib/ionic-content-banner/bower.json | 44 ----- .../dist/ionic.content.banner.css | 53 ------ .../dist/ionic.content.banner.js | 181 -------------------- .../dist/ionic.content.banner.min.css | 1 - .../dist/ionic.content.banner.min.js | 1 - .../scss/ionic.content.banner.scss | 71 -------- www/templates/events-modal.html | 2 +- 18 files changed, 197 insertions(+), 451 deletions(-) create mode 100644 www/external/ionic.content.banner.js create mode 100644 www/external/ionic.content.banner.min.css delete mode 100644 www/lib/ionic-content-banner/.bower.json delete mode 100644 www/lib/ionic-content-banner/.idea/.name delete mode 100644 www/lib/ionic-content-banner/.idea/ionic-content-banner.iml delete mode 100644 www/lib/ionic-content-banner/.idea/misc.xml delete mode 100644 www/lib/ionic-content-banner/.idea/modules.xml delete mode 100644 www/lib/ionic-content-banner/.idea/vcs.xml delete mode 100644 www/lib/ionic-content-banner/bower.json delete mode 100644 www/lib/ionic-content-banner/dist/ionic.content.banner.css delete mode 100644 www/lib/ionic-content-banner/dist/ionic.content.banner.js delete mode 100644 www/lib/ionic-content-banner/dist/ionic.content.banner.min.css delete mode 100644 www/lib/ionic-content-banner/dist/ionic.content.banner.min.js delete mode 100644 www/lib/ionic-content-banner/scss/ionic.content.banner.scss (limited to 'www') diff --git a/www/css/style.css b/www/css/style.css index 1e2fc162..c1c78f1e 100644 --- a/www/css/style.css +++ b/www/css/style.css @@ -470,6 +470,8 @@ http://www.cssportal.com/tryit/index.php?file=blog/css-notification-badge */ position:absolute; top:20px; + font-size:80%; + line-height:100%; left: 50%; transform: translate(-50%, 0%); diff --git a/www/external/ionic.content.banner.js b/www/external/ionic.content.banner.js new file mode 100644 index 00000000..575b0978 --- /dev/null +++ b/www/external/ionic.content.banner.js @@ -0,0 +1,189 @@ +angular.module('jett.ionic.content.banner', ['ionic']); +/* global angular */ +(function (angular) { + 'use strict'; + + angular.module('jett.ionic.content.banner') + .directive('ionContentBanner', [ + '$interval', + function ($interval) { + return { + restrict: 'E', + scope: true, + link: function ($scope, $element) { + var stopInterval; + + $scope.currentIndex = 0; + + if ($scope.text.length > 1) { + stopInterval = $interval(function () { + $scope.currentIndex = ($scope.currentIndex < $scope.text.length - 1) ? $scope.currentIndex + 1 : 0; + }, $scope.interval); + } + + $scope.$on('$destroy', function() { + $element.remove(); + if (stopInterval) { + $interval.cancel(stopInterval); + } + }); + }, + template: + '
' + + '
' + + '
' + + '' + }; + }]); + +})(angular); + +/* global angular,ionic */ +/** + * @ngdoc service + * @name $ionicContentBanner + * @module ionic + * @description The Content Banner is an animated banner that will show specific information to a user. + */ +(function (angular, ionic) { + 'use strict'; + + angular.module('jett.ionic.content.banner') + .factory('$ionicContentBanner', [ + '$document', + '$rootScope', + '$compile', + '$timeout', + '$ionicPlatform', + function ($document, $rootScope, $compile, $timeout, $ionicPlatform) { + + function isActiveView (node) { + // walk up the child-parent node chain until we get to the root or the BODY + while (node !== null && node.nodeName !== 'BODY') { + var navView = node.getAttribute("nav-view"); + + // as soon as we encounter a cached (parent) view then we know the view can't be active + if (navView !== null && navView === 'cached') { + return false; + } + node = node.parentNode; + } + // no cached parent seen, the view must be really active + return true; + } + + function getActiveView (body) { + // check if there is an active modal + var modal = body.querySelector('ion-modal-view[class*="ng-enter-active"]'); + if (modal != null) { + // check if modal is not leaving + if (modal.getAttribute('class').indexOf('ng-leave') == -1) { + return modal; + } + } + // get the candidate active views + var views = body.querySelectorAll('ion-view[nav-view="active"]'); + + // only one candidate, so we just take it + if (views.length === 1) { + return views[0]; + } + + // convert the NodeList to an array, filter it using 'isActiveView' and return the first element + return Array.prototype.slice.call(views).filter(function (view) { + return isActiveView(view); + })[0]; + } + + /** + * @ngdoc method + * @name $ionicContentBanner#show + * @description + * Load and show a new content banner. + */ + function contentBanner (opts) { + var scope = $rootScope.$new(true); + + angular.extend(scope, { + icon: 'ion-ios-close-empty', + transition: 'vertical', + interval: 7000, + type: 'info', + $deregisterBackButton: angular.noop, + closeOnStateChange: true, + autoClose: null + }, opts); + + // Compile the template + var classes = 'content-banner ' + scope.type + ' content-banner-transition-' + scope.transition; + var element = scope.element = $compile('')(scope); + var body = $document[0].body; + + var stateChangeListenDone = scope.closeOnStateChange ? + $rootScope.$on('$stateChangeSuccess', function() { scope.close(); }) : + angular.noop; + + scope.$deregisterBackButton = $ionicPlatform.registerBackButtonAction( + function() { + $timeout(scope.close); + }, 300 + ); + + scope.close = function() { + if (scope.removed) { + return; + } + scope.removed = true; + + ionic.requestAnimationFrame(function () { + element.removeClass('content-banner-in'); + + $timeout(function () { + scope.$destroy(); + element.remove(); + body = stateChangeListenDone = null; + }, 400); + }); + + scope.$deregisterBackButton(); + stateChangeListenDone(); + }; + + scope.show = function() { + if (scope.removed) { + return; + } + + getActiveView(body).querySelector('.scroll-content').appendChild(element[0]); + + ionic.requestAnimationFrame(function () { + $timeout(function () { + element.addClass('content-banner-in'); + //automatically close if autoClose is configured + if (scope.autoClose) { + $timeout(function () { + scope.close(); + }, scope.autoClose, false); + } + }, 20, false); + }); + }; + + //set small timeout to let ionic set the active/cached view + $timeout(function () { + scope.show(); + }, 10, false); + + // Expose the scope on $ionContentBanner's return value for the sake of testing it. + scope.close.$scope = scope; + + return scope.close; + } + + return { + show: contentBanner + }; + }]); + + +})(angular, ionic); diff --git a/www/external/ionic.content.banner.min.css b/www/external/ionic.content.banner.min.css new file mode 100644 index 00000000..04d37d1f --- /dev/null +++ b/www/external/ionic.content.banner.min.css @@ -0,0 +1 @@ +@charset "UTF-8";.content-banner{width:100%;color:#fff;height:30px;line-height:30px;position:absolute;top:0;opacity:.7}.content-banner.error{background-color:red}.content-banner.info{background-color:#333}.content-banner .content-banner-text{-webkit-transition:opacity 500ms linear;transition:opacity 500ms linear;position:absolute;top:0;right:41px;left:41px;text-align:center}.content-banner .content-banner-text.active{opacity:1}.content-banner .content-banner-text:not(.active){opacity:0}.content-banner .content-banner-close{position:absolute;right:5px;top:0;padding:0 12px;height:100%;line-height:30px;min-height:0;color:#fff}.content-banner .content-banner-close:before{line-height:30px}.content-banner-transition-vertical{-webkit-transition:-webkit-transform linear 250ms;transition:transform linear 250ms;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.content-banner-transition-fade{-webkit-transition:opacity 400ms linear;transition:opacity 400ms linear;opacity:0}.content-banner-in{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:.7} \ No newline at end of file diff --git a/www/index.html b/www/index.html index 7892c0b3..9fd698a4 100644 --- a/www/index.html +++ b/www/index.html @@ -26,7 +26,7 @@ - + @@ -141,7 +141,7 @@ - + diff --git a/www/lang/locale-en.json b/www/lang/locale-en.json index 2bb19bf1..996e3a81 100644 --- a/www/lang/locale-en.json +++ b/www/lang/locale-en.json @@ -3,12 +3,12 @@ "k1HourSummary" :"1 hour summary", "k1MonthSummary" :"1 month summary", "k1WeekSummary" :"1 week summary", - "kAgo" : "ago", + "kAgo" :"ago", "kAlarmAPIError" :"error - please make sure your API supports this feature", "kAlarmFrameCount" :"Alarm Frame Count", "kAlarmMaxFPS" :"Alarm Max FPS", "kAlarms" :"Alarms", - "kAll" : "All", + "kAll" :"All", "kAnalyze" :"Analyze", "kApiUrl" :"ZM api url", "kApplyingChanges" :"Applying changes. Please wait", diff --git a/www/lib/ionic-content-banner/.bower.json b/www/lib/ionic-content-banner/.bower.json deleted file mode 100644 index 1a29595f..00000000 --- a/www/lib/ionic-content-banner/.bower.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "ionic-content-banner", - "version": "1.0.1", - "description": "A content banner directive for Ionic apps that animates in on the active ion-content", - "author": "Devin Jett (https://github.com/djett41)", - "main": [ - "dist/ionic.content.banner.css", - "dist/ionic.content.banner.js" - ], - "repository": { - "type": "git", - "url": "https://github.com/djett41/ionic-content-banner.git" - }, - "ignore": [ - "demo", - "js", - "test", - ".gitignore", - "gulpfile.js", - "karma.conf.js", - "LICENSE", - "package.json", - "README.md" - ], - "dependencies": {}, - "devDependencies": { - "ionic": "^1.0.0-rc.0", - "angular-mocks": "1.4.3" - }, - "keywords": [ - "mobile", - "html5", - "ionic", - "cordova", - "phonegap", - "banner", - "info", - "error", - "angularjs", - "angular" - ], - "license": "MIT", - "private": false, - "homepage": "https://github.com/djett41/ionic-content-banner", - "_release": "1.0.1", - "_resolution": { - "type": "version", - "tag": "v1.0.1", - "commit": "79ce49f1df0b70079424f07e3c9940262cfe8123" - }, - "_source": "git://github.com/djett41/ionic-content-banner.git", - "_target": "~1.0.1", - "_originalSource": "ionic-content-banner", - "_direct": true -} \ No newline at end of file diff --git a/www/lib/ionic-content-banner/.idea/.name b/www/lib/ionic-content-banner/.idea/.name deleted file mode 100644 index 72424e06..00000000 --- a/www/lib/ionic-content-banner/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -ionic-content-banner \ No newline at end of file diff --git a/www/lib/ionic-content-banner/.idea/ionic-content-banner.iml b/www/lib/ionic-content-banner/.idea/ionic-content-banner.iml deleted file mode 100644 index dfda860c..00000000 --- a/www/lib/ionic-content-banner/.idea/ionic-content-banner.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/www/lib/ionic-content-banner/.idea/misc.xml b/www/lib/ionic-content-banner/.idea/misc.xml deleted file mode 100644 index 19f74da8..00000000 --- a/www/lib/ionic-content-banner/.idea/misc.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/www/lib/ionic-content-banner/.idea/modules.xml b/www/lib/ionic-content-banner/.idea/modules.xml deleted file mode 100644 index a0a4aa02..00000000 --- a/www/lib/ionic-content-banner/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/www/lib/ionic-content-banner/.idea/vcs.xml b/www/lib/ionic-content-banner/.idea/vcs.xml deleted file mode 100644 index 94a25f7f..00000000 --- a/www/lib/ionic-content-banner/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/www/lib/ionic-content-banner/bower.json b/www/lib/ionic-content-banner/bower.json deleted file mode 100644 index 7e330544..00000000 --- a/www/lib/ionic-content-banner/bower.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "ionic-content-banner", - "version": "1.0.1", - "description": "A content banner directive for Ionic apps that animates in on the active ion-content", - "author": "Devin Jett (https://github.com/djett41)", - "main": [ - "dist/ionic.content.banner.css", - "dist/ionic.content.banner.js" - ], - "repository": { - "type": "git", - "url": "https://github.com/djett41/ionic-content-banner.git" - }, - "ignore": [ - "demo", - "js", - "test", - ".gitignore", - "gulpfile.js", - "karma.conf.js", - "LICENSE", - "package.json", - "README.md" - ], - "dependencies": {}, - "devDependencies": { - "ionic": "^1.0.0-rc.0", - "angular-mocks": "1.4.3" - }, - "keywords": [ - "mobile", - "html5", - "ionic", - "cordova", - "phonegap", - "banner", - "info", - "error", - "angularjs", - "angular" - ], - "license": "MIT", - "private": false -} diff --git a/www/lib/ionic-content-banner/dist/ionic.content.banner.css b/www/lib/ionic-content-banner/dist/ionic.content.banner.css deleted file mode 100644 index 79519cb9..00000000 --- a/www/lib/ionic-content-banner/dist/ionic.content.banner.css +++ /dev/null @@ -1,53 +0,0 @@ -@charset "UTF-8"; - -.content-banner { - width: 100%; - color: white; - height: 30px; - line-height: 30px; - position: absolute; - top: 0; - opacity: 0.7; } -.content-banner.error { - background-color: red; } -.content-banner.info { - background-color: #333; } -.content-banner .content-banner-text { - -webkit-transition: opacity 500ms linear; - transition: opacity 500ms linear; - position: absolute; - top: 0; - right: 41px; - left: 41px; - text-align: center; } -.content-banner .content-banner-text.active { - opacity: 1; } -.content-banner .content-banner-text:not(.active) { - opacity: 0; } -.content-banner .content-banner-close { - position: absolute; - right: 5px; - top: 0; - padding: 0 12px; - height: 100%; - line-height: 30px; - min-height: 0; - color: white; } -.content-banner .content-banner-close:before { - line-height: 30px; } - -.content-banner-transition-vertical { - -webkit-transition: -webkit-transform linear 250ms; - transition: transform linear 250ms; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); } - -.content-banner-transition-fade { - -webkit-transition: opacity 400ms linear; - transition: opacity 400ms linear; - opacity: 0; } - -.content-banner-in { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 0.7; } diff --git a/www/lib/ionic-content-banner/dist/ionic.content.banner.js b/www/lib/ionic-content-banner/dist/ionic.content.banner.js deleted file mode 100644 index e79f46ca..00000000 --- a/www/lib/ionic-content-banner/dist/ionic.content.banner.js +++ /dev/null @@ -1,181 +0,0 @@ -angular.module('jett.ionic.content.banner', ['ionic']); -/* global angular */ -(function (angular) { - 'use strict'; - - angular.module('jett.ionic.content.banner') - .directive('ionContentBanner', [ - '$interval', - function ($interval) { - return { - restrict: 'E', - scope: true, - link: function ($scope, $element) { - var stopInterval; - - $scope.currentIndex = 0; - - if ($scope.text.length > 1) { - stopInterval = $interval(function () { - $scope.currentIndex = ($scope.currentIndex < $scope.text.length - 1) ? $scope.currentIndex + 1 : 0; - }, $scope.interval); - } - - $scope.$on('$destroy', function() { - $element.remove(); - if (stopInterval) { - $interval.cancel(stopInterval); - } - }); - }, - template: - '
' + - '
' + - '
' + - '' - }; - }]); - -})(angular); - -/* global angular,ionic */ -/** - * @ngdoc service - * @name $ionicContentBanner - * @module ionic - * @description The Content Banner is an animated banner that will show specific information to a user. - */ -(function (angular, ionic) { - 'use strict'; - - angular.module('jett.ionic.content.banner') - .factory('$ionicContentBanner', [ - '$document', - '$rootScope', - '$compile', - '$timeout', - '$ionicPlatform', - function ($document, $rootScope, $compile, $timeout, $ionicPlatform) { - - function isActiveView (node) { - // walk up the child-parent node chain until we get to the root or the BODY - while (node !== null && node.nodeName !== 'BODY') { - var navView = node.getAttribute("nav-view"); - - // as soon as we encounter a cached (parent) view then we know the view can't be active - if (navView !== null && navView === 'cached') { - return false; - } - node = node.parentNode; - } - // no cached parent seen, the view must be really active - return true; - } - - function getActiveView (body) { - // get the candidate active views - var views = body.querySelectorAll('ion-view[nav-view="active"]'); - - // only one candidate, so we just take it - if (views.length === 1) { - return views[0]; - } - - // convert the NodeList to an array, filter it using 'isActiveView' and return the first element - return Array.prototype.slice.call(views).filter(function (view) { - return isActiveView(view); - })[0]; - } - - /** - * @ngdoc method - * @name $ionicContentBanner#show - * @description - * Load and show a new content banner. - */ - function contentBanner (opts) { - var scope = $rootScope.$new(true); - - angular.extend(scope, { - icon: 'ion-ios-close-empty', - transition: 'vertical', - interval: 7000, - type: 'info', - $deregisterBackButton: angular.noop, - closeOnStateChange: true, - autoClose: null - }, opts); - - // Compile the template - var classes = 'content-banner ' + scope.type + ' content-banner-transition-' + scope.transition; - var element = scope.element = $compile('')(scope); - var body = $document[0].body; - - var stateChangeListenDone = scope.closeOnStateChange ? - $rootScope.$on('$stateChangeSuccess', function() { scope.close(); }) : - angular.noop; - - scope.$deregisterBackButton = $ionicPlatform.registerBackButtonAction( - function() { - $timeout(scope.close); - }, 300 - ); - - scope.close = function() { - if (scope.removed) { - return; - } - scope.removed = true; - - ionic.requestAnimationFrame(function () { - element.removeClass('content-banner-in'); - - $timeout(function () { - scope.$destroy(); - element.remove(); - body = stateChangeListenDone = null; - }, 400); - }); - - scope.$deregisterBackButton(); - stateChangeListenDone(); - }; - - scope.show = function() { - if (scope.removed) { - return; - } - - getActiveView(body).querySelector('.scroll-content').appendChild(element[0]); - - ionic.requestAnimationFrame(function () { - $timeout(function () { - element.addClass('content-banner-in'); - //automatically close if autoClose is configured - if (scope.autoClose) { - $timeout(function () { - scope.close(); - }, scope.autoClose, false); - } - }, 20, false); - }); - }; - - //set small timeout to let ionic set the active/cached view - $timeout(function () { - scope.show(); - }, 10, false); - - // Expose the scope on $ionContentBanner's return value for the sake of testing it. - scope.close.$scope = scope; - - return scope.close; - } - - return { - show: contentBanner - }; - }]); - - -})(angular, ionic); diff --git a/www/lib/ionic-content-banner/dist/ionic.content.banner.min.css b/www/lib/ionic-content-banner/dist/ionic.content.banner.min.css deleted file mode 100644 index 04d37d1f..00000000 --- a/www/lib/ionic-content-banner/dist/ionic.content.banner.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.content-banner{width:100%;color:#fff;height:30px;line-height:30px;position:absolute;top:0;opacity:.7}.content-banner.error{background-color:red}.content-banner.info{background-color:#333}.content-banner .content-banner-text{-webkit-transition:opacity 500ms linear;transition:opacity 500ms linear;position:absolute;top:0;right:41px;left:41px;text-align:center}.content-banner .content-banner-text.active{opacity:1}.content-banner .content-banner-text:not(.active){opacity:0}.content-banner .content-banner-close{position:absolute;right:5px;top:0;padding:0 12px;height:100%;line-height:30px;min-height:0;color:#fff}.content-banner .content-banner-close:before{line-height:30px}.content-banner-transition-vertical{-webkit-transition:-webkit-transform linear 250ms;transition:transform linear 250ms;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.content-banner-transition-fade{-webkit-transition:opacity 400ms linear;transition:opacity 400ms linear;opacity:0}.content-banner-in{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:.7} \ No newline at end of file diff --git a/www/lib/ionic-content-banner/dist/ionic.content.banner.min.js b/www/lib/ionic-content-banner/dist/ionic.content.banner.min.js deleted file mode 100644 index 3dede18f..00000000 --- a/www/lib/ionic-content-banner/dist/ionic.content.banner.min.js +++ /dev/null @@ -1 +0,0 @@ -angular.module("jett.ionic.content.banner",["ionic"]),function(n){"use strict";n.module("jett.ionic.content.banner").directive("ionContentBanner",["$interval",function(n){return{restrict:"E",scope:!0,link:function(e,t){var o;e.currentIndex=0,e.text.length>1&&(o=n(function(){e.currentIndex=e.currentIndex
'}}])}(angular),function(n,e){"use strict";n.module("jett.ionic.content.banner").factory("$ionicContentBanner",["$document","$rootScope","$compile","$timeout","$ionicPlatform",function(t,o,c,r,i){function a(n){for(;null!==n&&"BODY"!==n.nodeName;){var e=n.getAttribute("nav-view");if(null!==e&&"cached"===e)return!1;n=n.parentNode}return!0}function u(n){var e=n.querySelectorAll('ion-view[nav-view="active"]');return 1===e.length?e[0]:Array.prototype.slice.call(e).filter(function(n){return a(n)})[0]}function l(a){var l=o.$new(!0);n.extend(l,{icon:"ion-ios-close-empty",transition:"vertical",interval:7e3,type:"info",$deregisterBackButton:n.noop,closeOnStateChange:!0,autoClose:null},a);var s="content-banner "+l.type+" content-banner-transition-"+l.transition,d=l.element=c('')(l),f=t[0].body,v=l.closeOnStateChange?o.$on("$stateChangeSuccess",function(){l.close()}):n.noop;return l.$deregisterBackButton=i.registerBackButtonAction(function(){r(l.close)},300),l.close=function(){l.removed||(l.removed=!0,e.requestAnimationFrame(function(){d.removeClass("content-banner-in"),r(function(){l.$destroy(),d.remove(),f=v=null},400)}),l.$deregisterBackButton(),v())},l.show=function(){l.removed||(u(f).querySelector(".scroll-content").appendChild(d[0]),e.requestAnimationFrame(function(){r(function(){d.addClass("content-banner-in"),l.autoClose&&r(function(){l.close()},l.autoClose,!1)},20,!1)}))},r(function(){l.show()},10,!1),l.close.$scope=l,l.close}return{show:l}}])}(angular,ionic); diff --git a/www/lib/ionic-content-banner/scss/ionic.content.banner.scss b/www/lib/ionic-content-banner/scss/ionic.content.banner.scss deleted file mode 100644 index af57ea9f..00000000 --- a/www/lib/ionic-content-banner/scss/ionic.content.banner.scss +++ /dev/null @@ -1,71 +0,0 @@ -// Content Banner - -// Variables -//----------------------------------- - -$content-banner-height: 30px !default; -$content-banner-opacity: .7 !default; -$content-banner-error-bg: red !default; -$content-banner-info-bg: #333 !default; - -// Styles -//----------------------------------- - -.content-banner { - width: 100%; - color: white; - height: $content-banner-height; - line-height: $content-banner-height; - position: absolute; - top: 0; - opacity: $content-banner-opacity; - - &.error { - background-color: $content-banner-error-bg; - } - &.info { - background-color: $content-banner-info-bg; - } - .content-banner-text { - @include transition(opacity 500ms linear) ; - position: absolute; - top: 0; - right: ($button-padding * 2) + 5px + 12px; - left: ($button-padding * 2) + 5px + 12px; - text-align: center; - &.active { - opacity: 1; - } - &:not(.active){ - opacity: 0; - } - } - .content-banner-close { - position: absolute; - right: 5px; - top: 0; - padding: 0 $button-padding; - height: 100%; - line-height: $content-banner-height; - min-height: 0; - color: white; - &:before { - line-height: $content-banner-height; - } - } -} - -.content-banner-transition-vertical { - @include transition-transform(linear 250ms); - @include translate3d(0, -100%, 0); -} - -.content-banner-transition-fade { - @include transition(opacity 400ms linear) ; - opacity: 0; -} - -.content-banner-in { - @include translate3d(0, 0, 0); - opacity: $content-banner-opacity; -} \ No newline at end of file diff --git a/www/templates/events-modal.html b/www/templates/events-modal.html index 1c0f66d2..41f7d0eb 100644 --- a/www/templates/events-modal.html +++ b/www/templates/events-modal.html @@ -120,7 +120,7 @@ -
{{mName}}  {{'kEvent' | translate}}:{{d_eventId}} ({{humanizeTime}})
+
{{mName}}  {{humanizeTime}} ({{'kEvent' | translate}}:{{d_eventId}})
    -- cgit v1.2.3