mirror of
https://github.com/myvesta/vesta
synced 2025-07-10 23:33:13 -07:00
parent
6689220cd2
commit
d876168998
18 changed files with 1042 additions and 748 deletions
|
@ -11,9 +11,9 @@ $('document').ready(function() {
|
||||||
App.Utils.detectBrowser();
|
App.Utils.detectBrowser();
|
||||||
App.Ref.init();
|
App.Ref.init();
|
||||||
|
|
||||||
App.Env.world = 'USER';
|
//App.Env.world = 'USER';
|
||||||
// Disabled cookie tab restoring. Enable if needed
|
// Disabled cookie tab restoring. Enable if needed
|
||||||
/*if ('undefined' != typeof App.Tmp.loadTAB) {
|
if ('undefined' != typeof App.Tmp.loadTAB) {
|
||||||
App.Env.world = App.Tmp.loadTAB;
|
App.Env.world = App.Tmp.loadTAB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ $('document').ready(function() {
|
||||||
else {
|
else {
|
||||||
App.Env.world = App.Constants.TABS[0];
|
App.Env.world = App.Constants.TABS[0];
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
App.Pages.init();
|
App.Pages.init();
|
||||||
App.Core.listen();
|
App.Core.listen();
|
||||||
|
|
|
@ -1,3 +1,21 @@
|
||||||
|
App.Actions.toggle_suspend = function(evt)
|
||||||
|
{
|
||||||
|
var elm = $(evt.target);
|
||||||
|
var ref = elm.parents('.form');
|
||||||
|
ref.removeClass('form-suspended');
|
||||||
|
fb.warn(ref);
|
||||||
|
var ref_checkbox = ref.find('input[name="SUSPEND"]');
|
||||||
|
ref_checkbox.val() == 'on' ? ref_checkbox.val('off') : ref_checkbox.val('on'); // switch state
|
||||||
|
if (ref_checkbox.val() == 'on') { // set class on new state
|
||||||
|
ref.addClass('form-suspended');
|
||||||
|
fb.warn('SUSP');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ref.removeClass('form-suspended');
|
||||||
|
fb.warn('UNSUSP');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
App.Actions.toggle_custom_select = function(evt)
|
App.Actions.toggle_custom_select = function(evt)
|
||||||
{
|
{
|
||||||
var elm = $(evt.target);
|
var elm = $(evt.target);
|
||||||
|
@ -54,10 +72,11 @@ App.Actions.back_to_login = function()
|
||||||
{
|
{
|
||||||
$('body').addClass('page-auth');
|
$('body').addClass('page-auth');
|
||||||
var tpl = App.Templates.get('login', 'popup');
|
var tpl = App.Templates.get('login', 'popup');
|
||||||
tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo.png'));
|
tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo-2011-12-14.png'));
|
||||||
tpl.set(':YEAR', new Date().getFullYear());
|
tpl.set(':YEAR', new Date().getFullYear());
|
||||||
tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
|
tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
|
||||||
tpl.set(':EMAIL', App.Settings.VestaAbout.company_name);
|
tpl.set(':EMAIL', App.Settings.VestaAbout.company_email);
|
||||||
|
tpl.set(':PRODUCT_NAME', App.Settings.VestaAbout.company_name);
|
||||||
tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
|
tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
|
||||||
$('body').prepend(tpl.finalize());
|
$('body').prepend(tpl.finalize());
|
||||||
$('#change-psw-block').remove();
|
$('#change-psw-block').remove();
|
||||||
|
@ -73,12 +92,13 @@ App.Actions.change_password = function(evt)
|
||||||
}
|
}
|
||||||
|
|
||||||
var tpl = App.Templates.get('change_psw', 'popup');
|
var tpl = App.Templates.get('change_psw', 'popup');
|
||||||
tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo.png'));
|
tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo-2011-12-14.png'));
|
||||||
tpl.set(':YEAR', new Date().getFullYear());
|
tpl.set(':YEAR', new Date().getFullYear());
|
||||||
tpl.set(':CAPTCHA_URL', App.Helpers.generateUrl('captcha.php?')+Math.floor(Math.random() * 9999));
|
tpl.set(':CAPTCHA_URL', App.Helpers.generateUrl('captcha.php?')+Math.floor(Math.random() * 9999));
|
||||||
tpl.set(':CAPTCHA_URL_2', App.Helpers.generateUrl('captcha.php'));
|
tpl.set(':CAPTCHA_URL_2', App.Helpers.generateUrl('captcha.php'));
|
||||||
tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
|
tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
|
||||||
tpl.set(':EMAIL', App.Settings.VestaAbout.company_name);
|
tpl.set(':EMAIL', App.Settings.VestaAbout.company_email);
|
||||||
|
tpl.set(':PRODUCT_NAME', App.Settings.VestaAbout.company_name);
|
||||||
tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
|
tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
|
||||||
$('#auth-block').remove();
|
$('#auth-block').remove();
|
||||||
$('body').prepend(tpl.finalize());
|
$('body').prepend(tpl.finalize());
|
||||||
|
@ -104,10 +124,11 @@ App.Actions.authorize = function()
|
||||||
$('#page').addClass('hidden');
|
$('#page').addClass('hidden');
|
||||||
$('body').addClass('page-auth');
|
$('body').addClass('page-auth');
|
||||||
var tpl = App.Templates.get('login', 'popup');
|
var tpl = App.Templates.get('login', 'popup');
|
||||||
tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo.png'));
|
tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo-2011-12-14.png'));
|
||||||
tpl.set(':YEAR', new Date().getFullYear());
|
tpl.set(':YEAR', new Date().getFullYear());
|
||||||
tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
|
tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
|
||||||
tpl.set(':EMAIL', App.Settings.VestaAbout.company_name);
|
tpl.set(':EMAIL', App.Settings.VestaAbout.company_email);
|
||||||
|
tpl.set(':PRODUCT_NAME', App.Settings.VestaAbout.company_name);
|
||||||
tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
|
tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
|
||||||
$('body').prepend(tpl.finalize());
|
$('body').prepend(tpl.finalize());
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
@ -123,12 +144,15 @@ App.Actions.authorize = function()
|
||||||
App.Actions.new_entry = function() {
|
App.Actions.new_entry = function() {
|
||||||
if ('undefined' != typeof App.Pages[App.Env.world].new_entry) {fb.log(1);
|
if ('undefined' != typeof App.Pages[App.Env.world].new_entry) {fb.log(1);
|
||||||
App.Pages[App.Env.world].new_entry();
|
App.Pages[App.Env.world].new_entry();
|
||||||
} else {fb.log(2);
|
} else {
|
||||||
var form_id = App.Constants[App.Env.world + '_FORM_ID'];
|
var form_id = App.Constants[App.Env.world + '_FORM_ID'];
|
||||||
$('#'+form_id).remove();
|
$('#'+form_id).remove();
|
||||||
var build_method = App.Env.getWorldName() + '_form';
|
var build_method = App.Env.getWorldName() + '_form';
|
||||||
var tpl = App.HTML.Build[build_method]({}, form_id);
|
var tpl = App.HTML.Build[build_method]({}, form_id);
|
||||||
App.Ref.CONTENT.prepend(tpl);
|
var box = $('<div>').html(tpl);
|
||||||
|
$(box).find('.suspended').addClass('hidden');
|
||||||
|
App.Ref.CONTENT.prepend($(box).html());
|
||||||
|
|
||||||
App.Helpers.updateScreen();
|
App.Helpers.updateScreen();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -158,7 +182,7 @@ App.Actions.delete_entry = function(evt)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var elm = $(evt.target);
|
var elm = $(evt.target);
|
||||||
var elm = elm.hasClass('row') ? elm : elm.parents('.row');
|
var elm = elm.hasClass('form') ? elm : elm.parents('.form');
|
||||||
App.Model.remove(App.Env.world, elm);
|
App.Model.remove(App.Env.world, elm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,18 +206,25 @@ App.Actions.view_template_settings = function(evt)
|
||||||
var elm = $(evt.target);
|
var elm = $(evt.target);
|
||||||
var ref = elm.hasClass('tpl-item') ? elm : elm.prev('.tpl-item');
|
var ref = elm.hasClass('tpl-item') ? elm : elm.prev('.tpl-item');
|
||||||
var tpl_name = $(ref).val() || $(ref).text();
|
var tpl_name = $(ref).val() || $(ref).text();
|
||||||
fb.log(tpl_name);
|
App.Helpers.openInnerPopup(elm, App.Env.initialParams.WEB_DOMAIN.TPL[tpl_name].DESCR || tpl_name, 'Template Settings');
|
||||||
App.Helpers.openInnerPopup(elm, App.Env.initialParams.WEB_DOMAIN.TPL[tpl_name].DESCR || tpl_name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Actions.view_dns_template_settings = function(evt)
|
App.Actions.view_dns_template_settings = function(evt)
|
||||||
|
{
|
||||||
|
var elm = $(evt.target);
|
||||||
|
var ref = elm.hasClass('tpl-item') ? elm : elm.prev('.tpl-item');
|
||||||
|
var tpl_name = $(ref).val() || $(ref).text();
|
||||||
|
App.Helpers.openInnerPopup(elm, App.Env.initialParams.DNS.TPL[tpl_name].DESCR || tpl_name, 'Template Settings');
|
||||||
|
}
|
||||||
|
|
||||||
|
/*App.Actions.view_dns_template_settings = function(evt)
|
||||||
{
|
{
|
||||||
var elm = $(evt.target);
|
var elm = $(evt.target);
|
||||||
var ref = elm.prev('.tpl-item');
|
var ref = elm.prev('.tpl-item');
|
||||||
var tpl_name = $(ref).val() || $(ref).text();
|
var tpl_name = $(ref).val() || $(ref).text();
|
||||||
fb.log(tpl_name);
|
|
||||||
App.Helpers.openInnerPopup(elm, App.Env.initialParams.DNS.TPL[tpl_name].DESCR || tpl_name);
|
App.Helpers.openInnerPopup(elm, App.Env.initialParams.DNS.TPL[tpl_name].DESCR || tpl_name, '');
|
||||||
}
|
}*/
|
||||||
|
|
||||||
App.Actions.add_subrecord_dns = function(evt)
|
App.Actions.add_subrecord_dns = function(evt)
|
||||||
{
|
{
|
||||||
|
@ -392,9 +423,11 @@ App.Actions.delete_subentry = function(evt)
|
||||||
$(ref).remove();
|
$(ref).remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Actions.generate_pass = function()
|
App.Actions.generate_pass = function(evt)
|
||||||
{
|
{
|
||||||
$('.password').val(App.Helpers.generatePassword());
|
var elm = $(evt.target);
|
||||||
|
var ref = elm.parents('.form-row');
|
||||||
|
$('.password', ref).val(App.Helpers.generatePassword());
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Actions.toggle_section = function(evt)
|
App.Actions.toggle_section = function(evt)
|
||||||
|
@ -420,7 +453,7 @@ App.Actions.close_inner_popup = function(evt)
|
||||||
App.Actions.open_inner_popup = function(evt)
|
App.Actions.open_inner_popup = function(evt)
|
||||||
{
|
{
|
||||||
var elm = $(evt.target);
|
var elm = $(evt.target);
|
||||||
App.Helpers.openInnerPopup(elm, $(elm).next('.inner-popup-html').val());
|
App.Helpers.openInnerPopup(elm, $(elm).next('.inner-popup-html').val(), 'Details');
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Actions.add_db_user = function(evt)
|
App.Actions.add_db_user = function(evt)
|
||||||
|
@ -488,7 +521,7 @@ App.Actions.delete_ns = function(evt)
|
||||||
App.Actions.view_full_ns_list = function(evt)
|
App.Actions.view_full_ns_list = function(evt)
|
||||||
{
|
{
|
||||||
var elm = $(evt.target);
|
var elm = $(evt.target);
|
||||||
App.Helpers.openInnerPopup(elm, $(elm).parents('.prop-box').find('.ns-full-list:first').html());
|
App.Helpers.openInnerPopup(elm, $(elm).parents('.prop-box').find('.ns-full-list:first').html(), 'NS list');
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Actions.view_template_info = function(evt)
|
App.Actions.view_template_info = function(evt)
|
||||||
|
@ -503,7 +536,7 @@ App.Actions.view_template_info = function(evt)
|
||||||
$.each(reply.data, function(key) {
|
$.each(reply.data, function(key) {
|
||||||
html += '<li><strong>'+key+':</strong> '+reply.data[key]+'</li>';
|
html += '<li><strong>'+key+':</strong> '+reply.data[key]+'</li>';
|
||||||
});
|
});
|
||||||
App.Helpers.openInnerPopup(elm, '<ul>'+html+'</ul>');
|
App.Helpers.openInnerPopup(elm, '<ul>'+html+'</ul>', 'Template Info');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -522,13 +555,13 @@ App.Actions.toggle_stats_block = function(evt)
|
||||||
App.Actions.exec_v_console = function(evt)
|
App.Actions.exec_v_console = function(evt)
|
||||||
{
|
{
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
App.Helpers.openInnerPopup(evt.target, 'This functionality will be available in next releases');
|
App.Helpers.openInnerPopup(evt.target, 'This functionality will be available in next releases', 'Details');
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Actions.view_profile_settings = function(evt)
|
App.Actions.view_profile_settings = function(evt)
|
||||||
{
|
{
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
App.Helpers.openInnerPopup(evt.target, 'This functionality will be available in next releases');
|
App.Helpers.openInnerPopup(evt.target, 'This functionality will be available in next releases', 'Details');
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Actions.select_all = function(evt)
|
App.Actions.select_all = function(evt)
|
||||||
|
|
|
@ -93,7 +93,9 @@ var App = {
|
||||||
DB: {},
|
DB: {},
|
||||||
DNS: {},
|
DNS: {},
|
||||||
IP: {},
|
IP: {},
|
||||||
CRON: {}
|
CRON: {},
|
||||||
|
BACKUPS: {},
|
||||||
|
STATS: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Messages: {},
|
Messages: {},
|
||||||
|
@ -116,7 +118,9 @@ var App = {
|
||||||
DB: {},
|
DB: {},
|
||||||
DNS: {},
|
DNS: {},
|
||||||
IP: {},
|
IP: {},
|
||||||
CRON: {}
|
CRON: {},
|
||||||
|
BACKUPS: {},
|
||||||
|
STATS: {}
|
||||||
},
|
},
|
||||||
Ref: {},
|
Ref: {},
|
||||||
Tmp: { AJAX_SYNCRONOUS:{} },
|
Tmp: { AJAX_SYNCRONOUS:{} },
|
||||||
|
|
|
@ -38,6 +38,12 @@ App.Helpers.getHumanTabName = function()
|
||||||
if (App.Env.world == 'DB') {
|
if (App.Env.world == 'DB') {
|
||||||
return 'DATABASE';
|
return 'DATABASE';
|
||||||
}
|
}
|
||||||
|
if (App.Env.world == 'BACKUPS') {
|
||||||
|
return 'BACKUP';
|
||||||
|
}
|
||||||
|
if (App.Env.world == 'STATS') {
|
||||||
|
return 'STATS';
|
||||||
|
}
|
||||||
return App.Env.world;
|
return App.Env.world;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,10 +247,10 @@ App.Helpers.getFormValuesFromElement = function(ref)
|
||||||
App.Helpers.updateScreen = function()
|
App.Helpers.updateScreen = function()
|
||||||
{
|
{
|
||||||
|
|
||||||
App.Ajax.request('MAIN.getInitial', {}, function(reply){
|
/*App.Ajax.request('MAIN.getInitial', {}, function(reply){
|
||||||
App.Env.initialParams = reply.data;
|
App.Env.initialParams = reply.data;
|
||||||
App.Helpers.updateInitial();
|
App.Helpers.updateInitial();
|
||||||
});
|
});*/
|
||||||
$('.row:first').addClass('first-row');
|
$('.row:first').addClass('first-row');
|
||||||
Custom.init();
|
Custom.init();
|
||||||
}
|
}
|
||||||
|
@ -256,7 +262,7 @@ App.Helpers.alert = function(msg)
|
||||||
|
|
||||||
App.Helpers.isEmpty = function(o)
|
App.Helpers.isEmpty = function(o)
|
||||||
{
|
{
|
||||||
return jQuery.isEmptyObject(o);
|
return 'undefined' == typeof o ? true : jQuery.isEmptyObject(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Helpers.liveValidate = function()
|
App.Helpers.liveValidate = function()
|
||||||
|
@ -283,8 +289,9 @@ App.Helpers.Warn = function(msg)
|
||||||
alert(msg);
|
alert(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Helpers.openInnerPopup = function(elm, html)
|
App.Helpers.openInnerPopup = function(elm, html, title)
|
||||||
{
|
{
|
||||||
|
var title = title || '';
|
||||||
App.Helpers.closeInnerPopup();
|
App.Helpers.closeInnerPopup();
|
||||||
|
|
||||||
var offset = $(elm).offset();
|
var offset = $(elm).offset();
|
||||||
|
@ -292,6 +299,7 @@ App.Helpers.openInnerPopup = function(elm, html)
|
||||||
tpl.set(':CONTENT', html);
|
tpl.set(':CONTENT', html);
|
||||||
tpl.set(':LEFT', offset.left);
|
tpl.set(':LEFT', offset.left);
|
||||||
tpl.set(':TOP', offset.top);
|
tpl.set(':TOP', offset.top);
|
||||||
|
tpl.set(':POPUP_TITLE', title);
|
||||||
|
|
||||||
$(document.body).append(tpl.finalize());
|
$(document.body).append(tpl.finalize());
|
||||||
}
|
}
|
||||||
|
|
748
web/js/html.js
748
web/js/html.js
File diff suppressed because it is too large
Load diff
|
@ -37,9 +37,13 @@ var Custom = {
|
||||||
init: function() {
|
init: function() {
|
||||||
var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
|
var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
|
||||||
for(a = 0; a < inputs.length; a++) {
|
for(a = 0; a < inputs.length; a++) {
|
||||||
if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && $(inputs[a]).hasClass("styled")) {
|
if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && $(inputs[a]).hasClass("styled") && !$(inputs[a]).hasClass("style-applied")) {
|
||||||
|
$(inputs[a]).addClass('style-applied');
|
||||||
span[a] = document.createElement("span");
|
span[a] = document.createElement("span");
|
||||||
span[a].className = inputs[a].type;
|
span[a].className = inputs[a].type;
|
||||||
|
if ($(inputs[a]).attr('class').indexOf('do_action_toggle_suspend') != -1) {
|
||||||
|
span[a].className += ' do_action_toggle_suspend'; // save toggle functionality
|
||||||
|
}
|
||||||
|
|
||||||
if(inputs[a].checked == true) {
|
if(inputs[a].checked == true) {
|
||||||
if(inputs[a].type == "checkbox") {
|
if(inputs[a].type == "checkbox") {
|
||||||
|
@ -61,9 +65,8 @@ var Custom = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
inputs = document.getElementsByTagName("select");
|
inputs = document.getElementsByTagName("select");
|
||||||
|
try {
|
||||||
for(a = 0; a < inputs.length; a++) {
|
for(a = 0; a < inputs.length; a++) {
|
||||||
try{
|
|
||||||
fb.log($(inputs[a]).hasClass("styled"));
|
|
||||||
if($(inputs[a]).hasClass("styled")) {
|
if($(inputs[a]).hasClass("styled")) {
|
||||||
option = inputs[a].getElementsByTagName("option");
|
option = inputs[a].getElementsByTagName("option");
|
||||||
active = option[0].childNodes[0].nodeValue;
|
active = option[0].childNodes[0].nodeValue;
|
||||||
|
@ -85,9 +88,10 @@ var Custom = {
|
||||||
inputs[a].previousSibling.className = inputs[a].previousSibling.className += " disabled";
|
inputs[a].previousSibling.className = inputs[a].previousSibling.className += " disabled";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch(e){fb.error(e);}
|
|
||||||
}
|
}
|
||||||
document.onmouseup = Custom.clear;
|
document.onmouseup = Custom.clear;
|
||||||
|
}
|
||||||
|
catch(e){ /* */ }
|
||||||
},
|
},
|
||||||
pushed: function() {
|
pushed: function() {
|
||||||
element = this.nextSibling;
|
element = this.nextSibling;
|
||||||
|
|
|
@ -1,33 +1,45 @@
|
||||||
App.Model.DNS.loadList = function()
|
App.Model.DNS.loadList = function(callback)
|
||||||
{
|
{
|
||||||
App.Ajax.request('DNS.getList', {}, App.View.listItems);
|
if (!callback) {
|
||||||
|
callback = App.View.listItems;
|
||||||
|
}
|
||||||
|
App.Ajax.request('DNS.getList', {}, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Model.IP.loadList = function()
|
App.Model.IP.loadList = function(callback)
|
||||||
{
|
{
|
||||||
App.Ajax.request('IP.getList', {}, App.View.listItems);
|
if (!callback) {
|
||||||
|
callback = App.View.listItems;
|
||||||
|
}
|
||||||
|
App.Ajax.request('IP.getList', {}, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Model.USER.loadList = function()
|
App.Model.USER.loadList = function(callback)
|
||||||
{
|
{
|
||||||
App.Ajax.request('USER.getList', {}, App.View.listItems);
|
if (!callback) {
|
||||||
|
callback = App.View.listItems;
|
||||||
|
}
|
||||||
|
App.Ajax.request('USER.getList', {}, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Model.WEB_DOMAIN.loadList = function()
|
App.Model.WEB_DOMAIN.loadList = function(callback)
|
||||||
{
|
{
|
||||||
App.Ajax.request('WEB_DOMAIN.getList', {}, App.View.listItems);
|
if (!callback) {
|
||||||
|
callback = App.View.listItems;
|
||||||
|
}
|
||||||
|
App.Ajax.request('WEB_DOMAIN.getList', {}, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Model.MAIL.loadList = function()
|
App.Model.MAIL.loadList = function(callback)
|
||||||
{
|
{
|
||||||
//App.Ajax.request('MAIL.getList', {}, App.View.listItems);
|
//App.Ajax.request('MAIL.getList', {}, App.View.listItems);
|
||||||
App.Ref.CONTENT.html('<center><h1 style="padding-top: 20px; font-size: 28px; position: absolute; margin-left: 351px; color: white; text-shadow: 2px 1px 1px rgb(65, 124, 213);">Under maintanance</h1><img width="900px" src="'+App.Helpers.generateUrl('images/Asteroid_Vesta.jpg')+'"></center>');
|
App.Ref.CONTENT.html('<center><h1 style="padding-top: 20px; font-size: 28px; position: absolute; margin-left: 351px; color: white; text-shadow: 2px 1px 1px rgb(65, 124, 213);">Under maintanance</h1><img width="900px" src="'+App.Helpers.generateUrl('images/Asteroid_Vesta.jpg')+'"></center>');
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Model.DB.loadList = function()
|
App.Model.DB.loadList = function(callback)
|
||||||
{
|
{
|
||||||
App.Ajax.request('DB.getList', {}, function(reply)
|
if (!callback) {
|
||||||
{
|
callback = function(reply) {
|
||||||
var acc = [];
|
var acc = [];
|
||||||
var build_method = App.Env.getWorldName() + '_entry';
|
var build_method = App.Env.getWorldName() + '_entry';
|
||||||
var data = reply.data;
|
var data = reply.data;
|
||||||
|
@ -53,12 +65,17 @@ App.Model.DB.loadList = function()
|
||||||
var html = acc.done().wrapperize('ENTRIES_WRAPPER', App.Env.getWorldName());
|
var html = acc.done().wrapperize('ENTRIES_WRAPPER', App.Env.getWorldName());
|
||||||
App.Ref.CONTENT.html(html);
|
App.Ref.CONTENT.html(html);
|
||||||
App.Helpers.updateScreen();
|
App.Helpers.updateScreen();
|
||||||
});
|
};
|
||||||
|
}
|
||||||
|
App.Ajax.request('DB.getList', {}, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Model.CRON.loadList = function()
|
App.Model.CRON.loadList = function(callback)
|
||||||
{
|
{
|
||||||
App.Ajax.request('CRON.getList', {}, App.View.listItems);
|
if (!callback) {
|
||||||
|
callback = App.View.listItems;
|
||||||
|
}
|
||||||
|
App.Ajax.request('CRON.getList', {}, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -121,6 +138,23 @@ App.Model.update = function(values, source_json, elm)
|
||||||
// todo: reply.data;
|
// todo: reply.data;
|
||||||
App.Pages.prepareHTML();
|
App.Pages.prepareHTML();
|
||||||
App.Helpers.updateScreen();
|
App.Helpers.updateScreen();
|
||||||
|
/*var refl = {'USER': 'LOGIN_NAME'};
|
||||||
|
App.Model[App.Env.world].loadList(function(reply) {
|
||||||
|
var acc = [];
|
||||||
|
var build_method = App.Env.getWorldName() + '_entry';
|
||||||
|
var data = reply.data;
|
||||||
|
// TODO: fix it data.data
|
||||||
|
$.each(data, function(key)
|
||||||
|
{
|
||||||
|
var o = data[key];
|
||||||
|
fb.warn(key);
|
||||||
|
acc[acc.length++] = App.HTML.Build[build_method](o, key);
|
||||||
|
});
|
||||||
|
|
||||||
|
var html = acc.done().wrapperize('ENTRIES_WRAPPER', App.Env.getWorldName());
|
||||||
|
App.Ref.CONTENT.html(html);
|
||||||
|
App.Helpers.updateScreen();
|
||||||
|
);*/
|
||||||
}
|
}
|
||||||
// TODO: !
|
// TODO: !
|
||||||
});
|
});
|
||||||
|
|
|
@ -15,8 +15,9 @@ App.Pages.init = function()
|
||||||
|
|
||||||
App.Pages.prepareHTML = function()
|
App.Pages.prepareHTML = function()
|
||||||
{
|
{
|
||||||
|
$('.active').removeClass('active');
|
||||||
if ('undefined' != typeof App.Pages[App.Env.world].prepareHTML) {
|
if ('undefined' != typeof App.Pages[App.Env.world].prepareHTML) {
|
||||||
App.Pages.prepareHTML();
|
App.Pages[App.Env.world].prepareHTML();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
App.Model[App.Env.world].loadList();
|
App.Model[App.Env.world].loadList();
|
||||||
|
@ -48,7 +49,9 @@ App.Pages.USER.new_entry = function(evt)
|
||||||
$('#'+form_id).remove();
|
$('#'+form_id).remove();
|
||||||
var build_method = App.Env.getWorldName() + '_form';
|
var build_method = App.Env.getWorldName() + '_form';
|
||||||
var tpl = App.HTML.Build[build_method]({}, form_id);
|
var tpl = App.HTML.Build[build_method]({}, form_id);
|
||||||
App.Ref.CONTENT.prepend(tpl);
|
var box = $('<div>').html(tpl);
|
||||||
|
$(box).find('.suspended').addClass('hidden');
|
||||||
|
App.Ref.CONTENT.prepend($(box).html());
|
||||||
App.Helpers.updateScreen();
|
App.Helpers.updateScreen();
|
||||||
$('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');
|
$('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');
|
||||||
}
|
}
|
||||||
|
@ -59,7 +62,10 @@ App.Pages.WEB_DOMAIN.new_entry = function(evt)
|
||||||
$('#'+form_id).remove();
|
$('#'+form_id).remove();
|
||||||
var build_method = App.Env.getWorldName() + '_form';
|
var build_method = App.Env.getWorldName() + '_form';
|
||||||
var tpl = App.HTML.Build[build_method]({}, form_id);
|
var tpl = App.HTML.Build[build_method]({}, form_id);
|
||||||
App.Ref.CONTENT.prepend(tpl);
|
var box = $('<div>').html(tpl);
|
||||||
|
$(box).find('.suspended').addClass('hidden');
|
||||||
|
App.Ref.CONTENT.prepend($(box).html());
|
||||||
|
//App.Ref.CONTENT.prepend(tpl);
|
||||||
App.Helpers.updateScreen();
|
App.Helpers.updateScreen();
|
||||||
$('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');
|
$('#'+form_id).find('.ns-entry, .additional-ns-add').addClass('hidden');
|
||||||
var ssl_key_upload = App.HTML.Build.ssl_key_file();
|
var ssl_key_upload = App.HTML.Build.ssl_key_file();
|
||||||
|
@ -93,3 +99,27 @@ App.Pages.WEB_DOMAIN.setSSL = function(type, frame)
|
||||||
var ref = frame.frameElement;
|
var ref = frame.frameElement;
|
||||||
$(ref).next('textarea').val(frame.document.getElementById('result').value);
|
$(ref).next('textarea').val(frame.document.getElementById('result').value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
App.Pages.loadBackups = function()
|
||||||
|
{
|
||||||
|
App.Env.world = 'BACKUPS';
|
||||||
|
App.Pages.prepareHTML();
|
||||||
|
}
|
||||||
|
|
||||||
|
App.Pages.BACKUPS.prepareHTML = function()
|
||||||
|
{
|
||||||
|
$('#primary-nav-box .active').removeClass('active');
|
||||||
|
$('#BACKUPS').addClass('active');
|
||||||
|
$('#new-entry-keyword').text(App.Helpers.getHumanTabName());
|
||||||
|
document.title = 'Vesta | ' + App.Helpers.getHumanTabName();
|
||||||
|
|
||||||
|
App.Ajax.request('MAIN.getBackups', {}, function(reply) {
|
||||||
|
if (!reply.result) {
|
||||||
|
App.Herlers.alert('Backups list failed to load. Please try again a bit later');
|
||||||
|
}
|
||||||
|
|
||||||
|
App.Ref.CONTENT.html(App.HTML.Build.backup_list(reply.data));
|
||||||
|
App.Helpers.updateScreen();
|
||||||
|
//$('#content').html(App.HTML.Build.backup_list(reply.data));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ App.Templates.html = {
|
||||||
inner_popup: ['<div id="inner-popup" style="left:~!:LEFT~!px;top:~!:TOP~!px;z-index:1000;display:block;" class="d-popup d-popup-ns-list">\
|
inner_popup: ['<div id="inner-popup" style="left:~!:LEFT~!px;top:~!:TOP~!px;z-index:1000;display:block;" class="d-popup d-popup-ns-list">\
|
||||||
<div class="d-popup-inner">\
|
<div class="d-popup-inner">\
|
||||||
<span class="close do_action_close_inner_popup">×</span>\
|
<span class="close do_action_close_inner_popup">×</span>\
|
||||||
|
<div class="d-popup-title">~!:POPUP_TITLE~!</div>\
|
||||||
<div class="d-popup-content">\
|
<div class="d-popup-content">\
|
||||||
~!:CONTENT~!\
|
~!:CONTENT~!\
|
||||||
</div>\
|
</div>\
|
||||||
|
@ -32,8 +33,8 @@ App.Templates.html = {
|
||||||
</div>'],
|
</div>'],
|
||||||
select_option: ['<option ~!:SELECTED~! value="~!:VALUE~!">~!:TEXT~!</option>'],
|
select_option: ['<option ~!:SELECTED~! value="~!:VALUE~!">~!:TEXT~!</option>'],
|
||||||
error_elm: ['<div class="error-box">~!:ERROR~!</div>'],
|
error_elm: ['<div class="error-box">~!:ERROR~!</div>'],
|
||||||
SUSPENDED_TPL_NOT_SUSPENDED : ['<span class="ip-status-info ip-enabled-status do_action_suspend"><span class="ip-status-text do_action_suspend">enabled</span></span>'],
|
SUSPENDED_TPL_NOT_SUSPENDED : ['<span class="ip-status-info ip-enabled-status"><span class="ip-status-text">enabled</span></span>'],
|
||||||
SUSPENDED_TPL_SUSPENDED : ['<span class="ip-status-info ip-suspended-status do_action_unsuspend"><span class="ip-status-text do_action_unsuspend">suspended</span></span>']
|
SUSPENDED_TPL_SUSPENDED : ['<span class="ip-status-info ip-suspended-status"><span class="ip-status-text">suspended</span></span>']
|
||||||
},
|
},
|
||||||
popup: {
|
popup: {
|
||||||
error: ['<div class="error"><center><h1 style="color: red;">Important: An Error Has Occured.</h1><hr></center> Something went wrong and some of your actions can be not saved in system. Mostly, it happens when you have network connection errors.<br>, However, please notify us about the situation. It would be helpfull if you will write us approximate time the error occured and last actions you were performing. You send your petition on <a href="mail_to">this email: BLABLA</a>,<br><br><center><span style="color: rgb(92, 92, 92);">Sorry for inconvinience. (We recommend you to reload the page)</span></center></div>'],
|
error: ['<div class="error"><center><h1 style="color: red;">Important: An Error Has Occured.</h1><hr></center> Something went wrong and some of your actions can be not saved in system. Mostly, it happens when you have network connection errors.<br>, However, please notify us about the situation. It would be helpfull if you will write us approximate time the error occured and last actions you were performing. You send your petition on <a href="mail_to">this email: BLABLA</a>,<br><br><center><span style="color: rgb(92, 92, 92);">Sorry for inconvinience. (We recommend you to reload the page)</span></center></div>'],
|
||||||
|
@ -42,8 +43,9 @@ App.Templates.html = {
|
||||||
<div class="b-auth-form">\
|
<div class="b-auth-form">\
|
||||||
<div class="b-auth-form-wrap">\
|
<div class="b-auth-form-wrap">\
|
||||||
<img width="72" height="24" alt="" src="~!:LOGO_URL~!" class="vesta-logo">\
|
<img width="72" height="24" alt="" src="~!:LOGO_URL~!" class="vesta-logo">\
|
||||||
|
<span style="color: #5E696B; float: right; margin-top: -48px;">~!:VERSION~!</span>\
|
||||||
<div class="b-client-title">\
|
<div class="b-client-title">\
|
||||||
<span class="client-title-wrap">~!:VERSION~!<i class="planets"> </i></span>\
|
<span class="client-title-wrap">~!:PRODUCT_NAME~!<i class="planets"> </i></span>\
|
||||||
</div>\
|
</div>\
|
||||||
<form id="change_psw-form" method="post" action="#" class="auth">\
|
<form id="change_psw-form" method="post" action="#" class="auth">\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
|
@ -76,8 +78,9 @@ App.Templates.html = {
|
||||||
<div class="b-auth-form">\
|
<div class="b-auth-form">\
|
||||||
<div class="b-auth-form-wrap">\
|
<div class="b-auth-form-wrap">\
|
||||||
<img width="72" height="24" alt="" src="~!:LOGO_URL~!" class="vesta-logo">\
|
<img width="72" height="24" alt="" src="~!:LOGO_URL~!" class="vesta-logo">\
|
||||||
|
<span style="color: #5E696B; float: right; margin-top: -48px;">~!:VERSION~!</span>\
|
||||||
<div class="b-client-title">\
|
<div class="b-client-title">\
|
||||||
<span class="client-title-wrap">~!:VERSION~!<i class="planets"> </i></span>\
|
<span class="client-title-wrap">~!:PRODUCT_NAME~!<i class="planets"> </i></span>\
|
||||||
</div>\
|
</div>\
|
||||||
<form id="login-form" method="post" action="#" class="auth">\
|
<form id="login-form" method="post" action="#" class="auth">\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
|
@ -112,7 +115,7 @@ App.Templates.html = {
|
||||||
},
|
},
|
||||||
dns: {
|
dns: {
|
||||||
FORM: [
|
FORM: [
|
||||||
'<div style="margin-top: 25px;" class="b-new-entry b-new-entry_dns form" id="~!:id~!">\
|
'<div style="margin-top: 25px;" class="b-new-entry b-new-entry_dns form ~!:FORM_SUSPENDED~!" id="~!:id~!">\
|
||||||
<input type="hidden" name="source" class="source" value=~!:source~!>\
|
<input type="hidden" name="source" class="source" value=~!:source~!>\
|
||||||
<input type="hidden" name="target" class="target" value=\'\'>\
|
<input type="hidden" name="target" class="target" value=\'\'>\
|
||||||
<div class="entry-header">~!:title~!</div>\
|
<div class="entry-header">~!:title~!</div>\
|
||||||
|
@ -136,7 +139,7 @@ App.Templates.html = {
|
||||||
<select name="TPL" class="styled tpl-item">\
|
<select name="TPL" class="styled tpl-item">\
|
||||||
~!:TPL~!\
|
~!:TPL~!\
|
||||||
</select>\
|
</select>\
|
||||||
<span class="context-settings do_action_view_template_settings">View template settings</span>\
|
<span class="context-settings do_action_view_dns_template_settings">View template settings</span>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">ttl:</label>\
|
<label for="#" class="field-label">ttl:</label>\
|
||||||
|
@ -146,22 +149,25 @@ App.Templates.html = {
|
||||||
<label for="#" class="field-label">soa:</label>\
|
<label for="#" class="field-label">soa:</label>\
|
||||||
<input type="text" value="~!:SOA~!" name="SOA" class="text-field rule-required rule-ns">\
|
<input type="text" value="~!:SOA~!" name="SOA" class="text-field rule-required rule-ns">\
|
||||||
</div>\
|
</div>\
|
||||||
|
<div class="form-row suspended cc">\
|
||||||
|
<label for="#" class="field-label">suspended:</label>\
|
||||||
|
<input type="checkbox" ~!:SUSPENDED_CHECKED~! value="~!:SUSPENDED_VALUE~!" class="styled do_action_toggle_suspend" name="SUSPEND" />\
|
||||||
|
</div>\
|
||||||
<div class="form-row buttons-row cc">\
|
<div class="form-row buttons-row cc">\
|
||||||
<input type="submit" value="~!:save_button~!" class="add-entry-btn do_action_save_form" name="save">\
|
<input class="add-entry-btn do_action_save_form" type="submit" value="~!:save_button~!"/>\
|
||||||
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
||||||
<a class="help-btn" href="http://vestacp.com/docs/dns/" target="_blank">Help</a>\
|
<span class="delete-btn do_action_delete_entry">Delete</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div>'
|
</div>'
|
||||||
],
|
],
|
||||||
ENTRIES_WRAPPER: ['<div class="dns-list items-list">~!:content~!</div>'],
|
ENTRIES_WRAPPER: ['<div class="dns-list items-list">~!:content~!</div>'],
|
||||||
ENTRY: ['<div class="row dns-details-row ~!:CHECKED~!">\
|
ENTRY: ['<div class="row dns-details-row ~!:CHECKED~! ~!:SUSPENDED_CLASS~!">\
|
||||||
<input type="hidden" name="source" class="source" value=~!:source~! />\
|
<input type="hidden" name="source" class="source" value=~!:source~! />\
|
||||||
<input type="hidden" class="target" name="target" value=\'\' />\
|
<input type="hidden" class="target" name="target" value=\'\' />\
|
||||||
<div class="row-actions-box cc">\
|
<div class="row-actions-box cc">\
|
||||||
<div class="check-this check-control"></div>\
|
<div class="check-this check-control"></div>\
|
||||||
<div class="row-operations">\
|
<div class="row-operations">\
|
||||||
~!:SUSPENDED_TPL~!\
|
~!:SUSPENDED_TPL~!\
|
||||||
<span class="delete-entry"><span class="delete-entry-text do_action_delete_entry">delete</span></span>\
|
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="row-meta">\
|
<div class="row-meta">\
|
||||||
|
@ -237,7 +243,7 @@ App.Templates.html = {
|
||||||
},
|
},
|
||||||
ip: {
|
ip: {
|
||||||
FORM: ['\
|
FORM: ['\
|
||||||
<div class="b-new-entry b-new-entry_ip form" id="~!:id~!">\
|
<div class="b-new-entry b-new-entry_ip form ~!:FORM_SUSPENDED~!" id="~!:id~!">\
|
||||||
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
||||||
<input type="hidden" name="target" class="target" value=\'~!:target~!\'>\
|
<input type="hidden" name="target" class="target" value=\'~!:target~!\'>\
|
||||||
<div class="entry-header">~!:title~!</div>\
|
<div class="entry-header">~!:title~!</div>\
|
||||||
|
@ -262,7 +268,7 @@ App.Templates.html = {
|
||||||
</div>\
|
</div>\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">name:</label>\
|
<label for="#" class="field-label">name:</label>\
|
||||||
<input type="text" name="NAME" value="~!:NAME~!" class="text-field rule-abc">\
|
<input type="text" name="NAME" value="~!:NAME~!" class="text-field rule-domain">\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">interface:</label>\
|
<label for="#" class="field-label">interface:</label>\
|
||||||
|
@ -277,23 +283,26 @@ App.Templates.html = {
|
||||||
<input type="text" value="~!:NETMASK~!" name="NETMASK" class="text-field">\
|
<input type="text" value="~!:NETMASK~!" name="NETMASK" class="text-field">\
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
|
<div class="form-row suspended cc">\
|
||||||
|
<label for="#" class="field-label">suspended:</label>\
|
||||||
|
<input type="checkbox" ~!:SUSPENDED_CHECKED~! value="~!:SUSPENDED_VALUE~!" class="styled do_action_toggle_suspend" name="SUSPEND"/>\
|
||||||
|
</div>\
|
||||||
<div class="form-row buttons-row cc">\
|
<div class="form-row buttons-row cc">\
|
||||||
<input type="submit" value="~!:save_button~!" name="save" class="add-entry-btn do_action_save_form">\
|
<input class="add-entry-btn do_action_save_form" type="submit" value="~!:save_button~!"/>\
|
||||||
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
||||||
<a class="help-btn" href="http://vestacp.com/docs/ip/" target="_blank">Help</a>\
|
<span class="delete-btn do_action_delete_entry">Delete</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
'],
|
'],
|
||||||
DOT: ['<span class="dot">.</span>'],
|
DOT: ['<span class="dot">.</span>'],
|
||||||
ENTRY: ['\
|
ENTRY: ['\
|
||||||
<div class="row ip-details-row">\
|
<div class="row ip-details-row ~!:SUSPENDED_CLASS~!">\
|
||||||
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
||||||
<input type="hidden" class="target" name="target" value="" />\
|
<input type="hidden" class="target" name="target" value="" />\
|
||||||
<div class="row-actions-box cc">\
|
<div class="row-actions-box cc">\
|
||||||
<div class="check-this"></div>\
|
<div class="check-this"></div>\
|
||||||
<div class="row-operations">\
|
<div class="row-operations">\
|
||||||
~!:SUSPENDED_TPL~!\
|
~!:SUSPENDED_TPL~!\
|
||||||
<span class="delete-entry do_action_delete_entry"><span class="delete-entry-text do_action_delete_entry">delete</span></span>\
|
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="row-meta">\
|
<div class="row-meta">\
|
||||||
|
@ -349,12 +358,12 @@ App.Templates.html = {
|
||||||
WEB_TPL_MINIMIZED: ['~!:WEB_TPL_MINI~!\
|
WEB_TPL_MINIMIZED: ['~!:WEB_TPL_MINI~!\
|
||||||
<span class="group-switcher">\
|
<span class="group-switcher">\
|
||||||
<span class="group-values-count do_action_view_full_ns_list">~!:MORE_NUMBER~! more</span>\
|
<span class="group-values-count do_action_view_full_ns_list">~!:MORE_NUMBER~! more</span>\
|
||||||
</span><span class="hidden ns-full-list"><span class="group-values group-values__bullet">~!:WEB_TPL_FULL~!</span></span>'],
|
</span><span class="hidden ns-full-list"><span class="group-values">~!:WEB_TPL_FULL~!</span></span>'],
|
||||||
WEB_TPL: ['<span class="prop-value">~!:NAME~!</span>'],
|
WEB_TPL: ['<span class="prop-value">~!:NAME~!</span>'],
|
||||||
NS_MINIMIZED: ['~!:NS_MINI~!\
|
NS_MINIMIZED: ['~!:NS_MINI~!\
|
||||||
<span class="group-switcher">\
|
<span class="group-switcher">\
|
||||||
<span class="group-values-count do_action_view_full_ns_list">~!:MORE_NUMBER~! more</span>\
|
<span class="group-values-count do_action_view_full_ns_list">~!:MORE_NUMBER~! more</span>\
|
||||||
</span><span class="hidden ns-full-list"><span class="group-values group-values__bullet">~!:NS_FULL~!</span></span>'],
|
</span><span class="hidden ns-full-list"><span class="group-values">~!:NS_FULL~!</span></span>'],
|
||||||
NS_RECORD: ['<span class="prop-value">~!:NAME~!</span>'],
|
NS_RECORD: ['<span class="prop-value">~!:NAME~!</span>'],
|
||||||
NS_INPUT: ['<div class="form-row ns-entry cc">\
|
NS_INPUT: ['<div class="form-row ns-entry cc">\
|
||||||
<label for="#" class="field-label">~!:NS_LABEL~!:</label>\
|
<label for="#" class="field-label">~!:NS_LABEL~!:</label>\
|
||||||
|
@ -368,7 +377,7 @@ App.Templates.html = {
|
||||||
</a>\
|
</a>\
|
||||||
</div>'],
|
</div>'],
|
||||||
ENTRIES_WRAPPER: ['<div class="users-list items-list">~!:content~!</div>'],
|
ENTRIES_WRAPPER: ['<div class="users-list items-list">~!:content~!</div>'],
|
||||||
FORM: ['<div id="~!:id~!" class="b-new-entry b-new-entry_user form">\
|
FORM: ['<div id="~!:id~!" class="b-new-entry b-new-entry_user form ~!:FORM_SUSPENDED~!">\
|
||||||
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
||||||
<input type="hidden" name="target" class="target" value=\'\'>\
|
<input type="hidden" name="target" class="target" value=\'\'>\
|
||||||
<div class="entry-header">~!:title~!</div>\
|
<div class="entry-header">~!:title~!</div>\
|
||||||
|
@ -395,12 +404,12 @@ App.Templates.html = {
|
||||||
~!:SHELL_OPTIONS~!\
|
~!:SHELL_OPTIONS~!\
|
||||||
</select>\
|
</select>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="form-row cc">\
|
<!-- div class="form-row cc">\
|
||||||
<label for="#" class="field-label">role:</label>\
|
<label for="#" class="field-label">role:</label>\
|
||||||
<select class="styled" name="ROLE">\
|
<select class="styled" name="ROLE">\
|
||||||
~!:ROLE_OPTIONS~!\
|
~!:ROLE_OPTIONS~!\
|
||||||
</select>\
|
</select>\
|
||||||
</div>\
|
</div -->\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">contact email:</label>\
|
<label for="#" class="field-label">contact email:</label>\
|
||||||
<input type="text" name="CONTACT" class="text-field rule-email rule-required" value="~!:CONTACT~!">\
|
<input type="text" name="CONTACT" class="text-field rule-email rule-required" value="~!:CONTACT~!">\
|
||||||
|
@ -417,7 +426,7 @@ App.Templates.html = {
|
||||||
<label for="#" class="field-label">Lastname:</label>\
|
<label for="#" class="field-label">Lastname:</label>\
|
||||||
<input type="text" name="LNAME" class="text-field rule-abc rule-required" value="~!:LNAME~!">\
|
<input type="text" name="LNAME" class="text-field rule-abc rule-required" value="~!:LNAME~!">\
|
||||||
</div>\
|
</div>\
|
||||||
<!-- div class="form-row ns-entry cc">\
|
<div class="form-row ns-entry cc">\
|
||||||
<label for="#" class="field-label">NS #1:</label>\
|
<label for="#" class="field-label">NS #1:</label>\
|
||||||
<input type="text" value="~!:NS1~!" name="NS1" class="text-field rule-required rule-ns">\
|
<input type="text" value="~!:NS1~!" name="NS1" class="text-field rule-required rule-ns">\
|
||||||
</div>\
|
</div>\
|
||||||
|
@ -425,31 +434,28 @@ App.Templates.html = {
|
||||||
<label for="#" class="field-label">NS #2:</label>\
|
<label for="#" class="field-label">NS #2:</label>\
|
||||||
<input type="text" value="~!:NS2~!" name="NS2" class="text-field rule-required rule-ns">\
|
<input type="text" value="~!:NS2~!" name="NS2" class="text-field rule-required rule-ns">\
|
||||||
</div>\
|
</div>\
|
||||||
~!:NS~!\ -->\
|
~!:NS~!\
|
||||||
|
<div class="form-row suspended cc">\
|
||||||
|
<label for="#" class="field-label">suspended:</label>\
|
||||||
|
<input type="checkbox" ~!:SUSPENDED_CHECKED~! value="~!:SUSPENDED_VALUE~!" class="styled do_action_toggle_suspend" name="SUSPEND"/>\
|
||||||
|
</div>\
|
||||||
<div class="form-row buttons-row cc">\
|
<div class="form-row buttons-row cc">\
|
||||||
<input type="submit" value="~!:save_button~!" name="save" class="add-entry-btn do_action_save_form">\
|
<input class="add-entry-btn do_action_save_form" type="submit" value="~!:save_button~!"/>\
|
||||||
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
||||||
<a class="help-btn" href="http://vestacp.com/docs/user/" target="_blank">Help</a>\
|
<span class="delete-btn do_action_delete_entry">Delete</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div>'],
|
</div>'],
|
||||||
ENTRY: ['<div class="row user-details-row">\
|
ENTRY: ['<div class="row user-details-row ~!:SUSPENDED_CLASS~!">\
|
||||||
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
||||||
<input type="hidden" class="target" name="target" value="" />\
|
<input type="hidden" class="target" name="target" value="" />\
|
||||||
<div class="row-actions-box cc">\
|
<div class="row-actions-box cc">\
|
||||||
<div class="check-this check-control"></div>\
|
<div class="check-this check-control"></div>\
|
||||||
<div class="row-operations">\
|
<div class="row-operations">\
|
||||||
~!:SUSPENDED_TPL~!\
|
~!:SUSPENDED_TPL~!\
|
||||||
<span class="delete-entry do_action_delete_entry"><span class="delete-entry-text do_action_delete_entry">delete</span></span>\
|
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="row-meta">\
|
<div class="row-meta">\
|
||||||
<div class="entry-created">~!:DATE~!</div>\
|
<div class="entry-created">~!:DATE~!</div>\
|
||||||
<div class="ownership">\
|
|
||||||
<span class="prop-box">\
|
|
||||||
<span class="prop-title">owner:</span>\
|
|
||||||
<span class="prop-value">~!:OWNER~!</span>\
|
|
||||||
</span>\
|
|
||||||
</div>\
|
|
||||||
</div>\
|
</div>\
|
||||||
<div class="row-details cc">\
|
<div class="row-details cc">\
|
||||||
<div class="props-main">\
|
<div class="props-main">\
|
||||||
|
@ -457,8 +463,7 @@ App.Templates.html = {
|
||||||
<div class="username-box">\
|
<div class="username-box">\
|
||||||
<span class="user">\
|
<span class="user">\
|
||||||
<span class="nickname do_action_edit">~!:LOGIN_NAME~!</span>\
|
<span class="nickname do_action_edit">~!:LOGIN_NAME~!</span>\
|
||||||
<span class="role"></span>\
|
<!-- span class="role">(~!:ROLE~!)</span -->\
|
||||||
<span class="role">(~!:ROLE~!)</span>\
|
|
||||||
</span>\
|
</span>\
|
||||||
<span class="prop-box template-box">\
|
<span class="prop-box template-box">\
|
||||||
<span class="prop-title">package:</span>\
|
<span class="prop-title">package:</span>\
|
||||||
|
@ -477,9 +482,6 @@ App.Templates.html = {
|
||||||
<span class="prop-value user-reports">(reports ~!:REPORTS_ENABLED~!)</span>\
|
<span class="prop-value user-reports">(reports ~!:REPORTS_ENABLED~!)</span>\
|
||||||
</span>\
|
</span>\
|
||||||
</span>\
|
</span>\
|
||||||
<span class="prop-box childs-box">\
|
|
||||||
<span class="prop-title">childs:</span>\
|
|
||||||
<span class="prop-value prop-value-collapsed-childs">~!:U_CHILDS~! (~!:MAX_CHILDS~!)</span>\ </span>\
|
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<!-- disk usage block -->\
|
<!-- disk usage block -->\
|
||||||
|
@ -523,11 +525,11 @@ App.Templates.html = {
|
||||||
</span>\
|
</span>\
|
||||||
<span class="prop-box webalias-box">\
|
<span class="prop-box webalias-box">\
|
||||||
<span class="prop-title">web alias:</span>\
|
<span class="prop-title">web alias:</span>\
|
||||||
<span class="prop-value prop-value-collapsed-childs">(~!:WEB_ALIASES~!) per domain</span>\
|
<span class="prop-value">~!:WEB_ALIASES~! per domain</span>\
|
||||||
</span>\
|
</span>\
|
||||||
<span class="prop-box prop-box_group-values cc webtpl-box">\
|
<span class="prop-box prop-box_group-values cc webtpl-box">\
|
||||||
<span class="prop-title">web templates:</span>\
|
<span class="prop-title">web templates:</span>\
|
||||||
<span class="group-values group-values__bullet">\
|
<span class="group-values">\
|
||||||
~!:WEB_TPL~!\
|
~!:WEB_TPL~!\
|
||||||
</span>\
|
</span>\
|
||||||
</span>\
|
</span>\
|
||||||
|
@ -567,7 +569,7 @@ App.Templates.html = {
|
||||||
</span>\
|
</span>\
|
||||||
<span class="prop-box prop-box_group-values cc ns-list-box">\
|
<span class="prop-box prop-box_group-values cc ns-list-box">\
|
||||||
<span class="prop-title">ns list:</span>\
|
<span class="prop-title">ns list:</span>\
|
||||||
<span class="group-values group-values__bullet">\
|
<span class="group-values">\
|
||||||
~!:NS~!</span>\
|
~!:NS~!</span>\
|
||||||
</span>\
|
</span>\
|
||||||
</div>\
|
</div>\
|
||||||
|
@ -575,7 +577,7 @@ App.Templates.html = {
|
||||||
</div>']
|
</div>']
|
||||||
},
|
},
|
||||||
web_domain: {
|
web_domain: {
|
||||||
FORM: ['<div id="~!:id~!" class="b-new-entry b-new-entry_domain form">\
|
FORM: ['<div id="~!:id~!" class="b-new-entry b-new-entry_domain form ~!:FORM_SUSPENDED~!">\
|
||||||
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
||||||
<input type="hidden" class="target" name="target" value="" />\
|
<input type="hidden" class="target" name="target" value="" />\
|
||||||
<div class="entry-header">~!:title~!</div>\
|
<div class="entry-header">~!:title~!</div>\
|
||||||
|
@ -599,6 +601,10 @@ App.Templates.html = {
|
||||||
~!:TPL_OPTIONS~!\
|
~!:TPL_OPTIONS~!\
|
||||||
</select>\
|
</select>\
|
||||||
</div>\
|
</div>\
|
||||||
|
<div class="form-row suspended cc">\
|
||||||
|
<label for="#" class="field-label">suspended:</label>\
|
||||||
|
<input type="checkbox" ~!:SUSPENDED_CHECKED~! value="~!:SUSPENDED_VALUE~!" class="styled do_action_toggle_suspend" name="SUSPEND"/>\
|
||||||
|
</div>\
|
||||||
<!-- advanced options -->\
|
<!-- advanced options -->\
|
||||||
<div class="form-options-group">\
|
<div class="form-options-group">\
|
||||||
<div class="group-header cc collapsed">\
|
<div class="group-header cc collapsed">\
|
||||||
|
@ -638,10 +644,10 @@ App.Templates.html = {
|
||||||
<span class="generate-pwd do_action_generate_pass">Generate</span>\
|
<span class="generate-pwd do_action_generate_pass">Generate</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div><!-- // stats settings -->\
|
</div><!-- // stats settings -->\
|
||||||
<div class="form-row cc">\
|
<!-- div class="form-row cc">\
|
||||||
<label for="#" class="field-label">ssl:</label>\
|
<label for="#" class="field-label">ssl:</label>\
|
||||||
<input type="checkbox" name="SSL" class="styled" ~!:ssl_checked~!="" value="~!SSL~!">\
|
<input type="checkbox" name="SSL" class="styled" ~!:ssl_checked~!="" value="~!SSL~!">\
|
||||||
</div>\
|
</div -->\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">ssl home:</label>\
|
<label for="#" class="field-label">ssl home:</label>\
|
||||||
<input type="text" name="SSL_HOME" class="text-field" value="~!:SSL_HOME~!">\
|
<input type="text" name="SSL_HOME" class="text-field" value="~!:SSL_HOME~!">\
|
||||||
|
@ -685,20 +691,19 @@ App.Templates.html = {
|
||||||
</div>\
|
</div>\
|
||||||
</div><!-- Mail options -->\
|
</div><!-- Mail options -->\
|
||||||
<div class="form-row buttons-row cc">\
|
<div class="form-row buttons-row cc">\
|
||||||
<input type="submit" value="~!:save_button~!" class="add-entry-btn do_action_save_form">\
|
<input class="add-entry-btn do_action_save_form" type="submit" value="~!:save_button~!"/>\
|
||||||
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
||||||
<a target="_blank" href="http://vestacp.com/docs/web/" class="help-btn">Help</a>\
|
<span class="delete-btn do_action_delete_entry">Delete</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div>'],
|
</div>'],
|
||||||
ENTRIES_WRAPPER: ['<div class="domains-list items-list">~!:content~!</div>'],
|
ENTRIES_WRAPPER: ['<div class="domains-list items-list">~!:content~!</div>'],
|
||||||
ENTRY: ['<div class="row domain-details-row">\
|
ENTRY: ['<div class="row domain-details-row ~!:SUSPENDED_CLASS~!">\
|
||||||
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
||||||
<input type="hidden" class="target" name="target" value="" />\
|
<input type="hidden" class="target" name="target" value="" />\
|
||||||
<div class="row-actions-box cc">\
|
<div class="row-actions-box cc">\
|
||||||
<div class="check-this check-control"></div>\
|
<div class="check-this check-control"></div>\
|
||||||
<div class="row-operations">\
|
<div class="row-operations">\
|
||||||
~!:SUSPENDED_TPL~!\
|
~!:SUSPENDED_TPL~!\
|
||||||
<span class="delete-entry do_action_delete_entry"><span class="delete-entry-text do_action_delete_entry">delete</span></span>\
|
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="row-meta">\
|
<div class="row-meta">\
|
||||||
|
@ -794,7 +799,7 @@ App.Templates.html = {
|
||||||
</span>\
|
</span>\
|
||||||
</div>'],
|
</div>'],
|
||||||
ENTRIES_WRAPPER: ['<div class="db-list">~!:content~!</div>'],
|
ENTRIES_WRAPPER: ['<div class="db-list">~!:content~!</div>'],
|
||||||
FORM: ['<div id="~!:id~!" class="b-new-entry b-new-entry_db form">\
|
FORM: ['<div id="~!:id~!" class="b-new-entry b-new-entry_db form ~!:FORM_SUSPENDED~!">\
|
||||||
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
||||||
<input type="hidden" name="target" class="target" value=\'\'>\
|
<input type="hidden" name="target" class="target" value=\'\'>\
|
||||||
<div class="entry-header">~!:title~!</div>\
|
<div class="entry-header">~!:title~!</div>\
|
||||||
|
@ -823,19 +828,23 @@ App.Templates.html = {
|
||||||
<label for="#" class="field-label">db host:</label>\
|
<label for="#" class="field-label">db host:</label>\
|
||||||
<select name="HOST" class="styled">~!:HOST_OPTIONS~!</select>\
|
<select name="HOST" class="styled">~!:HOST_OPTIONS~!</select>\
|
||||||
</div>\
|
</div>\
|
||||||
|
<div class="form-row suspended cc">\
|
||||||
|
<label for="#" class="field-label">suspended:</label>\
|
||||||
|
<input type="checkbox" ~!:SUSPENDED_CHECKED~! value="~!:SUSPENDED_VALUE~!" class="styled do_action_toggle_suspend" name="SUSPEND" />\
|
||||||
|
</div>\
|
||||||
<div class="form-row buttons-row cc">\
|
<div class="form-row buttons-row cc">\
|
||||||
<input type="submit" value="~!:save_button~!" class="add-entry-btn do_action_save_form">\
|
<input class="add-entry-btn do_action_save_form" type="submit" value="~!:save_button~!"/>\
|
||||||
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
||||||
<a target="_blank" href="http://vestacp.com/docs/db/" class="help-btn">Help</a>\
|
<span class="delete-btn do_action_delete_entry">Delete</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div>'],
|
</div>'],
|
||||||
ENTRY: ['<div class="row db-details-row">\
|
ENTRY: ['<div class="row db-details-row ~!:SUSPENDED_CLASS~!">\
|
||||||
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
||||||
<input type="hidden" name="target" class="target" value=\'\'>\
|
<input type="hidden" name="target" class="target" value=\'\'>\
|
||||||
<div class="row-actions-box cc">\
|
<div class="row-actions-box cc">\
|
||||||
<div class="check-this check-control"></div>\
|
<div class="check-this check-control"></div>\
|
||||||
<div class="row-operations">\
|
<div class="row-operations">\
|
||||||
<span class="delete-entry do_action_delete_entry"><span class="delete-entry-text do_action_delete_entry">delete</span></span>\
|
~!:SUSPENDED_TPL~!\
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="row-meta">\
|
<div class="row-meta">\
|
||||||
|
@ -880,7 +889,7 @@ App.Templates.html = {
|
||||||
</div>']
|
</div>']
|
||||||
},
|
},
|
||||||
cron: {
|
cron: {
|
||||||
FORM: ['<div class="b-new-entry b-new-entry_cron form" id="~!:id~!" >\
|
FORM: ['<div class="b-new-entry b-new-entry_cron form ~!:FORM_SUSPENDED~!" id="~!:id~!" >\
|
||||||
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
||||||
<input type="hidden" name="target" class="target" value=\'\'>\
|
<input type="hidden" name="target" class="target" value=\'\'>\
|
||||||
<div class="entry-header">~!:title~!</div>\
|
<div class="entry-header">~!:title~!</div>\
|
||||||
|
@ -929,21 +938,24 @@ App.Templates.html = {
|
||||||
<label for="#" class="field-label">report to: <span class="remark">(devide by comma ",")</span></label>\
|
<label for="#" class="field-label">report to: <span class="remark">(devide by comma ",")</span></label>\
|
||||||
<textarea class="textarea" name="REPORT_TO"></textarea>\
|
<textarea class="textarea" name="REPORT_TO"></textarea>\
|
||||||
</div>\
|
</div>\
|
||||||
|
<div class="form-row suspended cc">\
|
||||||
|
<label for="#" class="field-label">suspended:</label>\
|
||||||
|
<input type="checkbox" ~!:SUSPENDED_CHECKED~! value="~!:SUSPENDED_VALUE~!" class="styled do_action_toggle_suspend" name="SUSPEND"/>\
|
||||||
|
</div>\
|
||||||
<div class="form-row buttons-row cc">\
|
<div class="form-row buttons-row cc">\
|
||||||
<input type="submit" value="~!:save_button~!" class="add-entry-btn do_action_save_form">\
|
<input class="add-entry-btn do_action_save_form" type="submit" value="~!:save_button~!"/>\
|
||||||
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
||||||
<a target="_blank" href="http://vestacp.com/docs/cron/" class="help-btn">Help</a>\
|
<span class="delete-btn do_action_delete_entry">Delete</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div>'],
|
</div>'],
|
||||||
ENTRIES_WRAPPER: ['<div class="cron-list">~!:content~!</div>'],
|
ENTRIES_WRAPPER: ['<div class="cron-list">~!:content~!</div>'],
|
||||||
ENTRY: ['<div class="row cron-details-row">\
|
ENTRY: ['<div class="row cron-details-row ~!:SUSPENDED_CLASS~!">\
|
||||||
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
<input type="hidden" name="source" class="source" value=\'~!:source~!\'>\
|
||||||
<input type="hidden" name="target" class="target" value=\'\'>\
|
<input type="hidden" name="target" class="target" value=\'\'>\
|
||||||
<div class="row-actions-box cc">\
|
<div class="row-actions-box cc">\
|
||||||
<div class="check-this check-control"></div>\
|
<div class="check-this check-control"></div>\
|
||||||
<div class="row-operations">\
|
<div class="row-operations">\
|
||||||
~!:SUSPENDED_TPL~!\
|
~!:SUSPENDED_TPL~!\
|
||||||
<span class="delete-entry do_action_delete_entry"><span class="delete-entry-text do_action_delete_entry">delete</span></span>\
|
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="row-meta">\
|
<div class="row-meta">\
|
||||||
|
@ -984,11 +996,55 @@ App.Templates.html = {
|
||||||
</div>\
|
</div>\
|
||||||
</div><!-- // .row-details -->\
|
</div><!-- // .row-details -->\
|
||||||
</div>']
|
</div>']
|
||||||
|
},
|
||||||
|
backup: {
|
||||||
|
WRAPPER: ['<div class="backups-list">~!:CONTENT~!</div>'],
|
||||||
|
ENTRY: ['<div class="backups-list">\
|
||||||
|
<!-- row 1 -->\
|
||||||
|
<div class="row first-row backup-details-row">\
|
||||||
|
<div class="row-meta">\
|
||||||
|
<div class="ownership">\
|
||||||
|
<span class="prop-box">\
|
||||||
|
<span class="prop-title">owner:</span>\
|
||||||
|
<span class="prop-value">~!:OWNER~!</span>\
|
||||||
|
</span>\
|
||||||
|
</div>\
|
||||||
|
</div>\
|
||||||
|
<div class="row-details cc">\
|
||||||
|
<div class="props-main">\
|
||||||
|
<span class="prop-box entry-created">\
|
||||||
|
<span class="backup-date">\
|
||||||
|
<span class="backup-day">~!:CREATED_AT~!</span>\
|
||||||
|
<span class="backup-time">~!:CREATED_AT_TIME~!</span>\
|
||||||
|
</span>\
|
||||||
|
<span class="backup-weekday">~!:CREATED_AT_WDAY~!</span>\
|
||||||
|
</span>\
|
||||||
|
<span class="prop-box generation-time">\
|
||||||
|
<span class="prop-title">Generation time:</span>\
|
||||||
|
<span class="prop-value">~!:GENERATION_TIME~!</span>\
|
||||||
|
</span>\
|
||||||
|
</div>\
|
||||||
|
<div class="props-additional">\
|
||||||
|
<span class="backup-size">\
|
||||||
|
<span class="backup-size-inner">~!:SIZE~!</span>\
|
||||||
|
</span>\
|
||||||
|
<a class="backup-url" href="return alert(\'Not available at the time\');">download</a>\
|
||||||
|
</div>\
|
||||||
|
<div class="props-ext">\
|
||||||
|
<div class="backup-actions">\
|
||||||
|
<a class="backup-actions-url restore-url" href="return alert(\'Not available at the time\');">restore</a>\
|
||||||
|
<a class="backup-actions-url detailed-restore-url" href="return alert(\'Not available at the time\');">\
|
||||||
|
<span class="detailed-restore-title">detailed</span>\
|
||||||
|
<span class="detailed-restore-ext">restore</span>\
|
||||||
|
</a>\
|
||||||
|
</div>\
|
||||||
|
</div> \
|
||||||
|
</div><!-- // .row-details -->\
|
||||||
|
</div><!-- // .row 1 -->']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Internals
|
// Internals
|
||||||
var Tpl = App.Templates;
|
var Tpl = App.Templates;
|
||||||
var Templator = function()
|
var Templator = function()
|
||||||
|
|
|
@ -46,8 +46,8 @@ class AjaxHandler {
|
||||||
$allowed_actions = array(
|
$allowed_actions = array(
|
||||||
'MAIN.signin',
|
'MAIN.signin',
|
||||||
'MAIN.logout',
|
'MAIN.logout',
|
||||||
'MAIN.requestpassword',
|
'MAIN.requestPassword',
|
||||||
'MAIN.resetpassword',
|
'MAIN.resetPassword',
|
||||||
'MAIN.about');
|
'MAIN.about');
|
||||||
$method = Request::parseAjaxMethod($request);
|
$method = Request::parseAjaxMethod($request);
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ class CRON extends AjaxHandler
|
||||||
'DAY' => $record['DAY'],
|
'DAY' => $record['DAY'],
|
||||||
'MONTH' => $record['MONTH'],
|
'MONTH' => $record['MONTH'],
|
||||||
'WDAY' => $record['WDAY'],
|
'WDAY' => $record['WDAY'],
|
||||||
'SUSPENDED' => $record['SUSPEND'],
|
'SUSPEND' => $record['SUSPEND'],
|
||||||
'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE']))),
|
'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE']))),
|
||||||
'JOB' => $id
|
'JOB' => $id
|
||||||
);
|
);
|
||||||
|
@ -52,15 +52,15 @@ class CRON extends AjaxHandler
|
||||||
public function addExecute(Request $request)
|
public function addExecute(Request $request)
|
||||||
{
|
{
|
||||||
$user = $this->getLoggedUser();
|
$user = $this->getLoggedUser();
|
||||||
$spell = $request->getParameter('spell');
|
$_s = $request->getParameter('spell');
|
||||||
$params = array(
|
$params = array(
|
||||||
'USER' => $user['uid'],
|
'USER' => $user['uid'],
|
||||||
'MIN' => $spell['MIN'],
|
'MIN' => $_s['MIN'],
|
||||||
'HOUR' => $spell['HOUR'],
|
'HOUR' => $_s['HOUR'],
|
||||||
'DAY' => $spell['DAY'],
|
'DAY' => $_s['DAY'],
|
||||||
'MONTH' => $spell['MONTH'],
|
'MONTH' => $_s['MONTH'],
|
||||||
'WDAY' => $spell['WDAY'],
|
'WDAY' => $_s['WDAY'],
|
||||||
'CMD' => $spell['CMD']
|
'CMD' => $_s['CMD']
|
||||||
);
|
);
|
||||||
|
|
||||||
$result = Vesta::execute(Vesta::V_ADD_CRON_JOB, $params);
|
$result = Vesta::execute(Vesta::V_ADD_CRON_JOB, $params);
|
||||||
|
@ -74,6 +74,20 @@ class CRON extends AjaxHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($_s['SUSPEND'] == 'on') {
|
||||||
|
if($result['status']){
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_CRON_JOB, array('USER' => $user['uid'], 'JOB' => $_s['CMD']));
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->status = FALSE;
|
||||||
|
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!$result['status']) {
|
if (!$result['status']) {
|
||||||
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
||||||
}
|
}
|
||||||
|
@ -117,6 +131,20 @@ class CRON extends AjaxHandler
|
||||||
$_old = $request->getParameter('old');
|
$_old = $request->getParameter('old');
|
||||||
$_new = $request->getParameter('new');
|
$_new = $request->getParameter('new');
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
|
if($_new['SUSPEND'] == 'on') {
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_CRON_JOB, array('USER' => $user['uid'], 'JOB' => $_new['CMD']));
|
||||||
|
return $this->reply($result['status']);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$result = Vesta::execute(Vesta::V_UNSUSPEND_CRON_JOB, array('USER' => $user['uid'], 'JOB' => $_new['CMD']));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->status = FALSE;
|
||||||
|
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
|
||||||
$params = array(
|
$params = array(
|
||||||
'USER' => $user['uid'],
|
'USER' => $user['uid'],
|
||||||
'JOB' => $_old['JOB'],
|
'JOB' => $_old['JOB'],
|
||||||
|
@ -134,6 +162,8 @@ class CRON extends AjaxHandler
|
||||||
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return $this->reply($result['status'], $result['data']);
|
return $this->reply($result['status'], $result['data']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,10 +67,6 @@ class DB extends AjaxHandler
|
||||||
'DB_PASSWORD' => $_s['PASSWORD'],
|
'DB_PASSWORD' => $_s['PASSWORD'],
|
||||||
'TYPE' => $_s['TYPE']
|
'TYPE' => $_s['TYPE']
|
||||||
);
|
);
|
||||||
// TODO: do not user it. Will be used in later releases
|
|
||||||
/*if ($_s['HOST']) {
|
|
||||||
$params['HOST'] = $_s['HOST'];
|
|
||||||
}*/
|
|
||||||
|
|
||||||
$result = Vesta::execute(Vesta::V_ADD_DB_BASE, $params);
|
$result = Vesta::execute(Vesta::V_ADD_DB_BASE, $params);
|
||||||
|
|
||||||
|
@ -78,6 +74,19 @@ class DB extends AjaxHandler
|
||||||
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($_s['SUSPEND'] == 'on') {
|
||||||
|
if($result['status']){
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_DB_BASE, array('USER' => $user['uid'], 'JOB' => $_s['DB']));
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->status = FALSE;
|
||||||
|
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return $this->reply($result['status'], $result['data']);
|
return $this->reply($result['status'], $result['data']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,13 +122,29 @@ class DB extends AjaxHandler
|
||||||
*/
|
*/
|
||||||
public function changeExecute(Request $request)
|
public function changeExecute(Request $request)
|
||||||
{
|
{
|
||||||
$_s = $request->getParameter('new');
|
$_s = $request->getParameter('spell');
|
||||||
|
$_old = $request->getParameter('old');
|
||||||
|
$_new = $request->getParameter('new');
|
||||||
|
|
||||||
$user = $this->getLoggedUser();
|
$user = $this->getLoggedUser();
|
||||||
$result = array();
|
$result = array();
|
||||||
|
if($_new['SUSPEND'] == 'on'){
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_DB_BASE, array('USER' => $user['uid'], 'DB' => $_new['DB']));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$result = Vesta::execute(Vesta::V_UNSUSPEND_DB_BASE, array('USER' => $user['uid'], 'DB' => $_new['DB']));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->status = FALSE;
|
||||||
|
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_new['PASSWORD'] != Vesta::SAME_PASSWORD && $_new['PASSWORD'] != $_old['PASSWORD']) {
|
||||||
$params = array(
|
$params = array(
|
||||||
'USER' => $user['uid'],
|
'USER' => $user['uid'],
|
||||||
'DB' => $_s['DB'],
|
'DB' => $_new['DB'],
|
||||||
'PASSWORD' => $_s['PASSWORD']
|
'PASSWORD' => $_new['PASSWORD']
|
||||||
);
|
);
|
||||||
|
|
||||||
$result = Vesta::execute(Vesta::V_CHANGE_DB_PASSWORD, $params);
|
$result = Vesta::execute(Vesta::V_CHANGE_DB_PASSWORD, $params);
|
||||||
|
@ -127,6 +152,7 @@ class DB extends AjaxHandler
|
||||||
if (!$result['status']) {
|
if (!$result['status']) {
|
||||||
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $this->reply($result['status'], $result['data']);
|
return $this->reply($result['status'], $result['data']);
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,6 +119,19 @@ class DNS extends AjaxHandler
|
||||||
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
$this->errors[] = array($result['error_code'] => $result['error_message']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($_s['SUSPEND'] == 'on') {
|
||||||
|
if($result['status']){
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_s['DNS_DOMAIN']));
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->status = FALSE;
|
||||||
|
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $this->reply($result['status'], $result['data']);
|
return $this->reply($result['status'], $result['data']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,6 +241,19 @@ class DNS extends AjaxHandler
|
||||||
$user = $this->getLoggedUser();
|
$user = $this->getLoggedUser();
|
||||||
$_DNS_DOMAIN = $_old['DNS_DOMAIN'];
|
$_DNS_DOMAIN = $_old['DNS_DOMAIN'];
|
||||||
|
|
||||||
|
$result = array();
|
||||||
|
if($_new['SUSPEND'] == 'on'){
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
|
||||||
|
return $this->reply($result['status']);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$result = Vesta::execute(Vesta::V_UNSUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->status = FALSE;
|
||||||
|
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
|
||||||
if ($_old['IP'] != $_new['IP']) {
|
if ($_old['IP'] != $_new['IP']) {
|
||||||
$result = array();
|
$result = array();
|
||||||
|
@ -281,6 +307,13 @@ class DNS extends AjaxHandler
|
||||||
Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_TTL, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'IP' => $_old['TTL']));
|
Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_TTL, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'IP' => $_old['TTL']));
|
||||||
Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_EXP, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'IP' => $_old['EXP']));
|
Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_EXP, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN, 'IP' => $_old['EXP']));
|
||||||
Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_SOA, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_new['DNS_DOMAIN'], 'IP' => $_old['SOA']));
|
Vesta::execute(Vesta::V_CHANGE_DNS_DOMAIN_SOA, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_new['DNS_DOMAIN'], 'IP' => $_old['SOA']));
|
||||||
|
|
||||||
|
if($_old['SUSPEND'] == 'on'){
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$result = Vesta::execute(Vesta::V_UNSUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->reply($this->status, '');
|
return $this->reply($this->status, '');
|
||||||
|
|
|
@ -76,8 +76,12 @@ class IP extends AjaxHandler
|
||||||
'MASK' => $spell['NETMASK'],
|
'MASK' => $spell['NETMASK'],
|
||||||
'INTERFACE' => $spell['INTERFACE'],
|
'INTERFACE' => $spell['INTERFACE'],
|
||||||
'OWNER' => $spell['OWNER'],
|
'OWNER' => $spell['OWNER'],
|
||||||
'IP_STATUS' => $spell['STATUS']
|
'STATUS' => $spell['STATUS']
|
||||||
);
|
);
|
||||||
|
if ($spell['NAME']) {
|
||||||
|
$params['NAME'] = $spell['NAME'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$result = Vesta::execute(Vesta::V_ADD_SYS_IP, $params);
|
$result = Vesta::execute(Vesta::V_ADD_SYS_IP, $params);
|
||||||
|
|
||||||
|
@ -128,7 +132,7 @@ class IP extends AjaxHandler
|
||||||
|
|
||||||
if ($_old['OWNER'] != $_new['OWNER']) {
|
if ($_old['OWNER'] != $_new['OWNER']) {
|
||||||
$result = array();
|
$result = array();
|
||||||
$result = Vesta::execute(Vesta::V_CHANGE_SYS_IP_OWNER, array('OWNER' => $_new['OWNER'], 'IP' => $_new['IP_ADDRESS']));
|
$result = Vesta::execute(Vesta::V_CHANGE_SYS_IP_OWNER, array('IP' => $_new['IP_ADDRESS'], 'OWNER' => $_new['OWNER']));
|
||||||
if (!$result['status']) {
|
if (!$result['status']) {
|
||||||
$this->status = FALSE;
|
$this->status = FALSE;
|
||||||
$this->errors['OWNER'] = array($result['error_code'] => $result['error_message']);
|
$this->errors['OWNER'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
@ -136,21 +140,21 @@ class IP extends AjaxHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Handle NAME parameter
|
// TODO: Handle NAME parameter
|
||||||
/*if ($_old['NAME'] != $_new['NAME']) {
|
if ($_old['NAME'] != $_new['NAME']) {
|
||||||
$result = array();
|
$result = array();
|
||||||
$result = Vesta::execute(Vesta::V_CHANGE_SYS_IP_NAME, array('IP' => $_new['IP_ADDRESS'], 'NAME' => $_new['NAME']));
|
$result = Vesta::execute(Vesta::V_CHANGE_SYS_IP_NAME, array('IP' => $_new['IP_ADDRESS'], 'NAME' => $_new['NAME']));
|
||||||
if (!$result['status']) {
|
if (!$result['status']) {
|
||||||
$this->status = FALSE;
|
$this->status = FALSE;
|
||||||
$this->errors['NAME'] = array($result['error_code'] => $result['error_message']);
|
$this->errors['NAME'] = array($result['error_code'] => $result['error_message']);
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
if ($_old['IP_STATUS'] != $_new['IP_STATUS']) {
|
if ($_old['STATUS'] != $_new['STATUS']) {
|
||||||
$result = array();
|
$result = array();
|
||||||
$result = Vesta::execute(Vesta::V_CHANGE_SYS_IP_STATUS, array('IP' => $_new['IP_ADDRESS'], 'IP_STATUS' => $_new['IP_STATUS']));
|
$result = Vesta::execute(Vesta::V_CHANGE_SYS_IP_STATUS, array('IP' => $_new['IP_ADDRESS'], 'STATUS' => $_new['STATUS']));
|
||||||
if (!$result['status']) {
|
if (!$result['status']) {
|
||||||
$this->status = FALSE;
|
$this->status = FALSE;
|
||||||
$this->errors['IP_STATUS'] = array($result['error_code'] => $result['error_message']);
|
$this->errors['STATUS'] = array($result['error_code'] => $result['error_message']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,10 @@ class MAIN extends AjaxHandler
|
||||||
|
|
||||||
public function aboutExecute($request)
|
public function aboutExecute($request)
|
||||||
{
|
{
|
||||||
|
// defaults
|
||||||
$about = array('version' => '0', 'company_email' => 'support@vestacp.com',
|
$about = array('version' => '0', 'company_email' => 'support@vestacp.com',
|
||||||
'version_name' => 'OGRE-23-1', 'company_name' => 'vestacp.com');
|
'version_name' => 'OGRE-23-1', 'company_name' => 'vestacp.com');
|
||||||
|
// real data
|
||||||
$config = Vesta::execute(Vesta::V_LIST_SYS_CONFIG, 'json');
|
$config = Vesta::execute(Vesta::V_LIST_SYS_CONFIG, 'json');
|
||||||
if (!empty($config['data']) && !empty($config['data']['config'])) {
|
if (!empty($config['data']) && !empty($config['data']['config'])) {
|
||||||
$config = $config['data']['config'];
|
$config = $config['data']['config'];
|
||||||
|
@ -37,12 +39,14 @@ class MAIN extends AjaxHandler
|
||||||
|
|
||||||
public function requestPasswordExecute($request)
|
public function requestPasswordExecute($request)
|
||||||
{
|
{
|
||||||
|
$user = $this->getLoggedUser();
|
||||||
|
$rs = $config = Vesta::execute('v_get_sys_user_value', array($user['uid'], 'RKEY'));
|
||||||
|
|
||||||
if (empty($_SESSION['captcha_key'])
|
if (empty($_SESSION['captcha_key'])
|
||||||
|| $_SESSION['captcha_key'] != $request->getParameter('captcha')) {
|
|| $_SESSION['captcha_key'] != $request->getParameter('captcha')) {
|
||||||
return $this->reply(false, null, 'Captcha is invalid ');
|
return $this->reply(false, null, 'Captcha is invalid ');
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: captcha
|
|
||||||
$users = Vesta::execute(Vesta::V_LIST_SYS_USERS, 'json');
|
$users = Vesta::execute(Vesta::V_LIST_SYS_USERS, 'json');
|
||||||
$email_matched_count = array();
|
$email_matched_count = array();
|
||||||
|
|
||||||
|
@ -103,10 +107,12 @@ MAIL;
|
||||||
|
|
||||||
public function generateResetPasswordKey()
|
public function generateResetPasswordKey()
|
||||||
{
|
{
|
||||||
$key = sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
|
/*$key = sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
|
||||||
$key = substr($key, 0, 10) . $_SERVER['REQUEST_TIME'] . substr($key, 10, strlen($key));
|
$key = substr($key, 0, 10) . $_SERVER['REQUEST_TIME'] . substr($key, 10, strlen($key));*/
|
||||||
|
$user = $this->getLoggedUser();
|
||||||
|
$rs = Vesta::execute('v_get_sys_user_value', array('USER' => $user['uid'], 'VALUE' => 'RKEY'));
|
||||||
|
|
||||||
return $key;
|
return $rs[''];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function signinExecute($request)
|
public function signinExecute($request)
|
||||||
|
@ -129,6 +135,14 @@ MAIL;
|
||||||
return $this->reply(true);
|
return $this->reply(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getBackupsExecute(Request $request)
|
||||||
|
{
|
||||||
|
$user = VestaSession::getInstance()->getUser();
|
||||||
|
$rs = Vesta::execute(Vesta::V_LIST_SYS_USER_BACKUPS, array('USER' => $user['uid'], 'RESPONSE' => 'json'));
|
||||||
|
|
||||||
|
return $this->reply($rs['status'], @$rs['data']);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Initial params.
|
* Get Initial params.
|
||||||
* Global constants / variables / configs
|
* Global constants / variables / configs
|
||||||
|
@ -198,8 +212,8 @@ MAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
$reply = array(
|
$reply = array(
|
||||||
'auth_user' => array('uid' => $this->getLog),
|
'auth_user' => array('uid' => $this->getLoggedUser()),
|
||||||
'WEB_DOMAIN' => $this->getWebDomainParams($data_web_domin, $global_data),
|
'WEB_DOMAIN' => $this->getWebDomainParams($data_web_domain, $global_data),
|
||||||
'CRON' => $this->getCronParams(),
|
'CRON' => $this->getCronParams(),
|
||||||
'IP' => $this->getIpParams($data_ip, $global_data),
|
'IP' => $this->getIpParams($data_ip, $global_data),
|
||||||
'DNS' => $this->getDnsParams(),
|
'DNS' => $this->getDnsParams(),
|
||||||
|
@ -288,7 +302,7 @@ MAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'SYS_USERS' => $users,
|
'SYS_USERS' => $global_data['users'],
|
||||||
'STATUSES' => array(
|
'STATUSES' => array(
|
||||||
'shared' => 'shared',
|
'shared' => 'shared',
|
||||||
'exclusive' => 'exclusive'
|
'exclusive' => 'exclusive'
|
||||||
|
@ -365,7 +379,7 @@ MAIL;
|
||||||
* @params array $data
|
* @params array $data
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getUsersParams($data = array(), $global_data)
|
public function getUsersParams($data = array(), $global_data = array())
|
||||||
{
|
{
|
||||||
$pckg = array();
|
$pckg = array();
|
||||||
// json
|
// json
|
||||||
|
@ -374,8 +388,6 @@ MAIL;
|
||||||
$pckg[$pckg_name] = $pckg_name;
|
$pckg[$pckg_name] = $pckg_name;
|
||||||
}
|
}
|
||||||
return array(
|
return array(
|
||||||
'ROLE' => array('user' => 'user'),
|
|
||||||
'OWNER' => $data['user_names'],
|
|
||||||
'PACKAGE' => $pckg,
|
'PACKAGE' => $pckg,
|
||||||
'SHELL' => array(
|
'SHELL' => array(
|
||||||
'sh' => 'sh',
|
'sh' => 'sh',
|
||||||
|
|
|
@ -31,7 +31,7 @@ class USER extends AjaxHandler
|
||||||
else {
|
else {
|
||||||
$report = $result_report['data'];
|
$report = $result_report['data'];
|
||||||
}
|
}
|
||||||
$fullname_id = rand(0, count($users)-1);
|
//$fullname_id = rand(0, count($users)-1);
|
||||||
$fullname = implode('', array($details['FNAME'], ' ', $details['LNAME']));
|
$fullname = implode('', array($details['FNAME'], ' ', $details['LNAME']));
|
||||||
|
|
||||||
$nses = $this->getNS($user, $details);
|
$nses = $this->getNS($user, $details);
|
||||||
|
@ -54,14 +54,12 @@ class USER extends AjaxHandler
|
||||||
"SHELL" => $details['SHELL'],
|
"SHELL" => $details['SHELL'],
|
||||||
"BACKUPS" => $details['BACKUPS'],
|
"BACKUPS" => $details['BACKUPS'],
|
||||||
"WEB_TPL" => $details['WEB_TPL'],
|
"WEB_TPL" => $details['WEB_TPL'],
|
||||||
"MAX_CHILDS" => $details['MAX_CHILDS'],
|
//"MAX_CHILDS" => $details['MAX_CHILDS'],
|
||||||
"SUSPENDED" => $details['SUSPENDED'],
|
"SUSPEND" => $details['SUSPENDED'],
|
||||||
"OWNER" => $details['OWNER'],
|
|
||||||
"ROLE" => $details['ROLE'],
|
|
||||||
"IP_OWNED" => $details['IP_OWNED'],
|
"IP_OWNED" => $details['IP_OWNED'],
|
||||||
"U_CHILDS" => $details['U_CHILDS'],
|
//"U_CHILDS" => $details['U_CHILDS'],
|
||||||
"U_DISK" => $details['U_DISK'],//$u_disk,
|
"U_DISK" => $details['U_DISK'],
|
||||||
"U_BANDWIDTH" => $details['U_BANDWIDTH'],//$u_bandwidth,
|
"U_BANDWIDTH" => $details['U_BANDWIDTH'],
|
||||||
"U_WEB_DOMAINS" => $details['U_WEB_DOMAINS'],
|
"U_WEB_DOMAINS" => $details['U_WEB_DOMAINS'],
|
||||||
"U_WEB_SSL" => $details['U_WEB_SSL'],
|
"U_WEB_SSL" => $details['U_WEB_SSL'],
|
||||||
"U_DNS_DOMAINS" => $details['U_DNS_DOMAINS'],
|
"U_DNS_DOMAINS" => $details['U_DNS_DOMAINS'],
|
||||||
|
@ -69,8 +67,8 @@ class USER extends AjaxHandler
|
||||||
"U_MAIL_DOMAINS" => $details['U_MAIL_DOMAINS'],
|
"U_MAIL_DOMAINS" => $details['U_MAIL_DOMAINS'],
|
||||||
"CONTACT" => $details['CONTACT'],
|
"CONTACT" => $details['CONTACT'],
|
||||||
"DATE" => $details['DATE'],
|
"DATE" => $details['DATE'],
|
||||||
"U_MAIL_BOXES" => rand(1, 10), // TODO: skid
|
"U_MAIL_BOXES" => '0', // TODO: skid
|
||||||
"U_MAIL_FORWARDERS" => rand(1, 10), // TODO: skid
|
"U_MAIL_FORWARDERS" => '0', // TODO: skid
|
||||||
"REPORTS_ENABLED" => $report,
|
"REPORTS_ENABLED" => $report,
|
||||||
"U_WEB_DOMAINS" => $details['U_WEB_DOMAINS']
|
"U_WEB_DOMAINS" => $details['U_WEB_DOMAINS']
|
||||||
);
|
);
|
||||||
|
@ -94,8 +92,6 @@ class USER extends AjaxHandler
|
||||||
'USER' => $spell['LOGIN_NAME'],
|
'USER' => $spell['LOGIN_NAME'],
|
||||||
'PASSWORD' => $spell['PASSWORD'],
|
'PASSWORD' => $spell['PASSWORD'],
|
||||||
'EMAIL' => $spell['CONTACT'],
|
'EMAIL' => $spell['CONTACT'],
|
||||||
'ROLE' => $spell['ROLE'],
|
|
||||||
'OWNER' => $user['uid'],
|
|
||||||
'PACKAGE' => $spell['PACKAGE'],
|
'PACKAGE' => $spell['PACKAGE'],
|
||||||
'FNAME' => $spell['FNAME'],
|
'FNAME' => $spell['FNAME'],
|
||||||
'LNAME' => $spell['LNAME']
|
'LNAME' => $spell['LNAME']
|
||||||
|
@ -151,6 +147,16 @@ class USER extends AjaxHandler
|
||||||
|
|
||||||
$_USER = $_old['LOGIN_NAME'];
|
$_USER = $_old['LOGIN_NAME'];
|
||||||
|
|
||||||
|
if ($_new['SUSPEND'] == 'on') {
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_SYS_USER, array('USER' => $_USER));
|
||||||
|
return $this->reply($result['status']);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$result = Vesta::execute(Vesta::V_UNSUSPEND_SYS_USER, array('USER' => $_USER));
|
||||||
|
}
|
||||||
|
|
||||||
|
$reports_result = $this->setUserReports($_USER, $_new['REPORTS_ENABLED']);
|
||||||
|
|
||||||
if (!empty($_new['PASSWORD']) && $_new['PASSWORD'] != Vesta::SAME_PASSWORD) {
|
if (!empty($_new['PASSWORD']) && $_new['PASSWORD'] != Vesta::SAME_PASSWORD) {
|
||||||
$result = array();
|
$result = array();
|
||||||
$result = Vesta::execute(Vesta::V_CHANGE_SYS_USER_PASSWORD, array('USER' => $_USER, 'PASSWORD' => $_new['PASSWORD']));
|
$result = Vesta::execute(Vesta::V_CHANGE_SYS_USER_PASSWORD, array('USER' => $_USER, 'PASSWORD' => $_new['PASSWORD']));
|
||||||
|
@ -195,12 +201,38 @@ class USER extends AjaxHandler
|
||||||
$this->errors['NAMES'] = array($result['error_code'] => $result['error_message']);
|
$this->errors['NAMES'] = array($result['error_code'] => $result['error_message']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
if ($_old['SUSPEND'] != $_new['SUSPEND']) {
|
||||||
|
$result = array();
|
||||||
|
if($_new['SUSPEND'] == 'on'){
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$result = Vesta::execute(Vesta::V_UNSUSPEND_DNS_DOMAIN, array('USER' => $user['uid'], 'DNS_DOMAIN' => $_DNS_DOMAIN));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->status = FALSE;
|
||||||
|
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
if (!$this->status) {
|
if (!$this->status) {
|
||||||
Vesta::execute(Vesta::V_CHANGE_SYS_USER_PASSWORD, array('USER' => $_USER, 'PASSWORD' => $_old['PASSWORD']));
|
Vesta::execute(Vesta::V_CHANGE_SYS_USER_PASSWORD, array('USER' => $_USER, 'PASSWORD' => $_old['PASSWORD']));
|
||||||
Vesta::execute(Vesta::V_CHANGE_SYS_USER_PACKAGE, array('USER' => $_USER, 'PACKAGE' => $_old['PACKAGE']));
|
Vesta::execute(Vesta::V_CHANGE_SYS_USER_PACKAGE, array('USER' => $_USER, 'PACKAGE' => $_old['PACKAGE']));
|
||||||
Vesta::execute(Vesta::V_CHANGE_SYS_USER_CONTACT, array('USER' => $_USER, 'EMAIL' => $_old['EMAIL']));
|
Vesta::execute(Vesta::V_CHANGE_SYS_USER_CONTACT, array('USER' => $_USER, 'EMAIL' => $_old['EMAIL']));
|
||||||
Vesta::execute(Vesta::V_CHANGE_SYS_USER_NS, array('USER' => $_USER, 'NS1' => $_old['NS1'], 'NS2' => $_old['NS2']));
|
Vesta::execute(Vesta::V_CHANGE_SYS_USER_NS, array('USER' => $_USER, 'NS1' => $_old['NS1'], 'NS2' => $_old['NS2']));
|
||||||
Vesta::execute(Vesta::V_CHANGE_SYS_USER_SHELL, array('USER' => $_USER, 'SHELL' => $_old['SHELL']));
|
Vesta::execute(Vesta::V_CHANGE_SYS_USER_SHELL, array('USER' => $_USER, 'SHELL' => $_old['SHELL']));
|
||||||
|
|
||||||
|
/*
|
||||||
|
if($_old['SUSPEND'] == 'on'){
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_SYS_USER, array('USER' => $_USER));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$result = Vesta::execute(Vesta::V_UNSUSPEND_SYS_USER, array('USER' => $_USER));
|
||||||
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->reply($this->status, '');
|
return $this->reply($this->status, '');
|
||||||
|
@ -208,11 +240,11 @@ class USER extends AjaxHandler
|
||||||
|
|
||||||
protected function setUserReports($user, $enabled)
|
protected function setUserReports($user, $enabled)
|
||||||
{
|
{
|
||||||
if ($enabled === true) {
|
if ($enabled == 'off') {
|
||||||
$result = Vesta::execute(Vesta::V_ADD_SYS_USER_REPORTS, array('USER' => $user));
|
$result = Vesta::execute(Vesta::V_DEL_SYS_USER_REPORTS, array('USER' => $user));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$result = Vesta::execute(Vesta::V_DEL_SYS_USER_REPORTS, array('USER' => $user));
|
$result = Vesta::execute(Vesta::V_ADD_SYS_USER_REPORTS, array('USER' => $user));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result['status'];
|
return $result['status'];
|
||||||
|
|
|
@ -30,7 +30,7 @@ class WEB_DOMAIN extends AjaxHandler
|
||||||
'U_DISK' => $record['U_DISK'],
|
'U_DISK' => $record['U_DISK'],
|
||||||
'U_BANDWIDTH' => $record['U_BANDWIDTH'],
|
'U_BANDWIDTH' => $record['U_BANDWIDTH'],
|
||||||
'TPL' => $record['TPL'],
|
'TPL' => $record['TPL'],
|
||||||
'ALIAS' => $record['ALIAS'],
|
'ALIAS' => @str_replace(",", ", ", $record['ALIAS']),
|
||||||
'PHP' => $record['PHP'],
|
'PHP' => $record['PHP'],
|
||||||
'CGI' => $record['CGI'],
|
'CGI' => $record['CGI'],
|
||||||
'ELOG' => $record['ELOG'],
|
'ELOG' => $record['ELOG'],
|
||||||
|
@ -39,6 +39,7 @@ class WEB_DOMAIN extends AjaxHandler
|
||||||
'SSL' => $record['SSL'],
|
'SSL' => $record['SSL'],
|
||||||
'SSL_HOME' => $record['SSL_HOME'],
|
'SSL_HOME' => $record['SSL_HOME'],
|
||||||
'SSL_CERT' => $record['SSL_CERT'],
|
'SSL_CERT' => $record['SSL_CERT'],
|
||||||
|
'SSL_KEY' => $record['SSL_KEY'],
|
||||||
'NGINX' => $record['NGINX'],
|
'NGINX' => $record['NGINX'],
|
||||||
'NGINX_EXT' => $record['NGINX_EXT'],
|
'NGINX_EXT' => $record['NGINX_EXT'],
|
||||||
'SUSPEND' => $record['SUSPEND'],
|
'SUSPEND' => $record['SUSPEND'],
|
||||||
|
@ -157,9 +158,9 @@ class WEB_DOMAIN extends AjaxHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if ($_s['SSL']) {
|
/* if ($_s['SSL']) {
|
||||||
$params = array(
|
$params = array(
|
||||||
'USER' => $user[''],
|
'USER' => $user['uid'],
|
||||||
'DOMAIN' => $_s['DOMAIN'],
|
'DOMAIN' => $_s['DOMAIN'],
|
||||||
'SSL_CERT' => $_s['SSL_CERT']
|
'SSL_CERT' => $_s['SSL_CERT']
|
||||||
);
|
);
|
||||||
|
@ -215,6 +216,20 @@ class WEB_DOMAIN extends AjaxHandler
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
if ($_s['SUSPEND'] == 'on') {
|
||||||
|
if($result['status']){
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], 'JOB' => $_s['DOMAIN']));
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->status = FALSE;
|
||||||
|
$this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return $this->reply($result['status'], $result['data']);
|
return $this->reply($result['status'], $result['data']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -256,6 +271,14 @@ class WEB_DOMAIN extends AjaxHandler
|
||||||
$user = $this->getLoggedUser();
|
$user = $this->getLoggedUser();
|
||||||
$_DOMAIN = $_new['DOMAIN'];
|
$_DOMAIN = $_new['DOMAIN'];
|
||||||
|
|
||||||
|
if ($_new['SUSPEND'] == 'on') {
|
||||||
|
$result = Vesta::execute(Vesta::V_SUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
|
||||||
|
return $this->reply($result['status']);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$result = Vesta::execute(Vesta::V_UNSUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
|
||||||
|
}
|
||||||
|
|
||||||
if ($_old['IP'] != $_new['IP']) {
|
if ($_old['IP'] != $_new['IP']) {
|
||||||
$result = array();
|
$result = array();
|
||||||
$result = Vesta::execute(Vesta::V_CHANGE_WEB_DOMAIN_IP, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN, 'IP' => $_new['IP']));
|
$result = Vesta::execute(Vesta::V_CHANGE_WEB_DOMAIN_IP, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN, 'IP' => $_new['IP']));
|
||||||
|
@ -277,20 +300,24 @@ class WEB_DOMAIN extends AjaxHandler
|
||||||
if ($_old['ALIAS'] != $_new['ALIAS']) {
|
if ($_old['ALIAS'] != $_new['ALIAS']) {
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
$old_arr = explode(',', $_old['ALIAS']);
|
$old_arr_raw = preg_split('/[,\s]/', $_old['ALIAS']);
|
||||||
$new_arr = explode(',', $_new['ALIAS']);
|
$new_arr_raw = preg_split('/[,\s]/', $_new['ALIAS']);
|
||||||
|
$old_arr = array();
|
||||||
|
$new_arr = array();
|
||||||
|
foreach ($old_arr_raw as $alias) {
|
||||||
|
if ('' != trim($alias)) {
|
||||||
|
$old_arr[] = $alias;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($new_arr_raw as $alias) {
|
||||||
|
if ('' != trim($alias)) {
|
||||||
|
$new_arr[] = $alias;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$added = array_diff($new_arr, $old_arr);
|
$added = array_diff($new_arr, $old_arr);
|
||||||
$deleted = array_diff($old_arr, $new_arr);
|
$deleted = array_diff($old_arr, $new_arr);
|
||||||
|
|
||||||
foreach ($added as $alias) {
|
|
||||||
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_ALIAS, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN, 'ALIAS' => $alias));
|
|
||||||
if (!$result['status']) {
|
|
||||||
$this->status = FALSE;
|
|
||||||
$this->errors['ADD_ALIAS'] = array($result['error_code'] => $result['error_message']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($deleted as $alias) {
|
foreach ($deleted as $alias) {
|
||||||
$result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN_ALIAS, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN, 'ALIAS' => $alias));
|
$result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN_ALIAS, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN, 'ALIAS' => $alias));
|
||||||
if (!$result['status']) {
|
if (!$result['status']) {
|
||||||
|
@ -298,10 +325,18 @@ class WEB_DOMAIN extends AjaxHandler
|
||||||
$this->errors['DEL_ALIAS'] = array($result['error_code'] => $result['error_message']);
|
$this->errors['DEL_ALIAS'] = array($result['error_code'] => $result['error_message']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach ($added as $alias) {
|
||||||
|
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_ALIAS, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN, 'ALIAS' => $alias));
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->status = FALSE;
|
||||||
|
$this->errors['ADD_ALIAS'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (($_old['STATH_AUTH'] != $_new['STAT_AUTH']) && !empty($_s['STAT_AUTH']) && @Utils::getCheckboxBooleanValue($_s['STATS_AUTH'])) {
|
if (($_old['STAT_AUTH'] != $_new['STAT_AUTH']) && !empty($_s['STAT_AUTH']) && @Utils::getCheckboxBooleanValue($_s['STATS_AUTH'])) {
|
||||||
$params = array(
|
$params = array(
|
||||||
'USER' => $user['uid'],
|
'USER' => $user['uid'],
|
||||||
'DOMAIN' => $_DOMAIN,
|
'DOMAIN' => $_DOMAIN,
|
||||||
|
@ -380,6 +415,44 @@ class WEB_DOMAIN extends AjaxHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($_new['SSL']) {
|
||||||
|
$params = array(
|
||||||
|
'USER' => $user['uid'],
|
||||||
|
'DOMAIN' => $_new['DOMAIN'],
|
||||||
|
'SSL_CERT' => $_new['SSL_CERT']
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($_new['SSL_HOME']) {
|
||||||
|
$params['SSL_HOME'] = $_new['SSL_HOME'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = 0;
|
||||||
|
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_SSL, $params);
|
||||||
|
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->errors['SSL'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_s['SSL_KEY']) {
|
||||||
|
$params = array(
|
||||||
|
'USER' => $user['uid'],
|
||||||
|
'DOMAIN' => $_s['DOMAIN'],
|
||||||
|
'SSL_KEY' => $_s['SSL_KEY']
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($_s['SSL_HOME']) {
|
||||||
|
$params['SSL_HOME'] = $_s['SSL_HOME'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = 0;
|
||||||
|
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_SSL, $params);
|
||||||
|
|
||||||
|
if (!$result['status']) {
|
||||||
|
$this->errors['SSL'] = array($result['error_code'] => $result['error_message']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $this->reply($result['status'], $result['data']);
|
return $this->reply($result['status'], $result['data']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,8 @@ class Vesta
|
||||||
const SAME_PASSWORD = '********';
|
const SAME_PASSWORD = '********';
|
||||||
|
|
||||||
const V_LIST_SYS_CONFIG = 'v_list_sys_config';
|
const V_LIST_SYS_CONFIG = 'v_list_sys_config';
|
||||||
|
// BACKUP
|
||||||
|
const V_LIST_SYS_USER_BACKUPS = 'v_list_sys_user_backups';
|
||||||
// IP
|
// IP
|
||||||
const V_LIST_SYS_IPS = 'v_list_sys_ips';
|
const V_LIST_SYS_IPS = 'v_list_sys_ips';
|
||||||
const V_ADD_SYS_IP = 'v_add_sys_ip';
|
const V_ADD_SYS_IP = 'v_add_sys_ip';
|
||||||
|
@ -36,6 +38,8 @@ class Vesta
|
||||||
const V_CHANGE_DNS_DOMAIN_TTL = 'v_change_dns_domain_ttl';
|
const V_CHANGE_DNS_DOMAIN_TTL = 'v_change_dns_domain_ttl';
|
||||||
const V_CHANGE_DNS_DOMAIN_EXP = 'v_change_dns_domain_exp';
|
const V_CHANGE_DNS_DOMAIN_EXP = 'v_change_dns_domain_exp';
|
||||||
const V_CHANGE_DNS_DOMAIN_RECORD = 'v_change_dns_domain_record';
|
const V_CHANGE_DNS_DOMAIN_RECORD = 'v_change_dns_domain_record';
|
||||||
|
const V_SUSPEND_DNS_DOMAIN = 'v_suspend_dns_domain';
|
||||||
|
const V_UNSUSPEND_DNS_DOMAIN = 'v_unsuspend_dns_domain';
|
||||||
const V_DEL_DNS_DOMAIN = 'v_del_dns_domain';
|
const V_DEL_DNS_DOMAIN = 'v_del_dns_domain';
|
||||||
const V_DEL_DNS_DOMAIN_RECORD = 'v_del_dns_domain_record';
|
const V_DEL_DNS_DOMAIN_RECORD = 'v_del_dns_domain_record';
|
||||||
// CRON
|
// CRON
|
||||||
|
@ -59,6 +63,14 @@ class Vesta
|
||||||
const V_CHANGE_SYS_USER_PASSWORD = 'v_change_sys_user_password';
|
const V_CHANGE_SYS_USER_PASSWORD = 'v_change_sys_user_password';
|
||||||
const V_CHANGE_SYS_USER_SHELL = 'v_change_sys_user_shell';
|
const V_CHANGE_SYS_USER_SHELL = 'v_change_sys_user_shell';
|
||||||
const V_CHANGE_SYS_USER_ROLE = 'v_change_sys_user_role';
|
const V_CHANGE_SYS_USER_ROLE = 'v_change_sys_user_role';
|
||||||
|
const V_SUSPEND_SYS_USER = 'v_suspend_sys_user';
|
||||||
|
const V_UNSUSPEND_SYS_USER = 'v_unsuspend_sys_user';
|
||||||
|
/*
|
||||||
|
const V_SUSPEND_SYS_USER = 'v_suspend_sys_user';
|
||||||
|
const V_UNSUSPEND_SYS_USER = 'v_unsuspend_sys_user';
|
||||||
|
const V_SUSPEND_SYS_USER = 'v_suspend_sys_users';
|
||||||
|
const V_UNSUSPEND_SYS_USERS = 'v_unsuspend_sys_users';
|
||||||
|
*/
|
||||||
const V_DEL_SYS_USER = 'v_del_sys_user';
|
const V_DEL_SYS_USER = 'v_del_sys_user';
|
||||||
const V_CHANGE_SYS_USER_NAME = 'v_change_sys_user_name';
|
const V_CHANGE_SYS_USER_NAME = 'v_change_sys_user_name';
|
||||||
// WEB_DOMAIN
|
// WEB_DOMAIN
|
||||||
|
@ -120,7 +132,7 @@ class Vesta
|
||||||
* @param array $parameters
|
* @param array $parameters
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
static function execute($cmd_command, $parameters=array(), $reply = '')
|
static function execute($cmd_command, $parameters = array(), $reply = '')
|
||||||
{
|
{
|
||||||
$r = new Request();
|
$r = new Request();
|
||||||
$_DEBUG = $r->getParameter("debug", FALSE);
|
$_DEBUG = $r->getParameter("debug", FALSE);
|
||||||
|
@ -143,6 +155,7 @@ class Vesta
|
||||||
|
|
||||||
// e.g.: /usr/bin/sudo /usr/local/vesta/bin/v_list_sys_users vesta json
|
// e.g.: /usr/bin/sudo /usr/local/vesta/bin/v_list_sys_users vesta json
|
||||||
$cmd = "{$params['sudo']} {$params['functions']}{$cmd_command} {$params['parameters']} {$params['reply']}";
|
$cmd = "{$params['sudo']} {$params['functions']}{$cmd_command} {$params['parameters']} {$params['reply']}";
|
||||||
|
|
||||||
exec($cmd, $output, $return);
|
exec($cmd, $output, $return);
|
||||||
$result = 0;
|
$result = 0;
|
||||||
$result = array(
|
$result = array(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue