diff options
| -rw-r--r-- | package.json | 4 | ||||
| -rw-r--r-- | www/js/ImportantMessageCtrl.js | 3 | ||||
| -rw-r--r-- | www/js/LoginCtrl.js | 68 | ||||
| -rw-r--r-- | www/js/MenuController.js | 49 | ||||
| -rw-r--r-- | www/js/NVR.js | 24 | ||||
| -rw-r--r-- | www/js/PortalLoginCtrl.js | 86 | ||||
| -rwxr-xr-x | www/js/app.js | 6 | ||||
| -rw-r--r-- | www/lang/locale-en.json | 16 | ||||
| -rw-r--r-- | www/templates/important_message.html | 13 | ||||
| -rw-r--r-- | www/templates/login.html | 4 | ||||
| -rw-r--r-- | www/templates/menu.html | 13 | ||||
| -rw-r--r-- | www/templates/montage.html | 35 |
12 files changed, 219 insertions, 102 deletions
diff --git a/package.json b/package.json index 11a6be10..35c6564a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "zmninjapro", "description": "Home security mobile app for ZoneMinder", - "version": "1.3.066", + "version":"1.3.067", "displayName": "zmNinja", "author": "Pliable Pixels", "license": "custom see LICENSE.md", @@ -192,4 +192,4 @@ ] } } -}
\ No newline at end of file +} diff --git a/www/js/ImportantMessageCtrl.js b/www/js/ImportantMessageCtrl.js index 218ec417..a496860e 100644 --- a/www/js/ImportantMessageCtrl.js +++ b/www/js/ImportantMessageCtrl.js @@ -13,9 +13,6 @@ angular.module('zmApp.controllers').controller('zmApp.ImportantMessageCtrl', ['$ $scope.$on('$ionicView.enter', function () { // console.log("**VIEW ** LowVersion Ctrl Entered"); $ionicSideMenuDelegate.canDragContent(true); - $scope.requiredVersion = zm.minAppVersion; - $scope.currentVersion = $stateParams.ver; - $scope.recommendedVersion = zm.recommendedAppVersion; }); diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js index 9e369f02..ba782bb2 100644 --- a/www/js/LoginCtrl.js +++ b/www/js/LoginCtrl.js @@ -235,7 +235,19 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r //------------------------------------------------------------------------ $scope.$on('$ionicView.beforeEnter', function () { - + var ld = NVR.getLogin(); + if (ld.isKiosk) { + NVR.log ("You are in kiosk mode, cannot show login screen"); + $ionicHistory.nextViewOptions({ + disableAnimate:true, + disableBack: true + }); + $rootScope.importantMessageHeader = $translate.instant('kKioskErrorHeader'); + $rootScope.importantMessageSummary = $translate.instant('kKioskErrorMessage'); + $state.go('app.importantmessage'); + return; + } + $scope.$on ( "process-push", function () { NVR.debug (">> LoginCtrl: push handler. Not processing push, because you might be here due to login failure"); /*var s = NVR.evaluateTappedNotification(); @@ -256,7 +268,7 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r //console.log("**VIEW ** LoginCtrl Entered"); NVR.setAwake(false); //$scope.basicAuthUsed = false; - var ld = NVR.getLogin(); + oldName = ld.serverName; availableServers = Object.keys(NVR.getServerGroups()); @@ -388,6 +400,58 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r }; + $scope.kioskPinConfig = function () { + + $scope.data = {}; + // An elaborate, custom popup + var myPopup = $ionicPopup.show({ + template: '<small>'+$translate.instant('kKioskPassword')+'</small><input type="password" ng-model="data.p1"><br/><small>'+$translate.instant('kKioskPasswordConfirm')+'</small><input type="password" ng-model="data.p2">', + title: $translate.instant('kPassword'), + scope: $scope, + buttons: [ + { text: $translate.instant('kButtonCancel'), + type: 'button-assertive', + onTap: function (e) { + $scope.loginData.isKiosk = false; + } + }, + { + text: '<b>'+$translate.instant('kButtonSave')+'</b>', + type: 'button-positive', + onTap: function(e) { + if (!$scope.data.p1) { + //don't allow the user to close unless he enters wifi password + e.preventDefault(); + } else { + if ($scope.data.p1 == $scope.data.p2) { + NVR.log ("Kiosk code match"); + $scope.loginData.kioskPassword = $scope.data.p1; + $scope.loginData.isKiosk = true; + NVR.setLogin($scope.loginData); + $ionicHistory.nextViewOptions({ + disableBack: true + }); + $state.go('app.montage'); + return; + } + else { + $ionicLoading.show({ + template: $translate.instant('kBannerPinMismatch') + "...", + noBackdrop: true, + duration: 1500 + }); + NVR.log ("Kiosk code mistmatch"); + $scope.loginData.isKiosk = false; + e.preventDefault(); + } + + } + } + } + ] + }); + }; + function desktopPinConfig() { $scope.data = {}; diff --git a/www/js/MenuController.js b/www/js/MenuController.js index 48ee5d0d..590b927d 100644 --- a/www/js/MenuController.js +++ b/www/js/MenuController.js @@ -45,6 +45,55 @@ angular.module('zmApp.controllers').controller('MenuController', ['$scope', '$io }; + $scope.exitKiosk = function() { + $scope.data = {}; + // An elaborate, custom popup + var myPopup = $ionicPopup.show({ + template: '<small>'+$translate.instant('kKioskPassword')+'</small><input type="password" ng-model="data.p1"><br/><small>', + title: $translate.instant('kPassword'), + scope: $scope, + buttons: [ + { text: 'Cancel', + type: 'button-assertive', + onTap: function (e) { + $scope.loginData.isKiosk = false; + } + }, + { + text: '<b>'+$translate.instant('kButtonSave')+'</b>', + type: 'button-positive', + onTap: function(e) { + if (!$scope.data.p1) { + //don't allow the user to close unless he enters wifi password + e.preventDefault(); + } else { + var ld = NVR.getLogin(); + if ($scope.data.p1 == ld.kioskPassword) { + ld.isKiosk = false; + NVR.setLogin(ld); + } + else { + $ionicLoading.show({ + template: $translate.instant('kBannerPinMismatch') + "...", + noBackdrop: true, + duration: 1500 + }); + NVR.log ("Kiosk code mistmatch"); + $scope.loginData.isKiosk = false; + e.preventDefault(); + } + + } + } + } + ] + }); + + + + + }; + function switchToServer(s) { $rootScope.alarmCount = 0; diff --git a/www/js/NVR.js b/www/js/NVR.js index 3a2b2dae..d9991b38 100644 --- a/www/js/NVR.js +++ b/www/js/NVR.js @@ -21,7 +21,7 @@ angular.module('zmApp.controllers') DO NOT TOUCH zmAppVersion It is changed by sync_version.sh */ - var zmAppVersion = "1.3.066"; + var zmAppVersion = "1.3.067"; var isBackground = false; var justResumed = false; var timeSinceResumed = -1; @@ -201,7 +201,9 @@ angular.module('zmApp.controllers') 'accessTokenExpires': '', 'refreshTokenExpires': '', 'accessToken': '', - 'refreshToken': '' + 'refreshToken': '', + 'isKiosk': false, + 'kioskPassword': '', }; @@ -916,6 +918,8 @@ angular.module('zmApp.controllers') loginData = angular.copy(newLogin); + $rootScope.LoginData = loginData; + serverGroupList[loginData.serverName] = angular.copy(loginData); var ct = CryptoJS.AES.encrypt(JSON.stringify(serverGroupList), zm.cipherKey).toString(); @@ -1449,6 +1453,11 @@ angular.module('zmApp.controllers') } + if (typeof loginData.isKiosk == 'undefined') { + loginData.isKiosk = false; + + } + loginData.canSwipeMonitors = true; loginData.forceImageModePath = false; @@ -1552,6 +1561,15 @@ angular.module('zmApp.controllers') debug("Inside evaluateNotifications"); + if ($rootScope.LoginData.isKiosk) { + NVR.log ('>>> evaluation: You are in kiosk mode, forcing transition to montage'); + state = "app.montage"; + $rootScope.tappedNotification = 0; + return [state, stateParams1, stateParams2]; + + + } + if ($rootScope.tappedNotification == 2) { // url launch debug("Came via app url launch with mid=" + $rootScope.tappedMid); debug("Came via app url launch with eid=" + $rootScope.tappedEid); @@ -1952,7 +1970,7 @@ angular.module('zmApp.controllers') if (window.cordova) setCordovaHttpOptions(); - + $rootScope.LoginData = loginData; $rootScope.$broadcast('init-complete'); }); diff --git a/www/js/PortalLoginCtrl.js b/www/js/PortalLoginCtrl.js index 35572166..17715238 100644 --- a/www/js/PortalLoginCtrl.js +++ b/www/js/PortalLoginCtrl.js @@ -289,44 +289,23 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic var ld = NVR.getLogin(); if (NVR.versionCompare(data, zm.minAppVersion) == -1 && data != "0.0.0") { - $state.go('app.lowversion', { - "ver": data - }); - return; - } - - if (NVR.versionCompare(data, zm.recommendedAppVersion) == -1 && data != "0.0.0") { - - NVR.hrsSinceChecked("zmVersion") - .then(function (val) { - NVR.debug("ZM Version nag: Checking " + val + " with " + zm.zmVersionCheckNag); - if (val >= zm.zmVersionCheckNag && 0) { - NVR.updateHrsSinceChecked("zmVersion"); - $state.go('app.importantmessage', { - "ver": data - }); - return; - } + $rootScope.importantMessageHeader = $translate.instant('kImportant'); + $rootScope.importantMessageSummary = $translate.instant('kVersionIncompatible', {currentVersion: data, minVersion: zm.minAppVersion}); - }); + $state.go('app.importantmessage'); + return; } - /*if (data == "0.0.0") - { - - NVR.log("2nd Auth:API getVersion succeeded but returned 0.0.0 " + JSON.stringify(data)); - NVR.displayBanner('error', ['ZoneMinder authentication failed']); - $state.go("login", - { - "wizard": false - }); - return; - }*/ - // coming here means continue - //EventServer.init(); + var statetoGo = $rootScope.lastState ? $rootScope.lastState : 'app.montage'; + if ($rootScope.LoginData.isKiosk) { + NVR.log ('>>> You are in kiosk mode'); + statetoGo = 'app.montage'; + $rootScope.lastStateParam=''; + + } //NVR.debug ("logging state transition"); NVR.debug("2nd Auth: Transitioning state to: " + statetoGo + " with param " + JSON.stringify($rootScope.lastStateParam)); @@ -384,35 +363,22 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic NVR.log("Got API version: " + data); $rootScope.apiVersion = data; var ld = NVR.getLogin(); + console.log (">>>>>>>> COMPARING "+data+" to "+zm.minAppVersion); if (NVR.versionCompare(data, zm.minAppVersion) == -1 && data != "0.0.0") { - $state.go('app.lowversion', { - "ver": data + $rootScope.importantMessageHeader = $translate.instant('kImportant'); + $rootScope.importantMessageSummary = $translate.instant('kVersionIncompatible', {currentVersion: data, minVersion: zm.minAppVersion}); + $ionicHistory.nextViewOptions({ + disableAnimate:true, + disableBack: true }); - return; - } - - if (NVR.versionCompare(data, zm.recommendedAppVersion) == -1 && data != "0.0.0") { - - NVR.hrsSinceChecked("zmVersion") - .then(function (val) { - - NVR.debug("ZM Version nag: Checking " + val + " with " + zm.zmVersionCheckNag); - if (val >= zm.zmVersionCheckNag && 0) { - //https://api.github.com/repos/zoneminder/zoneminder/releases/latest - //tag_name - NVR.updateHrsSinceChecked("zmVersion"); - $state.go('app.importantmessage', { - "ver": data - }); - return; - - } - - }); + $state.go('app.importantmessage'); + return; } + + /*if (data == "0.0.0") { @@ -459,9 +425,19 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic if (!processPush) { alreadyTransitioned = true; + + if ($rootScope.LoginData.isKiosk) { + NVR.log ('>>> You are in kiosk mode'); + statetoGo = 'app.montage'; + $rootScope.lastStateParam=''; + + } + NVR.debug("Transitioning state to: " + statetoGo + " with param " + JSON.stringify($rootScope.lastStateParam)); + + $state.go(statetoGo, $rootScope.lastStateParam); return; } diff --git a/www/js/app.js b/www/js/app.js index 206f5e16..7c2aeb34 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -40,7 +40,7 @@ angular.module('zmApp', [ .constant('zm', { minAppVersion: '1.28.107', // if ZM is less than this, the app won't work - recommendedAppVersion: '1.32.0', + //minAppVersion:'1.44', minEventServerVersion: '2.4', castAppId: 'BA30FB4C', alarmFlashTimer: 20000, // time to flash alarm @@ -1887,6 +1887,8 @@ angular.module('zmApp', [ NVR.debug("last state=" + $rootScope.lastState + " param=" + $rootScope.lastStateParam); + + } @@ -2409,7 +2411,7 @@ angular.module('zmApp', [ }, cache: false, - url: "/importantmessage/:ver", + url: "/importantmessage", templateUrl: "templates/important_message.html", controller: 'zmApp.ImportantMessageCtrl', diff --git a/www/lang/locale-en.json b/www/lang/locale-en.json index 4ddc91af..a5304412 100644 --- a/www/lang/locale-en.json +++ b/www/lang/locale-en.json @@ -156,19 +156,19 @@ "kHighBWDisplay" :"high bandwidth", "kHours" :"hours", "kId" :"Id", + "kImportant" :"Important", "kImages" :"Images", - "kImpMsg1" :"Important Message", - "kImpMsg2" :"I'd appreciate if you upgraded ZoneMinder", - "kImpMsg3" :"You are running", - "kImpMsg4" :"has some important fixes that enhance functionality and fix bugs that this version of zmNinja relies on. The app will still work, but some functions may be unpredictable.", - "kImpMsg5" :"Reported Version", - "kImpMsg6" :"Recommended Version", - "kImpMsg7" :"Ok, got it", "kIncreaseSize" :"increase size", "kInsertBasicAuthToken" :"Append basic auth token in images", "kInsertBasicAuthTokenNote" :"not a good idea if you are not using HTTPS", "kInvalidAPIBody" :"API access failed. Please make sure your APIs are configured correctly and are accessible.", "kInvalidAPIHeader" :"API Access Error", + "kKioskMode" :"enable Kiosk mode", + "kKioskModeExit" :"exit kiosk mode", + "kKioskPassword" :"enter kiosk unlock password", + "kKioskPasswordConfirm" :"re-confirm kiosk unlock password", + "kKioskErrorHeader" :"Something went wrong", + "kKioskErrorMessage" :"Please contact your administrator", "kInvalidAPIRead" :"Read FAQ", "kLanguage" :"Language", "kLatestEvents" :"latest events", @@ -414,7 +414,7 @@ "kValidNameBasicAuth" :"Please enter a valid username and password for basic auth", "kValidNameZMAuth" :"Please enter a valid username and password for ZM auth", "kVersion" :"Version", - "kVersionIncompatible" :"I am incompatible with your ZoneMinder version", + "kVersionIncompatible" :"zmNinja is incompatible with ZoneMinder {{currentVersion}}. Minimum version supported is: {{minVersion}} ", "kVibrateOnPush" :"Vibrate on push", "kVideo" :"Video", "kVideoError" :"Video not playable", diff --git a/www/templates/important_message.html b/www/templates/important_message.html index 933c3802..85204779 100644 --- a/www/templates/important_message.html +++ b/www/templates/important_message.html @@ -12,20 +12,15 @@ </div> <br /> <span style="color:white"> - <h2 style="color:white" class="animated bounce">{{'kImpMsg1' | translate}}</h2> + <h2 style="color:white" class="animated bounce">{{$root.importantMessageHeader | translate}}</h2> <br /> - <h4 style="color:white">{{'kImpMsg2' | translate}}</h4> - <br /> {{'kImpMsg3' | translate}} v{{currentVersion}}. - <br /> v{{recommendedVersion}} {{'kImpMsg4' | translate}} - <br /> {{'kImpMsg5' | translate}}: - <b>v{{currentVersion}}</b> - <br /> {{'kImpMsg6' | translate}}: - <b>v{{recommendedVersion}}</b> + + <h4 style="color:white"> {{ $root.importantMessageSummary| translate}} </h4> <br /> <br /> <button class="button button-stable animated bounceInUp" ng-click="openMenu()"> - {{'kImpMsg7' | translate}} + {{'kButtonOk' | translate}} </button> diff --git a/www/templates/login.html b/www/templates/login.html index 32f1a683..617b79f5 100644 --- a/www/templates/login.html +++ b/www/templates/login.html @@ -102,6 +102,10 @@ <ion-toggle ng-model="loginData.usePin" ng-change="pinPrompt();" toggle-class="toggle-calm"> <span class="item-text-wrap">{{'kPassword' | translate}} {{'kProtect'|translate}}</span> </ion-toggle> + + <ion-toggle ng-model="loginData.isKiosk" toggle-class="toggle-calm" ng-change="kioskPinConfig();" > + <span class="item-text-wrap">{{'kKioskMode' | translate}} </span> + </ion-toggle> </label> diff --git a/www/templates/menu.html b/www/templates/menu.html index 9c780310..ead3c729 100644 --- a/www/templates/menu.html +++ b/www/templates/menu.html @@ -10,7 +10,7 @@ </ion-side-menu-content> <ion-side-menu> <ion-header-bar class="bar bar-header bar-stable"> - <button class="button icon ion-person-stalker" ng-click="switchProfiles()"></button> + <button ng-if="!root.LoginData.isKiosk" class="button icon ion-person-stalker" ng-click="switchProfiles()"></button> <h1 class="title">{{'kMenuOptions'|translate}}</h1> </button> </ion-header-bar> @@ -18,13 +18,13 @@ <!-- <ion-scroll scrollbar-y="false" style="height:100%" >--> <ion-list> <!--<ion-item ng-click="navigateView('app.montage')" menu-close>--> - - <ion-item ng-if="0" href="#/app/bookmark" ng-click="go('/app/bookmark)')"> + <!-- + <ion-item href="#/app/bookmark" ng-click="go('/app/bookmark)')"> <span class=" item-icon-left"> <i class="icon ion-bookmark"></i> </span>{{'kBookmark'| translate}} </ion-item> - + --> <ion-item id="testaut_menu_montage" href="#/app/montage" ng-click="go('/app/montage')"> <!--<span ng-if="$root.runMode=='lowbw'" style="float:right;margin-top:-18px;background-color:#f1c40f;color:#000;font-size:11px;opacity:0.7;width:20px;border-radius: 0px 0px 5px 5px;display:inline-block;text-align:center;"> <i class="icon ion-arrow-graph-down-left"></i> </span>--> @@ -35,6 +35,7 @@ <!--<ion-item ng-click="navigateView('app.timeline')" menu-close>--> + <span ng-if="!$root.LoginData.isKiosk"> <ion-item id="testaut_menu_timeline" href="#/app/timeline" ng-click="go('/app/timeline')"> <span class=" item-icon-left"> <i class="icon ion-android-time"></i> @@ -163,6 +164,10 @@ <span ng-if="$root.isTzSupported()"> <i class="icon icon-server"></i> {{$root.getServerTimeZoneNow();}} </span> </ion-item> + </span> + <ion-item ng-if="$root.LoginData.isKiosk" ng-click="exitKiosk()"> + <i class="ion-unlocked"></i> {{'kKioskModeExit' | translate}} + </ion-item> </ion-list> <!--</ion-scroll>--> </ion-content> diff --git a/www/templates/montage.html b/www/templates/montage.html index 4edc9b0a..b2dbd13b 100644 --- a/www/templates/montage.html +++ b/www/templates/montage.html @@ -3,26 +3,33 @@ <ion-nav-buttons side="left"> <button id="montage-move-1" class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button> - <button class="button button-icon button-clear ion-eye" ng-click="hideUnhide();"> + <button ng-if="!$root.LoginData.isKiosk" class="button button-icon button-clear ion-eye" ng-click="hideUnhide();"> </button> - <button id="montage-move-2" class="button button-icon button-clear ion-chevron-down" + <button id="montage-move-2" class="button button-icon button-clear ion-chevron-down" ng-click="toggleSubMenuFunction();"> </button> + + + <button ng-if="$root.LoginData.isKiosk" class="button button-icon button-danger ion-locked" style="color:red !important"> + </button> + + + <button data-badge="{{$root.alarmCount}}" class="animated infinite tada button button-icon button-clear ion-ios-bell notification-badge" - ng-click="handleAlarms();" ng-if="$root.isAlarm"></button> + ng-click="handleAlarms();" ng-if="$root.isAlarm && !$root.LoginData.isKiosk"></button> </ion-nav-buttons> <ion-nav-buttons side="right"> <span ng-click="toggleTimeType()" class="icon montage-time"> <i ng-class="(iconTimeNow=='server')?'icon-server':'ion-ios-location'"></i> {{timeNow}} </span> - <button class="button button-icon button-clear ion-arrow-move" ng-click="dragToggle();"> + <button ng-if="!$root.LoginData.isKiosk" class="button button-icon button-clear ion-arrow-move" ng-click="dragToggle();"> </button> <!-- <button class="button button-icon button-clear ion-monitor" ng-click="cast();"> </button> --> - <button id="montage-move-3" class="button button-icon button-clear ion-loop" ng-click="resetSizes();"> + <button ng-if="!$root.LoginData.isKiosk" id="montage-move-3" class="button button-icon button-clear ion-loop" ng-click="resetSizes();"> </button> <button class="button button-icon button-clear ion-android-contract" ng-click="switchMinimal()"> </button> @@ -42,12 +49,12 @@ <a href="" ng-click="killAllImages()"> <i class="ion-ionic"></i></a> </li>--> - <li> + <li ng-if="!$root.LoginData.isKiosk"> <a id="montage-move-4" ng-click="sliderChanged(1)"> <i class="ion-plus-circled"></i> </a> </li> - <li> + <li ng-if="!$root.LoginData.isKiosk"> <a id="montage-move-5" ng-click="sliderChanged(-1)"> <i class="ion-minus-circled"></i> </a> @@ -58,7 +65,7 @@ </a> </li> - <li> + <li ng-if="!$root.LoginData.isKiosk"> <a ng-click="clearAllEvents()"> <i class="ion-checkmark"></i> </a> @@ -87,13 +94,13 @@ </a> </li> - <li> + <li ng-if="!$root.LoginData.isKiosk"> <a href="" ng-click="saveMontageProfile()"> <i class="ion-heart"></i> </a> </li> - <li> + <li ng-if="!$root.LoginData.isKiosk"> <a href="" ng-click="deleteMontageProfile()"> <i class="ion-trash-a"></i> </a> @@ -126,7 +133,7 @@ <div class="montage-image"> - <div ng-if="LoginData.enableMontageOverlays" class="montage-buttons"> + <div ng-if="LoginData.enableMontageOverlays && !$root.LoginData.isKiosk" class="montage-buttons"> <a ng-if="monitor.Monitor.lastEvent" class="button button-small button-assertive icon ion-ios-bell" ng-click="eventButtonClicked(monitor, true)"></a> <a ng-if="monitor.Monitor.lastEvent" class="button button-small button-balanced icon ion-checkmark" @@ -221,9 +228,9 @@ <div ng-show="minimal"> <nav mfb-menu position="br" effect="zoomin" label="{{'kCollapse' | translate}}" active-icon="ion-chevron-down" resting-icon="ion-chevron-up" toggling-method="click"> - <button mfb-button icon="ion-arrow-expand" label="{{'kIncreaseSize' | translate}}" ng-click="sliderChanged(1)"> + <button ng-if="!$root.LoginData.isKiosk" mfb-button icon="ion-arrow-expand" label="{{'kIncreaseSize' | translate}}" ng-click="sliderChanged(1)"> </button> - <button mfb-button icon="ion-arrow-shrink" label="{{'kDecreaseSize' | translate}}" ng-click="sliderChanged(-1)"> + <button ng-if="!$root.LoginData.isKiosk" mfb-button icon="ion-arrow-shrink" label="{{'kDecreaseSize' | translate}}" ng-click="sliderChanged(-1)"> </button> <!-- <button mfb-button icon="ion-refresh" label="{{'kRefresh' | translate}}" ng-click="resetSizes();"> </button>--> @@ -233,7 +240,7 @@ </button> </nav> - <span class="modal-alarm-badge"> + <span ng-if="!$root.LoginData.isKiosk" class="modal-alarm-badge"> <a data-badge="{{$root.alarmCount}}" class="animated infinite tada button icon ion-ios-bell notification-badge button-assertive" ng-click="handleAlarmsWhileMinimized();" ng-if="$root.isAlarm"></a> |
