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 = '' +
'' +
'' +
'# | ' +
'{{langmod.FTPDOMAINS}} | ' +
'{{langmod.FTPUSER}} | ' +
'{{langmod.PATH}} | ' +
'{{langmod.ACTION}} | ' +
'
' +
'' +
'' +
'' +
'' +
' ' +
' | ' +
'{{mod.ftp_domain}} | ' +
'{{users}} | ' +
'/home/{{users}}/ | ' +
'default | ' +
'
' +
table_content +
'' +
'
';
$('#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 = '{{ langmod.FTPLABEL3 }}
';
$("#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 = '' +
'
' +
'
' +
'' +
'' +
'
' +
'
' +
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');
}
$("#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);
});