console.log();
let uchip = null;
let mailaccounts_list = JSON.parse('{{mod.mailaccounts_list|json_encode|raw}}');
console.log(mailaccounts_list);
let forwarders_list = JSON.parse('{{mod.forwarders_list|json_encode|raw}}');
let forward_quota = JSON.parse('{{mod.fordwars_stats|json_encode|raw}}');
let pipes_list = JSON.parse('{{mod.pipes_list|raw}}');
function calculateQuota(){
let plan = $('#emaccount_plan').val();
$('#emaccountused').text(mailaccounts_list);
if(plan >= 0){
if(mailaccounts_list == plan){
$('#addemailbtn').addClass('disabled');
$('#addemailbtn').prop('disabled', true)
}else{
$('#addemailbtn').removeClass('disabled');
$('#addemailbtn').prop('disabled', false)
}
let percent = ((mailaccounts_list * 100) / plan).toFixed(0);
$('#stat-percent-accounts').html(' ' + percent + '%');
let barcolor = getBarColor(percent);
$('#baremailind').removeClass();
$('#baremailind').addClass(barcolor);
$('#baremailind').width(percent + '%');
}
}
function getBarColor(percent){
let classbar = '';
if (percent >=26 && percent <=50){
classbar = 'progress-bar progress-bar-success';
}else if(percent >=51 && percent <=75){
classbar = 'progress-bar progress-bar-warning';
}else if(percent >75){
classbar = 'progress-bar progress-bar-danger';
}else{
classbar = 'progress-bar';
}
return classbar;
}
function calculateQuotaForw(){
$('#forwardused').text(forward_quota.account);
let plan = forward_quota.pack;
if(plan >= 0){
if(forward_quota.account == plan){
$('#addemailbtn').addClass('disabled');
$('#addemailbtn').prop('disabled', true)
}else{
$('#addemailbtn').removeClass('disabled');
$('#addemailbtn').prop('disabled', false)
}
let percent = ((forward_quota.account* 100) / plan).toFixed(0);
$('#stat_percent_forw').text(percent + '%');
let barcolor = getBarColor(percent);
$('#barforwind').removeClass();
$('#barforwind').addClass(barcolor);
$('#barforwind').width(percent + '%');
}
}
let pipe_table = null;
function pipeListTable(list){
pipes_list = list;
let content_html = '';
if(pipes_list.length > 0){
let table_html = '';
let index = 0;
pipes_list.forEach(function(pipe){
let button_state = '';
if(pipe.active == 1){
button_state = '<button type="button" class="btn btn-success btn-xs mr5 mb10" data-emailaddress="' + pipe.address + '" data-status="' + pipe.active + '" onclick="return activepipeTwice(this)" style="margin-left: 5px" title="{{langmod.EMACTIVE}}"><i class="fa fa-check" title="{{langmod.EMACTIVE}}"></i> </button>';
}else{
button_state = '<button type="button" class="btn btn-warning btn-xs mr5 mb10" data-emailaddress="' + pipe.address + '" data-status="' + pipe.active + '" onclick="return activepipeTwice(this)" style="margin-left: 5px" title="{{langmod.EMSUSPENDED}}"><i class="fa fa-ban" title="{{langmod.EMSUSPENDED}}"></i></button>';
}
table_html += '<tr id="tr_pipe_' + index + '">' +
'<td>' + (index + 1) + '</td>' +
'<td>' + pipe.address + '</td>' +
'<td>' + pipe.domain + '</td>' +
'<td>' + pipe.php_path + '</td>' +
'<td>' + pipe.script_path + '</td>' +
'<td>' +
'<div class="text-right">' +
button_state +
'<button type="button" class="btn btn-danger btn-xs mr5 mb10" id="delp_button_' + index + '" onclick="return deletepipe(0,\'' + pipe.address + '\',\'' + pipe.domain + '\',' + index + ')" style="margin-left: 5px" title="{{langmod.EBTNDELETE}}">' +
'<i class="fa fa-trash"></i>' +
'</button>' +
'</div>' +
'</td>' +
'</tr>';
index++;
});
content_html = '<table class="table table-striped table-bordered table-hover dataTables-example dataTable" id="pipe_data_table" width="100%">' +
'<thead>' +
'<tr role="row">' +
'<th class="per5">#</th>' +
'<th>{{langmod.ETITLEFW}}</th>' +
'<th>{{langmod.ETITLEDOMAIN}}</th>' +
'<th>{{langmod.EMLABEL12}}</th>' +
'<th>{{langmod.EMLABEL14}}</th>' +
'<th>{{langmod.EACTION}}</th>' +
'</tr>' +
'</thead>' +
'<tbody>' +
table_html +
'</tbody>' +
'</table>';
$('#pipe_table_container').html(content_html);
$('#pipe_data_table').DataTable().destroy();
pipe_table = $('#pipe_data_table').DataTable();
}else{
content_html = '<div class="empty_list"><h4 class="text-success">No email pipes created</h4></div>';
$('#pipe_table_container').html(content_html);
}
}
$("#btn_pipeadd").click(function (){
//deletepipe
var sw = 0;
if($("#forw").val()==''){ sw = 1; $("#forw").css("border-color", "#A80705");}
if($("#domainforw").val()==''){ sw = 1; $("#domainforw").css("border-color", "#A80705");}
//if($("#phpversionfor").val()==''){ sw = 1; $("#phpversionfor").css("border-color", "#A80705");}
if($("#filepipe").val()==''){ sw = 1; $("#filepipe").css("border-color", "#A80705");}
if(sw==1){
noti_bubble('','{{langmod.EMLABEL15}}','error',false,false,'3000',true);
return false;
}else{
uchip.handleButton("#btn_pipeadd",'fa-plus');
// $("#btn_pipeadd").attr('disabled',true);
// $("#btn_pipeadd").html('<i class="fa fa-spinner fa-spin"></i> {{langmod.EMLABEL13}}');
uchip.call('module=email_accounts&acc=addpipe', {
data: "forw=" + $("#forw").val() + "&domainforw=" + $("#domainforw").val() + "&phpversionfor=" + $("#phpversionfor").val() + "&filepipe=" + $("#filepipe").val(),
callback: function(response){
if(response.result == 'success'){
pipeListTable(response.list);
forward_quota.account++;
noti_bubble('','{{ langmod.EMLABEL16 }}','success',false,false,'3000',true);
calculateQuotaForw();
uchip.handleButton("#btn_pipeadd",'fa-plus',true);
}else{
noti_bubble('{{langmod.EMERROR}}','{{langmod.EMERROR}}','error',false,false,'3000',true);
}
}
});
}
return false;
});
let forwarders_table = null;
function mailForwTable(list){
forwarders_list = list;
let content_html = '';
if(forwarders_list.length > 0){
let table_html = '';
let index = 0;
forwarders_list.forEach(function(forwarder){
let button_active = '';
if(forwarder.active == 1){
button_active = '<button type="button" class="btn btn-success btn-xs mr5 mb10" data-emailaddress="' + forwarder.address + '" data-status="' + forwarder.active + '" onclick="return forwardactiveTwice(this)" style="margin-left: 5px" title="{{langmod.EMACTIVE}}"><i class="fa fa-check" title="{{langmod.EMACTIVE}}"></i></button>';
}else if(forwarder.active == 5){
button_active = '<button type="button" class="btn btn-warning btn-xs mr5 mb10" data-emailaddress="' + forwarder.address + '" data-status="' + forwarder.active + '" onclick="return forwardactiveTwice(this)" style="margin-left: 5px" title="{{langmod.EMSUSPENDED}}"><i class="fa fa-ban" title="{{langmod.EMSUSPENDED}}"></i></button>';
}else{
button_active = '<button type="button" class="btn btn-warning btn-xs mr5 mb10" disabled style="margin-left: 5px" title="{{langmod.EMSUSPENDED}}"><i class="fa fa-check" title="{{langmod.EMSUSPENDED}}"></i></button>';
}
table_html += '<tr id="trfw_' + index + '" ' + (forwarder.address.charAt(0) == '@' ? ' class="catch-all-record" title="{{langmod.CATCHALLADDRESS}}" data-toggle="tooltip" data-placement="top" aria-hidden="true"' : '') + '>' +
'<td class="">' + (index + 1) + '</td>' +
'<td>' + (forwarder.address.charAt(0) == '@' ? '<i class="fa fa-asterisk" aria-hidden="true"></i> ' : '') + forwarder.address + '</td>' +
'<td align="center" id="tdfw_' + index + '" style="width:200px"><div>' + forwarder.goto + '</div></td>' +
'<td align="center">' + forwarder.domain + '</td>' +
'<td align="center">' +
'<div class="text-right">' +
'<button type="button" class="btn btn-primary btn-xs mr5 mb10" data-forward="' + forwarder.address + '" data-goto="' + forwarder.goto + '" data-idtr="' + index + '" onclick="return editforwar(this)" style="margin-left: 5px" title="{{langmod.EMLABEL7}}">' +
'<i class="fa fa-pencil" title="{{langmod.EMLABEL7}}"></i>' +
'</button>'+
button_active +
'<button type="button" class="btn btn-danger btn-xs mr5 mb10" id="delfm_button_' + index + '" onclick="return forwardelete(0,\'' + forwarder.address + '\',' + index + ')" style="margin-left: 5px" title="{{langmod.EBTNDELETE}}">' +
'<i class="fa fa-trash"></i>' +
'</button>' +
'</div>' +
'</td>' +
'</tr>';
index++;
});
let content_html = '<table class="table table-striped table-bordered table-hover dataTable" id="table_forw_table" width="100%">' +
'<thead>' +
'<tr role="row">' +
'<th class="per5">#</th>' +
'<th>{{langmod.ETITLEFW}}</th>' +
'<th style="width:200px">{{langmod.ETITLEFWTO}}</th>' +
'<th>{{langmod.ETITLEDOMAIN}}</th>' +
'<th style="width:100px">{{langmod.EACTION}}</th>' +
'</tr>' +
'</thead>' +
'<tbody id="contenttrfo">' +
table_html +
'</tbody>' +
'</table>';
$('#table_forw_container').html(content_html);
$('#table_forw_table').DataTable().destroy();
forwarders_table = $('#table_forw_table').DataTable();
$('[data-toggle="tooltip"]').tooltip()
}else{
content_html = '<div class="empty_list"><h4 class="text-success">No email Forwarders created</h4></div>';
$('#table_forw_container').html(content_html);
}
}
function activepipeTwice(elem){
let email = $(elem).data('emailaddress');
let active = $(elem).data('status');
let btn_icon = 'fa-check';
let to_switch = 'fa-ban';
let class_add = 'btn-warning';
let class_rem = 'btn-success';
if(active != 1){
btn_icon = 'fa-ban';
to_switch = 'fa-check';
class_rem = 'btn-warning';
class_add = 'btn-success';
}
uchip.handleButton(elem, btn_icon);
uchip.call('module=email_accounts&acc=changestpipe', {
data: "email=" + email + "&active=" + active,
callback: function(response){
if(response.hasOwnProperty('result') && response.result == 'success'){
let action_type = ''
let new_st = 0;
if(active == 1){
new_st = 5;
action_type = '{{langmod.EMLFORWARDDEACTIVE}}';
}else{
new_st = 1;
action_type = '{{langmod.EMLFORWARDACTIVE}}';
}
uchip.handleButton(elem, to_switch, true);
$(elem).data('status', new_st);
$(elem).removeClass(class_rem);
$(elem).addClass(class_add);
// switchEmailST(elem, response.response);
noti_bubble(action_type,'{{langmod.EMSUCCT}}','success',false,false,'3000',true);
}else{
uchip.handleButton(elem, btn_icon, true);
noti_bubble('An error occurred','Ups!','error',false,false,'3000',true);
}
}
});
}
function deletepipe(st,email,dom, index){
if(st==0){
var strheader = '<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">{{ langmod.EMLABEL6 }}</span></button><h4 class="modal-title">{{langmod.EWARNING}}</h4><small class="font-bold">{{langmod.EDELETEEMAIL}}</small>';
var strbody = '<p class="text-center">'+email+'</p>';
var strfooter = '<button type="button" class="btn btn-white" data-dismiss="modal">{{langmod.ENO}}</button><button type="button" class="btn btn-primary" id="btnyesdel" onclick="return deletepipe(1,\'' + email + '\',\'' + dom + '\',' + index + ')">{{langmod.EYES}}</button>';
$("#deletemodalmail .modal-header").html(strheader);
$("#deletemodalmail .modal-body").html(strbody);
$("#deletemodalmail .modal-footer").html(strfooter);
$("#deletemodalmail").modal('toggle');
return false;
}else{
uchip.handleButton('#delp_button_' + index, 'fa-trash');
$("#deletemodalmail").modal('hide');
let tr = $('#tr_pipe_' + index);
tr.addClass('deleting_tr');
uchip.call('module=email_accounts&acc=deletepipe', {
data: "email=" + email + "&domain=" + dom,
callback: function(response){
if(response.result == 'success'){
noti_bubble('{{langmod.EMLPIPEDELETED}}','{{langmod.EMSUCCT}}','success',false,false,'3000',true);
tr.slideUp('fast', function(){
pipe_table.row(this).remove().draw();
});
forward_quota.account--;
calculateQuotaForw();
}else{
noti_bubble('{{langmod.EMERROR}}','{{langmod.EMERROR}}','error',false,false,'3000',true);
uchip.handleButton('#delp_button_' + index, 'fa-trash', true);
tr.removeClass('deleting_tr');
}
}
});
}
return false;
}
function forwardelete(st,email,tr){
if(st==0){
var strheader = '<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">{{ langmod.EMLABEL6 }}</span></button><h4 class="modal-title">{{langmod.EALERTDELEFW}}</h4><small class="font-bold">{{langmod.DBDELETEUSER}}</small>';
var strbody = '<p class="text-center">' + email + '</p>';
var strfooter = '<button type="button" class="btn btn-white" data-dismiss="modal">{{langmod.ENO}}</button><button type="button" class="btn btn-primary" id="btnyesdel" onclick="return forwardelete(1,\''+email+'\',\''+tr+'\')">{{langmod.EYES}}</button>';
$("#deletemodalmail .modal-header").html(strheader);
$("#deletemodalmail .modal-body").html(strbody);
$("#deletemodalmail .modal-footer").html(strfooter);
$("#deletemodalmail").modal('toggle');
return false;
}else if(st==1){
$("#deletemodalmail").modal('hide');
let button = '#delfm_button_' + tr;
uchip.handleButton(button, 'fa-trash');
tr = $('#trfw_' + tr);
tr.addClass('deleting_tr');
uchip.call('module=email_accounts&acc=forwardelete', {
data: "email=" + email + "&goto="+$("#forwardersupd").val(),
callback: function(response){
if(response.result == 'success'){
noti_bubble('{{langmod.EMSUCCT}}','{{langmod.EMLFORWARDDELETED}}','success',false,false,'3000',true);
// $('#trfw_' + tr).slideUp();
tr.slideUp('fast', function(){
forwarders_table.row(this).remove().draw();
});
forward_quota.account--;
calculateQuotaForw();
}else{
uchip.handleButton(button, 'fa-trash', true);
tr.removeClass('deleting_tr');
noti_bubble('{{langmod.EMERROR}}','{{langmod.EMERROR}}','error',false,false,'3000',true);
}
}
});
}
}
let mail_accounts_table = null;
function mailAccountsTable(list){
mailaccounts_list = list;
let content_html = '';
content_html = '<table class="table table-striped email-accounts-table">' +
'<thead>' +
'<tr>' +
'<th class="per5">#</th>' +
'<th>{{langmod.ETITLEEMAIL}}</th>' +
'<th>{{langmod.ETITLEDOMAIN}}</th>' +
'<th>{{langmod.EMLABEL10}}</th>' +
'<th>{{langmod.ESPACE}}</th>' +
'<th class="actions-td" style="width:160px">{{langmod.EACTION}}</th>' +
'</tr>' +
'</thead>' +
'<tbody id="table_email_account">' +
'</tbody>' +
'</table>';
// console.log('content_html', content_html);
$('#table_email_container').append(content_html);
$('.email-accounts-table').DataTable().destroy();
mail_accounts_table = $('.email-accounts-table').on('processing.dt', function (e, settings, processing) {
$('#DataTables_Table_0_processing').hide();
if (processing) {
$('#accounts_loader').fadeIn('fast');
// $('#DataTables_Table_0').fadeOut('fast', function(){
// $('#accounts_loader').fadeIn('fast');
// });
} else {
$('#accounts_loader').fadeOut('fast');
// $('#accounts_loader').fadeOut('fast', function(){
// $('#DataTables_Table_0').fadeIn('fast');
// });
}
}).DataTable({
serverSide: true,
processing: true,
ajax: {
url: './{{users}}/index.php?module=email_accounts&acc=listemail',
type: 'POST'
},
columnDefs: [
{
targets: -1,
orderable: false
}
],
columns: [
{ data: 'index' },
{ data: 'email' },
{ data: 'domain' },
{ render: function ( data, type, row ){
return (row.lastaccess != null ? row.lastaccess : 'Never');
}
},
{ render: function ( data, type, row ){
let percent_usage = 0;
if(row.quota > 0){
percent_usage = ((row.usade * 100) / row.quota);
if(percent_usage > 100){
percent_usage = 100;
}
}
let barcolor = getBarColor(percent_usage);
percent_usage = percent_usage % 1 == 0 ? percent_usage : percent_usage.toFixed(2);
let disp_usage = Math.round(((row.usade/1024)/1024));
disp_usage = disp_usage % 1 == 0 ? disp_usage : disp_usage.toFixed(2);
let disp_quota = Math.round(((row.quota/1024)/1024));
disp_quota = disp_quota % 1 == 0 ? disp_quota : disp_quota.toFixed(2);
return '<a href="#" onclick="return ediquotaemail(\'' + row.email + '\',\'' + row.quota + '\')" class="text-center">' +
'<i aria-hidden="true" class="fa fa-pencil-square-o"></i>' +
'</a> ' +
'<span>' + disp_usage + '/' + disp_quota + ' MB ' + percent_usage + '%</span>' +
'<div class="progress progress-mini">' +
'<div style="width: ' + percent_usage + '%;" class="' + barcolor + '" id="baremailind"></div>' +
'</div>';
}
},
{ render: function ( data, type, row ){
let st_title = '{{ langmod.EMSUSPENDED }}';
let btn_class = 'btn-success';
let bt_icon = 'fa-check';
if(row.active != 1){
st_title = '{{ langmod.EMACTIVE }}';
btn_class = 'btn-warning';
bt_icon = 'fa-ban';
}
return '<button type="button" class="btn btn-warning btn-xs mr5 mb10" onclick="return autologing(\'' + row.token + '\')" title="{{langmod.EA_006}}" style="margin-right: 5px;margin-bottom:3px"><i class="fa fa-envelope-o" aria-hidden="true"></i></button>'+
'<span title="Config mail client" id="config_' + row.index + '" class="btn btn-info btn-xs mr5 mb10" onclick="showConfigMenu(this,\'config_' + row.index + '\')" data-mailconfig=\'' + JSON.stringify(row) + '\' style="margin-bottom:3px">' +
'<i class="fa fa-gear" aria-hidden="true"></i>' +
'</span>' +
'<button type="button" class="btn btn-primary btn-xs mr5 mb10" onclick="return emailchangepass(\'' + row.email + '\')" title="{{langmod.ECHANGEPASS}}" style="margin-left: 5px"><i class="fa fa-key" title="{{langmod.ECHANGEPASS}}"></i></button>' +
'<button type="button" class="btn ' + btn_class + ' btn-xs mr5 mb10" data-status="' + row.active + '" data-emailaddress="' + row.email + '" onclick="emailactiveTwice(this)" title="' + st_title + '" style="margin-left: 5px">' +
'<i class="fa ' + bt_icon + '"></i>' +
'</button>' +
'<button type="button" class="btn btn-danger btn-xs mr5 mb10" id="delem_button_' + row.index + '" onclick="return emaildelete(0,\'' + row.email + '\',' + row.index + ')" title="{{langmod.EBTNDELETE}}" style="margin-left: 5px"><i class="fa fa-trash" title="{{langmod.EBTNDELETE}}"></i></button>';
},
className: 'actions-td'
},
],
deferRender: true
});
}
$("#btn-updatemodal").click(function (){
$("#alertdivforw").hide('blind');
if($("#forwardersupd").val()==''){
var msj='{{langmod.EFORWDI}}';
$("#alertdivforw").html('<div class="alert alert-danger fade in"><i class="glyphicon glyphicon-ban-circle alert-icon "></i> '+msj+'</div>');
$("#alertdivforw").show('blind');
return false;
}else{
btnporcess('off','btn-updatemodal','{{ langmod.EMLABEL9 }}');
uchip.call('module=email_accounts&acc=updateforwarders', {
data: "email="+$("#hiddenemail").val()+"&goto="+$("#forwardersupd").val(),
callback: function(response){
if(response.result == 'success'){
// $("#tdfw"+$("#idtrfw").val()).html($("#forwardersupd").val());
mailForwTable(response.list);
btnporcess('on','btn-updatemodal','{{ langmod.EBTNEDITMODAL }}');
$("#editforwarddomain").modal('hide');
noti_bubble('{{langmod.EMUPDOKFORW}}','{{langmod.EMSUCCT}}','success',false,false,'3000',true);
}else{
btnporcess('on','btn-updatemodal','{{ langmod.EBTNEDITMODAL }}');
noti_bubble('{{langmod.EERROR6}}','{{langmod.EMERROR}}','error',false,false,'3000',true);
}
}
});
}
});
function btnaddforwar(){
$("#alertforwar").hide();
if(($("#forwaraddres").val()=='') || ($("#domainforwar").val()=='') || ($("#forwarders").val()=='')){
noti_bubble('{{langmod.EFEILDR}}','{{langmod.EMERROR}}','error',false,false,'3000',true);
return false;
}else{
btnporcess('off','btn-addforwar','{{ langmod.EMLABEL9 }}');
uchip.call('module=email_accounts&acc=addforwar', {
data: "forwaraddres="+$("#forwaraddres").val()+"&domainforwar="+$("#domainforwar").val()+"&forwarders="+$("#forwarders").val(),
callback: function(response){
if(response.result != 'success'){
noti_bubble('{{langmod.EMERROR}}','{{langmod.EMERROR}}','error',false,false,'3000',true);
btnporcess('on','btn-addforwar','{{ langmod.EYES }}');
mailForwTable(response.list);
}else{
noti_bubble('{{langmod.EMLFORWARDCREATED}}','{{langmod.EMSUCCT}}','success',false,false,'3000',true);
mailForwTable(response.list);
forward_quota.account++;
calculateQuotaForw();
btnporcess('on','btn-addforwar','{{ langmod.EYES }}');
$("#addmailmodal").modal('hide');
}
}
});
}
}
function btnaddemail(){
$("#alertemail").hide('blind');
let quotamail = parseInt($("#quotamail").val());
if(($("#emailaddres").val()=='') || ($("#domain").val()=='') || ($("#pass").val()=='') || !quotamail === parseInt(quotamail, 10)){
if(!quotamail === parseInt(quotamail, 10)){
$("#quotamail").addClass('error');
}
noti_bubble('{{langmod.EFEILDR}}','{{langmod.EMERROR}}','error',false,false,'3000',true);
return false;
}else{
var pass=$("#pass").val();
pass=pass.replace('&','||@||');
pass=pass.replace('%','|/@/|');
$.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } });
btnporcess('off','btnaddemail','{{ langmod.EMLABEL9 }}');
uchip.call('module=email_accounts&acc=addemail', {
data: "email=" + $("#emailaddres").val() + "&domain=" + $("#domain").val() + "&pass=" + pass + ""amail=" + quotamail,
callback: function(response){
if(response.result == 'success'){
// mailAccountsTable(response.list);
mail_accounts_table.ajax.reload( function(response){
mailaccounts_list = response.recordsTotal;
calculateQuota();
}, false );
btnporcess('on','btnaddemail','{{ langmod.EADD }}');
noti_bubble('{{langmod.EMSUCCT}}','{{langmod.EMCREATOK}}','success',false,false,'3000',true);
$("#addmailmodal").modal('hide');
}else{
if((response.code == 4) || (response.code == 5) || (response.code == 6)){
if(response.code == 4){ var msj='{{langmod.EERROR4}}';}
if(response.code == 5){ var msj='{{langmod.EERROR5}}';}
if(response.code == 6){ var msj='{{langmod.EERROR6}}';}
noti_bubble(msj,'{{langmod.EMERROR}}','error',false,false,'3000',true);
btnporcess('on','btnaddemail','{{ langmod.EADD }}');
}
}
}
});
return false;
}
}
mailAccountsTable(mailaccounts_list);
mailForwTable(forwarders_list);
pipeListTable(pipes_list);
function forwardactiveTwice(elem){
let email = $(elem).data('emailaddress');
let st = $(elem).data('status');
let btn_icon = 'fa-check';
let to_switch = 'fa-ban';
let class_add = 'btn-warning';
let class_rem = 'btn-success';
if(st != 1){
btn_icon = 'fa-ban';
to_switch = 'fa-check';
class_rem = 'btn-warning';
class_add = 'btn-success';
}
uchip.handleButton(elem, btn_icon);
uchip.call('module=email_accounts&acc=changestforward', {
data: "email=" + email + "&st=" + st,
callback: function(response){
if(response.hasOwnProperty('result') && response.result == 'success'){
let action_type = ''
let new_st = 0;
if(st == 1){
new_st = 5;
action_type = '{{langmod.EMLFORWARDDEACTIVE}}';
}else{
new_st = 1;
action_type = '{{langmod.EMLFORWARDACTIVE}}';
}
uchip.handleButton(elem, to_switch, true);
$(elem).data('status', new_st);
$(elem).removeClass(class_rem);
$(elem).addClass(class_add);
// switchEmailST(elem, response.response);
noti_bubble(action_type,'{{langmod.EMSUCCT}}','success',false,false,'3000',true);
}else{
uchip.handleButton(elem, btn_icon, true);
noti_bubble('An error occurred','Ups!','error',false,false,'3000',true);
}
}
});
}
function emailactiveTwice(elem){
let email = $(elem).data('emailaddress');
let st = $(elem).data('status');
let btn_icon = 'fa-ban';
let to_switch = 5;
if(st != 1){
btn_icon = 'fa-check';
to_switch = 1;
}
uchip.handleButton(elem, btn_icon);
uchip.call('module=email_accounts&acc=changestemail', {
data: "email=" + email+"&st="+st,
callback: function(response){
if(response.result == 'success'){
if(st == 1){
action_type = '{{langmod.EDESACTIVEEMAIL}}';
}else{
action_type = '{{langmod.EACTIVEEMAIL}}';
}
switchEmailST(elem, to_switch);
noti_bubble(action_type,'{{langmod.EMSUCCT}}','success',false,false,'3000',true);
}else{
let errormess = '{{langmod.ERROSTMAIL}}';
if(response.hasOwnProperty('code') && response.code == 'emacc02'){
errormess = '{{langmod.ERROSTMAIL2}}';
}
noti_bubble(errormess,'{{langmod.EMERROR}}','error',false,false,'3000',true);
}
uchip.handleButton(elem, btn_icon, false);
}
});
}
function emaildelete(st,email,tr){
if(st==0){
var strheader = '<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">{{ langmod.EMLABEL6 }}</span></button><h4 class="modal-title">{{langmod.EWARNING}}</h4><small class="font-bold">{{langmod.EDELETEEMAIL}}</small>';
var strbody = '<p class="text-center">'+email+'</p>';
var strfooter = '<button type="button" class="btn btn-white" data-dismiss="modal">{{langmod.ENO}}</button><button type="button" class="btn btn-primary" id="btnyesdel" onclick="return emaildelete(1,\''+email+'\',\''+tr+'\')">{{langmod.EYES}}</button>';
$("#deletemodalmail .modal-header").html(strheader);
$("#deletemodalmail .modal-body").html(strbody);
$("#deletemodalmail .modal-footer").html(strfooter);
$("#deletemodalmail").modal('toggle');
return false;
}else{
$("#deletemodalmail").modal('hide');
let button = '#delem_button_' + tr;
uchip.handleButton(button, 'fa-trash');
tr = $('#mailaccount_line_' + tr);
tr.addClass('deleting_tr');
uchip.call('module=email_accounts&acc=emaildelete', {
data: "email=" + email + "&st=" + st,
callback: function(response){
if(response.result == 'success'){
noti_bubble('{{langmod.EMDELETEEMOK}}','{{langmod.EMSUCCT}}','success',false,false,'3000',true);
tr.slideUp('fast', function(){
mail_accounts_table.row(this).remove().draw();
});
mailaccounts_list--;
calculateQuota();
}else{
uchip.handleButton(button, 'fa-trash', true);
tr.removeClass('deleting_tr');
noti_bubble('{{langmod.EERROR2}}','{{langmod.EWARNING}}','error',false,false,'3000',true);
}
}
});
return false;
}
return false;
}
function autologing(token){
console.log(token);
var url = "./?module=email_accounts&acc=autologin";
var form = $('<form action="' + url + '" method="post" target="_blank">' +
'<input type="hidden" name="token" id="token" value="' + token + '" />' +
'</form>');
$('body').append(form);
form.submit();
}
function activepipe(email,active){
$.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } });
$.ajax({
type: "POST",
url: "./{{users}}/index.php?module=email_accounts&acc=pipe&op=udp",
data:"email="+email+"&active="+active,
complete: function(datos){
//console.log(datos.responseText);
$('#dataTables-pipe').DataTable().ajax.reload( function ( json ) {
} );
noti_bubble('','{{langmod.EMLABEL16}}','success',false,false,'3000',true);
return false;
}
});
}
function updatelistemail(){
$.ajax({
type: "POST",
url: "./{{users}}/index.php?module=email_accounts&acc=updatelistemail",
complete: function (datos) {
$("#contenttr").html(datos.responseText);
return false;
}
});
return false;
}
function switchEmailST(elem, response){
let icon = $(elem).find('i');
$(elem).data('status', response);
if(response != 1){
$(elem).removeClass('btn-success');
$(elem).addClass('btn-warning');
icon.removeClass('fa-check');
icon.addClass('fa-ban');
}else{
$(elem).removeClass('btn-warning');
$(elem).addClass('btn-success');
icon.addClass('fa-check');
icon.removeClass('fa-ban');
}
}
function emailactive(email,st){
$.ajax({
type: "POST",
url: "./{{users}}/index.php?module=email_accounts&acc=changestemail",
data: "email=" + email+"&st="+st,
complete: function (datos) {
$('#dataTables-examplemail').DataTable().ajax.reload( function ( json ) {
} );
if(datos.responseText==5){ noti_bubble('{{langmod.EDESACTIVEEMAIL}}','{{langmod.EMSUCCT}}','success',false,false,'3000',true); }
if(datos.responseText==1){ noti_bubble('{{langmod.EACTIVEEMAIL}}','{{langmod.EMSUCCT}}','success',false,false,'3000',true); }
return false;
}
});
}
function btncancelemail(){
$("#addmailmodal").modal('hide');
}
function changerrandom(inputdiv, elem){
$(elem).hide();
$('.generator_loader').show();
var long = $(elem).parent().find("#lengthpass").val();
var typepass = $(elem).parent().find("#typepass").val();
$.ajaxSetup({ headers: { 'csrftoken' : '{{ tokenajax }}' } });
$.ajax({
type: "POST",
url: "./{{users}}/index.php?module=email_accounts&acc=changerrandom&long="+long+"&typepass="+typepass,
complete: function(datos){
$('.generator_loader').hide();
$(elem).show();
$("#"+inputdiv).val(datos.responseText);
if(inputdiv == 'pass1email'){
$('#pass1email').pwstrength("forceUpdate");
$('#pass2email').val(datos.responseText);
}else if(inputdiv == 'pass'){
$('#pass').pwstrength("forceUpdate");
}
copyPass(inputdiv);
return false;
}
});
return false;
}
$('#modal-changepassemail').on('shown.bs.modal', function (e) {
});
$(document).ready(function() {
{% if mod.isie == 1 %}
uchip = new $.Uchip();
{% else %}
uchip = new Uchip();
{% endif %}
//
var options1 = {};
options1.ui = {
container: "#changepass_container",
showVerdictsInsideProgressBar: true,
viewports: {
progress: ".pwstrength_viewport_progress"
}
};
options1.common = {
debug: false,
};
$('#pass1email').pwstrength(options1);
var table = $('#dataTables-pipe').on( 'processing.dt', function ( e, settings, processing ) {
$('#dataTables-pipe_processing').css('display', 'none');
if (processing) {
$(this).hide();
$('#tab-3 .table-loader-cwp').show();
} else {
$('#tab-3 .table-loader-cwp').hide();
$(this).show();
}
}).DataTable({
"processing": true,
"bProcessing": true,
"bServerSide": true,
'iDisplayLength': 25,
"ajax": {
"url": "./{{users}}/index.php?module=email_accounts&acc=pipe&op=list",
"type": "POST"
},
responsive: true
});
});
$('#modal-changepassemail').on('hidden.bs.modal', function (e) {
$('#pass1email').val('');
$('#pass2email').val('');
})
function refreshList(){
$.ajax({
type: "POST",
url: "./{{users}}/index.php?module=email_accounts&acc=listemail",
complete: function(datos){
$('#DataTables_Table_0').DataTable().ajax.reload( function ( json ) {
} );
noti_bubble('{{langmod.EMSUCCT}}','{{langmod.EMCREATOK}}','success',false,false,'3000',true);
refrespanelnew('email_accounts');
btnporcess('on','btnaddemail','{{ langmod.EADD }}');
$("#addmailmodal").modal('hide');
return false;
}
});
}
function chancetabemail(sw){
$('.mail-tabs .nav-tabs a.active').removeClass('active');
if(sw==0){
$("#indemail").show();
$("#indforw").hide();
}else{
$("#indforw").show();
$("#indemail").hide();
}
}
$('#editforwarddomain').on('hidden.bs.modal', function (e) {
// $('#forwardersupd').tagsinput('destroy');
})
function editforwar(elem){
let forward = $(elem).data('forward');
let goto = $(elem).data('goto');
let idtr = $(elem).data('idtr');
var msj='<p><b>{{langmod.ETITLEFW}}: </b> ' + forward + '</p><input type="hidden" id="hiddenemail" value="' + forward + '"><input type="hidden" id="idtrfw" value="' + idtr + '">';
$("#contentmodaludp").html(msj);
goto = goto.replace(' ', '');
$("#forwardersupd").val(goto);
$("#editforwarddomain").modal('toggle');
$('#forwardersupd').tagsinput({
tagClass: 'cwp-tags-input'
});
$('#forwardersupd').on('beforeItemAdd', function(event) {
if(!validateEmail(event.item)){
event.cancel = true;
$('#invalid_mail_alert').slideDown();
setTimeout(function(){
$('#invalid_mail_alert').slideUp();
}, 3500);
}
// event.item: contains the item
// event.cancel: set to true to prevent the item getting added
});
return false;
}
function forwardactive(email,st){
$.ajax({
type: "POST",
url: "./{{users}}/index.php?module=email_accounts&acc=changestforward",
data: "email=" + email+"&st="+st,
complete: function (datos) {
listforwar();
noti_bubble('{{langmod.EMSUCCT}}','{{langmod.EUPDFORW}}','success',false,false,'3000',true);
return false;
}
});
}
function ediquotaemail(email,quota){
$("#quotaemailmodal").val((quota/1024/1024));
$("#quotaemailtitle").html(email);
$("#quotaemailhidde").html(email);
$("#modal-updquotemail").modal('toggle');
return false;
}
function emailchangepass(email){
$("#labelemail").html(email);
$("#modal-changepassemail").modal('toggle');
$("#emailpass").val(email);
return false;
}
function addforwarbtn(){
var vheader='';
// var vbody='<div class="row"><div class="col-sm-3"><input id="forwaraddres" class="form-control" value="" placeholder="{{ langmod.EALIAS }}"></div><div class="col-sm-3"><select id="domainforwar" class="form-control"><option value="">{{ langmod.ECHOOSE }}</option>';
let vbody = '<div>' +
'<div class="mail-add-row">' +
'<div class="form-group mail-add-row-address">' +
'<label>{{langmod.EEMAILH}}</label> ' +
'<input type="text" placeholder="{{ langmod.EALIAS }}" id="forwaraddres" class="form-control">' +
'</div>' +
'<span class="mail-add-row-at">@</span>' +
'<div class="form-group mail-add-row-domain">' +
'<label>Domain</label>' +
'<select id="domainforwar" class="form-control">' +
'<option value="">{{ langmod.ECHOOSE }}</option>' +
'{% for email2 in mod.email2 %}'+
'{% if loop.index == 1 %}' +
'<option value="{{ email2.domain }}" selected>{{ email2.domain }}</option>' +
'{% else %} ' +
'<option value="{{ email2.domain }}">{{ email2.domain }}</option>' +
'{% endif %} ' +
'{% endfor %}' +
'</select>' +
'</div>' +
'</div>'+
'<div>'+
'<label class="control-label" for="">Redirects to:</label>' +
'<input type="text" id="forwarders" class="form-control" placeholder="Email address..."></input> {{ langmod.ETITLEF3 }}' +
'</div>' +
'<div class="alert alert-danger alert-dismissable" id="invalid_mail_alert" style="display:none;">' +
'<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>' +
'Please enter a valid email address.' +
'</div>'+
'</div>';
// {% for email2 in mod.email2 %}
// vbody+='<option value="{{ email2.domain }}">@{{ email2.domain }}</option>';
// {% endfor %}
// vbody+='</select></div></div><div class="row"><div class="col-sm-12" style=" margin-top: 5px"><textarea id="forwarders" class="form-control" placeholder="email@email.com,email2@email2.com"></textarea> {{ langmod.ETITLEF3 }}</div></div>';
var vfooter='<button class="btn btn-default btn-xs mr5 mb10" id="btncancelforwar" onclick="return btncancelforwar()">{{langmod.ECANDELDOMAIN}}</button> <button class="btn btn-primary btn-xs mr5 mb10" id="btn-addforwar" onclick="return btnaddforwar()">{{langmod.EADD}}</button>';
$("#addmailmodal .modal-header").html('<h4>Add mail forwarder</h4>');
$("#addmailmodal .modal-body").html(vbody);
$("#addmailmodal .modal-footer").html(vfooter);
$("#addmailmodal").modal('toggle');
$('#forwarders').tagsinput({
tagClass: 'cwp-tags-input'
});
$('#forwarders').on('beforeItemAdd', function(event) {
if(!validateEmail(event.item)){
event.cancel = true;
$('#invalid_mail_alert').slideDown();
setTimeout(function(){
$('#invalid_mail_alert').slideUp();
}, 3500);
}
// event.item: contains the item
// event.cancel: set to true to prevent the item getting added
});
return false;
}
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
function listforwar(){
}
function btncancelforwar(){
$("#addmailmodal").modal('hide');
return false;
}
$("#addemailbtn").click(function (){
//let password_preset = $(this).data('pass');
let password_preset = generatePasswordRand(12,'num');
console.log(password_preset);
var headermod = '<h4>{{ langmod.EBNTADD }}</h4>';
let bodymod = '<div class="">' +
'<div class="mail-add-row">' +
'<div class="form-group mail-add-row-address">' +
'<label>{{langmod.EEMAILH}}</label> ' +
'<input type="text" placeholder="Enter email" id="emailaddres" class="form-control">' +
'</div>' +
'<span class="mail-add-row-at">@</span>' +
'<div class="form-group mail-add-row-domain">' +
'<label>Domain</label>' +
'<select id="domain" class="form-control">' +
'<option value="">{{ langmod.ECHOOSE }}</option>' +
'{% for email2 in mod.email2 %}'+
'{% if loop.index == 1 %}' +
'<option value="{{ email2.domain }}" selected>{{ email2.domain }}</option>' +
'{% else %} ' +
'<option value="{{ email2.domain }}">{{ email2.domain }}</option>' +
'{% endif %} ' +
'{% endfor %}' +
'</select>' +
'</div>' +
'</div>' +
'<div class="mail-add-row">' +
'<div class="form-group mail-add-row-address">' +
'<label>{{langmod.EPASSW}}</label>' +
'<input id="pass" class="form-control" type="text" value="' + password_preset + '" style="padding-right: 3rem;" placeholder="{{langmod.EPASSW}}">' +
'<span class="mail-add-copy-button" onclick="copyPass(\'pass\')"><i class="fa fa-copy"></i></span>' +
'</div>' +
'<span class="mail-add-row-at">' +
' ' +
'</span>' +
'<div class="form-group mail-add-row-domain">' +
'<label>{{langmod.EPASSW}} generator</label>' +
'<div class="mail-password-generator-container">' +
'<a href="#" onclick="return changerrandom(\'pass\', this)" id="generator_button" data-toggle="tooltip" data-placement="top" title="" data-original-title="Change suggested password">' +
'<i class="fa fa-cog" style="font-size: 1.8rem;"></i>' +
'</a>' +
'<i class="fa fa-spinner fa-spin generator_loader" style="display:none;font-size: 1.8rem;"></i>' +
'<div class="btn-group dropdown" id="show_options_button">' +
'<button type="button" class="btn btn-default btn-xs" onclick="openPGOPT()">' +
'Encrypted<span class="caret"></span>' +
'</button>' +
'<div class="mail-password-generator-options pgopt_container" id="pgopt_container">' +
'<span class="mail-password-generator-options-title"><b>Options</b></span>' +
'<span class="mail-password-generator-options-close" onclick="closePGOPT()"><i class="fa fa-window-close"></i></span>' +
'<ul class="right animated fadeIn">' +
'<li>' +
'<select class="form-control" id="lengthpass" title="Length" style="margin-bottom: 5px;">' +
'<option value="7"> Length 7</option>' +
'<option value="8"> Length 8</option>' +
'<option value="9"> Length 9</option>' +
'<option value="10"> Length 10</option>' +
'<option value="11"> Length 11</option>' +
'<option value="12" selected=""> Length 12</option>' +
'<option value="13"> Length 13</option>' +
'<option value="14"> Length 14</option>' +
'<option value="15"> Length 15</option>' +
'</select>' +
'</li>' +
'<li>' +
'<select class="form-control" id="typepass" title="Type">' +
'<option value="1">Type Alphabetical</option>' +
'<option value="2" selected="">Type Alphanumeric</option>' +
'<option value="3">Type Alphanumerics + Symbols</option>' +
'</select>' +
'</li>' +
'</ul>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="alert alert-info mail-password-generator-copied" style="display:none">' +
'Password copied to clipboard.' +
'</div>' +
'</div>' +
'</div>' +
'<div class="mail-add-row">' +
'<div id="pwd-container" class="mail-add-row-address">' +
'<div class="pwstrength_viewport_progress"></div>' +
'</div>' +
'<span class="mail-add-row-at">' +
' ' +
'</span>' +
'<div class="form-group mail-add-row-address">' +
'<label>Quota {{ langmod.EMLABEL8 }}</label> ' +
'<input type="text" id="quotamail" placeholder="Quota" class="form-control">' +
'</div>' +
'</div>' +
'</div>';
var footermod = '<button class="btn btn-default btn-xs mr5 mb10" id="btn-cancelemail" onclick="return btncancelemail()">{{langmod.ECANDELDOMAIN}}</button> <button class="btn btn-primary btn-xs mr5 mb10" id="btnaddemail" onclick="return btnaddemail()">{{langmod.EADD}}</button> ';
$("#addmailmodal .modal-header").html(headermod);
$("#addmailmodal .modal-body").html(bodymod);
$("#addmailmodal .modal-footer").html(footermod);
var options1 = {};
options1.ui = {
container: "#pwd-container",
showVerdictsInsideProgressBar: true,
viewports: {
progress: ".pwstrength_viewport_progress"
}
};
options1.common = {
debug: false,
};
$('#pass').pwstrength(options1);
$("#addmailmodal").modal('toggle');
});
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).hide();
}else{
$(selector).remove();
}
removeClickListener();
}
}
function removeClickListener(){
document.removeEventListener('click', outsideClickListener)
}
document.addEventListener('click', outsideClickListener)
}
function closePGOPT(){
$('.pgopt_container').slideUp();
}
function openPGOPT(){
if($('.pgopt_container').is(':visible')){
closePGOPT();
}else{
$('.pgopt_container').slideDown();
hideOnClickOutside('.pgopt_container');
}
}
function copyPass(elem){
let field = document.getElementById(elem);
field.select();
document.execCommand('copy');
$('.mail-password-generator-copied').slideDown();
setTimeout(function(){
$('.mail-password-generator-copied').slideUp();
}, 4500);
}
function showConfigMenu(elem, id_elem){
let elem_data = $(elem).data('mailconfig');
let html_config = '<div class="mail-config-menu ' + id_elem + '"><div class="mail-config-menu-container"><h3>Windows live mail configuration</h3><ul>' +
'<li><a href="index.php?module=email_accounts&acc=configfile&domain=' + elem_data.domain + '&address=' + elem_data.email + '&type=imap&secure=1">IMAP over SSL/TLS</a></li>' +
'<li><a href="index.php?module=email_accounts&acc=configfile&domain=' + elem_data.domain + '&address=' + elem_data.email + '&type=pop&secure=1">POP3 over SSL/TLS</a></li>' +
'<li><a href="index.php?module=email_accounts&acc=configfile&domain=' + elem_data.domain + '&address=' + elem_data.email + '&type=imap&secure=0">IMAP</a></li> ' +
'<li><a href="index.php?module=email_accounts&acc=configfile&domain=' + elem_data.domain + '&address=' + elem_data.email + '&type=pop&secure=0">POP3 (Post Office Protocol v3)</a></li>' +
'</ul></div></div>';
$(elem).parent().prepend(html_config);
hideOnClickOutside('.' + id_elem, '#' + id_elem);
}
$("#domainforw").change(function (){
$.ajax({
type: "POST",
url: "./{{ users }}/index.php?module=email_accounts&op=typephp&acc=pipe",
data: "domain="+$("#domainforw").val(),
complete: function(datos){
return false;
}
});
});
$("#btn-savequotaemail").click(function () {
if($("#quotaemailmodal").val()==''){
noti_bubble('{{langmod.EMERROR}}','{{langmod.EMERROR2}}','error',false,true,'3000',true);
return false;
}else{
$("#btn-savequotaemail").attr('disabled',true);
$("#btn-savequotaemail").addClass('disabled');
$.ajax({
type: "POST",
url: "./{{users}}/index.php?module=email_accounts&acc=updquotaemail",
data: "email=" + $("#quotaemailtitle").html() + ""a=" + (($("#quotaemailmodal").val()*1024)*1024),
complete: function (datos) {
refreshList();
$("#modal-updquotemail").modal('hide');
noti_bubble('{{langmod.EMSUCCT}}','{{langmod.EMUPDOK}}','success',false,false,'3000',true);
$("#btn-savequotaemail").attr('disabled',false);
$("#btn-savequotaemail").removeClass('disabled');
return false;
}
})
}
});
$("#btn-changpassemail").click(function (){
btnporcess('off','btn-changpassemail','{{ langmod.EMLABEL9 }}');
if(($("#pass1email").val()=='') && ($("#pass1email").val()=='')) {
noti_bubble('{{langmod.EMERROR}}','{{langmod.EFEILDR}}','error',false,true,'3000',true);
btnporcess('on','btn-changpassemail','{{ langmod.EBTCSAVE }}');
return false;
}else if( $("#pass1email").val() != $("#pass2email").val()){
noti_bubble('{{langmod.EMERROR}}','{{langmod.EERROR1}}','error',false,true,'3000',true);
btnporcess('on','btn-changpassemail','{{ langmod.EBTCSAVE }}');
return false;
}else{
uchip.call('module=email_accounts&acc=changpassemail', {
data: "email="+$("#emailpass").val()+"&pass1email="+ btoa($("#pass1email").val()),
callback: function(response){
if(response.result == 'success'){
$("#modal-changepassemail").modal('hide');
noti_bubble('{{langmod.EMSUCCT}}','{{langmod.EMCHANGEPASSOK}} <b>'+$("#emailpass").val()+'</b>','success',false,false,'3000',true);
btnporcess('on','btn-changpassemail','{{ langmod.EBTCSAVE }}');
}else{
if(response.code==7){var msj='{{langmod.ERROR7}}'}
if(response.code==8){var msj='{{langmod.ERROR8}}'}
noti_bubble('{{langmod.EMERROR}}',+msj,'error',false,false,'3000',true);
btnporcess('on','btn-changpassemail','{{ langmod.EBTCSAVE }}');
return false;
}
}
});
return false;
}
});
|