Files
meanTorrent/modules/users/client/directives/password-validator.client.directive.js
Ilan Biala cc486d54c5 Merge pull request #910 from jloveland/hide-password-validator
Hide the password strength progress when the field is empty
2015-10-16 23:34:55 -04:00

45 lines
1.5 KiB
JavaScript

'use strict';
angular.module('users')
.directive('passwordValidator', ['PasswordValidator', function(PasswordValidator) {
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
ngModel.$validators.requirements = function (password) {
var status = true;
if (password) {
var result = PasswordValidator.getResult(password);
var requirementsIdx = 0;
// Requirements Meter - visual indicator for users
var requirementsMeter = [
{ color: 'danger', progress: '20' },
{ color: 'warning', progress: '40' },
{ color: 'info', progress: '60' },
{ color: 'primary', progress: '80' },
{ color: 'success', progress: '100' }
];
if (result.errors.length < requirementsMeter.length) {
requirementsIdx = requirementsMeter.length - result.errors.length - 1;
}
scope.requirementsColor = requirementsMeter[requirementsIdx].color;
scope.requirementsProgress = requirementsMeter[requirementsIdx].progress;
if (result.errors.length) {
scope.popoverMsg = PasswordValidator.getPopoverMsg();
scope.passwordErrors = result.errors;
status = false;
} else {
scope.popoverMsg = '';
scope.passwordErrors = [];
status = true;
}
}
return status;
};
}
};
}]);