// VARIABLES
let ns_groups = null;
let hosting_options = null;
let current_domain = '';
let current_id = 0;
let domain_contacts_langstrs = {};
let dd_main_loaded = false;
let dd_ns_loaded = false;
let dd_contacts_loaded = false;
let dd_epp_loaded = false;
let renew_domain_form_is_made = false;
let curr_domain_id = 0;
let domainlisting_lastchecked = null;
let domains_filter_object = {};
let domains_object = {};
let domain_row_strings = {};
let domains_filter_soon_date_start = 0;
let domains_filter_soon_date_end = 0;
let idprotection_cost = 0;
let idprotection_text = '';
let table_data = getDomainTableColumnData();
let domain_action = '';
let tld_list = [];
let default_domain_filters = {};
// LISTENERS
$(document).on('change', '.table-row-checkbox', function() {
let show_bulk_action = false;
$('.table-row-checkbox').each(function(i, obj) {
if ($(obj).is(':checked')) {
show_bulk_action = true;
}
});
if (show_bulk_action) {
$('#bulk-actions-selection').show();
$('#filters-actions').hide();
bulkActionFix();
} else {
$('#bulk-actions-selection').hide();
$('#filters-actions').show();
}
});
$(document).on('change', '#blankCheckbox', function (e) {
let isChecked = false;
if ($(this).is(':checked')) {
isChecked = true;
$('#bulk-actions-selection').show();
$('#filters-actions').hide();
}
else {
$('#bulk-actions-selection').hide();
$('#filters-actions').show();
}
$('.table-row-checkbox:enabled').each(function(i, obj) {
$(obj).prop('checked', isChecked);
});
if (isChecked) {
bulkActionFix();
}
});
$(document).on('change', '#domain_list_page_limit', function() {
if ('All' == $('#domain_list_page_limit').val()) {
domains_filter_object.limit = 'All';
}
else {
domains_filter_object.limit = parseInt($('#domain_list_page_limit').val());
}
domains_filter_object.page = 1;
addDomainListingRows();
window.scrollTo({top: 0, behavior: 'smooth'});
});
$(document).on('change', '.domains-filter-opt-date', domainListingFilters);
$(document).on('click', '.domains-filter-opt input', domainListingFilters);
$(document).on('click', '#domain_listing_pagination_ul a.page-link', function() {
let current_page = $('#domain_listing_pagination_ul li.page-item.active').first().attr('name');
let new_page = $(this).parent().attr('name');
if (current_page != new_page) {
if ('Previous' == new_page) {
new_page = parseInt(current_page);
new_page--;
}
else if ('Next' == new_page) {
new_page = parseInt(current_page);
new_page++;
}
domains_filter_object.page = parseInt(new_page);
addDomainListingRows(false);
window.scrollTo({top: 0, behavior: 'smooth'});
}
});
$(document).on('click', '.table-domains .sort-header', function() {
let sort = $(this).data('sort');
let order_class = 'fa-arrow-up';
if (sort == domains_filter_object.sort) {
if ('asc' == domains_filter_object.order) {
domains_filter_object.order = 'desc';
order_class = 'fa-arrow-down';
}
else {
domains_filter_object.order = 'asc';
}
}
else {
domains_filter_object.sort = sort;
domains_filter_object.order = 'asc';
}
$('.table-domains .sort-header').each(function(i, obj) {
$(obj).find('i').removeClass(['fa-arrow-up', 'fa-arrow-down']);
});
$(this).find('i').addClass(order_class);
domains_filter_object.page = 1;
sortDomainRows();
window.scrollTo({top: 0, behavior: 'smooth'});
});
$(document).on('search keyup', '#table_search', function() {
domains_filter_object.page = 1;
addDomainListingRows(false);
});
$(document).on('change', '.bulk-privacy-protection-radio', function (e) {
if (!$("input[name='managePrivacyProtection']:checked").val()) {
$('#bulk_privacy_protection_btn').attr('disabled', true);
}
else {
if ($('#enablePrivacyProtection').is(':checked') && parseFloat($('#bulk_privacy_protection_btn').val()) > 0) {
$('#bulk_privacy_protection_btn').text($('#bulk_privacy_protection_btn').data('text-buy') + ' $' + $('#bulk_privacy_protection_btn').val());
}
else {
$('#bulk_privacy_protection_btn').text($('#bulk_privacy_protection_btn').data('text-apply'));
}
$('#bulk_privacy_protection_btn').attr('disabled', false);
}
});
$(document).on('change', '.bulk-auto-renew-radio', function (e) {
if (!$("input[name='manageBulkAutoRenew']:checked").val()) {
$('#bulk_auto_renew_btn').attr('disabled', true);
}
else {
$('#bulk_auto_renew_btn').attr('disabled', false);
}
});
$(document).on('change', '.bulk-reg-lock-radio', function (e) {
if (!$("input[name='manageRegistraLock']:checked").val()) {
$('#bulk_reglock_btn').attr('disabled', true);
}
else {
$('#bulk_reglock_btn').attr('disabled', false);
}
});
$(document).on('click', '#whcNameservers', function (e) {
$('#connect-details').show();
$('#future_ns').show();
$('#custom-nameservers').hide();
$('#button-apply-ns').prop( "disabled", false );
});
$(document).on('click', '#customNameservers', function (e) {
$('#custom-nameservers').show();
$('#future_ns').hide();
$('#connect-details').hide();
$('#button-apply-ns').prop( "disabled", false );
});
$(document).on('change', '#hosting-select', function (e) {
let inputs = '';
for (const [key, value] of Object.entries(ns_groups[$(this).val()])) {
inputs += ``;
};
$('#future_ns_rows').html(inputs);
let extra_data = $(this).find(':selected').data('extra');
$('.pre-change-warning').hide();
$('#ns_warning_' + extra_data).show();
});
$(document).on('click', '.domain-details-modal', function (e) {
let target = $(this).attr('data-target').replace('#', '');
let data = {show_modal: target};
pushState(data, null, '/nca/domains/' + current_domain + '/' + domain_actions[target]);
if ('privatenameservers' == domain_actions[target]) {
getPrivateNs();
}
});
// let dom load prior to event handler being set
$(function() {
$(document).on('hidden.bs.modal', '#transferAway', function (e) {
$('#eppCode').prop('type', 'password');
$('#showEPPCode').show();
$('#copyEPPCode').hide();
});
$(document).on('hidden.bs.modal', '#bulkRegistrarLock', function (e) {
$('.bulk-reg-lock-radio').prop('checked', false);
});
});
$(document).on('change', '#allContactType', function (e) {
if ($('#allContactType').is(':checked')) {
$('#editContactInfoTabs').hide();
$('#registrant-tab').tab('show');
} else {
$('#editContactInfoTabs').show();
}
});
$(document).on('change', '#allDomainContactType', function (e) {
if ($('#allDomainContactType').is(':checked')) {
$('#editDomainContactInfoTabs').hide();
$('#registrant-tab').tab('show');
} else {
$('#editDomainContactInfoTabs').show();
}
});
$(document).on('click', '#showEPPCode', function (e) {
$('#eppCode').prop('type', 'text');
$('#showEPPCode').hide();
if (dd_epp_loaded) {
$('#copyEPPCode').show();
}
else {
$('#loadEPPCode').show();
getEPPCode($('#loadEPPCode').val());
}
});
$(document).on('click', '#copyEPPCode', function (e) {
navigator.clipboard.writeText($('#eppCode').val());
$('#copyEPPCode').attr('title', base_strings.nca_copied).tooltip('_fixTitle').tooltip('show');
setTimeout( function() {
$('#copyEPPCode').attr('title', base_strings.nca_copy).tooltip('_fixTitle');
if ($('#copyEPPCode').is(":hover")) {
$('#copyEPPCode').tooltip('show');
}
}, 10000);
});
$(document).on('mouseout', '#copyEPPCode', function (e) {
$('#copyEPPCode').tooltip('hide');
});
$(document).on('click', '.domain-listing-columns', function (e) {
let col_id = $(this).attr('id').replace('_check', '');
let col_display = $(this).is(':checked');
let col_index = 0;
$('#domain_listing_headers td').each(function(){
if ($(this).attr('id') && $(this).attr('id') == col_id) {
col_index = $('#domain_listing_headers td').index(this) + 1;
}
});
if (col_index) {
if (col_display) {
$(`.table-domains td:nth-child(${col_index})`).show();
}
else {
$(`.table-domains td:nth-child(${col_index})`).hide();
}
}
updateDomainTableColumns(false);
});
$(document).on('click', '#saveContactInfo_btn', function() {
let data = $('#editContactInfoForm').serializeArray();
let domain_contacts = '';
$('#saveContactInfo_btn_cancel').attr('disabled', true);
$('#saveContactInfo_btn').hide();
$('#saveContactInfo_btn_spinner').show();
let hide_modal = true;
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'updateDomainContacts',
nca_action: 'nca_domains_contacts',
token: token,
data: data
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
if ('0' != res) {
let response = JSON.parse(res);
if (response.err_code) {
if (9 == response.err_code) {
showErrorAlertMsg(response.err_str, 0, response.err_code);
} else if(5 === response.err_code) {
let err = JSON.parse(response.err_str);
let err_msg = '';
$(err['error']).each(function(i, domain) {
err_msg += `
${$('#contact-'+domain).html()}`;
});
$('#contact_error_domain').html(err_msg);
$('#domain_contact_error').removeClass('hide');
hide_modal = false;
}
else {
showErrorAlertMsg('', 0, response.err_code);
}
}
else {
let contacts_obj = {};
let use_all = false;
for (const [key, value] of Object.entries(data)) {
if ('allContactType' == value.name && 'on' == value.value) {
use_all = true;
}
let name_vals = value.name.split('-');
if (['registrant', 'admin', 'technical', 'billing'].includes(name_vals[0])) {
if (!contacts_obj[name_vals[0]]) {
contacts_obj[name_vals[0]] = {};
}
contacts_obj[name_vals[0]][name_vals[1]] = value.value;
}
}
if (use_all) {
for (const [key, value] of Object.entries(contacts_obj)) {
if ('registrant' != key) {
contacts_obj[key] = contacts_obj['registrant'];
}
}
}
$('#domain_contact_info').html(buildDomainContactsHtml(contacts_obj));
showSuccessAlert('nca_domain_contact_successful');
}
} else {
showErrorAlertMsg(base_strings.dm2_err_msg);
}
$('#saveContactInfo_btn_cancel').attr('disabled', false);
$('#saveContactInfo_btn').show();
$('#saveContactInfo_btn_spinner').hide();
if(hide_modal){
$('#editContactInfo').modal('hide');
}
}
});
});
$(document).on('click', '#domains_table_tbody .form-check-input', function (e) {
if (!domainlisting_lastchecked) {
domainlisting_lastchecked = this;
return;
}
if (e.shiftKey) {
let $chkboxes = $('#domains_table_tbody .form-check-input');
let start = $chkboxes.index(this);
let end = $chkboxes.index(domainlisting_lastchecked);
$chkboxes.slice(Math.min(start,end), Math.max(start,end)+ 1).prop('checked', domainlisting_lastchecked.checked);
}
domainlisting_lastchecked = this;
});
$(document).on('click', '.customSwitch-privacyProtection', function(e) {
let status = $(this).is(':checked');
let domainId = $(this).attr('data-domainid');
let domain_data = {};
domain_data[$(this).data('domainid')] = status == true ? 1 : 0;
if (status === true && idprotection_cost > 0) {
Swal.fire({
title: base_strings.domainnameprivacy,
text: idprotection_text,
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: $(this).attr('data-buybutton'),
cancelButtonText: base_strings.cancel
}).then((result) => {
if (result.value) {
setUXMapData('domain_privacy_confirm_purchase');
setPrivacyProtectionStatus(domain_data, true);
} else{
$('#privacySwitch' + domainId).prop('checked', false);
}
})
}else{
setPrivacyProtectionStatus(domain_data, true);
}
});
$(document).on('click', '#customSwitch-registrarLock', function(e) {
let status = $('#customSwitch-registrarLock').is(':checked');
if (false == status) {
$('#customSwitch-registrarLock').popover('show');
e.preventDefault();
return false;
}
let domain_data = {};
$('#customSwitch-registrarLock').attr('disabled', true);
domain_data[$('#customSwitch-registrarLock').data('domainid')] = status == true ? 1 : 0;
setRegistrarLockStatus(domain_data, true);
});
$(document).on('click', '#reglockpopoveraccept', function(e) {
let domain_data = {};
$('#customSwitch-registrarLock').prop('checked', false);
$('#customSwitch-registrarLock').attr('disabled', true);
domain_data[$('#customSwitch-registrarLock').data('domainid')] = status == true ? 1 : 0;
setRegistrarLockStatus(domain_data, true);
});
$(document).on('click', '#reglockpopovercancel, #reglockpopoveraccept', function(e) {
$('#customSwitch-registrarLock').popover('hide');
});
// FUNCTIONS
function loadDomainDetails(domain, id = 0)
{
if (window.event.ctrlKey ?? false) {
let a = document.createElement("a");
a.href = `/nca/domains/${domain}?id=${id}`;
let evt = document.createEvent("MouseEvents");
//the tenth parameter of initMouseEvent sets ctrl key
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
true, false, false, false, 0, null);
a.dispatchEvent(evt);
}
else if (window.event.shiftKey ?? false) {
let a = document.createElement('a');
a.href = `/nca/domains/${domain}?id=${id}`;
let evt = document.createEvent('MouseEvents');
//the twelfth parameter of initMouseEvent sets ctrl key
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0,
false, false, true, false, 0, null);
a.dispatchEvent(evt);
}
else {
let data = {id: id};
pushState(data, null, '/nca/domains/' + domain);
loadDomainData({domainid: id});
}
}
function viewAllDomains()
{
window.history.replaceState({domainid: current_id}, null);
current_domain = '';
current_id = 0;
pushState(null, null, '/nca/domains');
loadDomainData({init_load: 1});
}
function buildFullDomainListingView(args)
{
let langs = args.langstrs;
default_domain_filters = args.default_domain_filters;
domains_filter_object.sort = 'domain';
domains_filter_object.order = 'asc';
domains_filter_object.status = ['Active'];
domains_filter_object.status_soon = false;
domains_filter_object.auto_renew = [];
domains_filter_object.privacy = [];
domains_filter_object.extension = [];
domains_filter_object.exipire_after = 0;
domains_filter_object.exipire_after_date = '';
domains_filter_object.page = 1;
domains_filter_object.limit = 10;
domains_filter_object = updateFilterObjects(domains_filter_object);
domains_filter_object.auto_renew.forEach((val, idx) => {
if (['0', '1'].includes(val)) {
domains_filter_object.auto_renew[idx] = parseInt(val);
}
});
domains_filter_object.privacy.forEach((val, idx) => {
if (['0', '1'].includes(val)) {
domains_filter_object.privacy[idx] = parseInt(val);
}
});
domains_object = args.data;
domain_row_strings = args.domain_listing_row_strs;
domains_filter_soon_date_start = Date.parse(args.domains_filter_soon_date_start);
domains_filter_soon_date_end = Date.parse(args.domains_filter_soon_date_end);
domains_object.forEach((domain) => {
domain.nextduedate_compare = Date.parse(domain.nextduedate);
if (!domain.hasOwnProperty('nameservers')) {
domain.nameservers = [''];
domain.nameservers_lastchecked = '';
}
});
addDomainListingRows(false);
dd_main_loaded = false;
dd_ns_loaded = false;
dd_contacts_loaded = false;
dd_epp_loaded = false;
curr_domain_id = 0;
idprotection_cost = args.idprotection_cost;
idprotection_text = args.idprotection_text;
if (ns_groups == null) {
ns_groups = args.ns_groups;
}
if (hosting_options == null) {
hosting_options = args.hosting_options;
}
if (args['domain_contacts_langstrs']) {
domain_contacts_langstrs = args['domain_contacts_langstrs'];
}
if (args['errsuccess_langstrs']) {
errsuccess_langstrs = specialCharFix(args['errsuccess_langstrs']);
}
if (!args.data.length) {
setView(domains_noDomains(args, langs));
$('.skeleton-loader-table').remove();
return false;
}
args.table_data = table_data;
Object.keys(args.tlds).forEach((key) => {
tld_list.push(args.tlds[key]);
});
domainQueryFilters();
setView(domains_domainListing(args, langs));
sortDomainRows(false);
setDomainsFilterSpan();
$('#domains_listing_container #nca_pagination_total_count').text(args.data.length);
orderDomainTableColumns(true);
let sort_class = 'fa-arrow-up';
if ('desc' == domains_filter_object.order) {
sort_class = 'fa-arrow-down';
}
$(`div[data-sort="${domains_filter_object.sort}"]`).find('i').addClass(sort_class);
if ($('#changeNameservers').length) {
$('#changeNameservers').remove();
}
$('#main').append(modals_changeNS(args, langs));
if (!$('#editContactInfo').length) {
$('#main').append(modals_domainContactsUpdate(args, domain_contacts_langstrs));
}
if (!$('#bulkRegistrarLock').length) {
$('#main').append(modals_domainRegLock(args, langs));
}
if (!$('#bulkPrivacyProtection').length) {
$('#main').append(modals_privacyProtection(args, langs));
}
if (!$('#bulkAutoRenewDomains').length) {
$('#main').append(modals_bulkAutoRenewDomains(args, langs));
}
if (url_filter.get('s') === 'renew') {
resetFilters();
domains_filter_object.limit = 'All';
domains_filter_object.status_soon = true;
domains_filter_object.offset = 0;
domains_filter_object.to_limit = args.data.length;
domains_filter_object.final_page = 1;
domains_filter_object.current_page = 1;
domains_filter_object.sort = 'nextduedate_compare';
domains_filter_object.order = 'asc';
sortDomainRows(false);
setDomainsFilterSpan();
}
$('.skeleton-loader').show();
$('.skeleton-loaded').hide();
$('.skeleton-loader-table').remove();
$('[data-toggle="tooltip"]').tooltip();
$('#domain_listing_headers td').each(function(){
if ($(this).attr('id') && $(this).is(':visible')) {
$(`#${$(this).attr('id')}_check`).prop('checked', true)
}
});
$('#columns ul').sortable({
update: function(event, ui) {
updateDomainTableColumns();
orderDomainTableColumns();
}
});
}
function sortDomainRows(save_filters = true)
{
domains_object.sort(function(a, b) {
let left = a;
let right = b;
if ('desc' == domains_filter_object.order) {
left = b;
right = a;
}
if ('string' == typeof left[domains_filter_object.sort]) {
return left[domains_filter_object.sort].localeCompare(right[domains_filter_object.sort]);
}
else if ('object' == typeof left[domains_filter_object.sort]) {
if (!left[domains_filter_object.sort][0]) {
return 0;
}
return left[domains_filter_object.sort][0].localeCompare(right[domains_filter_object.sort][0]);
}
else {
return left[domains_filter_object.sort] - right[domains_filter_object.sort];
}
});
addDomainListingRows(save_filters);
}
function addDomainListingRows(save_filters = true)
{
let domains_rows = '';
let rows_found_count = 0;
let filter_limit = domains_filter_object.limit == 'All' ? domains_object.length + 1 : domains_filter_object.limit;
let offset = (domains_filter_object.page - 1) * filter_limit;
let min = Math.min((offset + filter_limit), domains_object.length);
let rows_set_count = offset;
let search_string = '';
if ($('#table_search').length) {
if ('' != $('#table_search').val()) {
search_string = $('#table_search').val().toLowerCase();
}
else if (null != url_filter.get('search')) {
$('#table_search').val(url_filter.get('search'));
search_string = url_filter.get('search').toLowerCase();
}
url_filter.delete('search');
}
domains_object.forEach((domain) => {
let add_row = true;
let renew_disabled = ['Active', 'Grace', 'Redemption'].includes(domain.status) ? '' : 'disabled';
let privacy_disabled = ['Active', 'Grace'].includes(domain.status) ? '' : 'disabled';
let id_protection_toggle_state = domain.idprotection ? 'checked' : '';
let tooltip_text = idprotection_text;
if (!domain.idprotection_support) {
id_protection_toggle_state = 'disabled';
tooltip_text = domain_row_strings.nca_privacy_protection_not_supported_text;
}
if (domain.unpaid_idprotection_invoice) {
id_protection_toggle_state = 'disabled';
tooltip_text = domain_row_strings.nca_privacy_protection_unpaid_invoice;
tooltip_text = tooltip_text.replace(':idprotection_invoice_id', domain.unpaid_idprotection_invoice.invoiceid);
}
domain.renew_disabled = renew_disabled;
domain.privacy_disabled = privacy_disabled;
domain.id_protection_toggle_state = id_protection_toggle_state;
domain.tooltip_text = tooltip_text;
if (domains_filter_object.status.length && !domains_filter_object.status.includes('All')) {
if (!domains_filter_object.status.includes(domain.status)) {
add_row = false;
}
}
if (domains_filter_object.status_soon) {
if (!['Active', 'Grace', 'Redemption'].includes(domain.status)) {
add_row = false;
} else if (!(domain.nextduedate_compare > domains_filter_soon_date_start && domain.nextduedate_compare <= domains_filter_soon_date_end)) {
add_row = false;
}
}
if (domains_filter_object.auto_renew.length && !domains_filter_object.auto_renew.includes('All')) {
if (!domains_filter_object.auto_renew.includes(domain.donotrenew)) {
add_row = false;
}
}
if (domains_filter_object.privacy.length && !domains_filter_object.privacy.includes('All')) {
if (!domains_filter_object.privacy.includes(domain.idprotection)) {
add_row = false;
}
}
if (domains_filter_object.extension.length && !domains_filter_object.extension.includes('All')) {
if (!domains_filter_object.extension.includes(domain.extension)) {
add_row = false;
}
}
if (domains_filter_object.exipire_after && !(domain.nextduedate_compare > domains_filter_object.exipire_after)) {
add_row = false;
}
if ('' != search_string) {
if ($('#domain_listing_ns_col').is(':visible')) {
if (!(domain.domain.toLowerCase().includes(search_string) || domain.nameservers.filter((ns) => ns.toLowerCase().includes(search_string)).length)) {
add_row = false;
}
}
else {
if (!domain.domain.toLowerCase().includes(search_string)) {
add_row = false;
}
}
}
if (add_row) {
if (rows_found_count >= offset && rows_set_count < min) {
domain.table_data = table_data;
domains_rows += domains_domainListingRow(domain);
rows_set_count++;
}
rows_found_count++;
}
});
domains_filter_object.from_limit = rows_found_count === 0 ? 0 : offset + 1;
domains_filter_object.to_limit = Math.min(min, rows_found_count);
domains_filter_object.filter_count = rows_found_count;
domains_filter_object.final_page = domains_filter_object.limit != 'All' ? Math.ceil(domains_filter_object.filter_count / domains_filter_object.limit) : 1;
$('.domain-list-row').remove();
$('#domains_listing_container #domain_listing_pagination_ul').html(createPagination(domains_filter_object.page, domains_filter_object.final_page, base_strings.nca_previous, base_strings.nca_next));
$('#domains_listing_container #nca_pagination_from_limit').text(domains_filter_object.from_limit);
$('#domains_listing_container #nca_pagination_to_limit').text(domains_filter_object.to_limit);
$('#domains_listing_container #nca_pagination_filter_count').text(domains_filter_object.filter_count);
$('#domains_table_tbody').append(domains_rows);
$('[data-toggle="tooltip"]').tooltip();
if (rows_found_count === 0) {
$('#domains_table_tbody #noResults').show();
}
else {
$('#domains_table_tbody #noResults').hide();
}
setDomainQueryFilterString();
if (save_filters) {
saveFilters(domains_filter_object);
}
}
function buildDomainDetails(args, domain_action)
{
args['langstrs'].dm2_upto_rules = args['langstrs'].dm2_upto_rules.replace(':x', args['max_domain_forwarders']);
let template_data = args;
let langs = args['langstrs'];
let tld = args.domain_data.domain.split('.').pop();
let id_protection_toggle_state = '';
let tooltip_lang_var = 'nca_privacy_protection_text';
if (!args['domain_data'].idprotection_support) {
id_protection_toggle_state = 'disabled';
tooltip_lang_var = 'nca_privacy_protection_not_supported_text';
} else {
if (args['domain_data'].idprotection) {
id_protection_toggle_state = 'checked';
}
if (args['domain_data'].unpaid_idprotection_invoice) {
id_protection_toggle_state = 'disabled';
tooltip_lang_var = 'nca_privacy_protection_unpaid_invoice';
}
}
dd_main_loaded = false;
dd_ns_loaded = false;
dd_contacts_loaded = false;
dd_epp_loaded = false;
if (ns_groups == null) {
ns_groups = args.ns_groups;
}
if (hosting_options == null) {
hosting_options = args.hosting_options;
}
current_id = args['domain_data'].id;
curr_domain_id = args['domain_data'].id;
dm2_current_id = args['domain_data'].id;
dm2_current_domain = args['domain_data'].domain;
max_email_forwarders = args['max_email_forwarders'];
max_domain_forwarders = args['max_domain_forwarders'];
current_email_forwarders = args['email_forwarders'].length;
if (args['domain_contacts_langstrs']) {
domain_contacts_langstrs = args['domain_contacts_langstrs'];
}
if (args['errsuccess_langstrs']) {
errsuccess_langstrs = specialCharFix(args['errsuccess_langstrs']);
}
if (args['swal_langstrs']) {
swal_langstrs = args['swal_langstrs'];
}
let privacy_protection_small_text = (args['domain_data'].donotrenew == 0 ? langs.nca_renews_on : langs.nca_expires_on) + ' ' + args['domain_data'].nextduedate;
if ('.ca' == args['domain_data'].domain.substr(-3)) {
privacy_protection_small_text = langs.nca_included_forever;
}
template_data.tld = tld;
template_data.id_protection_toggle_state = id_protection_toggle_state;
template_data.tooltip_lang_var = tooltip_lang_var;
template_data.privacy_protection_small_text = privacy_protection_small_text;
setView(domains_domainDetails(template_data, langs));
$('#premiumDNSUpsell').remove();
$('#main').append(modals_premiumDNSUpsell({
domain: args.domain_data.domain,
lang: args.lang,
premium_dns_pricing: args.premium_dns_pricing
}, langs));
$('#editDomainContactInfo').remove();
$('#main').append(modals_domainContactsUpdate(args.domain_data, args.domain_contacts_langstrs));
args.domain_data.view_type = 'domain';
addModals(args, langs);
$('#bulk_contacts_label').html(base_strings.ns_wizard_You_selected + ' ' + current_domain + '');
$('#bulk_contacts_label').show();
$('#bulk_contacts_collapse').hide();
if ('Active' != args.domain_data.status) {
switch (args.domain_data.status) {
case 'Grace':
$('.status-1').addClass('disabled status-disabled');
$('.status-1').attr('disabled', true);
$('.status-1').attr('onclick', '');
break;
case 'Redemption':
$('.status-1').addClass('disabled status-disabled');
$('.status-1').attr('disabled', true);
$('.status-1').attr('onclick', '');
$('.status-2').addClass('disabled status-disabled');
$('.status-2').attr('disabled', true);
$('.status-2').attr('onclick', '');
break;
default:
$('.status-1').addClass('disabled status-disabled');
$('.status-1').attr('disabled', true);
$('.status-1').attr('onclick', '');
$('.status-2').addClass('disabled status-disabled');
$('.status-2').attr('disabled', true);
$('.status-2').attr('onclick', '');
$('.status-3').addClass('disabled status-disabled');
$('.status-3').attr('disabled', true);
$('.status-3').attr('onclick', '');
}
}
getDomainLockStatus(args['domain_data'].id);
getNameServers(args['domain_data'].id);
getNameserverStatus(args['domain_data'].id, args['domain_data'].domain);
getDomainForwardingZoneStatus(args['domain_data'].id, args['domain_data'].domain);
getEmailForwardingZoneStatus(args['domain_data'].id, args['domain_data'].domain);
getDomainContacts(args['domain_data'].id, true);
$('#edit_contact_domain_ids').val(args['domain_data'].id);
if(tld === 'ca') {
getHideWhoIsInfo(args.domain_data.domain);
$('#hide-whois').removeClass('hide');
}
$('.skeleton-loader').show();
$('.skeleton-loaded').hide();
if (domain_url_paths.includes(domain_action) ) {
for (const [key, value] of Object.entries(domain_actions)) {
if (domain_action == value) {
$('#' + key).modal('show');
if ('privatenameservers' == domain_action) {
getPrivateNs();
}
}
}
}
$('#bulk_ns_label').html(base_strings.ns_wizard_You_selected + ' ' + current_domain + '');
$('#bulk_ns_label').show();
$('#bulk_ns_collapse').hide();
$('#button-apply-ns').val(0);
$('[data-toggle="tooltip"]').tooltip();
line_counter();
refresh_mg_container(args['zone']);
}
function resetFilters()
{
$('[id^=span_]').each(function() {
$(this).remove();
});
$('.multiselect-menu input').each(function() {
if ('checkbox' == $(this).attr('type')) {
$(this).prop('checked', false);
}
});
$('#filter_expire').val('');
domains_filter_object.auto_renew = [];
domains_filter_object.extension = [];
domains_filter_object.privacy = [];
domains_filter_object.status = [];
domains_filter_object.status_soon = false;
domains_filter_object.exipire_after = 0;
domains_filter_object.exipire_after_date = '';
domains_filter_object.page = 1;
$('#table_search').val('');
addDomainListingRows();
}
function setDomainsFilterSpan()
{
for (const [key, value] of Object.entries(domains_filter_object.auto_renew)) {
domainsFilterSpanItem('filter_autoRenew', value);
}
for (const [key, value] of Object.entries(domains_filter_object.extension)) {
domainsFilterSpanItem('filter_extension', value);
}
for (const [key, value] of Object.entries(domains_filter_object.privacy)) {
domainsFilterSpanItem('filter_privacyProtection', value);
}
for (const [key, value] of Object.entries(domains_filter_object.status)) {
domainsFilterSpanItem('filter_status', value);
}
if (domains_filter_object.status_soon) {
domainsFilterSpanItem('filter_status', 'Soon');
}
if (domains_filter_object.exipire_after) {
domainsFilterSpanItem('filter_expire', domains_filter_object.exipire_after_date);
}
}
function domainsFilterSpanItem(select_id, val)
{
val = String(val);
let selected_filter = $(`#${select_id}`).data('filter');
let text = '';
let span_id = 'span_' + select_id;
let checkbox_id = (select_id + '_' + val).replaceAll(' ', '_').replaceAll('.', '');
if ('exipire_after' != selected_filter && 'string' == typeof val) {
span_id += '_' + val.replaceAll('.', '');
}
span_id = span_id.replaceAll(' ', '_');
if ($(`#${select_id}`).attr('name')) {
text = $(`#${select_id}`).attr('name') + ': ';
}
if ('filter_expire' == select_id) {
text += val;
}
else {
text += $('#' + select_id + '_' + val.replaceAll(' ', '_').replaceAll('.', '')).siblings('span').text();
}
$('#' + checkbox_id).prop('checked', true);
let span_data = {
span_id: span_id,
selected_filter: selected_filter,
val: val,
span_id: span_id,
text: text
};
$('#active-filters').append(domains_domainFilterSpan(span_data));
}
function clearFilterSpan(filter_id)
{
let selected_filter = $(`#${filter_id}`).data('filter');
let selected_val = $(`#${filter_id}`).data('value');
let checkbox_id = filter_id.replaceAll('span_', '');
$(`#${filter_id}`).remove();
$('#' + checkbox_id).prop('checked', false);
if (['auto_renew', 'privacy'].includes(selected_filter)) {
selected_val = parseInt(selected_val);
}
if ('status' == selected_filter && 'Soon' == selected_val) {
domains_filter_object.status_soon = false;
}
else if ('exipire_after' == selected_filter) {
domains_filter_object.exipire_after = 0;
domains_filter_object.exipire_after_date = '';
$('#filter_expire').val('');
}
else {
let index = domains_filter_object[selected_filter].indexOf(selected_val);
if (index !== -1) {
domains_filter_object[selected_filter].splice(index, 1);
}
}
domains_filter_object.page = 1;
addDomainListingRows();
window.scrollTo({top: 0, behavior: 'smooth'});
}
function addCustomNsRow()
{
let row_number = $('#custom_ns_rows input').length + 1;
$('#custom_ns_rows').append(``);
if (row_number >= 5) {
$('#addExtraNSRow').hide();
}
}
function singleChangeNS(domain, domain_id)
{
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'getNSGroup',
nca_action: 'nca_domains_getns',
token: token,
domain: domain,
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
let response = JSON.parse(res);
$('#hosting-select').val($('#hosting-select option:first').val());
$('#future_ns_rows').html('');
$('#ns_warning_addons').hide();
$('#ns_warning_aliases').hide();
if (!response.err_code && response.data.length && ns_groups.hasOwnProperty(response.data[0].ns_group)) {
let html = '';
ns_groups[response.data[0].ns_group].forEach(item => {
html += ``;
});
$('#future_ns_rows').html(html);
$(`#ns_warning_${response.data[0].extra_domains_group}`).show();
}
$('#bulk_ns_label').html(base_strings.ns_wizard_You_selected + ' ' + domain + '');
$('#bulk_ns_label').show();
$('#bulk_ns_collapse').hide();
$('#button-apply-ns').val(0);
$('#changeNameservers').modal('show');
}
});
}
function bulkChangeNS()
{
$('#hosting-select').val($('#hosting-select option:first').val());
$('#future_ns_rows').html('');
$('#ns_warning_addons').hide();
$('#ns_warning_aliases').hide();
if (hosting_options.length && ns_groups.hasOwnProperty(hosting_options[0].ns_group)) {
let html = '';
ns_groups[hosting_options[0].ns_group].forEach(item => {
html += ``;
});
$('#future_ns_rows').html(html);
$(`#ns_warning_${hosting_options[0].extra_domains_group}`).show();
}
let checked_count = $('.table-row-checkbox:checked').length;
let bulk_domain_data = bulkActionDomainsData();
if (1 == checked_count) {
let html = base_strings.ns_wizard_You_selected + ' ' + $('.table-row-checkbox:checked').attr('data-domainname') + '';
$('#bulk_ns_label').html(html);
$('#bulk_ns_label').show();
$('#bulk_ns_collapse').hide();
}
else {
let html = `
${base_strings.ns_wizard_You_selected} ${checked_count} ${base_strings.ns_wizard_domains}.
`;
$('#bulk_ns_collapse').html(html);
$('#nsBulkList').html(bulk_domain_data['html']);
$('#bulk_ns_collapse').show();
$('#bulk_ns_label').hide();
$('#button-apply-ns').val(bulk_domain_data['id_arr']);
}
$('#changeNameservers').modal('show');
}
function changeNS()
{
let button_apply_html = $('#button-apply-ns').html();
$('#button-apply-ns').html('');
$('#button-apply-ns').prop( "disabled", true );
let url = urls.change_ns;
let ids = [];
let domain = '';
let domain_id = 0;
if (0 != $('#button-apply-ns').val()) {
url = urls.change_bulk_ns;
ids = $('#button-apply-ns').val().split(',');
}
else {
domain = $('#ns_change_modal').text();
domain_id = $('#ns_change_modal').attr('value');
}
let ns_group = '';
let connect_domain = '';
let ns = '';
if ($('#customNameservers').is(':checked')) {
ns_group = 'custom';
ns = [];
$('#custom_ns_rows').children('input').each(function (i) {
if ('' != this.value) {
ns[i] = this.value;
}
});
}
else {
ns_group = $('#hosting-select').val();
connect_domain = $('#hosting-select').find('option:selected').attr('data-domain');
ns = ns_groups[ns_group];
}
$.ajax({
method: 'post',
url: url,
data: {
action: 'set',
domain: domain,
domain_id : domain_id,
ids: ids,
ns_group: ns_group,
connect_domain: connect_domain,
ns: ns
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
$('#button-apply-ns').html(button_apply_html);
$('#button-apply-ns').prop( "disabled", false );
let data = JSON.parse(res);
if( data['err_code'] !== 0 ) {
if (data['forbidden']) {
showErrorAlertMsg(data.err_str, 0, data.err_code > 10 ? data.err_code : 0);
}
else {
let err_str = '';
if (data['err_str']) {
err_str = data['err_str'];
}
else if (data['error']) {
err_str = data['error'];
}
else if (data['errors']) {
err_str = errsuccess_langstrs.nca_domains_failed + '
';
for (const [key, value] of Object.entries(data['errors'])) {
err_str += key + ': ' + value + '
';
}
}
showErrorAlertMsg(err_str, true, data.err_code > 10 ? data.err_code : 0);
}
}
else {
showSuccessAlert('d2_domain_ns_updated');
if ($('#nslist').length) {
let html = '';
ns.forEach(function (item) {
html += `${item}`;
});
$('#nslist').html(html);
getNameserverStatus(current_id, current_domain);
}
}
$('#changeNameservers').modal('toggle');
}
});
}
function updateAutoRenew(domain_id)
{
let autorenew = $('#customSwitch' + domain_id).is(':checked') ? 1 : 0;
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'setAutoRenew',
nca_action: 'nca_domains_autorenew',
autorenew: autorenew,
token: token,
domain_id: domain_id,
},
error: () => {
showErrorAlertMsg('', 0, 10);
resetToggleSwitch('customSwitch' + domain_id, autorenew);
},
success: (res) => {
if ('1' == res) {
showSuccessAlert(1 == autorenew ? 'nca_auto_renew_enabled' : 'nca_auto_renew_disabled');
}
else {
let data = JSON.parse(res);
if(9 == data['err_code']) {
showErrorAlertMsg(data.err_str, 0, data.err_code);
}
else {
showErrorAlertMsg('', 0, data.err_code ?? 0);
}
resetToggleSwitch('customSwitch' + domain_id, autorenew);
}
}
});
}
function resetToggleSwitch(switch_id, new_val)
{
let reset_value = true;
if (1 == new_val) {
reset_value = false;
}
$('#' + switch_id).prop('checked', reset_value);
}
function getDomainLockStatus(domain_id)
{
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'getLockStatus',
nca_action: 'nca_domains_domainlock',
token: token,
domain_id: domain_id,
},
error: () => {
showErrorAlertMsg('', 0, 10);
$('#customSwitch-registrarLock').prop( "disabled", true );
},
success: (res) => {
if ('0' != res) {
let data = JSON.parse(res);
if ('locked' == data['lockstatus']) {
$('#customSwitch-registrarLock').prop( "checked", true );
}
}
else {
$('#customSwitch-registrarLock').prop( "disabled", true );
}
dd_main_loaded = true;
domainDetailsLoaded();
}
});
}
function setBulkAutoRenew()
{
let autorenew = $('#enableBulkAutoRenew').is(':checked') ? 1 : 0;
let bulkDomainData = {};
$('#bulk_auto_renew_btn').hide();
$('#bulk_auto_renew_btn_spinner').show();
$('.table-row-checkbox:checked').each(function(i, obj) {
bulkDomainData[$(obj).attr('data-domainid')] = $(obj).attr('data-domainname');
});
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'bulkSetAutoRenew',
nca_action: 'nca_domains_autorenew',
token: token,
autorenew: autorenew,
domains: bulkDomainData,
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
$('#bulkAutoRenewDomains').modal('hide');
$('.bulk-auto-renew-radio').prop('checked', false);
$('#bulk_auto_renew_btn').attr('disabled', true);
$('#bulk_auto_renew_btn_spinner').hide();
$('#bulk_auto_renew_btn').show();
let response = JSON.parse(res);
let errors = '';
Object.entries(bulkDomainData).forEach(([key, val]) => {
if (Object.hasOwn(response, key)) {
errors += `
${val}`;
}
else {
$('#customSwitch' + key).prop('checked', autorenew);
}
});
if (Object.keys(response).length) {
showErrorAlertMsg(response.err_str + errors, true, response.err_code ?? 0);
}
else {
showSuccessAlertMsg(base_strings.changessavedsuccessfully);
}
}
});
}
function setPrivacyProtectionStatus(domain_data = {}, domain_details = false)
{
let domains = {};
if (!domain_details) {
let lockstatus = $('#enablePrivacyProtection').is(':checked') ? 1 : 0;
let empty_err = $('#bulk_privacy_protection_btn').data('text-invoice-exists');
$('.table-row-checkbox:checked').each(function(i, obj) {
let current_element = domains_object.find(element => element.id == $(obj).attr('data-domainid'));
if (!current_element.unpaid_idprotection_invoice && current_element.idprotection_support) {
empty_err = $('#bulk_privacy_protection_btn').data('text-pp-active');
if (!(lockstatus && current_element.idprotection)) {
domain_data[$(obj).attr('data-domainid')] = lockstatus;
domains[$(obj).attr('data-domainid')] = $(obj).attr('data-domainname');
}
}
});
if ($.isEmptyObject(domain_data)) {
$('#bulkPrivacyProtection').modal('hide');
showErrorAlertMsg(empty_err);
return false;
}
$('#bulk_privacy_protection_btn').hide();
$('#bulk_privacy_protection_btn_spinner').show();
}
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'updateIdProtection',
nca_action: 'nca_domains_idprotection',
token: token,
domain_data: domain_data
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
let output = JSON.parse(res);
output.swal_langstrs = specialCharFix(output.swal_langstrs);
$('#bulkPrivacyProtection').modal('hide');
$('.bulk-privacy-protection-radio').prop('checked', false);
$('#bulk_privacy_protection_btn').attr('disabled', true);
$('#bulk_privacy_protection_btn_spinner').hide();
$('#bulk_privacy_protection_btn').show();
let failed_domains = [];
if (typeof output.data != "undefined") {
for (const [key, value] of Object.entries(output.data)) {
let privacy_toggled_on = value.status_set == 1 ? true : false;
$('#privacySwitch' + key).prop('checked', privacy_toggled_on);
if ('success' != value.result) {
failed_domains.push(domains[key]);
}
}
}
if (typeof output.idprotection_invoice_id != "undefined" && output.idprotection_invoice_id != 0) { // Privacy protection not free
window.location.href = '/nca/account/billing/invoices/' + output.idprotection_invoice_id;
}
if (failed_domains.length > 0) {
showErrorAlert('nca_domains_failed', 'nca_domains_failed: '+ failed_domains.join(', '));
}
else {
showSuccessAlert('nca_idprotection_updated');
}
}
});
}
function setRegistrarLockStatus(domain_data = {}, domain_details = false)
{
let domains = {};
if (!domain_details) {
let lockstatus = $('#enableRegistrarLock').is(':checked') ? 1 : 0;
$('.table-row-checkbox:checked').each(function(i, obj) {
domain_data[$(obj).attr('data-domainid')] = lockstatus;
domains[$(obj).attr('data-domainid')] = $(obj).attr('data-domainname');
});
$('#bulk_reglock_btn').hide();
$('#bulk_reglock_btn_spinner').show();
}
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'setLockStatus',
nca_action: 'nca_domains_domainlock',
token: token,
domain_data: domain_data
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
let data = JSON.parse(res);
if (data.err_code) {
if (9 == data.err_code) {
showErrorAlertMsg(data.err_str, 0, data.err_code);
}
else {
showErrorAlertMsg('', 0, data.err_code);
}
if (domain_details) {
$('#customSwitch-registrarLock').prop('checked', !$('#customSwitch-registrarLock').val());
$('#customSwitch-registrarLock').attr('disabled', false);
}
return false;
}
if (domain_details) {
for (const [key, value] of Object.entries(data)) {
if ('success' != value.result && current_id == key) {
$('#customSwitch-registrarLock').prop('checked', value.status_set == 1 ? false : true);
showErrorAlertMsg(base_strings.dm2_err_msg);
}
else {
showSuccessAlert('nca_domain_lock_updated');
}
$('#customSwitch-registrarLock').attr('disabled', false);
}
}
else {
$('#bulkRegistrarLock').modal('hide');
$('.bulk-reg-lock-radio').prop('checked', false);
$('#bulk_reglock_btn').attr('disabled', true);
$('#bulk_reglock_btn_spinner').hide();
$('#bulk_reglock_btn').show();
let failed_domains = [];
for (const [key, value] of Object.entries(data)) {
if ('success' != value.result) {
failed_domains.push(domains[key]);
}
}
if (failed_domains.length > 0) {
showErrorAlert('nca_domains_failed', 'nca_domains_failed: '+ failed_domains.join(', '));
}
else {
showSuccessAlert('nca_domain_lock_updated');
}
}
}
});
}
function getNameServers(domain_id)
{
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'getNS',
nca_action: 'nca_domains_getns',
token: token,
domain_id: domain_id,
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
if (!$('#changeNameservers_btn').hasClass('status-disabled')) {
$('#changeNameservers_btn').prop('disabled', false);
}
if ('0' != res) {
let data = JSON.parse(res);
setNameservers(data['ns']);
}
dd_ns_loaded = true;
domainDetailsLoaded();
}
});
}
function getDomainContacts(domain_id, list_info)
{
let domain_contacts = '';
if (!list_info) {
$('#editDomainContactTabsSkeleton').show();
$('#editDomainContactTabs').hide();
$('#editDomainContactInfo').modal('show');
}
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'getDomainContacts',
nca_action: 'nca_domains_contacts',
token: token,
domain_id: domain_id,
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
if ('0' != res) {
let data = JSON.parse(res);
domain_contacts = data['contacts'];
if (list_info) {
if(data['api_response']['result'] == 'error' || data['api_response']['na']) {
let err_msg = `${data['api_response']['err_msg']}
`;
$(err_msg).insertBefore('#domain_contact_info');
$('#editContactInfo_btn').addClass('status-disabled');
} else {
$('#domain_contact_info').html(buildDomainContactsHtml(data['contacts']));
}
if (!$('#editContactInfo_btn').hasClass('status-disabled')) {
$('#editContactInfo_btn').prop('disabled', false);
}
dd_contacts_loaded = true;
domainDetailsLoaded();
}
}
buildDomainContactEditModal(domain_id, list_info);
}
});
}
function buildDomainContactEditModal(domain_id, list_info = false) {
let url = '/clientarea.php?action=domaincontacts&systpl=nca&domainid='+domain_id;
$('#domain_contact_error').addClass('hide');
$('#editDomainContactTabsSkeleton').show();
$('#editDomainContactTabs').hide();
$('#allDomainContactType').prop( 'checked', true );
$.ajax({
method: 'get',
url: url,
data: {},
error: () => {
if(!list_info || domain_action == 'contacts') {
showErrorAlertMsg(base_strings.dm2_err_msg);
}
},
success: (data) => {
let response = '';
try {
response = JSON.parse(data);
} catch (e) {
if(!list_info || domain_action == 'contacts') {
$('#editDomainContactInfo').modal('hide');
showErrorAlertMsg(base_strings.dm2_err_msg);
}
return;
}
$('#bulk_edit_contacts').hide();
$('#editDomainContactTabs').html(domains_editContactForm(response));
$('#editDomainContactTabsSkeleton').hide();
$('#editDomainContactTabs').show();
telCountryCodeDropdown('#editDomainContactTabs');
}
});
}
function buildBulkDomainContactEditModal(domain_ids) {
let url = '/clientarea.php?systpl=nca&action=bulkdomain#contactinfo';
$('#domain_contact_error').addClass('hide');
$('#editDomainContactTabsSkeleton').show();
$('#editDomainContactTabs').hide();
$('#allDomainContactType').prop('checked', true);
$('#editDomainContactInfo').modal('show');
$.ajax({
method: 'post',
url: url,
data: {
'update' : 'contactinfo',
'domids' : domain_ids.split(','),
'nca_action' : 'get',
},
error: () => {
showErrorAlertMsg(base_strings.dm2_err_msg);
},
success: (data) => {
let response = '';
try {
response = JSON.parse(data);
} catch (e) {
$('#editDomainContactInfo').modal('hide');
showErrorAlertMsg(base_strings.dm2_err_msg);
return;
}
if(response.changenotpossible) {
$('#editDomainContactInfo').modal('hide');
showErrorAlertMsg(response.changenotpossible);
return;
}
$('#editDomainContactTabs').html(domains_editContactForm(response));
$('#editDomainContactTabsSkeleton').hide();
$('#editDomainContactTabs').show();
telCountryCodeDropdown('#editDomainContactTabs');
}
});
}
function getHideWhoIsInfo(domain) {
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'getHideWhoIsInfo',
nca_action: 'nca_domains_contacts',
token: token,
domain: domain,
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
let response = JSON.parse(res);
if(response.success) {
$('#customSwitch-hideWhois').attr('checked', response.data.hideWhois);
} else {
showErrorAlertMsg('', 0, response.err_code ?? 0);
}
}
});
}
function updateHideWhoIsInfo(domain) {
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'updatetHideWhoIsInfo',
nca_action: 'nca_domains_contacts',
token: token,
domain: domain,
privacy: $('#customSwitch-hideWhois').prop('checked') ? "1" : "0",
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
let response = JSON.parse(res);
if(response.success) {
showSuccessAlertMsg('Whois information updated')
} else {
$('#customSwitch-hideWhois').prop('checked', (!$('#customSwitch-hideWhois').is(':checked')));
showErrorAlertMsg('', 0, response.err_code ?? 0);
}
}
});
}
function getEPPCode(domain_id)
{
$.ajax({
method: 'post',
url: '/nca/nca_api.php',
data: {
whc_action: 'getEPPCode',
nca_action: 'nca_domains_eppcode',
token: token,
domain_id: domain_id,
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
let data = JSON.parse(res);
if ('success' == data['result']) {
$('#eppCode').val(data['eppcode']);
}
else {
$('#eppCode').val('');
$('#transferAway').modal('hide');
showErrorAlertMsg(errsuccess_langstrs.domaingeteppcodefailure, 0, data.err_code ?? 0);
}
dd_epp_loaded = true;
$('#loadEPPCode').hide();
$('#copyEPPCode').show();
}
});
}
function bulkEditDomainContacts()
{
let checked_count = $('.table-row-checkbox:checked').length;
let bulk_domain_data = bulkActionDomainsData();
if (1 == checked_count) {
let html = base_strings.ns_wizard_You_selected + ' ' + $('.table-row-checkbox:checked').attr('data-domainname') + '';
$('#bulk_contacts_label').html(html);
$('#bulk_contacts_label').show();
$('#bulk_contacts_collapse').hide();
}
else {
let html = `
${base_strings.ns_wizard_You_selected} ${checked_count} ${base_strings.ns_wizard_domains}.
`;
$('#bulk_contacts_collapse').html(html);
$('#contactsList').html(bulk_domain_data['html']);
$('#bulk_contacts_collapse').show();
$('#bulk_contacts_label').hide();
}
$('#edit_contact_domain_ids').val(bulk_domain_data['id_str']);
buildBulkDomainContactEditModal(bulk_domain_data['id_str']);
}
function bulkPrivacyProtection()
{
let checked_count = $('.table-row-checkbox:checked').length;
let total_cost = 0;
if (1 == checked_count) {
let current_element = domains_object.find(element => element.id == $('.table-row-checkbox:checked').attr('data-domainid'));
if (current_element.unpaid_idprotection_invoice) {
showErrorAlertMsg($('#bulk_privacy_protection_btn').data('text-invoice-exists') + '. ' + base_strings.nca_invoice + ' #' + current_element.unpaid_idprotection_invoice.invoiceid);
return false;
}
else if (!current_element.idprotection_support) {
showErrorAlertMsg($('#bulk_privacy_protection_btn').data('text-not-supported'));
return false;
}
if (!current_element.idprotection) {
total_cost += parseFloat(current_element.idprotection_cost);
}
let html = base_strings.ns_wizard_You_selected + ' ' + $('.table-row-checkbox:checked').attr('data-domainname') + '';
$('#bulk_privacy_protection_label').html(html);
$('#bulk_privacy_protection_label').show();
$('#bulk_privacy_protection_collapse').hide();
}
else {
let bulk_domain_data = bulkActionDomainsData(true);
if (0 == bulk_domain_data.total_count) {
showErrorAlertMsg($('#bulk_privacy_protection_btn').data('text-exists-not-supported'));
return false;
}
let html = `
${base_strings.ns_wizard_You_selected} ${bulk_domain_data.total_count} ${base_strings.ns_wizard_domains}.
`;
total_cost = bulk_domain_data.total_cost;
$('#bulk_privacy_protection_collapse').html(html);
$('#privacyProtectionList').html(bulk_domain_data['html']);
$('#bulk_privacy_protection_collapse').show();
$('#bulk_privacy_protection_label').hide();
}
$('#bulk_privacy_protection_btn').val(total_cost);
$('#bulk_privacy_protection_btn').text($('#bulk_privacy_protection_btn').data('text-apply'));
$('#enablePrivacyProtection').prop('checked', false);
$('#disablePrivacyProtection').prop('checked', false);
$('#bulk_privacy_protection_btn').attr('disabled', true);
$('#bulkPrivacyProtection').modal('show');
}
function bulkAutoRenew()
{
let checked_count = $('.table-row-checkbox:checked').length;
if (1 == checked_count) {
let html = base_strings.ns_wizard_You_selected + ' ' + $('.table-row-checkbox:checked').attr('data-domainname') + '';
$('#bulk_auto_renew_label').html(html);
$('#bulk_auto_renew_label').show();
$('#bulk_auto_renew_collapse').hide();
}
else {
let bulk_domain_data = bulkActionDomainsData();
let html = `
${base_strings.ns_wizard_You_selected} ${checked_count} ${base_strings.ns_wizard_domains}.
`;
$('#bulk_auto_renew_collapse').html(html);
$('#bulkAutoRenewList').html(bulk_domain_data['html']);
$('#bulk_auto_renew_collapse').show();
$('#bulk_auto_renew_label').hide();
}
$('#bulkAutoRenewDomains').modal('show');
}
function bulkRegLock()
{
let checked_count = $('.table-row-checkbox:checked').length;
if (1 == checked_count) {
let html = base_strings.ns_wizard_You_selected + ' ' + $('.table-row-checkbox:checked').attr('data-domainname') + '';
$('#bulk_reglock_label').html(html);
$('#bulk_reglock_label').show();
$('#bulk_reglock_collapse').hide();
}
else {
let bulk_domain_data = bulkActionDomainsData();
let html = `
${base_strings.ns_wizard_You_selected} ${checked_count} ${base_strings.ns_wizard_domains}.
`;
$('#bulk_reglock_collapse').html(html);
$('#registrarLockList').html(bulk_domain_data['html']);
$('#bulk_reglock_collapse').show();
$('#bulk_reglock_label').hide();
}
$('#bulkRegistrarLock').modal('show');
}
function bulkActionDomainsData(privacy = false)
{
let data = {};
let total_cost = 0;
let total_count = 0;
let id_arr = [];
let id_str = '';
let html = '';
$('.table-row-checkbox:checked').each(function(i, obj) {
if (privacy) {
let current_element = domains_object.find(element => element.id == $(obj).attr('data-domainid'));
if (!current_element.unpaid_idprotection_invoice && current_element.idprotection_support) {
if (!current_element.idprotection) {
total_cost += parseFloat(current_element.idprotection_cost);
}
total_count++;
html += `- ${$(obj).attr('data-domainname')}
`;
id_str += $(obj).attr('data-domainid') + ",";
id_arr.push($(obj).attr('data-domainid'));
}
}
else {
total_count++;
html += `- ${$(obj).attr('data-domainname')}
`;
id_str += $(obj).attr('data-domainid') + ",";
id_arr.push($(obj).attr('data-domainid'));
}
});
id_str = id_str.substring(0, id_str.length - 1);
html += '
';
data['total_cost'] = total_cost;
data['total_count'] = total_count;
data['id_arr'] = id_arr;
data['id_str'] = id_str;
data['html'] = html;
return data;
}
function addModals(data, langstrs)
{
let modals_html = '';
if ($('#changeNameservers').length) {
$('#changeNameservers').remove();
}
$('#main').append(modals_changeNS(data, langstrs));
if (!$('#privateNameservers').length) {
modals_html += modals_privateNS(data, langstrs);
}
if ($('#addDomainForwarding').length) {
$('#addDomainForwarding').remove();
}
modals_html += modals_domainForwarding(data, langstrs);
if ($('#addEmailForwarding').length) {
$('#addEmailForwarding').remove();
}
modals_html += modals_emailForwarding(data, langstrs);
if (!$('#editDomainContactInfo').length) {
modals_html += modals_domainContactsUpdate(data, domain_contacts_langstrs);
modals_html += buildDomainContactEditModal(isDefined(data.domain_data.id));
}
if (!$('#transferAway').length) {
modals_html += modals_EPPCode(data, langstrs);
}
else {
$('#eppCode').val('********');
$('#loadEPPCode').val(data.domain_data.id);
}
if ($('#advancedDnsManager').length) {
$('#advancedDnsManager').remove();
}
modals_html += modals_advancedDNS(data, langstrs);
$('#main').append(modals_html);
switch (data['domain_forwarding'].type) {
case 1:
$('#invisibleDomainForwarder').get(0).click();
break;
case 2:
$('#rewriteDomainForwarder').get(0).click();
break;
case 0:
default:
$('#visibleDomainForwarder').get(0).click();
break;
}
}
function domainDetailsLoaded()
{
if (dd_main_loaded && dd_ns_loaded && dd_contacts_loaded) {
$('.skeleton-loading').each(function(i, obj) {
$(obj).remove();
});
$('.skeleton-loader').hide();
$('.skeleton-loaded').show();
}
}
function getDomainContactTitle(key)
{
if (key.toLowerCase().includes('regist') || key.toLowerCase().includes('owner')) {
return domain_contacts_langstrs.nca_registrant;
}
else if (key.toLowerCase().includes('admin')) {
return domain_contacts_langstrs.nca_admin;
}
else if (key.toLowerCase().includes('tech')) {
return domain_contacts_langstrs.nca_tech;
}
else if (key.toLowerCase().includes('bill')) {
return domain_contacts_langstrs.nca_billing;
}
return '';
}
function buildDomainContactsHtml(data, langs = {})
{
let html = '';
for (const [key, value] of Object.entries(data)) {
let group_title = getDomainContactTitle(key);
html += `
${group_title}
${isDefined(value.name, value.Name)}
${isDefined(value.company, value.Company)}
${isDefined(value.address, value.Address)}
${isDefined(value.city, value.City)}
${isDefined(value.postcode, value.Postcode)} ${isDefined(value.country, value.Country)}
${isDefined(value.phone, value['Phone Number'])}
${isDefined(value.email, value.Email)}
`;
}
return html;
}
function getPrivateNs()
{
$.ajax({
method: 'post',
url: '/domains/api/hosts.php',
data: {
action: 'getHosts',
domain: current_domain,
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
if (res == 'null') {
$('#pns_skel_loader').hide();
return false;
}
let response = JSON.parse(res);
if (response.error) {
$('#privateNameservers').modal('hide');
showErrorAlertMsg(response.error);
return false;
}
$('#pns_skel_loader').hide();
$('#privateNSTableRows').html(modals_privateNSRows(response));
}
});
}
function deletePrivateNS(ele, host, ip)
{
$(ele).attr('disabled', true);
$(ele).prev().attr('disabled', true);
$.ajax({
method: 'post',
url: '/domains/api/hosts.php',
data: {
action: 'delete',
domain: current_domain,
host: host,
ip: ip,
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
let response = JSON.parse(res);
if (response.error) {
$('#privateNameservers').modal('hide');
showErrorAlertMsg(response.error);
return false;
}
$('#privateNameservers').modal('hide');
showSuccessAlertMsg(base_strings.changessavedsuccessfully);
}
});
}
function savePrivateNS()
{
if ('' == $('#privateNameserverHost').val() || !isValidUrl($('#privateNameserverHost').val() + '.' + current_domain)) {
$('#privateNameserverHost').addClass('is-invalid');
$('#privateNameserverHostFeedback').show();
return false;
}
$('#privateNameserverHost').removeClass('is-invalid');
$('#privateNameserverHostFeedback').hide();
if ('' == $('#privateNameserverIP').val() || (!isValidIPaddress($('#privateNameserverIP').val()) && !isValidIPv6address($('#privateNameserverIP').val()))) {
$('#privateNameserverIP').addClass('is-invalid');
$('#privateNameserverIPFeedback').show();
return false;
}
$('#privateNameserverIP').removeClass('is-invalid');
$('#privateNameserverIPFeedback').hide();
$('#privateNameserverSpinner').show();
$('#privateNameserverAdd').hide();
$.ajax({
method: 'post',
url: '/domains/api/hosts.php',
data: {
action: 'create',
domain: current_domain,
host: $('#privateNameserverHost').val(),
ip: $('#privateNameserverIP').val(),
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
let response = JSON.parse(res);
if (response.error) {
$('#privateNameservers').modal('hide');
showErrorAlertMsg(response.error);
return false;
}
$('#privateNameservers').modal('hide');
showSuccessAlertMsg(base_strings.changessavedsuccessfully);
}
});
}
function editPrivateNS(ele, host, ip)
{
$('#private_ns_edit_loader').show();
$('#private_ns_editor').hide();
$(ele).attr('disabled', true);
$(ele).next().attr('disabled', true);
$('#privateNameserverEdit').data('host', host);
$('#privateNameserverEdit').data('ip', ip);
$('#privateNameserverHost').val(host);
$('#privateNameserverIP').val(ip);
$('#privateNameserverEdit').show();
$('#privateNameserverAdd').hide();
setTimeout( function() {
$('#private_ns_editor').show();
$('#private_ns_edit_loader').hide();
}, 500);
}
function savePrivateNSEdit()
{
if ('' == $('#privateNameserverHost').val() || !isValidUrl($('#privateNameserverHost').val() + '.' + current_domain)) {
$('#privateNameserverHost').addClass('is-invalid');
$('#privateNameserverHostFeedback').show();
return false;
}
$('#privateNameserverHost').removeClass('is-invalid');
$('#privateNameserverHostFeedback').hide();
if ('' == $('#privateNameserverIP').val() || !isValidIPaddress($('#privateNameserverIP').val())) {
$('#privateNameserverIP').addClass('is-invalid');
$('#privateNameserverIPFeedback').show();
return false;
}
$('#privateNameserverIP').removeClass('is-invalid');
$('#privateNameserverIPFeedback').hide();
$('#privateNameserverSpinner').show();
$('#privateNameserverEdit').hide();
$.ajax({
method: 'post',
url: '/domains/api/hosts.php',
data: {
action: 'update',
domain: current_domain,
host: $('#privateNameserverHost').val(),
ip: $('#privateNameserverIP').val(),
current_host: $('#privateNameserverEdit').data('host'),
current_ip: $('#privateNameserverEdit').data('ip'),
},
error: () => {
showErrorAlertMsg('', 0, 10);
},
success: (res) => {
let response = JSON.parse(res);
if (response.error) {
$('#privateNameservers').modal('hide');
showErrorAlertMsg(response.error);
return false;
}
$('#privateNameservers').modal('hide');
showSuccessAlertMsg(base_strings.changessavedsuccessfully);
}
});
}
function bulkActionFix()
{
let hasGrace = false;
let hasRedemption = false;
let count = 0;
$('.table-row-checkbox:checked').each(function(i, obj) {
count++;
if ('Redemption' == $(obj).data('domainstatus')) {
hasRedemption = true;
}
else if ('Grace' == $(obj).data('domainstatus')) {
hasGrace = true;
}
});
$('.limitedBulkActionRedemption, .limitedBulkActionGrace').attr('disabled', false);
$('.tool-tip').tooltip('disable');
if (count && (hasRedemption || hasGrace)) {
if (hasRedemption) {
$('.limitedBulkActionRedemption').attr('disabled', true);
}
else if (hasGrace) {
$('.limitedBulkActionGrace').attr('disabled', true);
}
$('.tool-tip').each(function() {
if ($(this).children(':first-child').is(':disabled')) {
$(this).tooltip('enable');
}
});
}
}
function domainListingFilters()
{
let selected_filter = 'exipire_after' == $(this).data('filter') ? $(this).data('filter') : $(this).parent().parent().data('filter');
let select_id = 'filter_expire' == $(this).attr('id') ? $(this).attr('id') : $(this).parent().parent().attr('id');
let val = $(this).val();
let text = '';
let span_id = 'span_' + select_id;
if ('exipire_after' != selected_filter) {
span_id += '_' + val.replaceAll('.', '');
}
span_id = span_id.replaceAll(' ', '_');
if ((!$(this).is(':checked') && 'All' != val && 'span_filter_expire' != span_id) || ('span_filter_expire' == span_id && '' == val)) {
clearFilterSpan(span_id);
return;
}
if ('All' == val) {
domains_filter_object[selected_filter] = [];
$(`[id^=span_${select_id}]`).each(function() {
$(this).remove();
});
$(`[id^=${select_id}_]`).each(function() {
$(this).prop('checked', false);
});
}
else {
if ($(`#${select_id}`).attr('name')) {
text = $(`#${select_id}`).attr('name') + ': ';
}
if ('filter_expire' == select_id) {
text += val;
}
else {
text += $('#' + select_id + '_' + val.replaceAll(' ', '_').replaceAll('.', '')).siblings('span').text();
}
if (['auto_renew', 'privacy'].includes(selected_filter)) {
val = parseInt(val);
}
if ('exipire_after' == selected_filter) {
domains_filter_object.exipire_after_date = val;
domains_filter_object.exipire_after = Date.parse(val);
$('#span_filter_expire').remove();
}
else if ('status' == selected_filter && 'Soon' == val) {
domains_filter_object.status_soon = true;
}
else if (!domains_filter_object[selected_filter].includes(val)) {
domains_filter_object[selected_filter].push(val);
}
if (!$(`#${span_id}`).length) {
let span_data = {
span_id: span_id,
selected_filter: selected_filter,
val: val,
span_id: span_id,
text: text
};
$('#active-filters').append(domains_domainFilterSpan(span_data));
}
}
domains_filter_object.page = 1;
addDomainListingRows();
window.scrollTo({top: 0, behavior: 'smooth'});
}
/**
* Updates the table_data global variable based on the order of UI elements that are drop and draggable.
* Also, the visible is set based on the UI checkbox elements being checked or not.
* Once table_data is set, we call the function saveDomainTableColumnData() to save the data to the users browser.
* If the argument update_table is set, we also set the rows of the table and reset the pagination to the first page.
* @param update_table
*/
function updateDomainTableColumns(update_table = true)
{
table_data = [];
$('#columns li').each((index, obj) => {
table_data.push({column: $(obj).data('table-col'), visible: $(obj).find('input').is(':checked')});
});
saveDomainTableColumnData();
if (update_table) {
domains_filter_object.page = 1;
sortDomainRows();
}
}
/**
* Extracts current table header html for each column that can be edited, and replaces them with the html in the correct order.
* If the argument hide_columns is set to true, it will also hide the header column. The row data is hidden separately else where in the code.
* @param hide_columns
*/
function orderDomainTableColumns(hide_columns = false)
{
let headerHtml = {};
$('.sortable-header').each((index, obj) => {
headerHtml[$(obj).attr('id').replace('domain_listing_', '')] = $(obj)[0].outerHTML;
})
table_data.forEach(function (item, index) {
$('.sortable-header')[index].outerHTML = headerHtml[item.column];
if (hide_columns && !item.visible) {
$('#domain_listing_' + item.column).hide();
}
});
}
/**
* Saves domain listing column data to a cookie in the users browser
*/
function saveDomainTableColumnData()
{
const d = new Date();
d.setTime(d.getTime() + (90 * 24 * 60 * 60 * 1000));
let expires = "expires="+d.toUTCString();
document.cookie = 'nca_domains_table_data=' + JSON.stringify(table_data) + ';' + expires + ';path=/';
}
/**
* Sets default column data or reads data from a cookie if it exists, for domain listing table
* @returns {[{visible: boolean, column: string},{visible: boolean, column: string},{visible: boolean, column: string},{visible: boolean, column: string},{visible: boolean, column: string}]}
*/
function getDomainTableColumnData()
{
let name = 'nca_domains_table_data=';
let ca = document.cookie.split(';');
let data = [
{column: 'status', visible: true},
{column: 'renew', visible: true},
{column: 'privacy', visible: true},
{column: 'expiry', visible: true},
{column: 'ns', visible: false},
];
for(let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
data = JSON.parse(c.substring(name.length, c.length));
}
}
return data;
}
function domainQueryFilters()
{
let page = parseInt(url_filter.get('page'));
if (page <= domains_filter_object.final_page) {
domains_filter_object.page = page;
}
let limit = url_filter.get('limit');
if ('All' == limit) {
domains_filter_object.limit = 'All';
}
else {
limit = parseInt(limit);
if (limit && [10, 25, 50].includes(limit)) {
domains_filter_object.limit = limit;
}
}
let sort = url_filter.get('sort');
if (sort && ['domain', 'status', 'donotrenew', 'idprotection', 'nextduedate_compare', 'nameservers'].includes(sort)) {
domains_filter_object.sort = sort;
}
let order = url_filter.get('order');
if (order && ['asc', 'desc'].includes(order)) {
domains_filter_object.order = order;
}
let status = url_filter.get('status');
if (null != status) {
domains_filter_object.status = [];
status = decodeURIComponent(status).split(',');
status.forEach((item) => {
item = item.replaceAll('_', ' ');
item = upperCaseFirstAll(item);
if (['Active', 'Grace', 'Pending', 'Pending Registration', 'Pending Transfer', 'Redemption'].includes(item)) {
domains_filter_object.status.push(item);
}
});
}
let status_soon = url_filter.get('status_soon');
if (null != status_soon) {
if ('true' == status_soon) {
domains_filter_object.status_soon = true;
}
else {
domains_filter_object.status_soon = false;
}
}
let auto_renew = url_filter.get('auto_renew');
if (null != auto_renew) {
domains_filter_object.auto_renew = [];
if ('true' == auto_renew) {
domains_filter_object.auto_renew.push(0);
}
else {
domains_filter_object.auto_renew.push(1);
}
}
let privacy = url_filter.get('privacy');
if (null != privacy) {
domains_filter_object.privacy = [];
if ('true' == privacy) {
domains_filter_object.privacy.push(1);
}
else {
domains_filter_object.privacy.push(0);
}
}
let extension = url_filter.get('extension');
if (null != extension) {
domains_filter_object.extension = [];
extension = decodeURIComponent(extension).split(',');
extension.forEach((item) => {
if (tld_list.includes(item)) {
domains_filter_object.extension.push('.' + item);
}
});
}
}
function setDomainQueryFilterString()
{
let query_string = '';
if (domains_filter_object.page > 1) {
query_string += 'page=' + domains_filter_object.page + '&';
}
if (domains_filter_object.limit != default_domain_filters.limit) {
query_string += 'limit=' + domains_filter_object.limit + '&';
}
if (domains_filter_object.sort != default_domain_filters.sort) {
query_string += 'sort=' + domains_filter_object.sort + '&';
}
if (domains_filter_object.order != default_domain_filters.order) {
query_string += 'order=' + domains_filter_object.order + '&';
}
if (domains_filter_object.status.length) {
query_string += 'status=';
domains_filter_object.status.forEach((item) => {
query_string += item.toLowerCase().replaceAll(' ', '_') + ',';
});
query_string = query_string.replace(/,\s*$/, '&');
}
if (domains_filter_object.status_soon) {
query_string += 'status_soon=true&';
}
if (1 == domains_filter_object.auto_renew.length) {
if (0 == domains_filter_object.auto_renew[0]) {
query_string += 'auto_renew=true&';
}
else {
query_string += 'auto_renew=false&';
}
}
if (1 == domains_filter_object.auto_renew.length) {
if (1 == domains_filter_object.auto_renew[0]) {
query_string += 'privacy=true&';
}
else {
query_string += 'privacy=false&';
}
}
if (domains_filter_object.extension.length) {
query_string += 'extension=';
domains_filter_object.extension.forEach((item) => {
query_string += item.replaceAll('.', '') + ',';
});
query_string = query_string.replace(/,\s*$/, '&');
}
if ($('#table_search').val()) {
query_string += 'search=' + $('#table_search').val() + '&';
}
query_string = query_string.replace(/&\s*$/, '');
if (query_string) {
query_string = '?' + query_string;
}
window.history.replaceState('', '', window.location.pathname + query_string);
}
function updateContactStateValue(from_id, to_id) {
$(to_id).val($(from_id).val());
}
function setDomainListingNS(data)
{
if (!data.hasOwnProperty('nameservers')) {
return false;
}
if (!$('#domains_listing_container').length) {
setTimeout(() => {
setDomainListingNS(data);
}, 1000);
return false;
}
domains_object.forEach((domain) => {
if (data.nameservers.hasOwnProperty(domain.domain)) {
domain.nameservers = data.nameservers[domain.domain][0].ns;
domain.nameservers.sort(function(a,b) {
return a.localeCompare(b);
})
domain.nameservers.sort(function(a,b) {
return a.length -b.length;
})
domain.nameservers_lastchecked = base_strings.nca_last_checked + ': ' + data.nameservers[domain.domain][0].last_check;
}
else {
domain.nameservers = [];
domain.nameservers_lastchecked;
}
});
addDomainListingRows(false);
}