Viewing File: /usr/local/cpanel/base/frontend/jupiter/domains/validators/domainIsUnique.js
/*
/*
# base/frontend/jupiter/domains/validators/domainIsUnique.js Copyright(c) 2020 cPanel, L.L.C.
# All rights reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
*/
/* global define: false */
/** @namespace cpanel.domains.validators.domainIsUnique */
define(
[
"angular",
"cjt/util/locale",
"cjt/validator/validator-utils",
"cjt/validator/validateDirectiveFactory",
"app/services/domains",
],
function(angular, LOCALE, validationUtils) {
"use strict";
var _domains;
var factoryMethods = {
/** For mocking */
_processLoadedDomains: function(domains) {
_domains = null;
if (domains) {
_domains = {};
domains.forEach(function(domain) {
_domains[domain.domain] = domain;
});
}
return _domains;
},
_getDomains: function() {
return _domains;
},
};
/**
* Validator to check that the domain is unique compared to the domains.get() domains
*
* @module domainIsUniqueValidator
*
* @example
* <input domain-is-unique ng-model="myModel" />
*
*/
var domainIsUniqueValidator = {
/**
* Check if the domain is unique
*
* @method domainIsUnique
*
* @param {String} domain value to check against the validator
*
* @return {Boolean} returns a boolean value determined by the validity of the view
*
*/
domainIsUnique: function(domain) {
var result = validationUtils.initializeValidationResult();
var _domains = factoryMethods._getDomains();
if (!_domains || (domain && _domains[domain])) {
result.isValid = false;
result.add("domainIsUnique", LOCALE.maketext("This domain already exists on this account."), "domainIsUnique");
}
return result;
},
};
var validatorModule = angular.module("cjt2.validate");
validatorModule.run(["validatorFactory", "$q", "domains",
function(validatorFactory, $q, $domainsService) {
var validators = {
domainIsUnique: function(value) {
return $domainsService.get().then(function(domains) {
factoryMethods._processLoadedDomains(domains);
var result = domainIsUniqueValidator.domainIsUnique(value);
return $q.resolve(result);
});
},
};
validators.domainIsUnique.async = true;
validatorFactory.generate(validators, $q);
},
]);
return {
methods: domainIsUniqueValidator,
factoryMethods: factoryMethods,
name: "domain-is-unique",
description: "Validation to ensure domain is unique for this account.",
version: 1.0,
};
}
);
Back to Directory
File Manager