console.log(); let ftp_list = JSON.parse('{{mod.ftp_account_list|json_encode|raw}}'); let uchip = null; let ftp_table = null; $(document).ready(function() { {% if mod.isie == 1 %} uchip = new $.Uchip(); {% else %} uchip = new Uchip(); {% endif %} let optpass1 = {}; uchip.getBarColor(23); optpass1.ui = { container: "", showVerdictsInsideProgressBar: true, viewports: { progress: "" } }; optpass1.common = { debug: false, }; $('#ftppass1').pwstrength(optpass1); let optpass2 = {}; optpass2.ui = { container: "", showVerdictsInsideProgressBar: true, viewports: { progress: "" } }; optpass2.common = { debug: false, }; $('#ftppass1_ch').pwstrength(optpass2); listFTP(ftp_list); }); function listFTP(list){ ftp_list = list; let table_content = ''; let index = 0; ftp_list.forEach(function(account){ table_content += '' + ' ' + '' + account.domain + '' + '' + account.username + '@' + account.domain + '' + '' + account.path + '' + '' + '' + '' + '' + ''; index++; }); let html_table = '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + table_content + '' + '
#{{langmod.FTPDOMAINS}}{{langmod.FTPUSER}}{{langmod.PATH}}{{langmod.ACTION}}
' + ' ' + '{{mod.ftp_domain}}{{users}}/home/{{users}}/default
'; $('#table_ftp_container').html(html_table); $('.ftp_table').DataTable().destroy(); ftp_table = $('.ftp_table').dataTable({ "columnDefs": [ { "orderable": false, "targets": 0 } ] }); } function displaynewForm(){ $('#ftp_list_wrapper').slideUp('fast', function(){ $('#ftp_form').slideDown('fast'); }); } function displayChPass(uname, domain){ $('#ftp_list_wrapper').slideUp('fast', function(){ $('#user_chpass').text(uname); $('#domain_chpass').text(domain); $('#ch_title').text('Change password for: ' + uname + '@' + domain); $('#ftp_form_pass').slideDown('fast'); }); } function cancelChPass(){ $('#ftp_form_pass').slideUp('fast', function(){ $('#ftppass1_ch').val(''); $('#ftppass2_ch').val(''); $('#ftp_list_wrapper').slideDown('fast'); $('#ftppass1_ch').pwstrength("forceUpdate"); $('.password-generator-copied').hide(); }); } function cancelForm(){ $('#ftp_form').slideUp('fast', function(){ $('#loginftp').val(''); $('#ftppass1').val(''); $('#ftppass2').val(''); $('#dirsel').text('/public_html/'); $('#directoryftp').val(''); $('#ftp_list_wrapper').slideDown('fast'); $('#ftppass1').pwstrength("forceUpdate"); $('.password-generator-copied').hide(); }); } function copyPass(elem){ let field = document.getElementById(elem); field.select(); document.execCommand('copy'); $('.password-generator-copied').slideDown(); setTimeout(function(){ $('.password-generator-copied').slideUp(); }, 4500); } function openPGOPT(type){ let divelem = type == null ? '#pgopt_container' : type; if($(divelem).is(':visible')){ $(divelem).slideUp('fast'); }else{ $(divelem).slideDown('fast'); hideOnClickOutside(divelem); } } function hideOnClickOutside(selector, second){ let forhide = false; if(second === undefined){ second = '#show_options_button'; forhide = true; } function outsideClickListener(event){ $target = $(event.target); if (!$target.closest(selector).length && !$target.closest(second).length && $(selector).is(':visible')) { if(forhide){ $(selector).slideUp('fast'); }else{ $(selector).remove(); } removeClickListener(); } } function removeClickListener(){ document.removeEventListener('click', outsideClickListener) } document.addEventListener('click', outsideClickListener) } function generateNewPass(type, element){ let passmeter = 'ftppass1_ch'; let lengthpass = 'lengthpass2'; let typepass = 'typepass2'; let confpass = 'ftppass2_ch'; if(type == 'userp'){ passmeter = 'ftppass1'; lengthpass = 'lengthpass'; typepass = 'typepass'; confpass = 'ftppass2'; } let lpass = $('#' + lengthpass).val(); let tpass = $('#' + typepass).val(); let new_pass = generatePasswordRand(lpass, tpass); $('#' + passmeter).val(new_pass); $('#' + confpass).val(new_pass); $('#' + passmeter).pwstrength("forceUpdate"); // if(type == undefined || type == 'userp'){ // copyPass(passmeter); // } copyPass(passmeter); } function sendFTPPass(elem){ if(uchip.validator('#ftp_form_pass .reqfield')){ uchip.handleButton(elem, 'fa-floppy-o'); uchip.call('module=ftp_accounts&acc=chpass', { data: '&hidenuserftp=' + $('#user_chpass').text() + '@' + $('#domain_chpass').text() + '&pass=' + Base64.encode($('#ftppass1_ch').val()), callback: function(response){ if(response.result == 'success'){ noti_bubble('{{langmod.SUCCESSFUL}}','{{langmod.FTPEXITPASS}}','success',false,false,'3000',true); cancelChPass(); }else{ noti_bubble('{{langmod.ERROROCURRED}}','{{langmod.ERROR1}}','error',true,false,'3000',true); } uchip.handleButton('.btn-save-ftp','fa-floppy-o', true); uchip.handleButton('.btn-cancel-ftp','fa-ban', true); } }); } } function calculateQuota(){ let plan = {{mod.ftp_pack}}; $('#ftpused').text(ftp_list.length); if(plan >= 0){ if(ftp_list.length == plan){ $('#add_new_ftpbtn').addClass('disabled'); $('#add_new_ftpbtn').prop('disabled', true) }else{ $('#add_new_ftpbtn').removeClass('disabled'); $('#add_new_ftpbtn').prop('disabled', false) } let percent = ((ftp_list.length * 100) / plan).toFixed(0); $('#ftp_percent').text(percent + '%'); let barcolor = uchip.getBarColor(percent); $('#barftpind').removeClass(); $('#barftpind').addClass(barcolor); $('#barftpind').width(percent + '%'); } } function sendFTPForm(elem){ if(uchip.validator('#new_ftp_form .reqfield')){ uchip.handleButton(elem, 'fa-floppy-o'); let directory = $('#dirsel').text() + $('#directoryftp').val(); uchip.call('module=ftp_accounts&acc=addnew', { data: 'login=' + $('#loginftp').val() + '&dir=' + directory + '&pass=' + Base64.encode($('#ftppass1').val()) + '&domain=' + $('#domain').val(), callback: function(response){ if(response.result == 'success'){ noti_bubble('{{langmod.FTPCREATE}}','{{langmod.SUCCESSFUL}}','success',true,false,'3000',true); listFTP(response.list); calculateQuota(); cancelForm(); }else{ let message_error = '{{langmod.ERROROCURRED}}'; if(response.hasOwnProperty('code')){ if(response.code == '500'){ message_error = '{{langmod.FTPERRORADD}}'; } } noti_bubble(message_error,'{{langmod.ERROR1}}','error',true,false,'3000',true); } uchip.handleButton('.btn-save-ftp','fa-floppy-o', true); uchip.handleButton('.btn-cancel-ftp','fa-ban', true); } }); } } function changepassftp(user){ $("#pass1ftp").val(''); $("#pass2ftp").val(''); $("#changepassftptitle").html('{{langene.MDCHANPASS}} '+user); $("#modal-changepassftp").modal('toggle'); $("#hidenuserftp").val(user); return false; } function ftpdelete(st,user,domain, index){ if(st==0){ let btsfooter = '\n' +''; let btsheader = ''; $("#deletemodaluserftp .modal-footer").html(btsfooter); $("#deletemodaluserftp .modal-header").html(btsheader); $("#deletemodaluserftp .modal-body").html('

{{langmod.FTPCONFDEL1}}:
' + user + '@' + domain + '
{{langmod.FTPCONFDEL2}}

'); $("#deletemodaluserftp").modal('toggle'); return false } if(st==1){ $("#deletemodaluserftp").modal('toggle'); uchip.handleButton('#btn_del_' + index,'fa-trash'); let tr = $('#tr_ftp_' + index); tr.addClass('deleting_tr'); let deluser = user + '@' + domain; uchip.call('module=ftp_accounts&acc=ftpdelete', { data: 'user=' + user + '&domain=' + domain + '&deluser=' + deluser, callback: function(response){ if(response.result == 'success'){ noti_bubble('{{langmod.FTPDELETEUSER}}','{{langmod.FTPDELETE}}','success',true,false,'3000',true); tr.slideUp('fast', function(){ ftp_table.row(this).remove().draw(); }); ftp_list.splice(index, 1); calculateQuota(); }else{ tr.removeClass('deleting_tr'); noti_bubble('{{langmod.ERROROCURRED}}','{{langmod.ERROR1}}','error',true,false,'3000',true); uchip.handleButton('#btn_del_' + index,'fa-trash', true); } } }); // btnporcess('off','btnyesdel','{{ langmod.FTPLABEL6 }}'); // $("#btnyesdel").attr('disabled',true); // $("#btnyesdel").addClass('disabled'); // $.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } }); // $.ajax({ // type: "POST", // url: "./{{users}}/index.php?module=ftp_accounts&acc=ftpdelete", // data:"user="+user+"&domain="+domain+"&deluser"+deluser, // complete: function(datos){ // ftprefres(user,domain); // refrespanelnew('ftp_accounts'); // noti_bubble('{{langmod.FTPDELETEUSER}}','{{langmod.FTPDELETE}}','success',true,false,'3000',true); // btnporcess('on','btnyesdel','{{ langmod.FTPYES }}'); // $("#deletemodaluserftp").modal('hide'); // return false; // } // }); } return false; } function settingmanual(user,domain){ //alert(user); $('#userftp').html(user); $('#serverftp').html(domain); $('#config_file_account').text(user); // $('#aftpfilezilla').prop('href', '?module=ftp_accounts&acc=xmlfilezilla&client=filezilla&userftp='+user+'&domain='+domain); // $('#aftptransmit').prop('href', '?module=ftp_accounts&acc=xmlfilezilla&client=transmit&userftp='+user+'&domain='+domain); // $('#aftpcyberduck').prop('href', '?module=ftp_accounts&acc=xmlfilezilla&client=cyberduck&userftp='+user+'&domain='+domain); if(!$('#ftp_details').is(':visible')){ uchip.slideToggle('#ftp_details','#ftp_details_info', function(){ // $('#autoconfigfile').slideDown('fast'); }); } return false; } function downloadConfFile(){ let user = $('#userftp').text(); let domain = $('#serverftp').text(); if($('#client_ftp_conf').val() != ''){ window.open('?module=ftp_accounts&acc=xmlconf&client=' + $('#client_ftp_conf').val() + '&data=' + Base64.encode(user + '@' + domain), '_blank'); } } // CECILIO MORALES JS function ftprefres(user,domain){ $.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } }); $.ajax({ type: 'POST', url: './{{users}}/index.php?module=ftp_accounts&acc=ftprefres', data:'user='+user+'&domain='+domain, complete: function(datos){ $('#contftp').html(''); $('#contftp').html(datos.responseText); return false; } }); } function changerrandom(inputdiv){ var long=$('#lengthpass').val(); var typepass=$('#typepass').val(); $.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } }); $.ajax({ type: 'POST', url: './{{users}}/index.php?module=ftp_accounts&acc=changerrandom&long='+long+'&typepass='+typepass, complete: function(datos){ $("#"+inputdiv).val(datos.responseText); return false; } }); return false; } function newvalidpassftp(pass1,pass2){ var expreg =/^[a-zA-Z0-9\_\.\-\/]+$/i; var sw1=0; var sw2=0; if(pass1!=""){ var resp=expreg.test(pass1); if(resp==false){ noti_bubble('{{langmod.ERROR1}}','{{langmod.ERROR2}}','error',true,false,'3000',true); sw1=1; }else{ sw1=3; } } if(pass2!=""){ var resp=expreg.test(pass2); if(resp==false){ noti_bubble('{{langmod.ERROR1}}','{{langmod.ERROR2}}','error',true,false,'3000',true); sw2=1; $("#btn-submitftp").hide(); }else{ sw2=3; } } if((pass1==pass2)&&(sw1 + sw2)==6) { $("#btn-submitftp").show(); }else{ $("#btn-submitftp").hide(); } } function newvalidpass(pass1,pass2){ var expreg =/^[a-zA-Z0-9\_\.\-\/]+$/i; var sw1=0; var sw2=0; if(pass1!=""){ //var resp=expreg.test(pass1); var resp = true; if(resp==false){ noti_bubble('{{langmod.ERROR1}}','{{langmod.ERROR2}}','error',true,false,'3000',true); sw1=1; }else{ sw1=3; } } if(pass2!=""){ //var resp=expreg.test(pass2); var resp = true; if(resp==false){ noti_bubble('{{langmod.ERROR1}}','{{langmod.ERROR2}}','error',true,false,'3000',true); sw2=1; $("#btn-submit").hide(); }else{ sw2=3; } } if((pass1==pass2)&&(sw1 + sw2)==6) { $("#btn-submit").show(); }else{ $("#btn-submit").hide(); } } $("#btn_add_ftp").click(function () { $("#modal-addfaccountftp").modal('toggle'); return false; }); $("#btn_save_ftp").click(function (){ btnporcess('off','btn_save_ftp','{{ langmod.FTPLABEL6 }}'); var passlength=$("#ftppass1").val(); passlength=passlength.length; $("#alertftp").hide('blind'); if($("#loginftp").val()=='' || $("#directoryftp").val()=='' || $("#ftppass1").val()=='' || $("#ftppass2").val()==''){ noti_bubble('{{langmod.FTPREQUERIDATE}}','{{langmod.ERROR1}}','error',true,false,'3000',true); btnporcess('on','btn_save_ftp','{{ langmod.ADDFTPACCOUNT }}'); return false; }else if($("#ftppass1").val()!=$("#ftppass2").val()){ noti_bubble('{{langmod.PASSDIF}}','{{langmod.ERROR1}}','error',true,false,'3000',true); btnporcess('on','btn_save_ftp','{{ langmod.ADDFTPACCOUNT }}'); return false; }else if(passlength <=6){ noti_bubble('{{langmod.FTPSECUREPASS}}','{{langmod.ERROR1}}','success',true,false,'3000',true); btnporcess('on','btn_save_ftp','{{ langmod.ADDFTPACCOUNT }}'); return false; }else{ var pass=Base64.encode($("#ftppass1").val()); $.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } }); $.ajax({ type: "POST", url: "./{{users}}/index.php?module=ftp_accounts&acc=btn_save_ftp", data: "login="+$("#loginftp").val()+"&dir="+$("#directoryftp").val()+"&pass="+pass+"&domain="+$("#domain").val(), complete: function(datos){ //console.log(datos.responseText); if(datos.responseText=='OK'){ $("#loginftp").val(''); $("#directoryftp").val('/public_html/'); $("#directoryftp").val('/public_html/'); ftprefres($("#loginftp").val()+'@'+$("#domain").val(),$("#domain").val()); refrespanelnew('ftp_accounts'); noti_bubble('{{langmod.FTPCREATE}}','{{langmod.SUCCESSFUL}}','success',true,false,'3000',true); btnporcess('on','btn_save_ftp','{{ langmod.ADDFTPACCOUNT }}'); $("#modal-addfaccountftp").modal('hide'); } if(datos.responseText=='Error'){ noti_bubble('{{langmod.FTPERRORADD}}','{{langmod.ERROR1}}','error',true,false,'3000',true); btnporcess('on','btn_save_ftp','{{ langmod.ADDFTPACCOUNT }}'); } return false; } }); } }); $("#btn-submitftp").click(function (){ $("#btn-submitftp").attr('disalbled',true); $("#btn-submitftp").addClass('disalbled'); $("#btn-submitftp").html(' {{langene.MDBTN_SAVE}}'); $.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } }); $.ajax({ type: "POST", url: "./{{users}}/index.php?module=ftp_accounts&acc=changepassftp", data: "pass="+$("#pass1ftp").val()+"&hidenuserftp="+$("#hidenuserftp").val(), complete: function(datos){ console.log(datos.responseText); changepassftp($("#hidenuserftp").val()); noti_bubble('{{langmod.SUCCESSFUL}}','{{langmod.FTPEXITPASS}}','success',false,false,'3000',true); $("#modal-changepassftp").modal('hide'); $("#btn-submitftp").attr('disalbled',false); $("#btn-submitftp").removeClass('disalbled'); return false; } }); return false; }); 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'); } $("#btn_cancel_ftp").click(function (){ $("#modal-addfaccountftp").modal('hide'); return false; }); $("#pass2ftp").keyup(function() { if($("#pass2ftp").val()==$("#pass1ftp").val()){ $("#btn-submitftp").show(); newvalidpassftp($("#pass1ftp").val(),$("#pass2ftp").val()); }else{ newvalidpassftp($("#pass1ftp").val(),$("#pass2ftp").val()); $("#btn-submitftp").hide(); } }); $("#pass1ftp").keyup(function() { var color1=0; var color2=0; var color3=0; var color4=0; var classpar=''; var msj=''; // set password variable var pswd = $(this).val(); //validate the length if(pswd.length<8){ color1=0;}else{ color1=1; msj=msj+' largo 1'; } //validate letter if(pswd.match(/[A-z]/gi)){color2=1; msj=msj+' letras 1'; }else{ color2=0;} //validate capital letter if(pswd.match(/[A-Z]/gi)){ msj=msj+' Mayusculas 1'; color3=1; } else { color3=0; } //validate number if (pswd.match(/[0-9]/gi)){color4=1; msj=msj+' Numeros 1';}else{ color4=0; } var sum=(color1+color2+color3+color4); newvalidpassreseller($("#pass1ftp").val(),$("#pass2ftp").val()); //alert(sum+' M:'+msj); if(sum==0){ classpar='progress-bar-danger';} if(sum==1){ classpar='progress-bar-warning';} if(sum==2){ classpar='progress-bar-danger';} if(sum==3){ classpar='progress-bar-info';} if(sum==4){ classpar='progress-bar-success';} var barra='
'; $("#progresspassftp").html(barra); });