Added speed as an option type in the advanced editor.

Added overrides for `throttle-upload` and `throttle-download` in advanced editor.
This fixes #1600
This commit is contained in:
Kenneth Skovhede
2016-10-13 22:44:02 +02:00
parent 3d44d26674
commit 22053bec82
3 changed files with 26 additions and 0 deletions
@@ -10,12 +10,20 @@ backupApp.directive('advancedOptionsEditor', function() {
$scope.NewItem = null;
$scope.fileSizeMultipliers = AppUtils.fileSizeMultipliers;
$scope.timerangeMultipliers = AppUtils.timerangeMultipliers;
$scope.speedMultipliers = AppUtils.speedMultipliers;
AppUtils.watch($scope, function() {
$scope.fileSizeMultipliers = AppUtils.fileSizeMultipliers;
$scope.timerangeMultipliers = AppUtils.timerangeMultipliers;
$scope.speedMultipliers = AppUtils.speedMultipliers;
});
// Overrides to display a custom layout for a specific option
var overrides = {
'throttle-upload': 'speed',
'throttle-download': 'speed'
};
var optionmap = null;
function rebuildOptionMap() {
@@ -59,6 +67,9 @@ backupApp.directive('advancedOptionsEditor', function() {
if (item == null)
return 'text';
if (overrides[item.Name])
return overrides[item.Name];
if (item.Type == 'Enumeration')
return 'enum';
if (item.Type == 'Flags')
@@ -66,6 +66,15 @@ backupApp.service('AppUtils', function($rootScope, $timeout, DialogService, gett
{name: gettextCatalog.getString('Sun'), value: 'sun'}
];
apputils.speedMultipliers = [
{name: gettextCatalog.getString('byte/s'), value: ''},
{name: gettextCatalog.getString('KByte/s'), value: 'KB'},
{name: gettextCatalog.getString('MByte/s'), value: 'MB'},
{name: gettextCatalog.getString('GByte/s'), value: 'GB'},
{name: gettextCatalog.getString('TByte/s'), value: 'TB'}
];
apputils.exampleOptionString = gettextCatalog.getString('Enter one option per line in command-line format, eg. {0}');
apputils.filterClasses = [{
@@ -16,6 +16,12 @@
</select>
</div>
<div ng-if="getInputType(item) == 'speed'" class="input type multiple">
<input type="number" parse-advanced-option-size-number="uppercase" ng-model="$parent.ngModel[$index]" />
<select parse-advanced-option-size-multiplier="uppercase" ng-model="$parent.ngModel[$index]" ng-options="item.value as item.name for item in speedMultipliers">
</select>
</div>
<div ng-if="getInputType(item) == 'timespan'" class="input type multiple">
<input parse-advanced-option-size-number type="number" ng-model="$parent.ngModel[$index]" />
<select parse-advanced-option-size-multiplier ng-model="$parent.ngModel[$index]" ng-options="item.value as item.name for item in timerangeMultipliers">