From 880732d8b009bf1007bf64a3c79d3d7a66fa6668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Rad=C3=BCnz?= Date: Wed, 21 Feb 2018 21:09:56 +0100 Subject: [PATCH] Fixes issue #3055 --- .../controllers/EditBackupController.js | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/Duplicati/Server/webroot/ngax/scripts/controllers/EditBackupController.js b/Duplicati/Server/webroot/ngax/scripts/controllers/EditBackupController.js index 07737e88f..a526cc70e 100644 --- a/Duplicati/Server/webroot/ngax/scripts/controllers/EditBackupController.js +++ b/Duplicati/Server/webroot/ngax/scripts/controllers/EditBackupController.js @@ -315,21 +315,26 @@ backupApp.controller('EditBackupController', function ($rootScope, $scope, $rout return; } - if ($scope.KeepType == 'time' || $scope.KeepType == '') - { - delete opts['keep-versions']; - delete opts['retention-policy']; + // Retention options are mutual exclusive -> allow only one to be selected at a time + function resetAllRetentionOptionsExcept(optionToKeep = '') { + ['keep-versions', 'keep-time', 'retention-policy'].forEach(function(entry) { + if (entry != optionToKeep) { + delete opts[entry]; + } + }); } - if ($scope.KeepType == 'versions' || $scope.KeepType == '') - { - delete opts['keep-time']; - delete opts['retention-policy']; - } - if ($scope.KeepType == 'smart' || $scope.KeepType == '') - { - delete opts['keep-versions']; - delete opts['keep-time']; - delete opts['retention-policy']; + + if ($scope.KeepType == 'time') { + resetAllRetentionOptionsExcept('keep-time'); + + } else if ($scope.KeepType == 'versions') { + resetAllRetentionOptionsExcept('keep-versions'); + + } else if ($scope.KeepType == 'smart' || $scope.KeepType == 'custom') { + resetAllRetentionOptionsExcept('retention-policy'); + + } else { + resetAllRetentionOptionsExcept(); // keep none } if ($scope.KeepType == 'time' && (opts['keep-time'] || '').trim().length == 0)