Skip to content

Commit b4589a3

Browse files
committed
Add config option for auto refresh interval #8
1 parent e34909f commit b4589a3

File tree

3 files changed

+59
-9
lines changed

3 files changed

+59
-9
lines changed

public/js/scripts/directives/ReloadConfigDirective.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,14 @@ angular.module('Statusengine').directive('reloadConfig', function (ReloadService
44
templateUrl: 'templates/directives/reloadconfig.html',
55
scope: {},
66
controller: function ($scope, $http) {
7+
8+
$('#pageSettings').click(function (event) {
9+
event.stopPropagation();
10+
});
11+
712
$scope.do_auto_reload = ReloadService.getAutoReloadEnabled();
813
$scope.ack_and_downtime_is_ok = ReloadService.getAckAndDowntimeIsOk();
14+
$scope.autoreload_frequency = String(ReloadService.getAutoReloadFrequency()); //String() cast fixe selected
915
$scope.isLoggedIn = false;
1016

1117
$scope.$watch('do_auto_reload', function () {
@@ -16,6 +22,10 @@ angular.module('Statusengine').directive('reloadConfig', function (ReloadService
1622
ReloadService.setAckAndDowntimeIsOk($scope.ack_and_downtime_is_ok);
1723
});
1824

25+
$scope.$watch('autoreload_frequency', function(){
26+
ReloadService.setAutoReloadFrequency($scope.autoreload_frequency);
27+
});
28+
1929
$scope.checkLoginState = function(){
2030
$http.get("/api/index.php/loginstate", {}
2131
).then(function (result) {

public/js/scripts/services/ReloadService.js

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ angular.module('Statusengine')
66
var autoreloadTimer = null;
77

88
var isDisabledTemporary = false;
9+
var autoreloadFrequency = 10000;
910

1011
if (window.localStorage.getItem('autoReloadEnabled') == 'false') {
1112
autoReloadEnabled = false;
@@ -15,6 +16,13 @@ angular.module('Statusengine')
1516
ackAndDowntimeIsOk = true;
1617
}
1718

19+
if(window.localStorage.getItem('autoReloadFrequency')){
20+
var value = parseInt(window.localStorage.getItem('autoReloadFrequency'), 10);
21+
if(value > 1000){
22+
autoreloadFrequency = value;
23+
}
24+
}
25+
1826
var callCallback = function () {
1927
if (_callback !== null) {
2028
_callback();
@@ -27,7 +35,7 @@ angular.module('Statusengine')
2735
window.localStorage.removeItem('autoReloadEnabled');
2836
}
2937
if (autoreloadTimer === null) {
30-
autoreloadTimer = $interval(callCallback, 10000);
38+
autoreloadTimer = $interval(callCallback, autoreloadFrequency);
3139
}
3240
} else {
3341
$interval.cancel(autoreloadTimer);
@@ -38,6 +46,13 @@ angular.module('Statusengine')
3846
}
3947
};
4048

49+
var updateTimerFrequency = function(){
50+
if (autoreloadTimer !== null) {
51+
$interval.cancel(autoreloadTimer);
52+
autoreloadTimer = $interval(callCallback, autoreloadFrequency);
53+
}
54+
};
55+
4156
$rootScope.isAutoReloadEnabled = autoReloadEnabled;
4257
handleTimer(false);
4358
return {
@@ -75,6 +90,17 @@ angular.module('Statusengine')
7590
},
7691
getAckAndDowntimeIsOk: function () {
7792
return ackAndDowntimeIsOk;
93+
},
94+
setAutoReloadFrequency: function(value){
95+
value = parseInt(value, 10);
96+
if(value > 0) {
97+
autoreloadFrequency = value;
98+
window.localStorage.setItem('autoReloadFrequency', value);
99+
updateTimerFrequency();
100+
}
101+
},
102+
getAutoReloadFrequency: function(){
103+
return autoreloadFrequency;
78104
}
79105
}
80106
});

public/templates/directives/reloadconfig.html

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<span><i class="fa fa-cog"></i> Settings</span>
33
</a>
44

5-
<ul class="dropdown-menu">
5+
<ul class="dropdown-menu" id="pageSettings">
66
<li>
77
<div class="container-fluid">
88
<div class="row">
@@ -17,18 +17,32 @@
1717
</div>
1818
</div>
1919
</div>
20-
2120
<div class="col-xs-12 text-center">
2221
<div class="form-group">
23-
<div class="checkbox">
24-
<label>
25-
<input type="checkbox" ng-model="ack_and_downtime_is_ok">
26-
Acknowledge and in Downtime hidden in Menu and Dashboard
27-
</label>
28-
</div>
22+
<label>Auto Refresh frequency</label>
23+
<select class="form-control" ng-model="autoreload_frequency">
24+
<option value="5000">5 seconds</option>
25+
<option value="10000">10 seconds</option>
26+
<option value="30000">30 seconds</option>
27+
<option value="60000">1 minute</option>
28+
<option value="300000">5 minutes</option>
29+
<option value="600000">10 minutes</option>
30+
</select>
2931
</div>
3032
</div>
3133
</div>
34+
35+
<div class="col-xs-12 text-center">
36+
<div class="form-group">
37+
<div class="checkbox">
38+
<label>
39+
<input type="checkbox" ng-model="ack_and_downtime_is_ok">
40+
Acknowledge and in Downtime hidden in Menu and Dashboard
41+
</label>
42+
</div>
43+
</div>
44+
</div>
45+
</div>
3246
</div>
3347
</li>
3448

0 commit comments

Comments
 (0)