console.log();
let uchip = null;
let subdomain_list = JSON.parse('{{mod.subdomains|json_encode|raw}}');
let subdomain_table = null;
String.prototype.isEmpty = function() {
return (this.length === 0 || !this.trim());
};
function useAutoSSL(type){
if(type == 1){
$('#autossl_checkbox').slideUp('fast', function(){
$('#wildcard_checkbox').slideDown('fast');
$('#ssl_checkbox').prop('checked', false);
});
$('#alert_info').fadeOut('fast');
}else{
$('#wildcard_checkbox').slideUp('fast', function(){
$('#autossl_checkbox').slideDown('fast');
$('#ssl_checkbox2').prop('checked', false);
});
}
}
$(document).ready(function() {
{% if mod.isie == 1 %}
uchip = new $.Uchip();
{% else %}
uchip = new Uchip();
{% endif %}
subDomainsTable(subdomain_list);
$('[data-toggle="tooltip"]').tooltip();
$('#subdomprefix').keyup(function(ev) {
let newpath = '';
let subprefix = $(this).val();
if(!subprefix.isEmpty()){
subprefix = subprefix.charAt(subprefix.length - 1) == '.' ? subprefix.slice(0, -1) : subprefix;
newpath = subprefix + $('#domain_toadd').val();
$('#pathdomain').val(newpath);
}
$('#pathdomain').val(newpath);
});
$('#domain_toadd').change(function(){
let iswild = $(this).children('option:selected').data('wild');
if(iswild == '1'){
$('#autossl_checkbox').slideUp('fast', function(){
$('#wildcard_checkbox').slideDown('fast');
$('#ssl_checkbox').prop('checked', false);
});
$('#alert_info').fadeOut('fast');
}else{
$('#wildcard_checkbox').slideUp('fast', function(){
$('#autossl_checkbox').slideDown('fast');
$('#ssl_checkbox2').prop('checked', false);
});
}
let newpath = '';
let subprefix = $('#subdomprefix').val()
if(!subprefix.isEmpty()){
subprefix = subprefix.charAt(subprefix.length - 1) == '.' ? subprefix.slice(0, -1) : subprefix;
newpath = subprefix + $(this).val();
}
$('#pathdomain').val(newpath);
});
$('#ssl_checkbox').change(function(){
if($(this).is(':checked')){
$('#alert_info').fadeIn();
}else{
$('#alert_info').fadeOut();
}
});
});
function subDomainsTable(list){
subdomain_list = list;
if(subdomain_list.length > 0){
let html_content = '';
let index = 0;
subdomain_list.forEach(function(subdom){
let totalbanw = subdom.banwtotalbanw;
let ssl_stat = '';
if(subdom.ssl != 0){
ssl_stat = '';
}
if({{mod.pack_bandwidth}} > -1){
let barwi = 0;
let barcolor = uchip.getBarColor(subdom.porbanw);
bandwidth_container = '
' + uchip.humanFileSize(subdom.banw * 1024 * 2014) + ' / ' + uchip.humanFileSize({{mod.pack_bandwidth}} * 1024 * 1024);
}else{
let barwi = (({{mod.pack_bandwidth}} / 100) * subdom.banw);
bandwidth_container = '' + uchip.humanFileSize(subdom.banw * 1024 * 2014) + ' / ∞ MB';
}
html_content += '' +
'' + subdom.subdomain + ' | ' +
'' + subdom.domain + ' | ' +
'{{users}} | ' +
'' + subdom.path + ' | ' +
'' +
bandwidth_container +
' | ' +
'' + ssl_stat + ' | ' +
'' +
'' +
' | ' +
'
';
index++;
});
let table_html = '' +
'' +
'' +
'{{langmod.SSUBDOMAIN}} | ' +
'{{langmod.SDDOMAIN}} | ' +
'{{langmod.SDUSER}} | ' +
'{{langmod.SDPATH}} | ' +
'{{langmod.SUBDOMLABEL11}} | ' +
'{{langmod.SUBDOMLABEL9}} | ' +
'{{langmod.SDACTION}} | ' +
'
' +
'' +
'' +
html_content +
'' +
'
';
$('#table_subdomains_wrapper').html(table_html);
$('#table_subdomains').DataTable().destroy();
subdomain_table = $('#table_subdomains').DataTable({
'columnDefs': [
{ 'width': '100px', 'targets': 4 }
]
});
}else{
$('#table_subdomains_wrapper').html('{{langmod.SDOMNOSUBS}}
');
}
}
function showNewForm(){
uchip.slideToggle('#new_form_wrapper','#subdomains_list_wrapper');
}
function cancelNewForm(){
uchip.slideToggle('#subdomains_list_wrapper','#new_form_wrapper', function(){
$('#pathdomain').val('');
$('#subdomprefix').val('');
$('#domain_toadd').val($('#domain_toadd option:first').val());
$('.dir-sel-btn').attr('data-original-title','{{langmod.SDOMCHOOBPAT}}');
$('#dirsel').text('/');
$('#ssl_checkbox').prop('checked', false);
$('#subdomprefix').removeClass('error');
$('.error-field').remove();
});
}
function showExplorer(){
$('#dir_explorer_domain .modal-body').html('
');
$('#dir_explorer_domain').modal('show');
callDirList($('#dirsel').text());
}
function selCurrentPath(){
let curpath = $('#current_path_dirsel').val();
$('.dir-sel-btn').attr('data-original-title',curpath);
$('#dirsel').text(curpath);
$('#dir_explorer_domain').modal('hide');
}
function callDirList(directory){
uchip.handleButton('#sel_path_btn', 'fa-thumb-tack');
$('#dir_explorer_domain .modal-body').html('
');
uchip.call('module=domains&acc=dirlist', {
data: 'basedir=' + directory,
callback: function(response){
directory = directory.charAt(directory.length-1) == '/' ? directory : directory + '/';
renderDirSelector(directory, response);
uchip.handleButton('#sel_path_btn', 'fa-thumb-tack', true);
}
});
}
function renderDirSelector(base, dirs){
let dirs_html = '';
dirs.forEach((dir) => {
dirs_html += '' +
'
' +
'' +
dir +
'
' +
'
';
});
let html = '' +
'
' +
'
' +
'' +
'' +
'
' +
'
' +
dirs_html +
'
';
$('#dir_explorer_domain .modal-body').html(html);
$('.dir-item').mouseover(function() {
$(this).find('.fa').removeClass('fa-folder-o').addClass('fa-folder-open-o');
})
.mouseout(function() {
$(this).find('.fa').removeClass('fa-folder-open-o').addClass('fa-folder-o');
}).click(function(){
let curpath = $('#current_path_dirsel').val();
let dir = $(this).data('dir');
if(dir == '..'){
let pieces = curpath.split('/');
pieces.pop();
pieces.pop();
dir = pieces.join('/')
}else{
dir = curpath + dir;
}
callDirList(dir);
});
$('#dir_list').slideDown('fast');
}
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle) return true;
}
return false;
}
function sendNewSub(){
let notallowed = 'mail, ftp, webmail, cpanel';
let excludearry = ['mail', 'ftp', 'webmail', 'cpanel'];
let subprefix = $('#subdomprefix').val();
subprefix = subprefix.charAt(subprefix.length - 1) == '.' ? subprefix.slice(0, -1) : subprefix;
let whole_sub = subprefix + $('#domain_toadd').val();
let path = $('#dirsel').text() + $('#pathdomain').val();
if(!inArray(subprefix,excludearry)){
/*if(notallowed.indexOf(subprefix) > -1){
if(!$('#subdomprefix').hasClass('error')){
$('#subdomprefix').addClass('error');
$('#subdomprefix').parent().append('' + notallowed + ' Are not allowed as subdomain');
}
}else*/ if(!(/^([a-zA-Z0-9][a-zA-Z0-9-_]*\.)*[a-zA-Z0-9]*[a-zA-Z0-9-_]*[[a-zA-Z0-9]+$/igm.test(whole_sub))){
if(!$('#subdomprefix').hasClass('error')){
$('#subdomprefix').addClass('error');
$('#subdomprefix').parent().append('Invalid subdomain');
}
}else if(path == '/'){
$('#pathdomain').addClass('error');
noti_bubble('Invalid path','{{langmod.DERROR}}','error',false,false,'3000',true);
return false;
}else{
$('#subdomprefix').removeClass('error');
$('#subdomprefix').parent().find('.error-field').remove();
uchip.handleButton('.btn-save-domain','fa-floppy-o');
uchip.handleButton('.btn-cancel-domain','fa-ban');
let autossl = 0;
if($('#ssl_checkbox').is(':checked')){
autossl = 1;
}
let use_wild = 0;
if($('#domain_toadd').children('option:selected').data('wild') == '1' && $('#ssl_checkbox2').is(':checked')){
use_wild = 1;
}
uchip.call('module=subdomains&acc=addsubdomain', {
data: 'domain=' + $('#domain_toadd').val() + '&path=' + path + '&subdomain=' + subprefix + '&autossl=' + autossl + '&use_wild=' + use_wild,
callback: function(response){
if(response.result == 'success'){
if(autossl == 1){
if(response.ssl_status.type == 'created'){
noti_bubble('{{langmod.SDOMANDSSLCR}}','{{langmod.SDSUCCT}}','success',false,false,'6500',true);
}else{
noti_bubble("{{langmod.SDOMCRENOSSL}}",'{{langmod.SDSUCCT}}','warning',false,false,'6500',true);
}
}else{
noti_bubble('{{langmod.SDDOMAINEXIT}}','{{langmod.SDSUCCT}}','success',false,false,'3000',true);
}
subDomainsTable(response.list);
calculateQuota();
cancelNewForm();
}else{
let error_message = '{{langmod.SDOMCRELAB1}}';
if(response.code == 1){
error_message = '{{langmod.SDOMCRELAB2}}';
}else if(response.code == 2){
error_message = 'Invalid path.';
}else if(response.code == 100){
error_message = '{{langmod.SDOMCRELAB3}}';
}else if(response.code == 409){
error_message = '{{langmod.SDOMCRELAB4}}';
}
noti_bubble(error_message,'{{langmod.SDERROR}}','error',false,false,'3000',true);
}
uchip.handleButton('.btn-save-domain','fa-floppy-o', true);
uchip.handleButton('.btn-cancel-domain','fa-ban', true);
}
});
}
}else{
$('#subdomprefix').addClass('error');
$('#subdomprefix').parent().append('' + notallowed + ' Are not allowed as subdomain');
}
}
function calculateQuota(){
let plan = {{mod.subdomain_pack}};
$('#subdomains_used').text(subdomain_list.length);
if(plan >= 0){
if(subdomain_list.length == plan){
$('#btn_add_subdomain').addClass('disabled');
$('#btn_add_subdomain').prop('disabled', true)
}else{
$('#btn_add_subdomain').removeClass('disabled');
$('#btn_add_subdomain').prop('disabled', false)
}
let percent = ((subdomain_list.length * 100) / plan).toFixed(0);
$('#stat_percent_domain').text(percent + '%');
let barcolor = uchip.getBarColor(percent);
$('#bardomindpor').removeClass();
$('#bardomindpor').addClass(barcolor);
$('#bardomindpor').width(percent + '%');
}
}
function subdomaindelete(st,domain,subdomin, index){
if(st==0){
var strbody = '{{langmod.SDOMDELTIT1}}
' + subdomin + '.' + domain + '
{{langmod.SDOMDELTIT2}}
';
var strfooter = '';
$("#deletemodaldomain .modal-footer").html(strfooter);
$("#deletemodaldomain .modal-body").html(strbody);
// $("#deletemodal .modal-header").html(strheader);
$("#deletemodaldomain").modal('toggle');
return false;
}else if(st==1){
$("#deletemodaldomain").modal('hide');
uchip.handleButton('#btn_del_' + index,'fa-trash');
let tr = $('#trdomain_' + index);
tr.addClass('deleting_tr');
uchip.call('module=subdomains&acc=subdomaindelete', {
data: 'domain=' + domain + '&subdomain=' + subdomin,
callback: function(response){
if(response.result == 'success'){
tr.slideUp('fast', function(){
subdomain_table.row(this).remove().draw();
});
subdomain_list.splice(index, 1);
calculateQuota();
noti_bubble('{{langmod.SDDELDOMAINALERT}}','{{langmod.SDSUCCT}}','success',false,false,'3000',true);
}else{
tr.removeClass('deleting_tr');
uchip.handleButton('#btn_del_' + index,'fa-trash', true);
noti_bubble('{{langmod.SDOMERRORUN}}','Error','error',false,false,'3000',true);
}
}
});
// btnporcess('off','btnyesdel','{{ langmod.SUBDOMLABEL10 }}');
// $.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } });
// $.ajax({
// type: "POST",
// url: "./{{users}}/index.php?module=subdomains&acc=subdomaindelete",
// data:"domain="+domain+"&subdomain="+subdomin,
// complete: function(datos){
// $("#trdomain"+datos.responseText).hide();
// //uploadpackage('subdomains');
// subdomainrefres();
// refrespanelnew('subdomains');
// noti_bubble('{{langmod.SDDELDOMAINALERT}}','{{langmod.SDSUCCT}}','success',false,false,'3000',true);
// btnporcess('on','btnyesdel','{{ langmod.SDYES }}');
// $("#deletemodal").modal('hide');
// return false;
// }
// });
}
return false;
}
function subdomainrefres(){
$.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } });
$.ajax({
type: "POST",
url: "./{{users}}/index.php?module=subdomains&acc=subdomainrefres",
complete: function(datos){
$('.dataTables-example').DataTable().destroy();
$("#contenttr").html(datos.responseText);
$('.dataTables-example').DataTable();
return false;
}
});
}
function subdomainkeyup(){
var domain=$("#domains").val();
domain=domain.substr(1);
if($("#subdomain").val()=='mail'){
$("#btn_save_subdomain").hide('blind');
}else{
var expreg = /^[a-zA-Z0-9]+([(\.|\/|\-)]?[a-zA-Z0-9_]+)*$/i;
var resp=expreg.test($("#subdomain").val());
if(resp==false){
noti_bubble('{{langmod.ERRORFORM}}','{{langmod.DERROR}}','error',false,false,'3000',true);
$("#btnsavesubdomain").addClass('disabled');
$("#btnsavesubdomain").attr('disabled',true);
}else{
$("#btnsavesubdomain").removeClass('disabled');
$("#btnsavesubdomain").attr('disabled',false);
$("#alertftp").hide('blind');
$("#alertftp").html('');
var path='/public_html/';
var newpath=$("#subdomain").val();
$("#pathdomain").val(path+newpath+'.'+domain);
}
}
}
function btn_save_subdomain(){
btnporcess('off','btnsavesubdomain','{{ langmod.SUBDOMLABEL10 }}');
if($("#subdomain").val()=='' || $("#pathdomain").val()==''){
noti_bubble('{{langmod.SDDATEALL}}','{{langmod.SDERROR}}','error',false,false,'3000',true);
btnporcess('on','btnsavesubdomain','{{ langmod.SDBNTADD }}');
return false;
}else{
if ($('#autossl').prop('checked')){ var autossl=1; } else{ var autossl=0; }
$.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } });
$.ajax({
type: "POST",
url: "./{{users}}/index.php?module=subdomains&acc=btn_save_subdomain",
data: "domain="+$("#domains").val()+"&subdomain="+$("#subdomain").val()+"&path="+$("#pathdomain").val()+"&autossl="+autossl,
complete: function(datos){
//alert(datos.responseText);
if(datos.responseText=='OK'){
$("#suddomain").val('');
$("#pathdomain").val('/public_html/');
subdomainrefres();
refrespanelnew('subdomains');
noti_bubble('{{langmod.SDDOMAINEXIT}}','{{langmod.SDSUCCT}}','success',false,false,'3000',true);
btnporcess('on','btnsavesubdomain','{{ langmod.SDBNTADD }}');
$("#addmodal").modal('hide');
}else{
//refrespanelnew('subdomains');
//subdomainrefres();
//subdomainrefres();
noti_bubble(datos.responseText,'{{langmod.SDERROR}}','error',false,false,'3000',true);
btnporcess('on','btnsavesubdomain','{{ langmod.SDBNTADD }}');
}
return false;
}
});
}
}
function btnaddsubdomain(){
var headervar='{{ langmod.SDBNTADD }}
';
var bodyvar='{{ langmod.SDDOMAIN }}:
{{ langmod.SUBDOMLABEL7 }}
';
var btnvar=' ';
$("#addmodal .modal-header").html(headervar);
$("#addmodal .modal-body").html(bodyvar);
$("#addmodal .modal-footer").html(btnvar);
$("#addmodal").modal('toggle');
}
function changepath(subdomain,domain,path){
showExplorerEdit(path.replace('/home/{{users}}',''),domain,subdomain);
return false;
}
function showExplorerEdit(path,domain,sub){
$('#dir_explorer_domainEdit .modal-body').html('
');
$('#dir_explorer_domainEdit').modal('show');
callDirListEdit(path,domain,sub);
}
function callDirListEdit(directory,domain,sub){
uchip.handleButton('#sel_path_btnEdit', 'fa-thumb-tack');
$('#dir_explorer_domainEdit .modal-body').html('
');
uchip.call('module=domains&acc=dirlist', {
data: 'basedir=' + directory,
callback: function(response){
directory = directory.charAt(directory.length-1) == '/' ? directory : directory + '/';
renderDirSelectorEdit(directory, response,domain,sub);
uchip.handleButton('#sel_path_btnEdit', 'fa-thumb-tack', true);
}
});
}
function renderDirSelectorEdit(base, dirs,domain,sub){
$("#dir_explorer_domainEdit #domain").val(domain);
$("#dir_explorer_domainEdit #sub").val(sub);
let dirs_html = '';
dirs.forEach((dir) => {
dirs_html += '' +
'
' +
'' +
dir +
'
' +
'
';
});
let html = '' +
'
' +
'
' +
'' +
'' +
'
' +
'
' +
dirs_html +
'
';
$('#dir_explorer_domainEdit .modal-body').html(html);
$('.dir-item').mouseover(function() {
$(this).find('.fa').removeClass('fa-folder-o').addClass('fa-folder-open-o');
})
.mouseout(function() {
$(this).find('.fa').removeClass('fa-folder-open-o').addClass('fa-folder-o');
}).click(function(){
let curpath = $('#current_path_dirselEdit').val();
let dir = $(this).data('dir');
if(dir == '..'){
let pieces = curpath.split('/');
pieces.pop();
pieces.pop();
dir = pieces.join('/')
}else{
dir = curpath + dir;
}
callDirListEdit(dir,domain,sub);
});
$('#dir_listEdit').slideDown('fast');
}
function selCurrentPathEdit(){
let curpath = $('#current_path_dirselEdit').val();
$('.dir-sel-btn').attr('data-original-title',curpath);
uchip.call('module=domains&acc=changepath', {
data: 'path=' + curpath+'&domain='+$('#dir_explorer_domainEdit #domain').val()+'&sub='+$('#dir_explorer_domainEdit #sub').val()+'&type=subdomain',
callback: function(response){
noti_bubble('{{langmod.DDOMAINEXIT}}','{{langmod.SDSUCCT}}','success',false,false,'3000',true);
subDomainsTable(response.list);
$('#dir_explorer_domainEdit').modal('hide');
}
});
uchip.call('module=fix_acc_perm&acc=accFixIssues', {
data: 'fix_permissions=1&internalError=0&removeHandler=0',
callback: function(response){
return false;
}
});
}