pip-webui
Version:
HTML5 UI for LOB applications
49 lines (41 loc) • 1.74 kB
JavaScript
/**
* @file Checking uniqueness of email in input control
* @description
* Email validation is performed on server via /api/signup_validate REST operation
* @copyright Digital Living Software Corp. 2014-2016
*/
/* global angular */
(function () {
'use strict';
var thisModule = angular.module('pipEmailUnique', ['ngResource', 'pipRest']);
thisModule.directive('pipEmailUnique',
function ($http, pipRest) {
return {
restrict: 'A',
require: 'ngModel',
link: function ($scope, $element, $attrs, ngModel) {
var oldEmail = $attrs.pipEmailUnique;
$scope.$watch($attrs.ngModel, _.throttle(function (newValue) {
var oldHint = ngModel.$validators.emailUnique;
if (!newValue || newValue.length == 0 || oldEmail == newValue) {
ngModel.$setValidity('emailUnique', oldHint);
return;
}
if (!newValue) ngModel.$setValidity('emailUnique', true);
pipRest.signupValidate().call(
{
email: newValue
},
function (data) {
ngModel.$setValidity('emailUnique', true);
},
function (err) {
ngModel.$setValidity('emailUnique', false);
}
);
}, 500));
}
};
}
);
})();