App.HTML.setTplKeys = function (tpl, o, empty) {
var empty = empty || '';
fb.log(empty);
tpl.set(':source', $.toJSON(o).replace(/'/gi, "\\'"))
$(o).each(function (i, object) {
$.each(o, function (key) {
var val = o[key];
if (empty == true) {
tpl.set(':' + key, val || '');
} else {
tpl.set(':' + key, val || '');
}
});
});
return tpl;
}
//
// BUILD FORMS
//
App.HTML.Build.dns_form = function (options, id) {
if ('undefined' == typeof App.Env.initialParams) {
return alert('Please wait a bit. Some background processes are not yet executed. Thank you for patience.');
}
var tpl = App.Templates.get('FORM', 'dns');
tpl.set(':source', options);
options = App.Helpers.evalJSON(options) || {};
if (App.Helpers.isEmpty(options)) {
tpl.set(':title', 'New dns domain');
tpl.set(':save_button', 'ADD');
tpl.set(':DELETE_ACTION', '');
} else {
tpl.set(':title', 'Edit dns domain');
tpl.set(':save_button', 'SAVE');
tpl.set(':DELETE_ACTION', App.Templates.get('DELETE_ACTION', 'general').finalize());
}
tpl.set(':id', id || '');
tpl.set(':DNS_DOMAIN', options.DNS_DOMAIN || '');
tpl.set(':IP', options.IP || '');
tpl.set(':TTL', options.TTL || '');
tpl.set(':SOA', options.SOA || '');
tpl.set(':DATE', options.DATE || '');
tpl = App.HTML.Build.dns_selects(tpl, options);
tpl = App.HTML.toggle_suspended_form(tpl, options);
return tpl.finalize();
}
App.HTML.Build.ip_form = function (options, id) {
if ('undefined' == typeof App.Env.initialParams) {
return alert('PLease wait a bit. Some background processes are not yet executed. Thank you for patience.');
}
var tpl = App.Templates.get('FORM', 'ip');
tpl.set(':source', options);
options = App.Helpers.evalJSON(options) || {};
if (App.Helpers.isEmpty(options)) {
tpl.set(':title', 'New ip address');
tpl.set(':save_button', 'ADD');
tpl.set(':DELETE_ACTION', '');
} else {
tpl.set(':title', 'Edit ip address');
tpl.set(':save_button', 'SAVE');
tpl.set(':DELETE_ACTION', App.Templates.get('DELETE_ACTION', 'general').finalize());
}
tpl.set(':id', id || '');
tpl.set(':IP_ADDRESS', options.IP_ADDRESS || '');
tpl.set(':NETMASK', options.NETMASK || '');
tpl.set(':NAME', options.NAME || '');
tpl = App.HTML.Build.ip_selects(tpl, options);
tpl = App.HTML.toggle_suspended_form(tpl, options);
return tpl.finalize();
}
App.HTML.Build.user_form = function (options, id) {
var in_edit = false;
if (!App.Helpers.isEmpty(options)) {
in_edit = true;
}
if ('undefined' == typeof App.Env.initialParams) {
return alert('Please wait a bit. Some background processes are not yet executed. Thank you for patience.');
}
var tpl = App.Templates.get('FORM', 'user');
tpl.set(':source', options);
tpl.set(':id', id || '');
options = App.Helpers.evalJSON(options) || {};
if (App.Helpers.isEmpty(options)) {
tpl.set(':title', 'New user');
tpl.set(':save_button', 'ADD');
tpl.set(':DELETE_ACTION', '');
} else {
tpl.set(':title', 'Edit user');
tpl.set(':save_button', 'SAVE');
tpl.set(':DELETE_ACTION', App.Templates.get('DELETE_ACTION', 'general').finalize());
}
options = !App.Helpers.isEmpty(options) ? options : App.Empty.USER;
if (in_edit == true) {
options.PASSWORD = App.Settings.PASSWORD_IMMUTE;
var ns = [];
$([3, 4, 5, 6, 7, 8]).each(function (i, index) {
if (options['NS' + index].trim() != '') {
var tpl_ns = App.Templates.get('NS_INPUT', 'user');
tpl_ns.set(':NS_LABEL', 'Name Server #' + (index));
tpl_ns.set(':NAME', options['NS' + index]);
ns[ns.length++] = tpl_ns.finalize();
}
});
ns[ns.length++] = App.Templates.get('PLUS_ONE_NS', 'user').finalize();
tpl.set(':NS', ns.done());
} else {
tpl.set(':NS', '');
}
tpl = App.HTML.setTplKeys(tpl, options, true);
tpl = App.HTML.Build.user_selects(tpl, options);
tpl = App.HTML.toggle_suspended_form(tpl, options);
if (options.REPORTS_ENABLED == 'yes') {
tpl.set(':CHECKED', 'checked="checked"');
} else {
tpl.set(':CHECKED', '');
}
if (!in_edit) {
tpl.set(':REPORTS_ENABLED_EDITABLE', 'hidden');
}
return tpl.finalize();
}
App.HTML.Build.web_domain_form = function (options, id) {
if ('undefined' == typeof App.Env.initialParams) {
return alert('PLease wait a bit. Some background processes are not yet executed. Thank you for patience.');
}
var in_edit = false;
if (!App.Helpers.isEmpty(options)) {
in_edit = true;
}
var tpl = App.Templates.get('FORM', 'web_domain');
tpl.set(':source', options);
tpl.set(':id', id || '');
options = App.Helpers.evalJSON(options) || {};
if (App.Helpers.isEmpty(options)) {
tpl.set(':title', 'New WEB domain');
tpl.set(':save_button', 'ADD');
tpl.set(':DELETE_ACTION', '');
} else {
tpl.set(':title', 'Edit WEB domain');
tpl.set(':save_button', 'SAVE');
tpl.set(':DELETE_ACTION', App.Templates.get('DELETE_ACTION', 'general').finalize());
if(options.SSL_CRT == '' || options.SSL_KEY == ''){
options.SSL = '';
options.SSL_HOME = '';
options.SSL_CRT = '';
options.SSL_KEY = '';
options.SSL_CA = '';
}
if (options.SSL == 'on') {
tpl.set(':ssl_checked', 'checked="checked"');
}
else {
tpl.set(':ssl_checked', '');
}
if (options.SSL_HOME == 'on') {
tpl.set(':ssl_home_checked', 'checked="checked"');
}
else{
tpl.set(':ssl_home_checked', '');
}
}
options = !App.Helpers.isEmpty(options) ? options : App.Empty.WEB_DOMAIN;
if (in_edit == true) {
options.STATS_PASSWORD = options.STATS_LOGIN.trim() != '' ? App.Settings.PASSWORD_IMMUTE : '';
}
tpl = App.HTML.setTplKeys(tpl, options, true);
tpl = App.HTML.Build.web_domain_selects(tpl, options);
tpl = App.HTML.toggle_suspended_form(tpl, options);
if (options.CGI == 'yes' || !in_edit) {
tpl.set(':CHECKED_CGI', 'checked="checked"');
}
if (options.ELOG == 'yes') {
tpl.set(':CHECKED_ELOG', 'checked="checked"');
}
if (options.STATS_LOGIN.trim() != '') {
tpl.set(':STAT_AUTH', 'checked="checked"');
tpl.set(':ACTIVE_LOGIN', '');
tpl.set(':ACTIVE_PASSWORD', '');
tpl.set(':stats_auth_checked', 'checked="checked"');
} else {
tpl.set(':ACTIVE_LOGIN', 'hidden');
tpl.set(':ACTIVE_PASSWORD', 'hidden');
tpl.set(':stats_auth_checked', '');
}
if (options.SSL == 'on') {
tpl.set(':ssl_checked', 'checked="checked"');
if (options.SSL_HOME == 'on') {
tpl.set(':ssl_home_checked', 'checked="checked"');
}
else{
tpl.set(':ssl_home_checked', '');
}
}
else {
tpl.set(':ssl_checked', '');
tpl.set(':ssl_home_checked', '');
tpl.set(':SSL_HOME', '');
tpl.set(':SSL_CRT', '');
tpl.set(':SSL_KEY', '');
tpl.set(':SSL_CA', '');
}
return tpl.finalize();
}
App.HTML.Build.db_form = function (options, id) {
var in_edit = false;
if (!App.Helpers.isEmpty(options)) {
in_edit = true;
}
if ('undefined' == typeof App.Env.initialParams) {
return alert('PLease wait a bit. Some background processes are not yet executed. Thank you for patience.');
}
var tpl = App.Templates.get('FORM', 'db');
tpl.set(':source', options);
tpl.set(':id', id || '');
options = App.Helpers.evalJSON(options) || {};
if (App.Helpers.isEmpty(options)) {
tpl.set(':title', 'New database');
tpl.set(':save_button', 'ADD');
tpl.set(':DELETE_ACTION', '');
} else {
tpl.set(':title', 'Edit database "' + options.DB + '"');
tpl.set(':save_button', 'SAVE');
tpl.set(':DELETE_ACTION', App.Templates.get('DELETE_ACTION', 'general').finalize());
}
options = !App.Helpers.isEmpty(options) ? options : App.Empty.DB;
if (in_edit == true) {
options.PASSWORD = App.Settings.PASSWORD_IMMUTE;
}
tpl = App.HTML.setTplKeys(tpl, options, true);
tpl = App.HTML.Build.db_selects(tpl, options);
tpl = App.HTML.toggle_suspended_form(tpl, options);
return tpl.finalize();
}
App.HTML.Build.cron_form = function (options, id) {
if ('undefined' == typeof App.Env.initialParams) {
return alert('PLease wait a bit. Some background processes are not yet executed. Thank you for patience.');
}
var tpl = App.Templates.get('FORM', 'cron');
tpl.set(':source', options);
tpl.set(':id', id || '');
options = App.Helpers.evalJSON(options) || {};
if (App.Helpers.isEmpty(options)) {
tpl.set(':title', 'New cron job');
tpl.set(':save_button', 'ADD');
tpl.set(':DELETE_ACTION', '');
} else {
tpl.set(':title', 'Edit cron job');
tpl.set(':save_button', 'SAVE');
tpl.set(':DELETE_ACTION', App.Templates.get('DELETE_ACTION', 'general').finalize());
}
options = !App.Helpers.isEmpty(options) ? options : {
DAY: '',
MONTH: '',
WDAY: '',
HOUR: '',
CMD: '',
MIN: ''
};
tpl = App.HTML.setTplKeys(tpl, options);
tpl = App.HTML.toggle_suspended_form(tpl, options);
return tpl.finalize();
}
//
// BUILD ENTRIES
//
App.HTML.Build.ip_entry = function (o) {
var tpl = App.Templates.get('ENTRY', 'ip');
tpl = App.HTML.setTplKeys(tpl, o);
tpl = App.HTML.toggle_suspended_entry(tpl, o);
return tpl.finalize();
}
App.HTML.Build.dns_entry = function (o, is_new) {
var tpl = App.Templates.get('ENTRY', 'dns');
tpl = App.HTML.setTplKeys(tpl, o);
var ip = o.IP.split('.');
tpl.set(':IP', ip.join('.'));
tpl.set(':CHECKED', '');
if (is_new) {
var now = new Date();
tpl.set(':DATE', now.format("d.mm.yyyy"));
}
tpl.set(':TPL_VAL', o.TPL);
tpl = App.HTML.toggle_suspended_entry(tpl, o);
return tpl.finalize();
}
App.HTML.Build.user_entry = function (o, key) {
var processed_data = {
'NICKNAME': key,
'U_DISK_PERCENTAGE': o.U_DISK > 0 ? parseFloat(o.U_DISK / o.DISK_QUOTA * 100).toFixed(2) : 1,
'U_BANDWIDTH_PERCENTAGE': o.U_BANDWIDTH > 0 ? parseFloat(o.U_BANDWIDTH / o.BANDWIDTH * 100).toFixed(2) : 1,
'U_DISK': o.U_DISK == 0 ? 1 : App.Helpers.formatNumber(o.U_DISK),
'U_BANDWIDTH': o.U_BANDWIDTH == 0 ? 1 : App.Helpers.formatNumber(o.U_BANDWIDTH),
'DISK_QUOTA_MEASURE': App.Helpers.getMbHumanMeasure(o.DISK_QUOTA),
'BANDWIDTH_MEASURE': App.Helpers.getMbHumanMeasure(o.BANDWIDTH),
'BANDWIDTH': App.Helpers.getMbHuman(o.BANDWIDTH),
'DISK_QUOTA': App.Helpers.getMbHuman(o.DISK_QUOTA)
};
var o = $.extend(o, processed_data);
o.U_DISK_PERCENTAGE_2 = o.U_DISK_PERCENTAGE;
o.U_DISK_PERCENTAGE_3 = o.U_DISK_PERCENTAGE;
o.BANDWIDTH_MEASURE_2 = o.BANDWIDTH_MEASURE;
o.DISK_QUOTA_MEASURE_2 = o.DISK_QUOTA_MEASURE;
o.U_BANDWIDTH_PERCENTAGE_2 = o.U_BANDWIDTH_PERCENTAGE;
o.U_BANDWIDTH_PERCENTAGE_3 = o.U_BANDWIDTH_PERCENTAGE;
var tpl = App.Templates.get('ENTRY', 'user');
tpl = App.HTML.setTplKeys(tpl, o);
tpl = App.HTML.toggle_suspended_entry(tpl, o);
var ns = [];
var ns_full = [];
$([1, 2, 3, 4, 5, 6, 7, 8]).each(function (i, index) {
var key = 'NS' + index;
if ('undefined' != typeof o[key]) {
if (o[key].trim() != '') {
var tpl_ns = App.Templates.get('NS_RECORD', 'user');
tpl_ns.set(':NAME', o[key]);
var tpl_finalized = tpl_ns.finalize();
ns_full[ns_full.length++] = tpl_finalized;
if (i < App.Settings.USER_VISIBLE_NS) {
ns[ns.length++] = tpl_finalized;
}
}
}
});
if (ns_full.length <= App.Settings.USER_VISIBLE_NS) {
tpl.set(':NS', ns.done());
}
else {
var ns_custom = App.Templates.get('NS_MINIMIZED', 'user');
ns_custom.set(':NS_MINI', ns.done());
ns_custom.set(':NS_FULL', ns_full.done());
ns_custom.set(':MORE_NUMBER', Math.abs(App.Settings.USER_VISIBLE_NS - ns_full.length));
tpl.set(':NS', ns_custom.finalize());
}
tpl = App.HTML.Build.user_web_tpl(tpl, o);
tpl.set(':REPORTS_ENABLED', o.REPORTS_ENABLED == 'yes' ? 'enabled' : 'DISABLED');
if (o.U_DISK_PERCENTAGE > 100) {
var tpl_over = App.Templates.get('over_bar', 'general');
var difference = parseInt(o.U_DISK_PERCENTAGE, 10) - 100;
tpl_over.set(':OVER_PERCENTS', difference);
tpl_over.set(':OVER_PERCENTS_2', difference);
tpl.set(':OVER_BAR', tpl_over.finalize());
tpl.set(':U_DISK_PERCENTAGE_3', 100);
tpl.set(':OVER_DRAFT_VALUE', 'overdraft');
}
else {
tpl.set(':OVER_BAR', '');
tpl.set(':OVER_DRAFT_VALUE', '');
}
if (o.U_BANDWIDTH_PERCENTAGE > 100) {
var tpl_over = App.Templates.get('over_bar', 'general');
var difference = parseInt(o.U_BANDWIDTH_PERCENTAGE, 10) - 100;
tpl_over.set(':OVER_PERCENTS', difference);
tpl_over.set(':OVER_PERCENTS_2', difference);
tpl.set(':OVER_BAR_2', tpl_over.finalize());
tpl.set(':U_BANDWIDTH_PERCENTAGE_3', 100);
tpl.set(':OVER_DRAFT_VALUE_2', 'overdraft');
}
else {
tpl.set(':OVER_BAR_2', '');
tpl.set(':OVER_DRAFT_VALUE_2', '');
}
return tpl.finalize();
}
App.HTML.Build.web_domain_entry = function (o, key) {
var processed_data = {
DOMAIN: key,
'U_DISK_PERCENTAGE': o.U_DISK > 0 ? parseFloat(o.U_DISK / App.Env.initialParams.user_data.DISK_QUOTA * 100).toFixed(2) : 1,
'U_BANDWIDTH_PERCENTAGE': o.U_BANDWIDTH > 0 ? parseFloat(o.U_BANDWIDTH / App.Env.initialParams.user_data.BANDWIDTH * 100).toFixed(2) : 1,
'U_DISK': o.U_DISK == 0 ? 1 : App.Helpers.formatNumber(o.U_DISK),
'U_BANDWIDTH': o.U_BANDWIDTH == 0 ? 1 : App.Helpers.formatNumber(o.U_BANDWIDTH),
'DISK_QUOTA_MEASURE': App.Helpers.getMbHumanMeasure(App.Env.initialParams.user_data.DISK_QUOTA),
'BANDWIDTH_MEASURE': App.Helpers.getMbHumanMeasure(App.Env.initialParams.user_data.BANDWIDTH),
'BANDWIDTH': App.Helpers.getMbHuman(App.Env.initialParams.user_data.BANDWIDTH),
'DISK_QUOTA': App.Helpers.getMbHuman(App.Env.initialParams.user_data.DISK_QUOTA),
'SSL': (o.SSL_CRT == '' || o.SSL_KEY == '' || o.SSL != 'on') ? 'off' : 'on'
};
var o = $.extend(o, processed_data);
o.U_DISK_PERCENTAGE_2 = o.U_DISK_PERCENTAGE;
o.U_DISK_PERCENTAGE_3 = o.U_DISK_PERCENTAGE;
o.BANDWIDTH_MEASURE_2 = o.BANDWIDTH_MEASURE;
o.DISK_QUOTA_MEASURE_2 = o.DISK_QUOTA_MEASURE;
o.U_BANDWIDTH_PERCENTAGE_2 = o.U_BANDWIDTH_PERCENTAGE;
o.U_BANDWIDTH_PERCENTAGE_3 = o.U_BANDWIDTH_PERCENTAGE;
var tpl = App.Templates.get('ENTRY', 'web_domain');
tpl = App.HTML.setTplKeys(tpl, o);
tpl = App.HTML.toggle_suspended_entry(tpl, o);
if (o.STATS_LOGIN.trim() != '') {
tpl.set(':STATS_AUTH', '+auth');
}
else {
tpl.set(':STATS_AUTH', '');
}
tpl.set(':DISK', App.Env.initialParams.PROFILE.BANDWIDTH);
tpl.set(':BANDWIDTH', App.Env.initialParams.PROFILE.DISK);
tpl = App.HTML.toggle_suspended_entry(tpl, o);
return tpl.finalize();
}
App.HTML.Build.mail_entry = function (o, key) {
var processed_data = {
DOMAIN: key
};
var o = $.extend(o, processed_data);
var tpl = App.Templates.get('ENTRY', 'mail');
tpl = App.HTML.setTplKeys(tpl, o);
tpl = App.HTML.toggle_suspended_entry(tpl, o);
return tpl.finalize();
}
App.HTML.Build.db_entry = function (o, key) {
var user_list_html = [];
$(o['USERS']).each(function (i, o) {
var tpl = App.Templates.get('USER_ITEM', 'db');
tpl.set(':NAME', o);
user_list_html.push(tpl.finalize());
});
var wrapper = App.Templates.get('USER_ITEMS_WRAPPER', 'db');
wrapper.set(':CONTENT', user_list_html.done());
var processed_data = {
'USER_LIST': wrapper.finalize(),
'USERS': o['USERS'].length || 0,
'U_DISK_PERCENTAGE': o.U_DISK > 0 ? o.U_DISK / o.DISK * 100 : 0.01,
'DISK_MEASURE': App.Helpers.getMbHumanMeasure(o.DISK),
'DISK': App.Helpers.getMbHuman(o.DISK)
};
var o = $.extend(o, processed_data);
var tpl = App.Templates.get('ENTRY', 'db');
tpl = App.HTML.setTplKeys(tpl, o);
tpl = App.HTML.toggle_suspended_entry(tpl, o);
return tpl.finalize();
}
App.HTML.Build.cron_entry = function (o, key) {
var processed_data = {
DOMAIN: key
};
var o = $.extend(o, processed_data);
var tpl = App.Templates.get('ENTRY', 'cron');
tpl = App.HTML.setTplKeys(tpl, o);
tpl = App.HTML.toggle_suspended_entry(tpl, o);
return tpl.finalize();
}
//
// GENERAL METHODS
//
App.HTML.Build.backup_list = function(backups)
{
if (!backups || backups.length == 0) {
return '