admin: Fix activate timer

This commit is contained in:
nemunaire 2024-03-16 12:19:16 +01:00
parent 84b9e352ee
commit 0ca7aa568d
3 changed files with 19 additions and 7 deletions

View File

@ -464,6 +464,8 @@ angular.module("FICApp")
response.data.start = new Date(response.data.start);
response.data.end = new Date(response.data.end);
response.data.generation = new Date(response.data.generation);
if ($rootScope.settings && $rootScope.settings.activateTime instanceof Date)
response.data.activateTime = $rootScope.settings.activateTime;
$rootScope.settings = response.data;
$rootScope.recvTime(response);
})
@ -564,7 +566,8 @@ angular.module("FICApp")
$scope.nextsettings = NextSettings.query();
$scope.erase = false;
$scope.editNextSettings = function(ns) {
$scope.activateTime = ns.date;
$scope.activateTime = new Date(ns.date);
$rootScope.settings.activateTime = $scope.activateTime;
$scope.erase = true;
Object.keys(ns.values).forEach(function(k) {
$scope.config[k] = ns.values[k];
@ -594,7 +597,7 @@ angular.module("FICApp")
})
$scope.challenge = SettingsChallenge.get();
$scope.duration = 360;
$scope.activateTime = "0001-01-01T00:00:00Z";
$scope.activateTime = "";
$scope.challenge.$promise.then(function(c) {
if (c.duration)
$scope.duration = c.duration;
@ -656,8 +659,9 @@ angular.module("FICApp")
this.config.unlockedChallengeDepth = (this.config.enableExerciceDepend?this.config.unlockedChallengeDepth:-1)
this.config.disablesubmitbutton = (this.config.disabledsubmitbutton?this.config.disablesubmitbutton:'')
var updateQuery = {};
if (this.activateTime && this.activateTime != '0001-01-01T00:00:00Z') {
if (this.activateTime && this.activateTime != '') {
updateQuery['t'] = this.activateTime;
this.activateTime = null;
}
if (this.erase) {
updateQuery['erase'] = true;
@ -676,6 +680,7 @@ angular.module("FICApp")
$rootScope.settings.end = null;
}
$rootScope.settings.generation = new Date(nGen);
$scope.updateActivateTime();
}, function(response) {
$scope.addToast('danger', 'An error occurs when saving settings:', response.data.errmsg);
});
@ -694,10 +699,15 @@ angular.module("FICApp")
$rootScope.settings.activateTime = this.activateTime;
}
$scope.updActivateTime = function(modulo) {
if (modulo) {
var ts = Math.floor((new Date(this.config.end) - $rootScope.getSrvTime().getTime() - (60000 * modulo / 2)) / (60000 * modulo)) * (60000 * modulo);
var d = new Date(this.config.end) - ts;
this.activateTime = new Date(d);
this.updateActivateTime();
} else {
this.activateTime = null;
this.updateActivateTime();
}
}
$scope.reset = function(type) {
var txts = {

View File

@ -139,7 +139,9 @@ angular.module("FICApp")
res += Math.floor(input / 3600) + ":";
input = input % 3600;
}
if (input >= 60) {
if (res || input >= 60) {
if (res && Math.floor(input / 60) <= 9)
res += "0";
res += Math.floor(input / 60) + "'";
input = input % 60;
}

View File

@ -16,13 +16,13 @@
<a class="dropdown-item" ng-click="updActivateTime(30)">modulo 30 minutes</a>
<a class="dropdown-item" ng-click="updActivateTime(60)">modulo 60 minutes</a>
<a class="dropdown-item" ng-click="updActivateTime(90)">modulo 90 minutes</a>
<a class="dropdown-item" ng-click="activateTime = '0001-01-01T00:00:00Z'" ng-show="activateTimeCountDown">annuler la propagation</a>
<a class="dropdown-item" ng-click="updActivateTime(null)" ng-show="activateTimeCountDown">annuler la propagation</a>
</div>
</div>
<input type="datetime-local" class="form-control form-control-sm" id="activateTime" ng-model="activateTime" ng-change="updateActivateTime()">
</div>
<small ng-if="activateTimeCountDown">
Propagation dans : {{ activateTimeCountDown | timer }}
Propagation dans : {{ activateTimeCountDown | timer }}.
Il restera : {{ timeRemaining - activateTimeCountDown | timer }}
</small>
</div>