summaryrefslogtreecommitdiff
path: root/www/templates
diff options
context:
space:
mode:
Diffstat (limited to 'www/templates')
-rw-r--r--www/templates/devoptions.html43
-rw-r--r--www/templates/events-graphs.html58
-rw-r--r--www/templates/events-modal.html61
-rw-r--r--www/templates/events-modalgraph.html9
-rw-r--r--www/templates/events-popover.html15
-rw-r--r--www/templates/events.html341
-rw-r--r--www/templates/eventserversettings.html82
-rw-r--r--www/templates/first-use.html16
-rw-r--r--www/templates/help.html17
-rw-r--r--www/templates/important_message.html9
-rw-r--r--www/templates/log.html19
-rw-r--r--www/templates/login.html59
-rw-r--r--www/templates/lowversion.html8
-rw-r--r--www/templates/monitors-modal.html116
-rw-r--r--www/templates/monitors.html104
-rw-r--r--www/templates/montage-history.html197
-rw-r--r--www/templates/montage.html126
-rw-r--r--www/templates/news.html17
-rw-r--r--www/templates/reorder-modal.html43
-rw-r--r--www/templates/state.html22
-rw-r--r--www/templates/timeline-modal.html52
-rw-r--r--www/templates/timeline-popover.html24
-rw-r--r--www/templates/timeline.html3
-rw-r--r--www/templates/wizard.html182
-rw-r--r--www/templates/zm-portal-login.html14
25 files changed, 612 insertions, 1025 deletions
diff --git a/www/templates/devoptions.html b/www/templates/devoptions.html
index cf207327..2c373418 100644
--- a/www/templates/devoptions.html
+++ b/www/templates/devoptions.html
@@ -4,7 +4,7 @@
<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>
</ion-nav-buttons>
<ion-nav-buttons side="right">
- <button class="button button-clear" ng-click="saveDevOptions()">Save</button>
+ <button class="button button-clear" ng-click="saveDevOptions()">{{'kSave' | translate}}</button>
</ion-nav-buttons>
<ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
<div class="list list-inset">
@@ -18,14 +18,15 @@
</label>
</div>
<label>
- <ion-toggle ng-model="loginData.use24hr" ng-checked="{{loginData.use24hr}}" toggle-class="toggle-calm">{{'kEnable24hr' | translate}}</ion-toggle>
+ <ion-toggle ng-model="loginData.use24hr" ng-checked="{{loginData.use24hr}}" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kEnable24hr' | translate}}</span></ion-toggle>
</label>
<label>
- <ion-toggle ng-model="loginData.useLocalTimeZone" ng-checked="{{loginData.useLocalTimeZone}}" ng-disabled="!isTzSupported()" toggle-class="toggle-calm">{{'kLocalTimeZone' | translate}}<span ng-if="!isTzSupported()"><p>{{'kTimeZoneNotSupported' | translate}}</p></span><span ng-if="isTzSupported()"><p>{{'kServerTimeZone' | translate}}:{{getTimeZoneNow()}}</p></span></ion-toggle>
+ <ion-toggle ng-model="loginData.useLocalTimeZone" ng-checked="{{loginData.useLocalTimeZone}}" ng-disabled="!isTzSupported()" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kLocalTimeZone' | translate}}<span ng-if="!isTzSupported()"><p>{{'kTimeZoneNotSupported' | translate}}</p></span><span ng-if="isTzSupported()"><p>{{'kServerTimeZone' | translate}}:{{getTimeZoneNow()}}</p></span></span>
+ </ion-toggle>
</label>
<div ng-if="$root.platformOS=='android'">
<label>
- <ion-toggle ng-model="loginData.exitOnSleep" ng-checked="{{loginData.exitOnSleep}}" toggle-class="toggle-calm">{{'kExitAppBackground' | translate}}</ion-toggle>
+ <ion-toggle ng-model="loginData.exitOnSleep" ng-checked="{{loginData.exitOnSleep}}" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kExitAppBackground' | translate}}</span></ion-toggle>
</label>
</div>
<!--
@@ -41,7 +42,7 @@
toggle-class="toggle-calm">use ZMS for events footage</ion-toggle>
</label>
-->
- <div class="item item-input-inset">
+ <div class="item item-text-wrap item-input-inset">
{{'kMaxMonitorsMontage' | translate }}&nbsp;
<label class="item-input-wrapper">
<input type="tel" placeholder="be careful" ng-model="loginData.maxMontage">
@@ -55,19 +56,19 @@
</label>
</div>
-->
- <div class="item item-input-inset">
+ <div class="item item-text-wrap item-input-inset">
{{'kMontageImageScale' | translate}}(%)&nbsp;
<label class="item-input-wrapper">
<input type="tel" placeholder="max is 70" ng-model="loginData.montageQuality">
</label>
</div>
- <div class="item item-input-inset">
+ <div class="item item-text-wrap item-input-inset">
{{'kEventSingleImageScale' | translate}}(%)&nbsp;
<label class="item-input-wrapper">
<input type="tel" placeholder="" ng-model="loginData.singleImageQuality">
</label>
</div>
- <div class="item item-input-inset">
+ <div class="item item-text-wrap item-input-inset">
{{'kMonitorSingleImageScale' | translate}}(%)&nbsp;
<label class="item-input-wrapper">
<input type="tel" placeholder="" ng-model="loginData.monSingleImageQuality">
@@ -81,13 +82,13 @@
</label>
</div>-->
- <div class="item item-input-inset">
+ <div class="item item-text-wrap item-input-inset">
{{'kEventMontageImageScale'|translate}}(%)&nbsp;
<label class="item-input-wrapper">
<input type="tel" placeholder="" ng-model="loginData.montageHistoryQuality">
</label>
</div>
- <div class="item item-input-inset">
+ <div class="item item-text-wrap item-input-inset">
{{'kMaxItemsForTimeline' | translate}}&nbsp;
<label class="item-input-wrapper">
<input type="tel" placeholder="" ng-model="loginData.graphSize">
@@ -95,7 +96,7 @@
</label>
<br/>
</div>
- <div class="item item-input-inset">
+ <div class="item item-text-wrap item-input-inset">
{{'kMinAlarmCount' | translate}}&nbsp;
<label class="item-input-wrapper">
<input type="tel" placeholder="" ng-model="loginData.minAlarmCount">
@@ -109,27 +110,27 @@
</label>
</div>
<label>
- <ion-toggle ng-model="loginData.disableAlarmCheckMontage" ng-checked="loginData.disableAlarmCheckMontage" toggle-class="toggle-calm">{{'kDisableAlarmMontage' | translate}}
- <p>{{'kDisableAlarmMontageSub' | translate}}</p>
+ <ion-toggle ng-model="loginData.disableAlarmCheckMontage" ng-checked="loginData.disableAlarmCheckMontage" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kDisableAlarmMontage' | translate}}
+ <p>{{'kDisableAlarmMontageSub' | translate}}</p></span>
</ion-toggle>
</label>
<label>
- <ion-toggle ng-model="loginData.enableLogs" ng-checked="{{loginData.enableLogs}}" toggle-class="toggle-calm">{{'kEnableLogs' | translate}}</ion-toggle>
+ <ion-toggle ng-model="loginData.enableLogs" ng-checked="{{loginData.enableLogs}}" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kEnableLogs' | translate}}</span></ion-toggle>
</label>
- <div class="item item-input-inset">
+ <div class="item item-text-wrap item-input-inset">
{{'kCycleMonitorsInterval'|translate}}({{'kSec'|translate}}.)&nbsp;
<label class="item-input-wrapper">
<input type="tel" placeholder="" ng-model="loginData.cycleMonitorsInterval">
</label>
</div>
<label>
- <ion-toggle ng-if="loginData.enableLogs" ng-model="loginData.enableDebug" ng-checked="{{loginData.enableDebug}}" toggle-class="toggle-calm">{{'kEnableDebug' | translate}}</ion-toggle>
+ <ion-toggle ng-if="loginData.enableLogs" ng-model="loginData.enableDebug" ng-checked="{{loginData.enableDebug}}" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kEnableDebug' | translate}}</span></ion-toggle>
</label>
<label>
- <ion-toggle ng-model="loginData.canSwipeMonitors" ng-checked="{{loginData.canSwipeMonitors}}" toggle-class="toggle-calm">{{'kSwipeToChangeMon' | translate}}</ion-toggle>
+ <ion-toggle ng-model="loginData.canSwipeMonitors" ng-checked="{{loginData.canSwipeMonitors}}" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kSwipeToChangeMon' | translate}}</span></ion-toggle>
</label>
<label>
- <ion-toggle ng-model="loginData.forceImageModePath" ng-checked="{{loginData.forceImageModePath}}" toggle-class="toggle-calm"> {{'kForceImagePath' | translate}}</ion-toggle>
+ <ion-toggle ng-model="loginData.forceImageModePath" ng-checked="{{loginData.forceImageModePath}}" toggle-class="toggle-calm"> <span class="item-text-wrap">{{'kForceImagePath' | translate}}</span></ion-toggle>
</label>
<!--
<label>
@@ -137,11 +138,11 @@
</label>
-->
<label>
- <ion-toggle ng-model="loginData.enableBlog" ng-checked="{{loginData.enableBlog}}" toggle-class="toggle-calm"> {{'kEnableNewsUpdates' | translate}}</ion-toggle>
+ <ion-toggle ng-model="loginData.enableBlog" ng-checked="{{loginData.enableBlog}}" toggle-class="toggle-calm"> <span class="item-text-wrap">{{'kEnableNewsUpdates' | translate}}</span></ion-toggle>
</label>
<label ng-if="$root.platformOS != 'desktop'">
- <ion-toggle ng-model="loginData.disableNative" ng-checked="{{loginData.disableNative}}" toggle-class="toggle-calm"> {{'kDisableNative' | translate}}
- <p>{{'kDisableNativeSub' | translate}}</p>
+ <ion-toggle ng-model="loginData.disableNative" ng-checked="{{loginData.disableNative}}" toggle-class="toggle-calm"> <span class="item-text-wrap">{{'kDisableNative' | translate}}
+ <p>{{'kDisableNativeSub' | translate}}</p></span>
</ion-toggle>
</label>
</div>
diff --git a/www/templates/events-graphs.html b/www/templates/events-graphs.html
index 2f7b965d..0e14016f 100644
--- a/www/templates/events-graphs.html
+++ b/www/templates/events-graphs.html
@@ -1,88 +1,60 @@
-
<!----- NOT USED -------->
-
<ion-view view-title="Monitor Event Summary" cache-view="false">
-
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></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>
-
+ <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>
</ion-nav-buttons>
-
<!-- I'm calling the same controller function but with different parameters when
you switch between tabs -->
-
<!-- Oddly, unless I add a "div ng-controller" before each canvas
onClick handler does not work
-->
-
<!-- All Events view -->
- <div id="visualization"></div>
+ <div id="visualization"></div>
<ion-tabs class="tabs-icon-top tabs-stable">
<ion-tab title="All" icon="ion-stats-bars" on-select="generateTCChart(0,'All Events',0)">
<ion-nav-view>
<ion-content class="has-header">
-
<div ng-controller="zmApp.EventsGraphsCtrl">
-
-
-
- <canvas tc-chartjs-bar chart-data="chart.data"
- chart-options="chart.options"
- ng-click="handleChartClick($event)" chart="chartwithbars">
- </canvas>
+ <canvas tc-chartjs-bar chart-data="chart.data" chart-options="chart.options" ng-click="handleChartClick($event)" chart="chartwithbars">
+ </canvas>
</div>
</ion-content>
</ion-nav-view>
</ion-tab>
-
<!-- All Events in the last hour -->
- <ion-tab title="Last Hour" icon="ion-stats-bars"
- on-select="generateTCChart(1,'Events in the last hour',1)">
+ <ion-tab title="Last Hour" icon="ion-stats-bars" on-select="generateTCChart(1,'Events in the last hour',1)">
<ion-nav-view>
<ion-content>
<div ng-controller="zmApp.EventsGraphsCtrl">
- <div style="overflow:scroll;">
- <canvas tc-chartjs-bar chart-data="chart.data"
- chart-options="chart.options"
- ng-click="handleChartClick($event)"
- chart="chartwithbars">
- </canvas>
+ <div style="overflow:scroll;">
+ <canvas tc-chartjs-bar chart-data="chart.data" chart-options="chart.options" ng-click="handleChartClick($event)" chart="chartwithbars">
+ </canvas>
</div>
</div>
</ion-content>
</ion-nav-view>
</ion-tab>
-
<!-- All Events in last 24 hrs-->
- <ion-tab title="Day" icon="ion-stats-bars"
- on-select="generateTCChart(2,'Events in the last day',24)">
+ <ion-tab title="Day" icon="ion-stats-bars" on-select="generateTCChart(2,'Events in the last day',24)">
<ion-nav-view>
<ion-content>
<div ng-controller="zmApp.EventsGraphsCtrl">
- <div style="overflow:scroll;">
- <canvas tc-chartjs-bar chart-data="chart.data"
- chart-options="chart.options" chart="chartwithbars"
- ng-click="handleChartClick($event)">
- </canvas>
- </div>
+ <div style="overflow:scroll;">
+ <canvas tc-chartjs-bar chart-data="chart.data" chart-options="chart.options" chart="chartwithbars" ng-click="handleChartClick($event)">
+ </canvas>
+ </div>
</div>
</ion-content>
</ion-nav-view>
</ion-tab>
-
<!-- All Events in last week -->
- <ion-tab title="Week" icon="ion-stats-bars"
- on-select="generateTCChart(3,'Events in the last week',168)">
+ <ion-tab title="Week" icon="ion-stats-bars" on-select="generateTCChart(3,'Events in the last week',168)">
<ion-nav-view>
<ion-content>
<div ng-controller="zmApp.EventsGraphsCtrl">
<div style="overflow:scroll;">
- <canvas tc-chartjs-bar chart-data="chart.data"
- chart-options="chart.options"
- chart="chartwithbars"
- ng-click="handleChartClick($event)">
+ <canvas tc-chartjs-bar chart-data="chart.data" chart-options="chart.options" chart="chartwithbars" ng-click="handleChartClick($event)">
</canvas>
</div>
</div>
diff --git a/www/templates/events-modal.html b/www/templates/events-modal.html
index 58573026..06ff464e 100644
--- a/www/templates/events-modal.html
+++ b/www/templates/events-modal.html
@@ -2,8 +2,9 @@
<!-- style="width: 90%; height: 90%; top: 5%; left: 5%; right: 5%; bottom: 5%;"-->
<ion-modal-view cache-view="false">
<ion-content style="background-color:#444444" ng-cloak>
- <ion-scroll has-bouncing=false min-zoom=1 zooming="true" direction="xy" style="width: 100%; " delegate-handle="imgscroll" on-swipe-left="onSwipeEvent(nextId,1)" on-swipe-right="onSwipeEvent(prevId,-1)" overflow-scroll="false">
+ <ion-scroll has-bouncing=false min-zoom=1 zooming="true" direction="xy" delegate-handle="imgscroll" on-swipe-left="onSwipeEvent(nextId,1)" on-swipe-right="onSwipeEvent(prevId,-1)" overflow-scroll="false">
<div id="full-screen-event" style="height: 100vh;">
+ <!--<div>-->
<!-- route via ZMS -->
<div ng-if="( (defaultVideo=='') || (loginData.enableh264==false)) && (loginData.useNphZmsForEvents==true)">
<!--<div style="color:white">connkey:{{connKey}}</div>-->
@@ -16,33 +17,34 @@
</div>
<!-- no default video -->
<div ng-if="defaultVideo!==undefined && defaultVideo!='' && loginData.enableh264 == true">
- <!--<div ng-if="videoIsReady" class="videogular-full-container">-->
- <div ng-if="videoIsReady" ng-class="{'object-fit_cover':imageFit==false, 'object-fit_contain':imageFit==true}" >
- <!--<video width="320" height="240" controls>
- <source src="" dynamic-url dynamic-url-src="{{video_url}}">
-
- </video>-->
- <videogular vg-error="onVideoError($event)" vg-can-play = "onCanPlay()" vg-player-ready="onPlayerReady($API)" vg-plays-inline="videoObject.config.playsInline" vg-theme="videoObject.config.theme" vg-complete="playbackFinished()" on-double-tap="closeModal();" vg-autoplay="videoObject.config.autoPlay" vg-responsive="true" >
- <<vg-media vg-src="videoObject.config.sources" vg-native-controls="false">
- </vg-media>-
-
- <vg-controls>
- <vg-play-pause-button></vg-play-pause-button>
- <vg-scrub-bar>
- <vg-scrub-bar-current-time></vg-scrub-bar-current-time>
- </vg-scrub-bar>
- <vg-time-display>{{ timeLeft | date:'mm:ss':'+0000' }}</vg-time-display>
- <vg-fullscreen-button></vg-fullscreen-button>
- <vg-volume>
- <vg-mute-button></vg-mute-button>
- </vg-volume>
- </vg-controls>
- <!--<vg-buffering></vg-buffering>-->
- </videogular>
+ <div ng-if="videoIsReady">
+ <div style="height:{{$root.devHeight}}px; width:{{$root.devWidth}}px;">
+ <videogular vg-error="onVideoError($event)" vg-can-play="onCanPlay()" vg-native-fullscreen="videoObject.config.nativeFullScreen" vg-player-ready="onPlayerReady($API)" vg-plays-inline="videoObject.config.playsInline" vg-theme="videoObject.config.theme" vg-complete="playbackFinished()" on-double-tap="closeModal();" vg-autoplay="videoObject.config.autoPlay" vg-responsive="videoObject.config.responsive" vg-update-time="videoTime(event.Event.StartTime,$currentTime)">
+ <vg-media vg-src="videoObject.config.sources" vg-native-controls="videoObject.config.nativeControls">
+ </vg-media>
+ <vg-controls>
+ <vg-playback-button></vg-playback-button>
+ <vg-play-pause-button></vg-play-pause-button>
+ <vg-time-display>{{ videoTime(event.Event.StartTime, currentTime ); }}</vg-time-display>
+ <vg-scrub-bar>
+ <vg-scrub-bar-current-time></vg-scrub-bar-current-time>
+ <vg-cuepoints vg-cuepoints-config="videoObject.config.cuepoints"
+ vg-cuepoints-theme="videoObject.config.cuepoints.theme.url">
+ </vg-cuepoints>
+ </vg-scrub-bar>
+ <vg-time-display>{{ timeLeft | date:'mm:ss':'+0000' }}</vg-time-display>
+ <vg-fullscreen-button></vg-fullscreen-button>
+ <vg-volume>
+ <vg-mute-button></vg-mute-button>
+ </vg-volume>
+ </vg-controls>
+
+ </videogular>
+ </div>
</div>
- <div id="event_canvas_video">
+ <!--<div id="event_canvas_video">
<canvas id="eventchart" width="100%" height="20px"></canvas>
- </div>
+ </div>-->
</div>
</div>
<!-- 100vh -->
@@ -61,21 +63,22 @@
@{{currentRate}}x {{'kAt' | translate}}:{{currentProgress.progress}}s
</div>
</div>
+
</ion-content>
</ion-modal-view>
<nav mfb-menu position="tr" effect="zoomin" label="{{'kCollapse'|translate}}" active-icon="ion-chevron-up" resting-icon="ion-chevron-down" toggling-method="click">
<a mfb-button icon="ion-arrow-right-c" label="{{'kNextEvent'|translate}}" ng-click="jumpToEvent(nextId,1);"></a>
<a mfb-button icon="ion-arrow-left-c" label="{{'kPrevEvent'|translate}}" ng-click="jumpToEvent(prevId,-1);"></a>
- <a mfb-button icon="ion-arrow-resize" label="{{imageFit?'fill screen':'fit screen'}}" ng-click="scaleImage();"></a>
+ <a mfb-button icon="ion-arrow-resize" label="{{imageFit? ('kFillScreen' | translate):('kFitScreen' | translate)}}" ng-click="scaleImage();"></a>
<a mfb-button icon="ion-close" label="{{'kExitEventView' | translate}}" ng-click="closeModal()"> </a>
</nav>
- <nav ng-if="loginData.useNphZmsForEvents" mfb-menu position="br" effect="zoomin" label="collapse" active-icon="ion-chevron-down" resting-icon="ion-chevron-up" toggling-method="click">
+ <nav ng-if="loginData.useNphZmsForEvents && defaultVideo==''" mfb-menu position="br" effect="zoomin" label="{{'kCollapse' | translate}}" active-icon="ion-chevron-down" resting-icon="ion-chevron-up" toggling-method="click">
<a mfb-button icon="ion-skip-backward" label="{{'kFastRewind'|translate}}" ng-click="adjustSpeed('fr');"></a>
<a mfb-button icon="ion-skip-forward" label="{{'kFastForward'|translate}}" ng-click="adjustSpeed('ff');"></a>
<a mfb-button icon="ion-play" label="{{'kNormalPlay'|translate}}" ng-click="adjustSpeed('np');"></a>
<a mfb-button icon="ion-pause" label="{{'kPause'|translate}}" ng-click="adjustSpeed('p');"> </a>
</nav>
- <div class="events-range-modal-text">{{mName}}&nbsp;<i class="ion-arrow-right-b"></i>&nbsp;{{humanizeTime}} ({{d_eventId}}) </div>
+ <div class="events-range-modal-text">{{mName}}&nbsp;<i class="ion-arrow-right-b"></i>&nbsp;{{videoDynamicTime}} ({{humanizeTime}}) [{{d_eventId}}] </div>
<div id="flyoutmenu" style="position:absolute;bottom:100px;left:10px">
<ul>
<li ng-if="defaultVideo==''">
diff --git a/www/templates/events-modalgraph.html b/www/templates/events-modalgraph.html
index 8b718a5e..25b38543 100644
--- a/www/templates/events-modalgraph.html
+++ b/www/templates/events-modalgraph.html
@@ -1,10 +1,9 @@
<div ng-controller="EventsModalGraphCtrl">
-
-<ion-modal-view cache-view="false" style="width:80%;height:80%; top: 10%; left: 10%; right: 10%; bottom: 10%;" >
+ <ion-modal-view cache-view="false" style="width:80%;height:80%; top: 10%; left: 10%; right: 10%; bottom: 10%;">
<ion-content ng-cloak on-double-tap="closeModal()" delegate-handle="eventgraph-modal-delegate">
- <div data-tap-disabled="true">
- <canvas id="eventchart" width="auto" height="70%"></canvas>
- </div>
+ <div data-tap-disabled="true">
+ <canvas id="eventchart" width="auto" height="70%"></canvas>
+ </div>
</ion-content>
</ion-modal-view>
</div>
diff --git a/www/templates/events-popover.html b/www/templates/events-popover.html
index e48b290e..38dd1d2e 100644
--- a/www/templates/events-popover.html
+++ b/www/templates/events-popover.html
@@ -1,18 +1,15 @@
<ion-popover-view class="fit">
- <ion-content>
- <div class="list" ng-click="popover.hide()">
+ <ion-content>
+ <div class="list" ng-click="popover.hide()">
<a class="item" ng-href="" ng-click="popover.hide();$state.go('events-date-time-filter');">{{'kFilterByDateTime' | translate}}</a>
-
<!-- <a class="item" ng-href="" ng-click=" popover.hide();$state.go('events-graphs');" >
Event Graphs
</a>-->
<a class="item" ng-href="" ng-click="popover.hide();doRefresh();">
{{'kRefresh' | translate}}
</a>
-
<a class="item" ng-href="" ng-click="popover.hide();toggleMinAlarmFrameCount();" ng-if="loginData.enableAlarmCount">{{'kShowAllEvents' | translate}}</a>
- <a class="item" ng-href="" ng-click="popover.hide();toggleMinAlarmFrameCount();" ng-if="!loginData.enableAlarmCount"> {{'kShowAlarmedEvents' | translate}}</a>
- </div>
- </ion-content>
- </ion-popover-view>
-
+ <a class="item" ng-href="" ng-click="popover.hide();toggleMinAlarmFrameCount();" ng-if="!loginData.enableAlarmCount"> {{'kShowAlarmedEvents' | translate}}</a>
+ </div>
+ </ion-content>
+</ion-popover-view>
diff --git a/www/templates/events.html b/www/templates/events.html
index af2a7f89..5d60a46b 100644
--- a/www/templates/events.html
+++ b/www/templates/events.html
@@ -1,82 +1,49 @@
-
<ion-view cache-view="false">
-
<ion-nav-title>{{scrollPosition();}}</ion-nav-title>
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()">
</button>
-
<button class="button button-icon icon ion-ios-minus-outline" ng-click="eventList.showDelete = !eventList.showDelete;"></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>
-
</ion-nav-buttons>
-
<ion-nav-buttons side="right">
<a style="" class="button button-icon icon ion-android-more-vertical" ng-click="popover.show($event)" ;>&nbsp;&nbsp;&nbsp;</a>
<a style="" class="button button-icon icon ion-search" ng-href="" ng-click="searchClicked();"> </a>
</ion-nav-buttons>
-
<div ng-if="showSearch">
<ion-header-bar class="bar bar-subheader item-input-inset">
-
<label class="item-input-wrapper">
<i class="icon ion-ios7-search placeholder-icon"></i>
<input type="search" placeholder="{{'kSearch'|translate}}" ng-model="search.text" autocorrect="off" autocomplete="off">
</label>
</ion-header-bar>
</div>
-
-
-
<!-- collection repeat forces js scrolling, thing to remember -->
-
- <ion-content scroll-sista ng-cloak on-tap="tapped();" delegate-handle="mainScroll" mouse-wheel-scroll>
+ <ion-content scroll-sista ng-cloak on-tap="tapped();" delegate-handle="mainScroll" mouse-wheel-scroll>
<!-- needed for header-shrink so first item doesn't go below header-->
- <!-- <div style="height: 64px;"></div>-->
+ <!-- <div style="height: 64px;"></div>-->
<!-- lets make sure the events list is not empty as collection repeat needs height -->
-
<div ng-if="!eventsBeingLoaded">
-
<ion-list show-delete="eventList.showDelete">
- <ion-item collection-repeat="event in events| filter:search.text" item-height="event.Event.height" id="item-{{$index}}" >
-
-
+ <ion-item collection-repeat="event in events| filter:search.text" item-height="event.Event.height" id="item-{{$index}}">
<span style="float:left;margin-top:-18px;background-color:#96281B;color:#fff;font-size:11px;opacity:0.7;border-radius: 0px 0px 5px 5px;">&nbsp;&nbsp;&nbsp;<i class="ion-calendar"></i>&nbsp;&nbsp;{{prettifyTime(event.Event.StartTime)}}&nbsp;{{tzAbbr}}&nbsp;</span>&nbsp;&nbsp;
-
-
<span style="float:left;margin-top:-18px;background-color:#fff;color:#888;font-size:11px;opacity:1;">&nbsp;&nbsp;<i class="ion-arrow-right-b"></i>&nbsp;{{event.Event.humanizeTime}} <span ng-if="!event.Event.EndTime">(<span translate="kRecordingProgress"></span>)</span>
</span>
-
-
-
-
<span style="float:right;margin-top:-18px;background-color:#444444;color:#fff;font-size:11px;opacity:0.7;border-radius: 0px 0px 5px 5px;">&nbsp;&nbsp;&nbsp;<i class="ion-clock"></i>&nbsp;&nbsp;{{prettifyDate(event.Event.StartTime)}}
&nbsp;{{tzAbbr}}&nbsp;</span>
-
-
-
-
-
<div class="row">
<div class="col col-left">
<!-- this ngswitch displays different icons
depending on the cause of the event -->
-
<div ng-switch on="event.Event.Cause">
<div ng-switch-when="Motion">
-
<i class="ion-android-walk" style="float:left; font-size:200%;"></i>
-
- <i ng-class="(event.Event.DefaultVideo !== undefined && event.Event.DefaultVideo!='')? 'ion-ios-videocam':'ion-images'" style="float:left; padding-left:5px; font-size:100%;"></i>
-
+ <i ng-class="(event.Event.DefaultVideo !== undefined && event.Event.DefaultVideo!='')? 'ion-ios-videocam':'ion-images'" style="float:left; padding-left:5px; font-size:100%;"></i>
<br/>
</div>
<div ng-switch-when="Signal">
<i class="ion-wifi" style="float:left; font-size:200%;"></i>
-
<i ng-class="(event.Event.DefaultVideo !== undefined && event.Event.DefaultVideo!='')? 'ion-ios-videocam':'ion-images'" style="float:left; padding-left:5px; font-size:100%;"></i>
-
<br/>
</div>
<div ng-switch-default>
@@ -87,7 +54,6 @@
</div>
<!-- ng switch -->
<!-- {{event.Event.Cause}} -->
-
<br/>
<span style="font-size:80%; color:rgb(110,110,110)">
{{event.Event.Length}}s
@@ -96,17 +62,26 @@
<!-- col col left-->
<div class="col col-80">
<div class="item-text-wrap">
- <i class="ion-ios-videocam-outline"></i>
- <b>{{event.Event.MonitorName}}</b> ({{event.Event.Name}})
- </div>
+
+ <b>{{event.Event.MonitorName}}</b> ({{event.Event.Id}}) &nbsp;
+ <button ng-if="gifshotSupported" class="button button-small button-clear icon gif-icon" ng-click="permissionsDownload(event)">
+ </button>
+
+
+
+ <a ng-if="(event.Event.DefaultVideo!='' && event.Event.DefaultVideo!==undefined) && $root.platformOS=='desktop' " class="button button-clear button-small icon mp4-icon" href="{{event.Event.videoPath}}" download="{{event.Event.Id}}-video.mp4" ng-click="mp4warning()"></a>
+ <button ng-if="event.Event.DefaultVideo!='' && event.Event.DefaultVideo!=undefined && $root.platformOS!='desktop'" class="button button-small button-clear icon mp4-icon" ng-click="downloadFileToDevice(event.Event.videoPath, event.Event.Id)">
+ </button>
+
+
+ </div>
<i class="ion-images"></i> {{event.Event.Frames}} &nbsp;
<i class="ion-ios-bell-outline"></i> {{event.Event.AlarmFrames}} &nbsp;
<i class="ion-arrow-graph-up-right"></i> {{event.Event.TotScore}}
</div>
</div>
<!--row-->
-
<div class="row" style="font-size:80%; color:rgb(110,110,110)">
<div class="item-text-wrap"><i class="ion-calendar"></i>&nbsp; {{prettify(event.Event.StartTime)}}&nbsp;{{tzAbbr}}&nbsp;
<br/>
@@ -114,178 +89,121 @@
<!-- <br/> Default video:{{event.Event.relativePath}}{{event.Event.DefaultVideo}}-->
</div>
</div>
-
<span style="float:right">
- <div ng-if="event.Event.EndTime || 1">
-
- <button class="button button-small button-outline icon icon-left ion-stats-bars"
- ng-click="closeIfOpen(event);analyzeEvent(event)" > <span translate="kAnalyze"></span>
- </button>
-
- <button class="button button-outline button-small icon icon-left ion-ios-eye"
- ng-click="toggleGroupScrub(event,$index,event.Event.Frames)" > <span translate="kScrub"></span>
- </button>
-
- <button ng-if="event.Event.AlarmFrames > 0" class="button button-outline button-small icon icon-left ion-ios-bell"
- ng-click="toggleGroupAlarms(event,$index,event.Event.Frames)" > <span translate="kAlarms"></span>
- </button>
-
+ <div ng-if="event.Event.EndTime || 1">
+ <button class="button button-small button-outline icon icon-left ion-stats-bars"
+ ng-click="closeIfOpen(event);analyzeEvent(event)" >
+ <span translate="kAnalyze"></span>
+ </button>
+ <button class="button button-outline button-small icon icon-left ion-ios-eye" ng-click="toggleGroupScrub(event,$index,event.Event.Frames)"> <span translate="kScrub"></span>
+ </button>
+ <button ng-if="event.Event.AlarmFrames > 0" class="button button-outline button-small icon icon-left ion-ios-bell" ng-click="toggleGroupAlarms(event,$index,event.Event.Frames)"> <span translate="kAlarms"></span>
+ </button>
+ <button class="button button-outline button-small icon icon-left ion-ios-eye" ng-click="closeIfOpen(event);openModal(event)"> <span translate="kFootage"></span>
+ </button>
- <button class="button button-outline button-small icon icon-left ion-ios-eye"
- ng-click="closeIfOpen(event);openModal(event)" > <span translate="kFootage"></span>
- </button>
- </div>
-
-
- </span>
+
- <!-- this is the event scrub/alarm frames area -->
- <div ng-if="isGroupShown(event)">
-
-
-
- <div ng-if="groupType=='alarms'">
- <br/><br/>
-
- <div style="height:190px;">
- <p>
- <!--scroll <i class="icon ion-arrow-left-c"></i>
+ </div>
+ </span>
+ <!-- this is the event scrub/alarm frames area -->
+ <div ng-if="isGroupShown(event)">
+ <div ng-if="groupType=='alarms'">
+ <br/>
+ <br/>
+ <div style="height:190px;">
+ <p>
+ <!--scroll <i class="icon ion-arrow-left-c"></i>
<i class="icon ion-arrow-right-c"></i>-->
-
- <button ng-click="toggleTypeOfAlarms()" class="button button-small button-assertive button-outline">
- <span translate="kType"></span>:{{typeOfFrames}}
- </button>
- </p>
-
-
- <ion-scroll direction="x" overflow-scroll="false">
-
- <span ng-repeat="alarm in alarm_images | selectFrames: typeOfFrames">
+ <button ng-click="toggleTypeOfAlarms()" class="button button-small button-assertive button-outline">
+ <span translate="kType"></span>:{{typeOfFrames}}
+ </button>
+ </p>
+ <ion-scroll direction="x" overflow-scroll="false">
+ <span ng-repeat="alarm in alarm_images | selectFrames: typeOfFrames">
<figure class = "animated slideInLeft" style="display:inline-block">
<!--{{event.Event.baseURL}} p:{{event.Event.imageMode}}-->
- <figcaption class="smallnote"><span translate="kFrame"></span>:{{alarm.frameid}},<span translate="kScore"></span>:{{alarm.score}}, <span translate="kTime"></span>: {{prettifyTimeSec(alarm.time)}}</figcaption>
- <img ng-if="event.Event.imageMode=='path'" image-spinner-src="{{event.Event.baseURL}}/index.php?view=image&path={{event.Event.relativePath}}{{alarm.fname}}&height=380" style="width: auto; height: auto;max-width: 100%;max-height: 170px" on-tap="showImage(event.Event.baseURL,event.Event.relativePath,alarm.fname, alarm.frameid, event.Event.Id, event.Event.imageMode, alarm.id, alarm_images, $index)" />
-
- <img ng-if="event.Event.imageMode=='fid'" image-spinner-src="{{event.Event.baseURL}}/index.php?view=image&fid={{alarm.id}}" style="width: auto; height: auto;max-width: 100%;max-height: 170px" on-tap="showImage(event.Event.baseURL,event.Event.relativePath,alarm.fname, alarm.frameid, event.Event.Id, event.Event.imageMode, alarm.id, alarm_images, $index)" />
-
-
-
-
- </figure>
-
- </span>
-
- </ion-scroll>
- </div>
- </div>
- <div ng-if="groupType=='scrub'">
- <div ng-if="event.Event.DefaultVideo=='' || loginData.enableh264==false">
-
-
- <br/>
- <br/>
- <br/>
- <div style="width:90%">
- <input ng-model="ionRange.index" type="text" id="mySlider1" slider options="slider_options" />
- </div>
-
- <br/>
-
-
-
- <p>{{mycarousel.index+1}}/{{event.Event.Frames}} <span translate="kType"></span>: {{FrameArray[mycarousel.index].Type}}</p>
-
- <div style="height:190px">
-
-
- <ul rn-carousel rn-carousel-buffered rn-carousel-transition="none" rn-swipe-disabled="true" rn-carousel-index="mycarousel.index" rn-carousel-auto-slide="{{event.Event.Length/event.Event.Frames}}" rn-carousel-pause-on-hover rn-platform="{{$root.platformOS}}">
- <li ng-repeat="slide in slides">
-
-
- <img ng-if="event.Event.imageMode=='path'" imageonload="finishedLoadingImage($index)" image-spinner-src="{{event.Event.baseURL}}/index.php?view=image&path={{event.Event.relativePath}}{{slide.img}}&height=380" image-spinner-loader="lines" height="190px" ;/>
-
- <img ng-if="event.Event.imageMode=='fid'" imageonload="finishedLoadingImage($index)" image-spinner-src="{{event.Event.baseURL}}/index.php?view=image&fid={{slide.id}}" image-spinner-loader="lines" height="190px" ;/>
-
-
-
- <br/>
-
-
- </li>
- </ul>
- </div>
- </div>
- <!-- no DefaultVideo -->
-
-
- <div ng-if="event.Event.DefaultVideo!='' && loginData.enableh264 == true">
-
- <br/>
- <br/>
+ <figcaption class="smallnote"><span translate="kFrame"></span>:{{alarm.frameid}},<span translate="kScore"></span>:{{alarm.score}}, <span translate="kTime"></span>: {{prettifyTimeSec(alarm.time)}}</figcaption>
+ <img ng-if="event.Event.imageMode=='path'" image-spinner-src="{{event.Event.baseURL}}/index.php?view=image&path={{event.Event.relativePath}}{{alarm.fname}}&height=380" style="width: auto; height: auto;max-width: 100%;max-height: 170px" on-tap="showImage(event.Event.baseURL,event.Event.relativePath,alarm.fname, alarm.frameid, event.Event.Id, event.Event.imageMode, alarm.id, alarm_images, $index)" />
+ <img ng-if="event.Event.imageMode=='fid'" image-spinner-src="{{event.Event.baseURL}}/index.php?view=image&fid={{alarm.id}}" style="width: auto; height: auto;max-width: 100%;max-height: 170px" on-tap="showImage(event.Event.baseURL,event.Event.relativePath,alarm.fname, alarm.frameid, event.Event.Id, event.Event.imageMode, alarm.id, alarm_images, $index)" />
+ </figure>
+ </span>
+ </ion-scroll>
+ </div>
+ </div>
+ <div ng-if="groupType=='scrub'">
+ <div ng-if="event.Event.DefaultVideo=='' || loginData.enableh264==false">
+ <br/>
+ <br/>
+ <br/>
+ <div style="width:90%">
+ <input ng-model="ionRange.index" type="text" id="mySlider1" slider options="slider_options" />
+ </div>
+ <br/>
+ <p>{{mycarousel.index+1}}/{{event.Event.Frames}} <span translate="kType"></span>: {{FrameArray[mycarousel.index].Type}}</p>
+ <div style="height:190px">
+ <ul rn-carousel rn-carousel-buffered rn-carousel-transition="none" rn-swipe-disabled="true" rn-carousel-index="mycarousel.index" rn-carousel-auto-slide="{{event.Event.Length/event.Event.Frames}}" rn-carousel-pause-on-hover rn-platform="{{$root.platformOS}}">
+ <li ng-repeat="slide in slides">
+ <img ng-if="event.Event.imageMode=='path'" imageonload="finishedLoadingImage($index)" image-spinner-src="{{event.Event.baseURL}}/index.php?view=image&path={{event.Event.relativePath}}{{slide.img}}&height=380" image-spinner-loader="lines" height="190px" ;/>
+ <img ng-if="event.Event.imageMode=='fid'" imageonload="finishedLoadingImage($index)" image-spinner-src="{{event.Event.baseURL}}/index.php?view=image&fid={{slide.id}}" image-spinner-loader="lines" height="190px" ;/>
<br/>
-
-
- <div class="videogular-container">
- <videogular vg-theme="event.Event.video.config.theme"
- vg-plays-inline="'true'" vg-auto-play="'true'" vg-responsive="true">
- <vg-overlay-play></vg-overlay-play>
- <vg-controls>
- <vg-play-pause-button></vg-play-pause-button>
- <vg-scrub-bar>
- <vg-scrub-bar-current-time></vg-scrub-bar-current-time>
- </vg-scrub-bar>
- <vg-time-display>{{ timeLeft | date:'mm:ss':'+0000' }}</vg-time-display>
- <vg-fullscreen-button></vg-fullscreen-button>
- <vg-volume>
- <vg-mute-button></vg-mute-button>
- </vg-volume>
- </vg-controls>
-
- <vg-media vg-src="event.Event.video.config.sources" vg-native-controls="false">
- </vg-media>
-
-
- </videogular>
- </div>
-
- </div>
- <!-- DefaultVideo -->
- </div> <!-- type = scrub -->
+ </li>
+ </ul>
</div>
- <!-- isGroupShown -->
-
- <ion-delete-button class="ion-minus-circled" ng-click="deleteEvent(event.Event.Id, $index)">
- </ion-delete-button>
-
-
-
- </ion-item>
- </ion-list>
+ </div>
+ <!-- no DefaultVideo -->
+ <div ng-if="event.Event.DefaultVideo!='' && loginData.enableh264 == true">
+ <br/>
+ <br/>
+ <br/>
+ <div class="videogular-container">
+ <videogular vg-theme="event.Event.video.config.theme" vg-plays-inline="'true'" vg-auto-play="'true'" vg-responsive="true">
+ <vg-overlay-play></vg-overlay-play>
+ <vg-controls>
+ <vg-play-pause-button></vg-play-pause-button>
+ <vg-scrub-bar>
+ <vg-scrub-bar-current-time></vg-scrub-bar-current-time>
+ </vg-scrub-bar>
+ <vg-time-display>{{ timeLeft | date:'mm:ss':'+0000' }}</vg-time-display>
+ <vg-fullscreen-button></vg-fullscreen-button>
+ <vg-volume>
+ <vg-mute-button></vg-mute-button>
+ </vg-volume>
+ </vg-controls>
+ <vg-media vg-src="event.Event.video.config.sources" vg-native-controls="false">
+ </vg-media>
+ </videogular>
+ </div>
+ </div>
+ <!-- DefaultVideo -->
+ </div>
+ <!-- type = scrub -->
</div>
+ <!-- isGroupShown -->
+ <ion-delete-button class="ion-minus-circled" ng-click="deleteEvent(event.Event.Id, $index)">
+ </ion-delete-button>
+ </ion-item>
+ </ion-list>
+ </div>
+ <!-- !eventsBeingLoaded-->
- <ion-item ng-show="!events.length">
- <span translate="kNoEvents"></span>
- </ion-item>
- <div ng-if="!eventsBeingLoaded">
- <ion-infinite-scroll ng-if="moreDataCanBeLoaded()" icon="ion-loading-c" on-infinite="loadMore()" distance="2%">
- </ion-infinite-scroll>
- </div>
+ <ion-item ng-show="!events.length">
+ <span translate="kNoEvents"></span>
+ </ion-item>
+ <div ng-if="!eventsBeingLoaded">
+ <ion-infinite-scroll ng-if="moreDataCanBeLoaded()" icon="ion-loading-c" on-infinite="loadMore()" distance="2%">
+ </ion-infinite-scroll>
+ </div>
+ <canvas id="canvas" class="hiddengifcanvas"></canvas>
</ion-content>
-
-
-
<div class="events-float-filter" ng-if="isEventFilterOn" on-tap="filterTapped();"><span translate="kFilterOn"></span></div>
-
- <div class="bwmode" ng-if="$root.runMode=='lowbw'">
- <span translate="kLowBWDisplay"></span>
- </div>
-
-
+ <div class="bwmode" ng-if="$root.runMode=='lowbw'">
+ <span translate="kLowBWDisplay"></span>
+ </div>
<ion-pull-up-footer class="zmPullup" on-expand="footerExpand()" on-collapse="footerCollapse()" initial-state="minimized" default-behavior="expand">
-
<ion-pull-up-handle width="100" height="25" toggle="ion-chevron-up ion-chevron-down" style="border-radius: 25px 25px 0 0">
<i class="icon ion-chevron-up"></i>
</ion-pull-up-handle>
@@ -293,74 +211,57 @@
<h1 class="title" ion-pull-up-trigger><span translate="kLatestEvents"></span></h1>
</ion-pull-up-bar>
<ion-pull-up-content scroll="true">
-
<div class="list list-inset">
<div class="item item-divider"><span translate="k1HourSummary"></span></div>
<div ng-repeat="hour in hours|filter:{ monitor: '!'+'(Unknown)'}" id="hour-{{$index}}">
-
<span style="color:black">
<a class="item item-icon-right" href=""
ng-click="showEvents('1', 'hour',hour.mid);">
<b>{{hour.monitor}}</b> {{hour.events}} <span translate="kEvents"></span>
- <i class="icon ion-android-arrow-dropright"></i>
+ <i class="icon ion-android-arrow-dropright"></i>
</a>
</span>
-
</div>
</div>
-
<div class="list list-inset">
<div class="item item-divider"><span translate="k1DaySummary"></span></div>
<div ng-repeat="day in days|filter:{ monitor: '!'+'(Unknown)'}" id="day-{{$index}}">
-
<span style="color:black">
<a class="item item-icon-right" href=""
ng-click="showEvents('1', 'day',day.mid);">
<b>{{day.monitor}}</b> {{day.events}} <span translate="kEvents"></span>
- <i class="icon ion-android-arrow-dropright"></i>
+ <i class="icon ion-android-arrow-dropright"></i>
</a>
</span>
-
</div>
</div>
-
-
<div class="list list-inset">
<div class="item item-divider"><span translate="k1WeekSummary"></span></div>
<div ng-repeat="week in weeks|filter:{ monitor: '!'+'(Unknown)'}" id="week-{{$index}}">
-
<span style="color:black">
<a class="item item-icon-right" href=""
ng-click="showEvents('1', 'week',week.mid);">
<b>{{week.monitor}}</b> {{week.events}} <span translate="kEvents"></span>
- <i class="icon ion-android-arrow-dropright"></i>
+ <i class="icon ion-android-arrow-dropright"></i>
</a>
</span>
-
</div>
</div>
-
<div class="list list-inset">
<div class="item item-divider"><span translate="k1MonthSummary"></span></div>
<div ng-repeat="month in months|filter:{ monitor: '!'+'(Unknown)'}" id="month-{{$index}}">
-
<span style="color:black">
<a class="item item-icon-right" href=""
ng-click="showEvents('1', 'months',month.mid);">
<b>{{month.monitor}}</b> {{month.events}} <span translate="kEvents"></span>
- <i class="icon ion-android-arrow-dropright"></i>
+ <i class="icon ion-android-arrow-dropright"></i>
</a>
</span>
-
</div>
- </div>
+ </div>
<br/>
<br/>
-
-
</ion-pull-up-content>
</ion-pull-up-footer>
-
-
</ion-view>
diff --git a/www/templates/eventserversettings.html b/www/templates/eventserversettings.html
index e6ec4614..393eb61b 100644
--- a/www/templates/eventserversettings.html
+++ b/www/templates/eventserversettings.html
@@ -1,62 +1,41 @@
<ion-view cache-view="false">
-
<ion-nav-title>{{'kEventServer' | translate}}/{{getTitle();}} </ion-nav-title>
-
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></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>
</ion-nav-buttons>
-
-
<ion-nav-buttons side="right">
<button class="button button-clear" ng-click="saveItems()">{{'kSave'|translate}}</button>
</ion-nav-buttons>
-
- <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll >
-
- <div class="list list-inset">
- {{'kEventServerConfig1' | translate }}
+ <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <div class="list list-inset">
+ {{'kEventServerConfig1' | translate }}
</div>
<ion-checkbox ng-model="loginData.isUseEventServer" ng-checked="loginData.isUseEventServer">{{'kUseEventServer' | translate}}</ion-checkbox>
-
-
- <ion-item ng-href="" ng-click="selectScreen()">
+ <ion-item ng-href="" ng-click="selectScreen()">
{{'kOnTapNavigate' | translate}}: {{defScreen}}
</ion-item>
-
<label class="item item-input item-floating-label" ng-if="loginData.isUseEventServer">
<span class="input-label">{{'kEventServer' | translate}}</span>
<input autocapitalize="none" autocomplete="off" autocorrect="off" type="text" placeholder="Event notification url" ng-model="loginData.eventServer">
-
</label>
-
- <ion-toggle ng-if="loginData.isUseEventServer" ng-model="loginData.disablePush" ng-checked="loginData.disablePush" toggle-class="toggle-calm" class="item-text-wrap">{{'kOnlyUseWebSocket'| translate }}<br/><p>{{'kDisablePush' | translate }}</p></ion-toggle>
-
-
- <!-- vibrate app setting is not av. on iOS-->
- <ion-toggle ng-if="loginData.isUseEventServer && $root.platformOS !='ios'" ng-model="loginData.vibrateOnPush" ng-checked="loginData.vibrateOnPush" toggle-class="toggle-calm" >{{'kVibrateOnPush'| translate }}</ion-toggle>
-
-
- <ion-toggle ng-if="loginData.isUseEventServer" ng-model="loginData.soundOnPush" ng-checked="loginData.soundOnPush" toggle-class="toggle-calm" >{{'kSoundOnPush'| translate }}</ion-toggle>
-
+ <ion-toggle ng-if="loginData.isUseEventServer" ng-model="loginData.disablePush" ng-checked="loginData.disablePush" toggle-class="toggle-calm" class="item-text-wrap">{{'kOnlyUseWebSocket'| translate }}
+ <br/>
+ <p>{{'kDisablePush' | translate }}</p>
+ </ion-toggle>
+ <!-- vibrate app setting is not av. on iOS-->
+ <ion-toggle ng-if="loginData.isUseEventServer && $root.platformOS !='ios'" ng-model="loginData.vibrateOnPush" ng-checked="loginData.vibrateOnPush" toggle-class="toggle-calm">{{'kVibrateOnPush'| translate }}</ion-toggle>
+ <ion-toggle ng-if="loginData.isUseEventServer" ng-model="loginData.soundOnPush" ng-checked="loginData.soundOnPush" toggle-class="toggle-calm" class="item-text-wrap">{{'kSoundOnPush'| translate }}</ion-toggle>
<!--
<ion-toggle ng-model="loginData.defaultPushSound" toggle-class="toggle-calm" class="item-text-wrap" ng-checked="{{loginData.defaultPushSound}}">use system sound<p>please save and restart app</p></ion-toggle>
-->
<ion-list>
<div ng-repeat="monitor in monitors">
-
- <ion-item class="custom-list"
- ng-click="toggleGroup(monitor)"
- ng-class="{active: isGroupShown(monitor)}">
- <i class="icon" ng-class="isGroupShown(monitor) ? 'ion-minus' : 'ion-plus'"></i>
- &nbsp;
-
- {{monitor.Monitor.Name}}
- </ion-item>
-
- <ion-item class="item-accordion"
- ng-show="isGroupShown(monitor)">
- <span class="item-checkbox">
+ <ion-item class="custom-list" ng-click="toggleGroup(monitor)" ng-class="{active: isGroupShown(monitor)}">
+ <i class="icon" ng-class="isGroupShown(monitor) ? 'ion-minus' : 'ion-plus'"></i> &nbsp; {{monitor.Monitor.Name}}
+ </ion-item>
+ <ion-item class="item-accordion" ng-show="isGroupShown(monitor)">
+ <span class="item-checkbox">
{{'kReportEvents' | translate }}
<label class="checkbox">
@@ -64,30 +43,15 @@
</label>
</span>
</ion-item>
-
- <ion-item class="item-accordion"
- ng-show="isGroupShown(monitor)">
- <div class="item-input-inset" >
- <label class="item-input-wrapper" >
- <input type="tel" placeholder="sec." ng-model="monitor.Monitor.reportingInterval">
- </label>
- &nbsp;{{'kMinimumIntervals' | translate}}
-
-
- </div>
+ <ion-item class="item-accordion" ng-show="isGroupShown(monitor)">
+ <div class="item-input-inset">
+ <label class="item-input-wrapper">
+ <input type="tel" placeholder="sec." ng-model="monitor.Monitor.reportingInterval">
+ </label>
+ &nbsp;{{'kMinimumIntervals' | translate}}
+ </div>
</ion-item>
-
-
</div>
-
</ion-list>
-
-
-
-
-
</ion-content>
</ion-view>
-
-
-
diff --git a/www/templates/first-use.html b/www/templates/first-use.html
index 5599f982..884fb0c9 100644
--- a/www/templates/first-use.html
+++ b/www/templates/first-use.html
@@ -7,8 +7,6 @@
<div id="responsive-image">
<img src="img/authlogo.png">
</div>
-
-
<br/>
<span style="color:white">
<h2 style="color:white" >Hi There!</h2>
@@ -21,15 +19,11 @@
</span>
<br/>
<div id="firstuse">
-
-
- <button class="button icon icon-left ion-wand button-stable animated bounceInUp" ng-click="goToWizard()">
+ <button class="button icon icon-left ion-wand button-stable animated bounceInUp" ng-click="goToWizard()">
{{'kWizard' | translate}}
</button>
-
- <button class="button icon icon-left ion-university button-stable animated bounceInUp" ng-click="goToLogin()">
+ <button class="button icon icon-left ion-university button-stable animated bounceInUp" ng-click="goToLogin()">
{{'kExpert' | translate }}
-
</button>
<br/>
<center>
@@ -37,12 +31,8 @@
{{'kLanguage' | translate}}
</button>
</center>
-
</div>
</center>
-
-
</div>
-
</ion-content>
-</ion-view> \ No newline at end of file
+</ion-view>
diff --git a/www/templates/help.html b/www/templates/help.html
index fffdf2d1..c0f714cf 100644
--- a/www/templates/help.html
+++ b/www/templates/help.html
@@ -1,21 +1,12 @@
-<ion-view cache-view="false" view-title="Help">
-
+<ion-view cache-view="false" view-title="{{'kHelp' | translate}}">
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></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>
-
</ion-nav-buttons>
-
-
- <ion-content class="padding" scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
-
+ <ion-content class="padding" scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
<p><small>{{$root.appName}} v{{zmAppVersion}}</small></p>
<div class="list">
-
- <div id="insertHelp"></div>
+ <div id="insertHelp"></div>
</div>
-
</ion-content>
-
-</ion-view> \ No newline at end of file
+</ion-view>
diff --git a/www/templates/important_message.html b/www/templates/important_message.html
index bd3274f5..f0fd245e 100644
--- a/www/templates/important_message.html
+++ b/www/templates/important_message.html
@@ -1,7 +1,6 @@
<ion-view view-title="{{$root.appName}}" hide-nav-bar="false" hide-back-button="false" cache-view="false">
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
-
</ion-nav-buttons>
<ion-content class="pin-background">
<div style="margin-left:20px; margin-right:20px">
@@ -11,8 +10,6 @@
<div id="responsive-image">
<img src="img/authlogo.png">
</div>
-
-
<br/>
<span style="color:white">
<h2 style="color:white" class="animated bounce">{{'kImpMsg1' | translate}}</h2>
@@ -32,10 +29,6 @@
</span>
</center>
<br/>
-
-
-
</div>
-
</ion-content>
-</ion-view> \ No newline at end of file
+</ion-view>
diff --git a/www/templates/log.html b/www/templates/log.html
index e53f00aa..f4e32d66 100644
--- a/www/templates/log.html
+++ b/www/templates/log.html
@@ -1,29 +1,20 @@
<ion-view view-title="{{'kLogs' | translate}}">
-
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></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>
-
-
-
</ion-nav-buttons>
-
<ion-nav-buttons side="right">
<a class="button button-icon icon ion-trash-a" ng-href="" ng-click="deleteLogs()"></a>
-
<div ng-if="$root.platformOS!='desktop'">
- <a style="" class="button button-icon icon ion-email"
- ng-href="" ng-click="sendEmail(log.logString)" > </a>
+ <a style="" class="button button-icon icon ion-email" ng-href="" ng-click="sendEmail(log.logString)"> </a>
</div>
<div ng-if="$root.platformOS=='desktop'">
- <a style="" class="button button-icon icon ion-android-download"
- ng-href="" ng-click="sendEmail(log.logString)" > </a>
+ <a style="" class="button button-icon icon ion-android-download" ng-href="" ng-click="sendEmail(log.logString)"> </a>
</div>
</ion-nav-buttons>
-
- <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
- <b>{{$root.appName}} {{'kVersion'|translate}}: {{zmAppVersion}}</b><br/>
+ <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <b>{{$root.appName}} {{'kVersion'|translate}}: {{zmAppVersion}} ({{$root.platformOS}})</b>
+ <br/>
<!-- don't indent here -- its a pre-->
<pre>{{log.logString}}</pre>
</ion-content>
diff --git a/www/templates/login.html b/www/templates/login.html
index 738c1c46..9372aae0 100644
--- a/www/templates/login.html
+++ b/www/templates/login.html
@@ -1,120 +1,85 @@
<ion-view view-title="{{'kSettings' | translate}}" cache-view="false">
-
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
<button class="button button-icon button-clear ion-arrow-down-b" ng-click="serverActionSheet()"></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>
</ion-nav-buttons>
-
<ion-nav-buttons side="right">
- <button class="button button-clear" ng-click="saveItems()">Save</button>
+ <button class="button button-clear" ng-click="saveItems()">{{'kSave' | translate}}</button>
</ion-nav-buttons>
-
- <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll >
-
- <div class="item item-input-inset">
+ <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <div class="item item-text-wrap item-input-inset">
{{'kServerName' | translate }}:&nbsp;
<label class="item-input-wrapper">
<input autocorrect="off" type="text" placeholder="{{'kExampleServer' | translate}}" ng-model="loginData.serverName">
</label>
</div>
-
<label>
- <ion-toggle ng-model="loginData.enableLowBandwidth" toggle-class="toggle-calm">{{'kLowBandwidth'|translate}}
+ <ion-toggle ng-model="loginData.enableLowBandwidth" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kLowBandwidth'|translate}}</span>
</ion-toggle>
</label>
<label ng-if="loginData.enableLowBandwidth">
- <ion-toggle ng-model="loginData.autoSwitchBandwidth" toggle-class="toggle-calm">{{'kAutoSwitchBW'|translate}}
+ <ion-toggle ng-model="loginData.autoSwitchBandwidth" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kAutoSwitchBW'|translate}}</span>
</ion-toggle>
</label>
-
-
<div class="list list-inset">
<span style="color:rgb(100,100,100)">
<i class="ion-android-home" style="font-size:150%"></i>
{{'kZMSettingsFor' | translate}} {{loginData.serverName || ('kUnknown' | translate)}}
</span>
-
- <div class="item">
+ <p ng-if="$root.platformOS=='android'" style="font-size:0.8em; color:gray">{{'kDisableSamsung' | translate}}</p>
+ <div class="item item-text-wrap">
<ion-checkbox ng-model="check.isUseAuth">{{'kUseZmAuth' | translate }}</ion-checkbox>
-
<div ng-if="check.isUseAuth">
-
<label class="item item-input item-floating-label">
<span class="input-label">{{'kUserName'|translate}}</span>
<input autocapitalize="none" autocomplete="off" autocorrect="off" type="text" placeholder="username" ng-model="loginData.username">
</label>
-
<label class="item item-input item-floating-label">
<span class="input-label">{{'kPassword' | translate}}</span>
<input type="password" placeholder="password" ng-model="loginData.password">
</label>
</div>
-
</div>
<label class="item item-input item-floating-label">
<span class="input-label">{{'kPortalUrl' | translate}}</span>
<input autocapitalize="none" autocomplete="off" autocorrect="off" type="text" placeholder="ZM portal url " ng-model="loginData.url" ng-keyup="portalKeypress($event)">
</label>
-
<!--<button class="button button-small button-clear icon-left ion-wand" ng-click="detectCgi()">tap here to discover cgi-bin
</button>-->
-
<label class="item item-input item-floating-label">
-
-
<!--<span style="float:right;margin-top:-7px;background-color:#6d0909;color:#fff;font-size:14px;opacity:0.7;width:90px;border-radius: 0px 0px 5px 5px;" on-tap="detectCgi();">&nbsp;&nbsp;&nbsp;<i class="ion-wand"></i>discover</span>-->
-
-
<span class="input-label">{{'kPathToCgi' | translate}}</span>
-
<input autocapitalize="none" autocomplete="off" autocorrect="off" type="text" placeholder="eg. server.com/zm/cgi-bin" ng-model="loginData.streamingurl">
-
</label>
-
-
-
<label class="item item-input item-floating-label">
<span class="input-label">{{'kApiUrl' | translate}}</span>
<input autocapitalize="none" autocomplete="off" autocorrect="off" type="text" placeholder="ZM api url" ng-model="loginData.apiurl">
</label>
-
<a class="item item-icon-right" href="" ng-click="selectFallback()">
<i class="icon ion-ios-arrow-right">
</i> {{'kFallback' | translate}}
<p>{{loginData.fallbackConfiguration}}</p>
</a>
-
<a class="item item-icon-right" href="" ng-click="eventServerSettings()">
<i class="icon ion-ios-arrow-right">
</i> {{'kEventServer' | translate}}
</a>
-
-
<div ng-if="$root.platformOS != 'desktop'">
<label>
-
- <ion-toggle ng-model="loginData.usePin" ng-change="pinPrompt();" ng-checked="{{loginData.usePin}}" toggle-class="toggle-calm">{{'kPassword' | translate}} {{'kProtect'|translate}}</ion-toggle>
+ <ion-toggle ng-model="loginData.usePin" ng-change="pinPrompt();" ng-checked="{{loginData.usePin}}" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kPassword' | translate}} {{'kProtect'|translate}}</span></ion-toggle>
</label>
</div>
-
<label>
- <ion-toggle ng-model="loginData.useSSL" ng-checked="{{loginData.useSSL}}" toggle-class="toggle-calm">{{'kUseSSL' | translate}}</ion-toggle>
+ <ion-toggle ng-model="loginData.useSSL" ng-checked="{{loginData.useSSL}}" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kUseSSL' | translate}}</span></ion-toggle>
</label>
-
<div ng-if="$root.platformOS != 'desktop'">
<label>
-
- <ion-toggle ng-model="loginData.keepAwake" ng-checked="{{loginData.keepAwake}}" toggle-class="toggle-calm">{{'kAwake1'|translate}}
- <p>{{'kAwake2'| translate}}</p>
+ <ion-toggle ng-model="loginData.keepAwake" ng-checked="{{loginData.keepAwake}}" toggle-class="toggle-calm"><span class="item-text-wrap">{{'kAwake1'|translate}}
+ <p>{{'kAwake2'| translate}}</p></span>
</ion-toggle>
</label>
</div>
</div>
-
-
</ion-content>
-</ion-view> \ No newline at end of file
+</ion-view>
diff --git a/www/templates/lowversion.html b/www/templates/lowversion.html
index d9a50986..d6b9cb7e 100644
--- a/www/templates/lowversion.html
+++ b/www/templates/lowversion.html
@@ -1,5 +1,4 @@
<ion-view view-title="{{$root.appName}}" hide-nav-bar="true" hide-back-button="true" cache-view="false">
-
<ion-content class="pin-background">
<div style="margin-left:20px; margin-right:20px">
<center>
@@ -8,8 +7,6 @@
<div id="responsive-image">
<img src="img/authlogo.png">
</div>
-
-
<br/>
<span style="color:white">
<h2 style="color:white" class="animated bounce">{{'kZMUpgradeNeeded' | translate}}</h2>
@@ -22,10 +19,7 @@
</span>
<br/>
-
-
</center>
</div>
-
</ion-content>
-</ion-view> \ No newline at end of file
+</ion-view>
diff --git a/www/templates/monitors-modal.html b/www/templates/monitors-modal.html
index 1cfbfac9..931d9c33 100644
--- a/www/templates/monitors-modal.html
+++ b/www/templates/monitors-modal.html
@@ -1,77 +1,46 @@
<div ng-controller="MonitorModalCtrl" ng-cloak>
-
- <ion-modal-view cache-view="false" style="background-color:#444444" >
- <ion-content on-double-tap="closeModal();" >
-
- <ion-scroll delegate-handle="imgscroll" has-bouncing=false min-zoom=1 zooming="true" direction="xy" style="width: 100%;" overflow-scroll="false" >
+ <ion-modal-view cache-view="false" style="background-color:#444444">
+ <ion-content on-double-tap="closeModal();">
+ <ion-scroll delegate-handle="imgscroll" has-bouncing=false min-zoom=1 zooming="true" direction="xy" style="width: 100%;" overflow-scroll="false">
<!-- android needs this 100vh - otherwise max- does not work -->
<!-- -->
<div id="monitorimage" style="height: 100vh;" class="main">
-
-
-
<div ng-if="$root.authSession!='undefined'">
-
-
<div ng-if="!animationInProgress && !isBackground() && connKey">
<!--<span style="color:white">{{currentStreamMode}}</span>-->
-
- <img id="singlemonitor" style="width:100vw; height:100vh;" image-spinner-loader="lines" image-spinner-src="{{monitor.Monitor.streamingURL}}/nph-zms?mode={{currentStreamMode}}&monitor={{monitorId}}&scale={{quality}}{{$root.authSession}}&rand={{$root.modalRand}}&connkey={{connKey}}" ng-class="{'object-fit_cover':imageFit==false, 'object-fit_contain':imageFit==true}" on-swipe-left="onSwipe(monitorId,1)" on-swipe-right="onSwipe(monitorId,-1)" on-double-tap="closeModal();" />
-
-
-
-
-
+ <img id="singlemonitor" style="width:100vw; height:100vh;" image-spinner-loader="lines" image-spinner-src="{{monitor.Monitor.streamingURL}}/nph-zms?mode={{currentStreamMode}}&monitor={{monitorId}}&scale={{quality}}{{$root.authSession}}&rand={{$root.modalRand}}&connkey={{connKey}}" ng-class="{'object-fit_cover':imageFit==false, 'object-fit_contain':imageFit==true}" on-swipe-left="onSwipe(monitorId,1)" on-swipe-right="onSwipe(monitorId,-1)" on-double-tap="closeModal();" />
</div>
<div ng-if="animationInProgress || isBackground()">
<img style="width:100vw; height:100vh" ng-src="img/pausevideo.png" class="object-fit_contain" />
</div>
-
</div>
<div ng-if="$root.authSession=='undefined'">
<img id="singlemonitor" ng-src="img/pausevideo.png" style="width:100vw; height:100vh; display:block;" class="object-fit_contain" width="{{((devWidth)/(7-monitorSize[$index]))}}px;" />
</div>
</div>
</ion-scroll>
-
</ion-content>
-
-
<div ng-show="isControllable=='1' && showPTZ">
-
-
-
<div class="ptzcentered">
<circular options="ptzRadialMenuOptions">
</circular>
</div>
-
<div ng-if="presetOn" class="ptzpresetbuttons animated fadeInDown" id="presetlist">
<div ng-repeat="preset in ptzPresets track by $index">
<button class="button {{preset.icon}} button-small {{preset.style}}" style="float:left;margin-right:10px;margin-bottom:10px;" ng-click="controlPTZ(monitorId, preset.cmd);">{{preset.name}}</button>
</div>
</div>
-
-
<div class="ptzcenteredbotbutton">
<div ng-if="canZoom">
<a class="button button-small icon ion-search button-positive" href="" ng-click="controlPTZ(monitorId, zoomInCommand);">+</a>
<a class="button button-small icon ion-search button-positive" href="" ng-click="controlPTZ(monitorId, zoomOutCommand);">-</a>
<a class="button button-small icon ion-search button-positive" href="" ng-click="controlPTZ(monitorId, zoomStopCommand);">x</a>
-
</div>
<br/>
<a class="button button-small icon ion-stop button-assertive" href="" ng-click="controlPTZ(monitorId, ptzStopCommand);"></a>
-
-
<a class="button button-small button-royal" href="" ng-click="togglePresets();">{{controlToggle}}</a>
</div>
-
</div>
-
-
-
-
</ion-modal-view>
<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-resize" label="{{imageFit? ('kFitScreen' | translate):('kFillScreen' | translate)}}" ng-click="scaleImage();">
@@ -80,9 +49,7 @@
</button>
<button mfb-button icon="ion-arrow-expand" label="{{'kControl'| translate}}" ng-click="togglePTZ();">
</button>
-
</nav>
-
<nav mfb-menu position="tr" effect="zoomin" label="{{'kCollapse' | translate}}" active-icon="ion-chevron-up" resting-icon="ion-chevron-down" toggling-method="click">
<button mfb-button icon="ion-android-arrow-back" label="{{'kPrevMonitor' | translate}} " ng-click="onTap(monitorId,-1);">
</button>
@@ -90,58 +57,35 @@
</button>
<button mfb-button icon="ion-close" label="{{'kExitLiveView' | translate}}" ng-click="closeModal();">
</button>
-
</nav>
-
-
-
-
- <div id="flyoutmenu" style="position:absolute;bottom:80px;left:10px">
- <ul>
-
- <li>
- <a href="" ng-click="saveImageToPhoneWithPerms(monitorId)"> <i class="icon ion-ios-camera"></i></a>
- </li>
-
- <li ng-if="$root.platformOS == 'desktop'">
- <a href="" ng-click="zoomImage(1)"><i class="ion-plus-round"></i></a>
- </li>
- <li ng-if="$root.platformOS == 'desktop'">
- <a href="" ng-click="zoomImage(-1)"><i class="ion-minus-round"></i></a>
- </li>
-
- <li>
- <a href="" ng-click="enableAlarm(monitorId,true)"> <i class="icon ion-flash"></i></a>
- </li>
- <li>
- <a href="" ng-click="enableAlarm(monitorId,false)"> <i class="icon ion-flash-off"></i></a>
-
-
- </li>
- <li>
- <a href="" ng-click="toggleCycle()"> <i class="icon ion-android-bicycle"></i>-{{cycleText}}</a>
-
-
- </li>
-
-
- <!--<li>
+ <div id="flyoutmenu" style="position:absolute;bottom:80px;left:10px">
+ <ul>
+ <li>
+ <a href="" ng-click="saveImageToPhoneWithPerms(monitorId)"> <i class="icon ion-ios-camera"></i></a>
+ </li>
+ <li ng-if="$root.platformOS == 'desktop'">
+ <a href="" ng-click="zoomImage(1)"><i class="ion-plus-round"></i></a>
+ </li>
+ <li ng-if="$root.platformOS == 'desktop'">
+ <a href="" ng-click="zoomImage(-1)"><i class="ion-minus-round"></i></a>
+ </li>
+ <li>
+ <a href="" ng-click="enableAlarm(monitorId,true)"> <i class="icon ion-flash"></i></a>
+ </li>
+ <li>
+ <a href="" ng-click="enableAlarm(monitorId,false)"> <i class="icon ion-flash-off"></i></a>
+ </li>
+ <li>
+ <a href="" ng-click="toggleCycle()"> <i class="icon ion-android-bicycle"></i>-{{cycleText}}</a>
+ </li>
+ <!--<li>
<a href="" ng-click="cast(monitorId, monitor)"> <i class="icon ion-android-funnel"></i></a>
</li>-->
-
-
-
-
-
- <li ng-if="$root.isAlarm">
- <a data-badge="{{$root.alarmCount}}" class="notification-badge animated infinite tada" href="" ng-click="handleAlarms()"><i class="ion-ios-bell"></i></a>
- </li>
-
-
- </ul>
-</div>
-
+ <li ng-if="$root.isAlarm">
+ <a data-badge="{{$root.alarmCount}}" class="notification-badge animated infinite tada" href="" ng-click="handleAlarms()"><i class="ion-ios-bell"></i></a>
+ </li>
+ </ul>
+ </div>
<div class="monitor-modal-text">{{monitorName}} &nbsp;<span style="{{stateColor()}}">{{monStatus}}&nbsp;</span></div>
-
</div>
diff --git a/www/templates/monitors.html b/www/templates/monitors.html
index d38e8f65..cd9e8e8e 100644
--- a/www/templates/monitors.html
+++ b/www/templates/monitors.html
@@ -1,82 +1,62 @@
<ion-view view-title="{{'kMonitors' | translate}}" cache-view="false">
-
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()">
</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>
-
</ion-nav-buttons>
-
-
- <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll >
- <ion-refresher pulling-text="Pull to reload Monitors..." spinner="bubbles" on-refresh="doRefresh()">
+ <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-refresher pulling-text="Pull to reload Monitors..." spinner="bubbles" on-refresh="doRefresh()">
</ion-refresher>
- <div style="float:right;margin-top:3px;margin-right:8px;">
- <a class="button button-small icon icon-left icon ion-ios-world-outline"
- href="" ng-click="changeConfig('All', '','1','Monitor');">{{'kGlobalConfiguration' | translate}}</a>
- </div><br/>
- <div class="list card" ng-repeat="monitor in monitors">
- <div class="item" ng-style="{'background-color': monitor.Monitor.Enabled=='1'?'white':'white'}">
- <div ng-if="monitor.Monitor.Enabled == '1'">
- <div class='item'>
-
- <span class="item-icon-left">
+ <div style="float:right;margin-top:3px;margin-right:8px;">
+ <a class="button button-small icon icon-left icon ion-ios-world-outline" href="" ng-click="changeConfig('All', '','1','Monitor');">{{'kGlobalConfiguration' | translate}}</a>
+ </div>
+ <br/>
+ <div class="list card" ng-repeat="monitor in monitors">
+ <div class="item" ng-style="{'background-color': monitor.Monitor.Enabled=='1'?'white':'white'}">
+ <div ng-if="monitor.Monitor.Enabled == '1'">
+ <div class='item'>
+ <span class="item-icon-left">
<div class="icon">
- <span class="ion-ios-videocam-outline"></span>
- &nbsp;
-
- <span ng-class="{'ion-eye':monitor.Monitor.listDisplay=='show','ion-eye-disabled':monitor.Monitor.listDisplay!='show'}"> </span>
- </div>
-
- &nbsp;
- <b>{{monitor.Monitor.Name}}</b>
- </span>
-
-
- <span class="item-icon-right">
+ <span class="ion-ios-videocam-outline"></span> &nbsp;
+ <span ng-class="{'ion-eye':monitor.Monitor.listDisplay=='show','ion-eye-disabled':monitor.Monitor.listDisplay!='show'}"> </span>
+ </div>
+ &nbsp;
+ <b>{{monitor.Monitor.Name}}</b>
+ </span>
+ <span class="item-icon-right">
<i class="icon {{monitor.Monitor.char}}" style="color:{{monitor.Monitor.color}};"></i>
</span>
-
- <!-- <i ng-class="{'icon ion-eye':monitor.Monitor.listDisplay=='show','icon ion-eye-disabled':monitor.Monitor.listDisplay!='show'}"> </i>-->
-
-
- </div>
- </div>
-
- <div ng-if="monitor.Monitor.Enabled != '1'">
- <span class='item item-icon-left item-icon-right'>
+ <!-- <i ng-class="{'icon ion-eye':monitor.Monitor.listDisplay=='show','icon ion-eye-disabled':monitor.Monitor.listDisplay!='show'}"> </i>-->
+ </div>
+ </div>
+ <div ng-if="monitor.Monitor.Enabled != '1'">
+ <span class='item item-icon-left item-icon-right'>
<i class="icon ion-ios-videocam-outline"></i>
<b>{{monitor.Monitor.Name}}</b>
<i class="icon {{monitor.Monitor.char}}" style="color:grey;"></i>
</span>
- </div>
-
-
- <p>{{'kMode' | translate}} :{{monitor.Monitor.Function}}<br/>
- {{'kResolution' | translate}}: {{monitor.Monitor.Width}}*{{monitor.Monitor.Height}}<br/>
- {{'kMaxFPS' | translate}}: {{monitor.Monitor.MaxFPS}}
- <br/> {{'kAlarmMaxFPS' | translate}}:{{monitor.Monitor.AlarmMaxFPS}}
- <br/> {{'kAlarmFrameCount' |translate}}: {{monitor.Monitor.AlarmFrameCount}}
- <br/> {{'kStatus' | translate}}: {{monitor.Monitor.isRunningText}}
- <br/> {{'kId' | translate}}: {{monitor.Monitor.Id}}
- <br/> {{'kEventRecording' | translate}}: {{(monitor.Monitor.VideoWriter>0?'kVideo':'kImages') | translate}}
- <br/>
- <br/>
- </p>
-
- <div style="float:right;">
- <a class="button button-small icon icon-left icon ion-gear-a"
- href="" ng-click="changeConfig(monitor.Monitor.Name, monitor.Monitor.Id,monitor.Monitor.Enabled,monitor.Monitor.Function);">{{'kConfiguration' | translate}}</a>
- <a class="button button-small icon icon-left ion-calendar" href="#/events/{{monitor.Monitor.Id}}/false">{{'kEventsCap'|translate}}</a>
- <a class="button button-small icon icon-left ion-ios-eye" ng-click="openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey, monitor)">{{'kLiveView' | translate}}</a>
- </div>
- </div>
</div>
-
+ <p>{{'kMode' | translate}} :{{monitor.Monitor.Function}}
+ <br/> {{'kResolution' | translate}}: {{monitor.Monitor.Width}}*{{monitor.Monitor.Height}}
+ <br/> {{'kMaxFPS' | translate}}: {{monitor.Monitor.MaxFPS}}
+ <br/> {{'kAlarmMaxFPS' | translate}}:{{monitor.Monitor.AlarmMaxFPS}}
+ <br/> {{'kAlarmFrameCount' |translate}}: {{monitor.Monitor.AlarmFrameCount}}
+ <br/> {{'kStatus' | translate}}: {{monitor.Monitor.isRunningText}}
+ <br/> {{'kId' | translate}}: {{monitor.Monitor.Id}}
+ <br/> {{'kEventRecording' | translate}}: {{(monitor.Monitor.VideoWriter>0?'kVideo':'kImages') | translate}}
+ <br/>
+ <br/>
+ </p>
+ <div style="float:right;">
+ <a class="button button-small icon icon-left icon ion-gear-a" href="" ng-click="changeConfig(monitor.Monitor.Name, monitor.Monitor.Id,monitor.Monitor.Enabled,monitor.Monitor.Function);">{{'kConfiguration' | translate}}</a>
+ <a class="button button-small icon icon-left ion-calendar" href="#/events/{{monitor.Monitor.Id}}/false">{{'kEventsCap'|translate}}</a>
+ <a class="button button-small icon icon-left ion-ios-eye" ng-click="openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey, monitor)">{{'kLiveView' | translate}}</a>
+ </div>
+ </div>
+ </div>
<ion-item ng-show="!monitors.length">
- {{'kNoMonitors' | translate}}
+ {{'kNoMonitors' | translate}}
</ion-item>
</ion-content>
</ion-view>
diff --git a/www/templates/montage-history.html b/www/templates/montage-history.html
index 94659e93..da7b5974 100644
--- a/www/templates/montage-history.html
+++ b/www/templates/montage-history.html
@@ -1,24 +1,23 @@
<ion-view view-title="{{'kEventMontage' | translate}}" cache-view="false" hide-nav-bar="{{minimal}}">
- <ion-nav-buttons side="left">
- <button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
- <button class="button button-icon button-clear ion-arrow-move" ng-click="dragToggle();">&nbsp; </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>
- </ion-nav-buttons>
- <ion-nav-buttons side="right">
- <button class="button button-icon button-clear ion-loop" ng-click="resetSizes();">&nbsp; </button>
- <button class="button button-icon button-clear ion-plus-round" ng-click="sliderChanged(1);">&nbsp; </button>
- <button class="button button-icon button-clear ion-minus-round" ng-click="sliderChanged(-1);">&nbsp; </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>
- </ion-nav-buttons>
- <ion-content scroll-sista has-bouncing="false" style="background-color:#444444" delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
- <div class="timeline_text"> {{'kFrom' | translate}}:{{prettifyDateTimeFirst(datetimeValueFrom.value)}} ({{humanizeTime(datetimeValueFrom.value)}})
-
- <div ng-if="$root.platformOS != 'ios'">({{'kChromeMax' | translate}})</div>
- </div>
- <div class="grid" id="mygrid">
- <div class="grid-sizer grid-item-10"></div>
- <!-- <span ng-repeat="monitor in MontageMonitors|limitTo: monLimit" ng- -->
- <span ng-repeat="monitor in MontageMonitors | onlyEnabledAndEventHas |limitTo: currentLimit">
+ <ion-nav-buttons side="left">
+ <button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
+ <button class="button button-icon button-clear ion-arrow-move" ng-click="dragToggle();">&nbsp; </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>
+ </ion-nav-buttons>
+ <ion-nav-buttons side="right">
+ <button class="button button-icon button-clear ion-loop" ng-click="resetSizes();">&nbsp; </button>
+ <button class="button button-icon button-clear ion-plus-round" ng-click="sliderChanged(1);">&nbsp; </button>
+ <button class="button button-icon button-clear ion-minus-round" ng-click="sliderChanged(-1);">&nbsp; </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>
+ </ion-nav-buttons>
+ <ion-content scroll-sista has-bouncing="false" style="background-color:#444444" delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <div class="timeline_text"> {{'kFrom' | translate}}:{{prettifyDateTimeFirst(datetimeValueFrom.value)}} ({{humanizeTime(datetimeValueFrom.value)}})
+ <div ng-if="$root.platformOS != 'ios'">({{'kChromeMax' | translate}})</div>
+ </div>
+ <div class="grid" id="mygrid">
+ <div class="grid-sizer grid-item-10"></div>
+ <!-- <span ng-repeat="monitor in MontageMonitors|limitTo: monLimit" ng- -->
+ <span ng-repeat="monitor in MontageMonitors | onlyEnabledAndEventHas |limitTo: currentLimit">
<div ng-if="$root.authSession!='undefined'">
<div ng-if = "monitor.Monitor.eventUrl == 'img/noevent.png' ">
<!-- make sure we don't use id here
@@ -53,94 +52,88 @@
<i class="ion-pause"></i>&nbsp;
</span> {{monitor.Monitor.Name}}&nbsp;
-
-
- <div ng-if="sliderVal.showTimeline && $root.runMode!='lowbw'" style="white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:9px" class="header-event-id" id="{{monitor.Monitor.Id}}-timeline">[{{monitor.Monitor.eid}}]
-
- <i class="ion-clock"></i> {{prettifyDateTimeFirst(monitor.Monitor.eventUrlTime)}} ({{humanizeTime(monitor.Monitor.eventUrlTime)}})&nbsp;
-
- </div>
- </figcaption>
- </figure>
- <!-- wait for packery otherwise we get large ranges -->
- <div ng-show="packeryDone">
- <div class="range" style="position:absolute;top:5%;width:95%;z-index:999">
- <input on-release="seek(monitor.Monitor.Id,monitor.Monitor.sliderProgress.progress )" type="range" min="0" max="{{monitor.Monitor.eventDuration}}" ng-model="monitor.Monitor.sliderProgress.progress">
- </div>
- <div id="history_canvas_video">
- <canvas style="padding-left:23px;
+ <div ng-if="sliderVal.showTimeline && $root.runMode!='lowbw'" style="white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:9px" class="header-event-id" id="{{monitor.Monitor.Id}}-timeline">[{{monitor.Monitor.eid}}]
+ <i class="ion-clock"></i> {{prettifyDateTimeFirst(monitor.Monitor.eventUrlTime)}} ({{humanizeTime(monitor.Monitor.eventUrlTime)}})&nbsp;
+ </div>
+ </figcaption>
+ </figure>
+ <!-- wait for packery otherwise we get large ranges -->
+ <div ng-show="packeryDone">
+ <div class="range" style="position:absolute;top:5%;width:95%;z-index:999">
+ <input on-release="seek(monitor.Monitor.Id,monitor.Monitor.sliderProgress.progress )" type="range" min="0" max="{{monitor.Monitor.eventDuration}}" ng-model="monitor.Monitor.sliderProgress.progress">
+ </div>
+ <div id="history_canvas_video">
+ <canvas style="padding-left:23px;
padding-right:23px;z-index:998" id="eventchart-{{monitor.Monitor.Id}}" width="auto" height="20"></canvas>
- </div>
- </div>
- <div ng-if=
-"monitor.Monitor.seek" style="position:absolute;top:0px; left: 0px; width:100%;height:100%; background-color:rgba(0,0,0,0.3); z-index:99999"><div style="position:relative;top:50%;text-align:center;color:white;background-color:rgba(0,0,0,0.5);">{{'kPleaseWait' | translate}}</div></div>
- </div>
- </div>
- </div>
- <!-- valid auth session &!background -->
- <!--<div ng-if="!$root.authSession=='undefined' || isBackground()">
+ </div>
+ </div>
+ <div ng-if="monitor.Monitor.seek" style="position:absolute;top:0px; left: 0px; width:100%;height:100%; background-color:rgba(0,0,0,0.3); z-index:99999">
+ <div style="position:relative;top:50%;text-align:center;color:white;background-color:rgba(0,0,0,0.5);">{{'kPleaseWait' | translate}}</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- valid auth session &!background -->
+ <!--<div ng-if="!$root.authSession=='undefined' || isBackground()">
<img image-spinner-src="img/pausevideo.png" />
</div>-->
- </span>
- </div>
- <ion-item ng-show="!MontageMonitors.length"> {{'kNoMonitors' | translate }} </ion-item>
- </ion-content>
- <div class="bwmode" ng-if="$root.runMode=='lowbw'"> {{ 'kLowBWDisplay' | translate }} </div>
- <div ng-show="minimal">
- <nav mfb-menu position="br" effect="zoomin" label="collapse" active-icon="ion-chevron-down" resting-icon="ion-chevron-up" toggling-method="click">
- <button mfb-button icon="ion-arrow-expand" label="increase size" ng-click="changeSize(-1)"></button>
- <button mfb-button icon="ion-arrow-shrink" label="decrease size" ng-click="changeSize(1)"></button>
- <button mfb-button icon="ion-refresh" label="refresh" ng-click="reloadView();"></button>
- <button mfb-button icon="ion-close" label="exit full screen" ng-click="switchMinimal()"></button>
- </nav>
- <span class="modal-alarm-badge">
+ </span>
+ </div>
+ <ion-item ng-show="!MontageMonitors.length"> {{'kNoMonitors' | translate }} </ion-item>
+ </ion-content>
+ <div class="bwmode" ng-if="$root.runMode=='lowbw'"> {{ 'kLowBWDisplay' | translate }} </div>
+ <div ng-show="minimal">
+ <nav mfb-menu position="br" effect="zoomin" label="collapse" active-icon="ion-chevron-down" resting-icon="ion-chevron-up" toggling-method="click">
+ <button mfb-button icon="ion-arrow-expand" label="increase size" ng-click="changeSize(-1)"></button>
+ <button mfb-button icon="ion-arrow-shrink" label="decrease size" ng-click="changeSize(1)"></button>
+ <button mfb-button icon="ion-refresh" label="refresh" ng-click="reloadView();"></button>
+ <button mfb-button icon="ion-close" label="exit full screen" ng-click="switchMinimal()"></button>
+ </nav>
+ <span 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>
</span>
- </div>
- <ion-pull-up-footer class="zmPullup" on-expand="footerExpand()" on-minimize="footerCollapse()" on-collapse="footerCollapse()" initial-state="minimized" default-behavior="expand">
- <ion-pull-up-handle width="100" height="25" toggle="ion-chevron-up ion-chevron-down" style="border-radius: 25px 25px 0 0">
- <i class="icon ion-chevron-up"></i>
- </ion-pull-up-handle>
- <ion-pull-up-bar>
- <h1 class="title" ion-pull-up-trigger>{{'kEventMontage' | translate}}</h1>
- </ion-pull-up-bar>
- <ion-pull-up-content scroll="true">
- <div class="list list-inset">
- <div class="item item-divider">{{'kTimeline' | translate}} ({{getLocalTZ()}})</div>
- <div class="item item-input-inset"> {{'kFrom'|translate}}:&nbsp;
-
- <div class="row">
- <div class="col col-50">
- <label class="item-input-wrapper">
- <input ng-change="hrsChanged()" type="tel" placeholder="hours" ng-model="datetimeValueFrom.hrs">
- </label>
- </div>
- <div class="col col-50">
+ </div>
+ <ion-pull-up-footer class="zmPullup" on-expand="footerExpand()" on-minimize="footerCollapse()" on-collapse="footerCollapse()" initial-state="minimized" default-behavior="expand">
+ <ion-pull-up-handle width="100" height="25" toggle="ion-chevron-up ion-chevron-down" style="border-radius: 25px 25px 0 0">
+ <i class="icon ion-chevron-up"></i>
+ </ion-pull-up-handle>
+ <ion-pull-up-bar>
+ <h1 class="title" ion-pull-up-trigger>{{'kEventMontage' | translate}}</h1>
+ </ion-pull-up-bar>
+ <ion-pull-up-content scroll="true">
+ <div class="list list-inset">
+ <div class="item item-divider">{{'kTimeline' | translate}} ({{getLocalTZ()}})</div>
+ <div class="item item-input-inset"> {{'kFrom'|translate}}:&nbsp;
+ <div class="row">
+ <div class="col col-50">
+ <label class="item-input-wrapper">
+ <input ng-change="hrsChanged()" type="tel" placeholder="hours" ng-model="datetimeValueFrom.hrs">
+ </label>
+ </div>
+ <div class="col col-50">
&nbsp;{{'kEventHistHrs' | translate}}
</div>
- </div>
- </div>
- <ion-item>
- <div ion-datetime-picker title="From" am-pm={{!loginData.use24hr}} ng-model="datetimeValueFrom.value" ng-change="dateChanged()">
- <b>{{'kFrom' | translate }}: </b>{{datetimeValueFrom.value | date: timeFormat}}
-
- </div> ({{humanizeTime(datetimeValueFrom.value)}})
-
- </ion-item>
- <div class="row">
- <div class="col col-75">
- <br/>
- <div style="width:90%;color:black;">
- <input ng-model="sliderVal.rate" type="text" id="mySlider6" slider options="slider_modal_options_rate" />
- </div>
- <br/>
- </div>
- <div class="col col-25" style="background-color:#AEA8D3;text-align:center"> {{'kSpeed' | translate }} </div>
- </div>
- <!--<ion-item><div ion-datetime-picker am-pm={{!loginData.use24hr}} ng-model="datetimeValueTo.value"><b>{{'kTo' | translate}}: </b>{{datetimeValueTo.value | date: timeFormat}}
+ </div>
+ </div>
+ <ion-item>
+ <div ion-datetime-picker title="From" am-pm={{!loginData.use24hr}} ng-model="datetimeValueFrom.value" ng-change="dateChanged()">
+ <b>{{'kFrom' | translate }}: </b>{{datetimeValueFrom.value | date: timeFormat}}
+ </div> ({{humanizeTime(datetimeValueFrom.value)}})
+ </ion-item>
+ <div class="row">
+ <div class="col col-75">
+ <br/>
+ <div style="width:90%;color:black;">
+ <input ng-model="sliderVal.rate" type="text" id="mySlider6" slider options="slider_modal_options_rate" />
+ </div>
+ <br/>
+ </div>
+ <div class="col col-25" style="background-color:#AEA8D3;text-align:center"> {{'kSpeed' | translate }} </div>
+ </div>
+ <!--<ion-item><div ion-datetime-picker am-pm={{!loginData.use24hr}} ng-model="datetimeValueTo.value"><b>{{'kTo' | translate}}: </b>{{datetimeValueTo.value | date: timeFormat}}
</div></ion-item>-->
- </div>
- </ion-pull-up-content>
- </ion-pull-up-footer>
- </ion-view> \ No newline at end of file
+ </div>
+ </ion-pull-up-content>
+ </ion-pull-up-footer>
+</ion-view>
diff --git a/www/templates/montage.html b/www/templates/montage.html
index 9d075faf..e8ff5337 100644
--- a/www/templates/montage.html
+++ b/www/templates/montage.html
@@ -1,69 +1,85 @@
<ion-view view-title="{{'kMontage' | translate}}" cache-view="false" hide-nav-bar="{{minimal}}">
-
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
- <button class="button button-icon button-clear ion-eye" ng-click="hideUnhide();">&nbsp;
+ <button class="button button-icon button-clear ion-eye" ng-click="hideUnhide();">&nbsp;
</button>
-
-
- <button class="button button-icon button-clear ion-arrow-resize" ng-click="toggleSizeButtons();">&nbsp;
+ <button class="button button-icon button-clear ion-android-more-vertical" ng-click="toggleSubMenuFunction();">&nbsp;
</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>
-
</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}}&nbsp;</span>
-
<button class="button button-icon button-clear ion-arrow-move" ng-click="dragToggle();">&nbsp;
</button>
-
<!--
<button class="button button-icon button-clear ion-monitor" ng-click="cast();">&nbsp;
</button>
-->
-
<button class="button button-icon button-clear ion-loop" ng-click="resetSizes();">&nbsp;
</button>
-
<button class="button button-icon button-clear ion-android-contract" ng-click="switchMinimal()">
</button>
-
-
-
</ion-nav-buttons>
-
- <ion-content scroll-sista ng-cloak has-bouncing="false" style="background-color:#444444" delegate-handle="montage-delegate" overflow-scroll="false" >
-
-
-
- <span ng-if="!minimal && showSizeButtons">
+ <ion-content scroll-sista ng-cloak has-bouncing="false" style="background-color:#444444" delegate-handle="montage-delegate" overflow-scroll="false">
+ <div ng-if="!minimal && toggleSubMenu" >
<!-- this is header -->
+ <br/>
+ <div id="flyoutmenu" style="float:left">
+ <ul>
+ <li>
+ <a href="" ng-click="sliderChanged(1)"> <i class="ion-plus-circled"></i></a>
+ </li>
+ <li>
+ <a href="" ng-click="sliderChanged(-1)"> <i class="ion-minus-circled"></i></a>
+ </li>
+
+ <li ng-if="isDragabillyOn">
+ <a href="" ng-click="hideMonitor(monitor.Monitor.Id)"> <i class="ion-close-circled"></i></a>
+ </li>
+ <li ng-if="isDragabillyOn">
+ <a href="" ng-click="toggleStamp()"> <i class="ion-pin"></i></a>
+ </li>
+
+ </ul>
+ </div>
+
+ <div id="flyoutmenu" style="float:right">
+ <ul>
+ <li>
+ <a href="" ng-click="switchMontageProfile()"> <i class="ion-navicon-round"></i></a>
+ </li>
+
+ <li>
+ <a href="" ng-click="saveMontageProfile()"> <i class="ion-heart"></i></a>
+ </li>
+
+ <li>
+ <a href="" ng-click="deleteMontageProfile()"> <i class="ion-trash-a"></i></a>
+ </li>
+
+
+ </ul>
+ </div>
+ <div style="clear: both;"></div>
+
+ <!-- <span ng-click="sliderChanged(1)" style="float:right;margin-top:0px;padding-top:8px;background-color:#5c6767;color:#fff;font-size:25px;opacity:1;width:40px;height:36px;border-radius: 0px 0px 0px 5px;">&nbsp;<i class="ion-plus-circled">&nbsp;</i></span>
+
- <span ng-click="sliderChanged(1)" style="float:right;margin-top:0px;padding-top:8px;background-color:#5c6767;color:#fff;font-size:25px;opacity:1;width:40px;height:36px;border-radius: 0px 0px 0px 5px;">&nbsp;<i class="ion-plus-circled">&nbsp;</i></span>
-
- <span ng-click="sliderChanged(-1)" style="float:left;margin-top:0px;padding-top:8px;background-color:#5c6767;color:#fff;font-size:22px;opacity:1;width:40px;height:36px;border-radius: 0px 0px 5px 0px;">&nbsp;<i class="ion-minus-circled">&nbsp;</i></span>
- <br/><br/>
- </span>
-
-
-
+ <span ng-click="sliderChanged(-1)" style="float:left;margin-top:0px;padding-top:8px;background-color:#5c6767;color:#fff;font-size:22px;opacity:1;width:40px;height:36px;border-radius: 0px 0px 5px 0px;">&nbsp;<i class="ion-minus-circled">&nbsp;</i></span>
+
+ <span ng-click="" style="left:50%;margin-top:0px;padding-top:8px;background-color:#5c6767;color:#fff;font-size:11px;opacity:1;width:40px;height:36px;border-radius: 0px 0px 0px 5px;">&nbsp;<i class="ion-plus-circled">&nbsp;hello</i></span>
+ -->
+ <br/>
+ </div>
<!-- now lets draw the montage windows -->
<div class="grid" id="mygrid">
<div class="grid-sizer grid-item-10"></div>
-
-
-
- <!-- <span ng-repeat="monitor in MontageMonitors|limitTo: monLimit"
+ <!-- <span ng-repeat="monitor in MontageMonitors|limitTo: monLimit"
ng-if="monitor.Monitor.Function!='None' && monitor.Monitor.Enabled !='0' ">-->
-
- <span ng-repeat="monitor in MontageMonitors | onlyEnabled |limitTo: monLimit" >
+ <span ng-repeat="monitor in MontageMonitors | onlyEnabled |limitTo: monLimit">
@@ -80,12 +96,14 @@
- <img class="{{monitor.Monitor.selectStyle}}" id="img-{{$index}}" image-spinner-src="{{monitor.Monitor.streamingURL}}/nph-zms?mode=single&monitor={{monitor.Monitor.Id}}&scale={{LoginData.montageQuality}}{{$root.authSession}}&rand={{$root.rand}}" ng-click="!isDragabillyOn?openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey,monitor):toggleSelectItem($index);" image-spinner-loader="lines" />
+ <img class="{{monitor.Monitor.selectStyle}}" id="img-{{$index}}" image-spinner-src="{{monitor.Monitor.streamingURL}}/nph-zms?mode=single&monitor={{monitor.Monitor.Id}}&scale={{LoginData.montageQuality}}{{$root.authSession}}&rand={{$root.rand}}" ng-click="!isDragabillyOn?openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey,monitor):toggleSelectItem(monitor.Monitor.Id);" image-spinner-loader="lines" />
+
+
</div>
<div ng-if = "minimal">
- <img id="img-{{$index}}" image-spinner-src="{{monitor.Monitor.streamingURL}}/zms?mode=single&monitor={{monitor.Monitor.Id}}&scale={{LoginData.montageQuality}}{{$root.authSession}}&rand={{$root.rand}}" ng-click="!isDragabillyOn?openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey,monitor):toggleSelectItem($index);" image-spinner-loader="lines" />
+ <img id="img-{{$index}}" image-spinner-src="{{monitor.Monitor.streamingURL}}/zms?mode=single&monitor={{monitor.Monitor.Id}}&scale={{LoginData.montageQuality}}{{$root.authSession}}&rand={{$root.rand}}" ng-click="!isDragabillyOn?openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey,monitor):toggleSelectItem(monitor.Monitor.Id);" image-spinner-loader="lines" />
</div>
</div>
@@ -99,9 +117,9 @@
- <figcaption id="slowpulse" ng-class="monitor.Monitor.isAlarmed==true?'alarmed-figcaption animated infinite flash':'normal-figcaption'" >
+ <figcaption id="slowpulse" ng-class="monitor.Monitor.isAlarmed==true?'alarmed-figcaption animated infinite flash':'normal-figcaption'" >&nbsp;
- &nbsp;<i class="ion-ios-videocam"></i>
+ <span ng-if="monitor.Monitor.isStamp && isDragabillyOn"><i class="animated infinite flash ion-pin"></i>&nbsp;</span><i class="ion-ios-videocam"></i>&nbsp;
{{monitor.Monitor.Name}}&nbsp;<i ng-if="$root.runMode!='lowbw'" style="{{monitor.Monitor.alarmState}}" class="ion-record"></i>&nbsp;
</figcaption>
@@ -117,30 +135,18 @@
</figure>
</div>
- </span> <!-- ngrepeat -->
+ </span>
+ <!-- ngrepeat -->
</div>
-
-
-
-
-
-
<ion-item style="background-color:#444444; color:#fff;border:none;" ng-show="!MontageMonitors.length">
{{'kNoMonitors' | translate}}
</ion-item>
-
-
-
</ion-content>
-
<div class="bwmode" ng-if="$root.runMode=='lowbw'">
- {{ 'kLowBWDisplay' | translate }}
- </div>
-
-
+ {{ 'kLowBWDisplay' | translate }}
+ </div>
<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>
<button mfb-button icon="ion-arrow-shrink" label="{{'kDecreaseSize' | translate}}" ng-click="sliderChanged(-1)">
@@ -150,14 +156,10 @@
<button mfb-button icon="ion-close" label="{{'kExitFullScreen'| translate}}" ng-click="switchMinimal()">
</button>
</nav>
-
-
<span 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>
</span>
-
</div>
<br/>
-
-</ion-view> \ No newline at end of file
+</ion-view>
diff --git a/www/templates/news.html b/www/templates/news.html
index f4a87e4f..84e3c2b3 100644
--- a/www/templates/news.html
+++ b/www/templates/news.html
@@ -1,17 +1,13 @@
<ion-view view-title="{{'kNews' | translate}}">
-
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></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>
-
</ion-nav-buttons>
-
-
- <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll >
+ <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+
<div class="list">
-
- <span ng-repeat = "post in newsItems">
+
+ <span ng-repeat="post in newsItems">
<a class="item item-text-wrap item-icon-left" ng-click="loadPost(post.url, post.date)" href="">
<i ng-class="isUnread(post.date) ? 'icon ion-email-unread': 'icon ion-ios-email-outline'"></i>
{{post.title}}
@@ -20,14 +16,9 @@
</a>
</span>
-
<div ng-if="!newsItems.length">
<ion-item>{{'kLoading' | translate}}...</ion-item>
</div>
-
-
</div>
-
</ion-content>
-
</ion-view>
diff --git a/www/templates/reorder-modal.html b/www/templates/reorder-modal.html
index f58d567c..397d4be7 100644
--- a/www/templates/reorder-modal.html
+++ b/www/templates/reorder-modal.html
@@ -1,39 +1,20 @@
-
- <ion-modal-view cache-view="false" style="width: 90%; height: 90%; top: 5%; left: 5%; right: 5%; bottom: 5%;" >
-
+<ion-modal-view cache-view="false" style="width: 90%; height: 90%; top: 5%; left: 5%; right: 5%; bottom: 5%;">
<ion-header-bar class="bar-stable">
-
-
- <h1 class="title"></h1>
- <div class="buttons">
-
-
- <button class="button button-icon icon ion-checkmark" ng-click="saveReorder()"></button>
-
- <button class="button button-icon icon ion-close" ng-click="cancelReorder()"></button>
-
- </div>
+ <h1 class="title"></h1>
+ <div class="buttons">
+ <button class="button button-icon icon ion-checkmark" ng-click="saveReorder()"></button>
+ <button class="button button-icon icon ion-close" ng-click="cancelReorder()"></button>
+ </div>
</ion-header-bar>
-
-
- <ion-content >
- <div class="list">
- <span ng-repeat="item in copyMontage">
+ <ion-content>
+ <div class="list">
+ <span ng-repeat="item in copyMontage">
<a class="item item-icon-left" ng-click="toggleHide($index)" href="">
<i ng-class="{'icon ion-eye':item.Monitor.listDisplay=='show','icon ion-eye-disabled':item.Monitor.listDisplay!='show'}"> </i>
{{item.Monitor.Name}}
</a>
</span>
- </div>
-
-
- </ion-content>
-
- </ion-modal-view>
-
-
-
-
-
-
+ </div>
+ </ion-content>
+</ion-modal-view>
diff --git a/www/templates/state.html b/www/templates/state.html
index bf0cda4a..33df994e 100644
--- a/www/templates/state.html
+++ b/www/templates/state.html
@@ -1,12 +1,10 @@
<ion-view view-title="{{'kSystemStatus' | translate}}" cache-view="false">
-
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></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>
</ion-nav-buttons>
- <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
- <ion-refresher pulling-text="{{'kPullToReload' | translate}}..."
- spinner="bubbles" on-refresh="doRefresh()"></ion-refresher>
+ <ion-content scroll-sista delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-refresher pulling-text="{{'kPullToReload' | translate}}..." spinner="bubbles" on-refresh="doRefresh()"></ion-refresher>
<ion-list>
<ion-item>
<div class="row">
@@ -28,7 +26,6 @@
<i class="ion-arrow-graph-up-right" style="font-size:150%;"></i>
</div>
<div class="col">
-
ZoneMinder {{'kLoad' | translate}}:
</div>
<div class="col" style="text-align:right;">
@@ -54,20 +51,15 @@
</ion-item>
-->
<ion-item>
- <button class="button button-full {{dangerButtonColor[showDanger?1:0]}}"
- ng-click="showDanger=!showDanger">
+ <button class="button button-full {{dangerButtonColor[showDanger?1:0]}}" ng-click="showDanger=!showDanger">
<i class="ion-alert-circled" "style:font-size:300%;"></i> {{dangerText[showDanger?1:0]}}
</button>
-
- <div ng-show="showDanger" >
+ <div ng-show="showDanger">
<div class="row">
<div class="col text-center">
- <a class="button button-small button-outline button-dark "
- ng-click="selectCustomState();" href="">{{'kChangeState'|translate}}</a>
- <a class="button button-small button-outline button-dark "
- ng-click="controlZM('restart');" href="">{{'kRestart' | translate}}</a>
- <a class="button button-small button-outline button-dark"
- href="" ng-click="controlZM('stop');">{{'kStop' | translate}}</a>
+ <a class="button button-small button-outline button-dark " ng-click="selectCustomState();" href="">{{'kChangeState'|translate}}</a>
+ <a class="button button-small button-outline button-dark " ng-click="controlZM('restart');" href="">{{'kRestart' | translate}}</a>
+ <a class="button button-small button-outline button-dark" href="" ng-click="controlZM('stop');">{{'kStop' | translate}}</a>
<a class="button button-small button-outline button-dark" ng-click="controlZM('start');" href="">{{'kStart' | translate}}</a>
</div>
</div>
diff --git a/www/templates/timeline-modal.html b/www/templates/timeline-modal.html
index b27c749b..afed79f5 100644
--- a/www/templates/timeline-modal.html
+++ b/www/templates/timeline-modal.html
@@ -1,36 +1,26 @@
-
-
- <!-- style="width: 90%; height: 90%; top: 5%; left: 5%; right: 5%; bottom: 5%;"-->
- <ion-modal-view cache-view="false" >
-
- <ion-content ng-cloak on-double-tap="closeModal()" delegate-handle="timeline-modal-delegate">
-<div ng-controller="TimelineModalCtrl" >
+<!-- style="width: 90%; height: 90%; top: 5%; left: 5%; right: 5%; bottom: 5%;"-->
+<ion-modal-view cache-view="false">
+ <ion-content ng-cloak on-double-tap="closeModal()" delegate-handle="timeline-modal-delegate">
+ <div ng-controller="TimelineModalCtrl">
<br/>
<div class="item item-divider">{{mName}}&nbsp;<i class="ion-arrow-right-b"></i>&nbsp;{{'kEvent' | translate}}:{{eid}} ({{humanizeTime}})
- <button class="button icon-left button-small button-positive" style="float:right; opacity:0.7" ng-click="switchType()">
- <i class="ion-shuffle"></i>
+ <button class="button icon-left button-small button-positive" style="float:right; opacity:0.7" ng-click="switchType()">
+ <i class="ion-shuffle"></i>
</button>
-
</div>
-
- <center> <h5>{{'kEvent' | translate}} {{graphType}} {{'kFrames' | translate}} </h5>
+ <center>
+ <h5>{{'kEvent' | translate}} {{graphType}} {{'kFrames' | translate}} </h5>
<p>{{'kTimelineMessage' | translate}}</p>
-
-
- {{errorDetails}}
+ {{errorDetails}}
<!--<p>scroll left/right if needed</p>-->
- </center>
-
- <div data-tap-disabled="true">
- <canvas id="tcchart" width="auto" height="70%"></canvas>
- </div>
-
-
- <ion-spinner icon="spiral" style="position:absolute; top:50%;left:50%" ng-if="!dataReady"></ion-spinner>
-
+ </center>
+ <div data-tap-disabled="true">
+ <canvas id="tcchart" width="auto" height="70%"></canvas>
+ </div>
+ <ion-spinner icon="spiral" style="position:absolute; top:50%;left:50%" ng-if="!dataReady"></ion-spinner>
<div style="height:190px;">
<!-- <ion-scroll direction="x" class="wide-as-needed">-->
- <span ng-repeat="alarm in alarm_images">
+ <span ng-repeat="alarm in alarm_images">
<figure style="display:inline-block">
@@ -44,14 +34,8 @@
</figure>
</span>
-
<!--</ion-scroll>-->
</div>
- </div>
- </ion-content>
-
- </ion-modal-view>
-
-
-
-
+ </div>
+ </ion-content>
+</ion-modal-view>
diff --git a/www/templates/timeline-popover.html b/www/templates/timeline-popover.html
index b5460f57..beeb482d 100644
--- a/www/templates/timeline-popover.html
+++ b/www/templates/timeline-popover.html
@@ -1,26 +1,18 @@
<ion-popover-view class="fit">
- <ion-content>
- <div class="list" ng-click="popover.hide()">
-
+ <ion-content>
+ <div class="list" ng-click="popover.hide()">
<a class="item" ng-href="" ng-click="popover.hide();toggleMinAlarmFrameCount();" ng-if="loginData.enableAlarmCount">{{'kShowAllEvents' | translate}}</a>
- <a class="item" ng-href="" ng-click="popover.hide();toggleMinAlarmFrameCount();" ng-if="!loginData.enableAlarmCount"> {{'kShowAlarmedEvents' | translate}}</a>
-
-
+ <a class="item" ng-href="" ng-click="popover.hide();toggleMinAlarmFrameCount();" ng-if="!loginData.enableAlarmCount"> {{'kShowAlarmedEvents' | translate}}</a>
<a class="item" ng-href="" ng-click="popover.hide();buttonClicked(0);">{{'kMonth' | translate}}</a>
-
- <a class="item" ng-href="" ng-click=" popover.hide();buttonClicked(1);" >
+ <a class="item" ng-href="" ng-click=" popover.hide();buttonClicked(1);">
{{'kWeek' | translate}}
</a>
<a class="item" ng-href="" ng-click="popover.hide();buttonClicked(2);">
{{'kDay' | translate}}
</a>
-
- <a class="item" ng-href="" ng-click="popover.hide();buttonClicked(3);">
+ <a class="item" ng-href="" ng-click="popover.hide();buttonClicked(3);">
{{'kCustomRange' | translate}}
</a>
-
-
- </div>
- </ion-content>
- </ion-popover-view>
-
+ </div>
+ </ion-content>
+</ion-popover-view>
diff --git a/www/templates/timeline.html b/www/templates/timeline.html
index ab9d8030..d2ada69d 100644
--- a/www/templates/timeline.html
+++ b/www/templates/timeline.html
@@ -37,6 +37,9 @@
<button ng-click="toggleFollowTime()" ng-class="follow.time? 'button button-small button-balanced':'button button-small button-assertive'">
{{'kUpdateTimeline' | translate}}:&nbsp;{{follow.time}}
</button>
+ <button ng-click="gotoNow()" class="button button-small button-balanced">
+ {{'kNow' | translate}}
+ </button>
<div ng-if="follow.time">
<p>{{newEvents}}</p>
</div>
diff --git a/www/templates/wizard.html b/www/templates/wizard.html
index 3d20c522..600f4a7f 100644
--- a/www/templates/wizard.html
+++ b/www/templates/wizard.html
@@ -1,115 +1,85 @@
-<ion-view view-title="{{'kWizard' | translate}}" ng-cloak cache-view="false" >
-
+<ion-view view-title="{{'kWizard' | translate}}" ng-cloak cache-view="false">
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
</ion-nav-buttons>
-
-
<ion-content class="padding" overflow-scroll="false">
-
- <wizard on-finish="finishedWizard()">
-
- <!-- portal url -->
- <wz-step wz-title="1" canexit="exitPortal">
-
- <h4><i id="transition-delay" class="animated swing ion-wand" style="font-size:2em"></i> {{'kWelcomeWizard' | translate}}</h4>
- <img src="img/wizard.svg" width="100px" style="float:left"/>
- <p>{{'kWizConfigPain' | translate}}</p>
-
- <h4>{{'kWizPortalUrl' | translate}}</h4>
- <label class="item item-input">
- <input autocorrect="off" autocapitalize="none" autocomplete="off" type="text" placeholder="e.g. http://server/zm" ng-model="wizard.portalurl">
- </label>
-
- <a class="button icon-left ion-information-circled button-clear button-dark" ng-click="toggleTip()">{{wizard.tiptext}}</a>
-
-
- <div class="wizardtip" ng-show="wizard.tipshow">
- <b>{{'kWizTip' | translate}}: </b>{{'kWizPortalTip' | translate}}<br/>
-
- <img src="img/portalurl.png" width="30%">
- </div>
-
- <br/>
- <button class="button button-small icon icon-right ion-chevron-right" wz-next>{{'kNext' | translate}}</button>
-
-
- </wz-step>
-
-
- <!-- auth mode -->
- <wz-step wz-title="2" >
- <h4>{{'kWizPortalAuth' | translate}}</h4>
- <!--<img src="img/wizard.svg" width="100px" style="float:left"/>-->
- <p>{{'kWizPortalText' | translate}}</p>
- <ion-toggle ng-change="toggleAuth()" ng-model="wizard.useauth" ng-checked="wizard.useauth" toggle-class="toggle-calm">{{'kWizUseAuth' | translate}}</ion-toggle>
-
- <ion-toggle ng-show="wizard.useauth" ng-model="wizard.usezmauth" ng-checked="wizard.usezmauth" toggle-class="toggle-calm">{{'kWizZMAuth' | translate}}</ion-toggle>
-
- <div ng-if="wizard.usezmauth">
- <label class="item item-input item-floating-label" >
+ <wizard on-finish="finishedWizard()">
+ <!-- portal url -->
+ <wz-step wz-title="1" canexit="exitPortal">
+ <h4><i id="transition-delay" class="animated swing ion-wand" style="font-size:2em"></i> {{'kWelcomeWizard' | translate}}</h4>
+ <img src="img/wizard.svg" width="100px" style="float:left" />
+ <p>{{'kWizConfigPain' | translate}}</p>
+ <h4>{{'kWizPortalUrl' | translate}}</h4>
+ <label class="item item-input">
+ <input autocorrect="off" autocapitalize="none" autocomplete="off" type="text" placeholder="e.g. http://server/zm" ng-model="wizard.portalurl">
+ </label>
+ <p ng-if="$root.platformOS=='android'" style="font-size:0.8em; color:gray">{{'kDisableSamsung' | translate}}</p>
+ <a class="button icon-left ion-information-circled button-clear button-dark" ng-click="toggleTip()">{{wizard.tiptext}}</a>
+ <div class="wizardtip" ng-show="wizard.tipshow">
+ <b>{{'kWizTip' | translate}}: </b>{{'kWizPortalTip' | translate}}
+ <br/>
+ <img src="img/portalurl.png" width="30%">
+ </div>
+ <br/>
+ <button class="button button-small icon icon-right ion-chevron-right" wz-next>{{'kNext' | translate}}</button>
+ </wz-step>
+ <!-- auth mode -->
+ <wz-step wz-title="2">
+ <h4>{{'kWizPortalAuth' | translate}}</h4>
+ <!--<img src="img/wizard.svg" width="100px" style="float:left"/>-->
+ <p>{{'kWizPortalText' | translate}}</p>
+ <ion-toggle ng-change="toggleAuth()" ng-model="wizard.useauth" ng-checked="wizard.useauth" toggle-class="toggle-calm">{{'kWizUseAuth' | translate}}</ion-toggle>
+ <ion-toggle ng-show="wizard.useauth" ng-model="wizard.usezmauth" ng-checked="wizard.usezmauth" toggle-class="toggle-calm">{{'kWizZMAuth' | translate}}</ion-toggle>
+ <div ng-if="wizard.usezmauth">
+ <label class="item item-input item-floating-label">
+ <span class="input-label">{{'kUserName' | translate}}</span>
+ <input autocorrect="off" autocapitalize="none" autocomplete="off" type="text" ng-model="wizard.zmuser" placeholder="{{'kPlaceHolderZMAuthUser'|translate}}">
+ </label>
+ <label class="item item-text-wrap item-input item-floating-label">
+ <span class="input-label">{{'kPassword' | translate}}</span>
+ <input type="password" ng-model="wizard.zmpassword" placeholder="{{'kPlaceHolderZMAuthPass'|translate}}">
+ <!--<p >{{'kWizPasswdNote' | translate}}</p>-->
+ </label>
+ </div>
+ <ion-toggle ng-show="wizard.useauth" ng-model="wizard.usebasicauth" ng-checked="wizard.usebasicauth" toggle-class="toggle-calm">{{'kWizBasicAuth' | translate}}</ion-toggle>
+ <label class="item item-input item-floating-label" ng-show="wizard.usebasicauth">
<span class="input-label">{{'kUserName' | translate}}</span>
- <input autocorrect="off" autocapitalize="none" autocomplete="off" type="text" ng-model="wizard.zmuser" placeholder="{{'kPlaceHolderZMAuthUser'|translate}}" >
+ <input autocorrect="off" autocapitalize="none" autocomplete="off" type="text" ng-model="wizard.basicuser" placeholder="{{'kPlaceHolderBasicAuthUser'|translate}}">
</label>
- <label class="item item-text-wrap item-input item-floating-label" >
+ <label class="item item-input item-text-wrap item-floating-label" ng-show="wizard.usebasicauth">
<span class="input-label">{{'kPassword' | translate}}</span>
- <input type="password" ng-model="wizard.zmpassword" placeholder="{{'kPlaceHolderZMAuthPass'|translate}}" >
- <!--<p >{{'kWizPasswdNote' | translate}}</p>-->
+ <input type="password" ng-model="wizard.basicpassword" placeholder="{{'kPlaceHolderBasicAuthPass'|translate}}">
+ <p>{{'kWizPasswdNote' | translate}}</p>
</label>
- </div>
-
- <ion-toggle ng-show="wizard.useauth" ng-model="wizard.usebasicauth" ng-checked="wizard.usebasicauth" toggle-class="toggle-calm">{{'kWizBasicAuth' | translate}}</ion-toggle>
- <label class="item item-input item-floating-label" ng-show="wizard.usebasicauth">
- <span class="input-label">{{'kUserName' | translate}}</span>
- <input autocorrect="off" autocapitalize="none" autocomplete="off" type="text" ng-model="wizard.basicuser" placeholder="{{'kPlaceHolderBasicAuthUser'|translate}}" >
- </label>
- <label class="item item-input item-text-wrap item-floating-label" ng-show="wizard.usebasicauth">
- <span class="input-label">{{'kPassword' | translate}}</span>
- <input type="password" ng-model="wizard.basicpassword" placeholder="{{'kPlaceHolderBasicAuthPass'|translate}}" >
- <p>{{'kWizPasswdNote' | translate}}</p>
- </label>
-
-
- <a class="button icon-left ion-information-circled button-clear button-dark" ng-click="toggleTip()">{{wizard.tiptext}}</a>
-
-
- <div class="wizardtip" ng-show="wizard.tipshow">
- <b>{{'kWizTip'| translate}} </b> {{'kWizAuthText1' | translate}}<br/>
- {{'kWizAuthText2' | translate}}
- </div>
-
- <br/>
- <button class="button button-small icon icon-left ion-chevron-left" wz-previous>{{'kPrev' | translate}}</button>
- <button class="button button-small icon icon-right ion-chevron-right" ng-click="exitAuth()">{{'kNext' | translate}}</button>
-
- </wz-step>
-
-
- <wz-step wz-title="3" >
- <br/><br/>
- <h4>{{'kWizResults' | translate}}</h4>
-
- <span ng-if="wizard.portalValidText" style="color:{{wizard.portalColor}};"><i ng-class="wizard.portalColor=='#16a085' ? 'ion-checkmark-circled':'ion-close-circled'"></i>&nbsp;{{wizard.portalValidText}}<br/></span>
-
- <span ng-if="wizard.apiValidText" style="color:{{wizard.apiColor}};"><i ng-class=" wizard.apiColor=='#16a085' ? 'ion-checkmark-circled':'ion-close-circled'"></i>&nbsp;{{wizard.apiValidText}}<br/></span>
-
- <span ng-if="wizard.streamingValidText" style="color:{{wizard.streamingColor}};"><i ng-class="wizard.streamingColor=='#16a085' ? 'ion-checkmark-circled':'ion-close-circled'"></i>&nbsp;{{wizard.streamingValidText}}<br/></span>
-
- <br/>
- <div class="wizardtip">
- {{'kWizNextStep1' | translate}}:
- <ul class="wiz-list">
- <li>{{'kWizNextStep2' | translate}}</li>
- <li>{{'kWizNextStep3' | translate}}</li>
- </ul>
- </div>
- <br/><br/>
- <button class="button button-small icon icon-left ion-chevron-left" wz-previous>{{'kPrev' | translate}}</button>
- <button class="button button-small icon icon-right ion-chevron-right" ng-click="gotoLoginState()">{{'kWizGotoLogin' | translate}}</button>
- </wz-step>
-
-
-</wizard>
+ <a class="button icon-left ion-information-circled button-clear button-dark" ng-click="toggleTip()">{{wizard.tiptext}}</a>
+ <div class="wizardtip" ng-show="wizard.tipshow">
+ <b>{{'kWizTip'| translate}} </b> {{'kWizAuthText1' | translate}}
+ <br/> {{'kWizAuthText2' | translate}}
+ </div>
+ <br/>
+ <button class="button button-small icon icon-left ion-chevron-left" wz-previous>{{'kPrev' | translate}}</button>
+ <button class="button button-small icon icon-right ion-chevron-right" ng-click="exitAuth()">{{'kNext' | translate}}</button>
+ </wz-step>
+ <wz-step wz-title="3">
+ <br/>
+ <br/>
+ <h4>{{'kWizResults' | translate}}</h4>
+ <span ng-if="wizard.portalValidText" style="color:{{wizard.portalColor}};"><i ng-class="wizard.portalColor=='#16a085' ? 'ion-checkmark-circled':'ion-close-circled'"></i>&nbsp;{{wizard.portalValidText}}<br/></span>
+ <span ng-if="wizard.apiValidText" style="color:{{wizard.apiColor}};"><i ng-class=" wizard.apiColor=='#16a085' ? 'ion-checkmark-circled':'ion-close-circled'"></i>&nbsp;{{wizard.apiValidText}}<br/></span>
+ <span ng-if="wizard.streamingValidText" style="color:{{wizard.streamingColor}};"><i ng-class="wizard.streamingColor=='#16a085' ? 'ion-checkmark-circled':'ion-close-circled'"></i>&nbsp;{{wizard.streamingValidText}}<br/></span>
+ <br/>
+ <div class="wizardtip">
+ {{'kWizNextStep1' | translate}}:
+ <ul class="wiz-list">
+ <li>{{'kWizNextStep2' | translate}}</li>
+ <li>{{'kWizNextStep3' | translate}}</li>
+ </ul>
+ </div>
+ <br/>
+ <br/>
+ <button class="button button-small icon icon-left ion-chevron-left" wz-previous>{{'kPrev' | translate}}</button>
+ <button class="button button-small icon icon-right ion-chevron-right" ng-click="gotoLoginState()">{{'kWizGotoLogin' | translate}}</button>
+ </wz-step>
+ </wizard>
</ion-content>
-
-</ion-view> \ No newline at end of file
+</ion-view>
diff --git a/www/templates/zm-portal-login.html b/www/templates/zm-portal-login.html
index 9d2db867..877dbb97 100644
--- a/www/templates/zm-portal-login.html
+++ b/www/templates/zm-portal-login.html
@@ -1,8 +1,5 @@
-
<ion-view view-title="{{$root.appName}}" hide-nav-bar="true" hide-back-button="true" cache-view="false">
-
<ion-content class="pin-background" scroll="false">
-
<div style="margin-left:20px; margin-right:20px">
<center>
<br/>
@@ -10,23 +7,20 @@
<div id="responsive-image">
<img src="img/authlogo.png">
</div>
-
<div ng-if="pinPrompt">
<span style="color:white">{{'kEnterPin' | translate}}</span>
-
<div class="pinCode">
<input id="pin-box" type="number" pattern="[0-9]*" ng-model="pindata.pin" ng-keyup="pinChange()" />
</div>
-
<br/> <span style="color:white">{{pindata.status}}</span>
<br/>
<button class="button button-dark icon ion-unlocked" ng-click="unlock()"> Unlock
</button>
</div>
- <div id = "really-your-fault" class="animated fadeIn" style="color:white">{{'kPortalNotice' | translate}}<br/><br/>{{'kPortalNoticeSub' | translate}}</div>
-
+ <div id="really-your-fault" class="animated fadeIn" style="color:white">{{'kPortalNotice' | translate}}
+ <br/>
+ <br/>{{'kPortalNoticeSub' | translate}}</div>
</center>
</div>
-
</ion-content>
-</ion-view> \ No newline at end of file
+</ion-view>