Viewing File: /usr/local/cpanel/whostmgr/docroot/cgi/ncssl/source/public/static/js/activation.js
(function ($) {
$(function () {
const $ncssl = $('#ncssl');
const $domainSelect = $ncssl.find('[data-activation-form] [data-domain-select]');
const $hiddenDomain = $ncssl.find('[data-activation-form] [data-domain-hidden-select]');
const hideClassName = 'hide';
$ncssl.find('[data-activation-form] [data-do-ssl-replace]').click(function () {
$ncssl.find('[data-activation-fields]').removeClass(hideClassName);
$ncssl.find('[data-cert-replace-info]').removeClass(hideClassName);
$ncssl.find('[data-cert-replace-error]').addClass(hideClassName);
return false;
});
function checkCertReplace() {
if ($domainSelect.length === 0 && $hiddenDomain.length === 0) {
return;
}
const $activationFields = $ncssl.find('[data-activation-form] [data-activation-fields]');
const $errBlock = $ncssl.find('[data-cert-replace-error]');
const $infoBlock = $ncssl.find('[data-cert-replace-info]');
$errBlock.addClass(hideClassName);
$infoBlock.addClass(hideClassName);
let domainSelectValue = $domainSelect.length ? $domainSelect.val() : $hiddenDomain.val();
if (domainSelectValue === '') {
$activationFields.addClass(hideClassName);
return;
}
if (domainSelectValue.substring(0, 4) == 'www.') {
domainSelectValue = domainSelectValue.substring(4);
}
$domainSelect.attr('disabled', true);
$.get(
`index.live.php?p=/certificate/is_installed&domain=${domainSelectValue}`,
function(data) {
if (data.status === 'ok') {
if (data.certificateId) {
$errBlock.removeClass(hideClassName);
$errBlock.find('[data-download-cert]').attr('data-id', data.certificateId);
$activationFields.addClass(hideClassName);
} else {
$activationFields.removeClass(hideClassName);
}
} else if (data.status === 'unauthorized') {
window.location.href = './index.live.php';
} else {
alert('Oops, something went wrong. Please reload the page');
}
}
).fail(function(er) {
$activationFields.addClass(hideClassName);
alert('Oh snap! Something went wrong, please refresh page and try again or contact support.');
}
).always(function () {
$domainSelect.removeAttr('disabled');
})
}
checkCertReplace();
if ($domainSelect.length > 0) {
$domainSelect.change(checkCertReplace);
}
// override jquery validate plugin defaults for twitter bootstrap
$.validator.setDefaults({
highlight: function (element) {
$(element).parent().addClass('has-error');
},
unhighlight: function (element) {
$(element).parent().removeClass('has-error');
},
errorElement: 'span',
errorClass: 'help-block',
errorPlacement: function (error, element) {
if (element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
$.validator.addMethod(
'emailAt',
function (value, element, param) {
return this.optional(element) || /^[^@]*@[^@]*$/.test(value);
},
'Email should contain single @'
);
$.validator.addMethod(
'emailDomain',
function (value, element, param) {
return this.optional(element) || /^.*@[a-z0-9_][-a-z0-9_]*(?:\.[-a-z0-9_]+)*\.(?:[a-z][a-z]+)\s*$/i.test(value);
},
'Domain after @ is invalid'
);
$.validator.addMethod(
'emailUsername',
function (value, element, param) {
return this.optional(element) || /^\s*[-a-z0-9~!$%^&*_=+}{'?]+(?:\.[-a-z0-9~!$%^&*_=+}{'?]+)*@.*$/i.test(value);
},
'Username before @ is invalid'
);
//Form validation rules
const validator = $ncssl.find('[data-activation-form]').validate({
debug: false,
rules: {
'data[email]': {
required: true,
emailAt: true,
emailDomain: true,
emailUsername: true
}
},
messages: {},
submitHandler: function (form) {
const $submitBtn = $ncssl.find('[data-submit]');
const loadingText = $submitBtn.attr('data-ncssl-loading');
$submitBtn.attr('disabled', true);
$submitBtn.text(loadingText);
form.submit();
},
onfocusout: function(elm, event) {
const $elm = $(elm);
if (elm.nodeName.toLowerCase() === 'input'
&& $elm.not(':checkbox')
&& $elm.not(':radio')
) {
let value = $elm.val();
value = value.trim()
.replace(/[\s]+/g, ' ')
.replace(/[']+/g, '\'')
.replace(/[\.]+/g, '.')
.replace(/[,]+/g, ',')
.replace(/[&]+/g, '&')
.replace(/[\-\u2013\u2014]+/g, '-'); // \u2013 fits – and \u2014 fits —
$elm.val(value);
validator.element(elm);
}
}
});
})
})(jQuery);
Back to Directory
File Manager