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 = '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + html_content + '' + '
{{langmod.SSUBDOMAIN}}{{langmod.SDDOMAIN}}{{langmod.SDUSER}}{{langmod.SDPATH}}{{langmod.SUBDOMLABEL11}}{{langmod.SUBDOMLABEL9}}{{langmod.SDACTION}}
'; $('#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 = ''; $('#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=''; var bodyvar='
{{ langmod.SDDOMAIN }}:
{{ langmod.SDPATH }}: /home/{{ users }}
{{ langmod.SUBDOMLABEL8 }}:

{{ 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 = ''; $('#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; } }); }