sync: introducing showlines property for vectors

It allows players to know in advance how many items the vector is composed.
This commit is contained in:
nemunaire 2019-11-25 17:45:41 +01:00
parent a545112cb2
commit b4fa57f9c9
4 changed files with 35 additions and 9 deletions

View file

@ -1,9 +1,19 @@
var alertNbLines = true;
function treatFlagKey(flag) {
if (flag.values !== undefined) {
if (flag.separator) {
for (var i = flag.values.length - 1; i >= 0; i--) {
if (!flag.values[i].length)
flag.values.splice(i, 1);
if (flag.nb_lines && (flag.values[i] == undefined || !flag.values[i].length)) {
if (alertNbLines) {
alertNbLines = false;
if (!confirm("Lorsque plusieurs flags sont attendus pour une même question, ceux-ci ne sont pas validés un par un. Ils ne sont validés qu'une fois tous les champs remplis correctement. (Sauf mention contraire, l'ordre n'importe pas)"))
console.log(flag.values[9999].length); // Launch exception here to avoid form validation
}
}
else if (!flag.values[i].length) {
flag.values.splice(i, 1);
}
}
if (flag.ignore_order)
@ -123,7 +133,7 @@ angular.module("FICApp", ["ngRoute", "ngSanitize"])
Liste de propositions (<ng-pluralize count="$ctrl.key.choices_cost * $ctrl.settings.wchoiceCurrentCoefficient" when="{'one': '{} point', 'other': '{} points'}"></ng-pluralize>)
</button>
</div>
<div class="input-group-append" ng-if="$ctrl.key.separator && $last">
<div class="input-group-append" ng-if="$ctrl.key.separator && !$ctrl.key.nb_lines && $last">
<button class="btn btn-success" type="button" ng-click="$ctrl.additem(key)" title="Ajouter un élément.">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
</button>
@ -357,6 +367,8 @@ angular.module("FICApp", ["ngRoute", "ngSanitize"])
data.exercices[eid].flags[fid].value = $scope.my.exercices[eid].flags[fid].value;
if ($scope.my && $scope.my.exercices[eid] && $scope.my.exercices[eid].flags && $scope.my.exercices[eid].flags[fid] && $scope.my.exercices[eid].flags[fid].values !== undefined)
data.exercices[eid].flags[fid].values = $scope.my.exercices[eid].flags[fid].values;
else if (data.exercices[eid].flags[fid].nb_lines)
data.exercices[eid].flags[fid].values = Array(data.exercices[eid].flags[fid].nb_lines);
else
data.exercices[eid].flags[fid].values = [""];
});