UNPKG

pip-webui

Version:

HTML5 UI for LOB applications

49 lines (41 loc) 1.74 kB
/** * @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)); } }; } ); })();