Merge branch 'pr/2628'

* pr/2628:
  Disallow adding duplicate device ID in GUI
This commit is contained in:
Jakob Borg 2015-12-30 08:53:29 +01:00
commit 6365a026c1
2 changed files with 10 additions and 0 deletions

View File

@ -15,6 +15,15 @@ angular.module('syncthing.core')
ctrl.$setValidity('validDeviceid', true); ctrl.$setValidity('validDeviceid', true);
} }
}); });
//Prevents user from adding a duplicate ID
var matches = scope.devices.filter(function (n) {
return n.deviceID == viewValue;
}).length;
if (matches > 0) {
ctrl.$setValidity('unique', false);
} else {
ctrl.$setValidity('unique', true);
}
} }
return viewValue; return viewValue;
}); });

View File

@ -21,6 +21,7 @@
<span translate ng-show="!editingExisting && (deviceEditor.deviceID.$valid || deviceEditor.deviceID.$pristine)">When adding a new device, keep in mind that this device must be added on the other side too.</span> <span translate ng-show="!editingExisting && (deviceEditor.deviceID.$valid || deviceEditor.deviceID.$pristine)">When adding a new device, keep in mind that this device must be added on the other side too.</span>
<span translate ng-if="deviceEditor.deviceID.$error.required && deviceEditor.deviceID.$dirty">The device ID cannot be blank.</span> <span translate ng-if="deviceEditor.deviceID.$error.required && deviceEditor.deviceID.$dirty">The device ID cannot be blank.</span>
<span translate ng-if="deviceEditor.deviceID.$error.validDeviceid && deviceEditor.deviceID.$dirty">The entered device ID does not look valid. It should be a 52 or 56 character string consisting of letters and numbers, with spaces and dashes being optional.</span> <span translate ng-if="deviceEditor.deviceID.$error.validDeviceid && deviceEditor.deviceID.$dirty">The entered device ID does not look valid. It should be a 52 or 56 character string consisting of letters and numbers, with spaces and dashes being optional.</span>
<span translate ng-if="deviceEditor.deviceID.$error.unique && deviceEditor.deviceID.$dirty">A device with that ID is already added.</span>
</p> </p>
</div> </div>
<div class="form-group"> <div class="form-group">