mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-08-20 13:24:24 -07:00
Merge branch 'master' of github.com:serghey-rodin/vesta
This commit is contained in:
commit
6af483e6ec
4 changed files with 134 additions and 45 deletions
|
@ -1,3 +1,13 @@
|
|||
App.Actions.view_nginx_extensions = function(evt)
|
||||
{
|
||||
var elm = $(evt.target);
|
||||
var ref = elm.hasClass('row') ? elm : elm.parents('.row');
|
||||
var data = App.Helpers.evalJSON(ref.find('.source').val());
|
||||
var extensions = data['NGINX_EXT'] || '';
|
||||
var html = extensions.replace(/,/gi, ' ');
|
||||
App.Helpers.openInnerPopup(elm, html, 'Nginx extensions');
|
||||
}
|
||||
|
||||
App.Actions.login_as = function(evt)
|
||||
{
|
||||
var elm = $(evt.target);
|
||||
|
@ -617,6 +627,12 @@ App.Actions.view_full_ns_list = function(evt)
|
|||
App.Helpers.openInnerPopup(elm, $(elm).parents('.prop-box').find('.ns-full-list:first').html(), 'Name Server list');
|
||||
}
|
||||
|
||||
App.Actions.view_full_web_templates = function(evt)
|
||||
{
|
||||
var elm = $(evt.target);
|
||||
App.Helpers.openInnerPopup(elm, $(elm).parents('.prop-box').find('.ns-full-list:first').html(), 'Web Templates list');
|
||||
}
|
||||
|
||||
App.Actions.view_template_info = function(evt)
|
||||
{
|
||||
var elm = $(evt.target);
|
||||
|
|
|
@ -25,6 +25,7 @@ App.Pages.init = function()
|
|||
|
||||
App.Pages.prepareHTML = function()
|
||||
{
|
||||
$('.d-popup').remove();
|
||||
App.Actions.reset_batch();
|
||||
$('#actions-toolbar .stats-subbar').remove();
|
||||
$('#actions-toolbar .do_action_new_entry').removeClass('hidden');
|
||||
|
|
|
@ -303,7 +303,7 @@ App.Templates.html = {
|
|||
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
||||
<input type="hidden" class="target" name="target" value="" />\
|
||||
<div class="row-actions-box cc">\
|
||||
<div class="check-this"></div>\
|
||||
<div class="check-this check-control"></div>\
|
||||
<div class="row-operations">\
|
||||
~!:SUSPENDED_TPL~!\
|
||||
</div>\
|
||||
|
@ -362,7 +362,7 @@ App.Templates.html = {
|
|||
user: {
|
||||
WEB_TPL_MINIMIZED: ['~!:WEB_TPL_MINI~!\
|
||||
<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_web_templates">~!:MORE_NUMBER~! more</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>'],
|
||||
NS_MINIMIZED: ['~!:NS_MINI~!\
|
||||
|
@ -509,19 +509,19 @@ App.Templates.html = {
|
|||
<div class="max-size">~!:DISK_QUOTA~! <span class="units">~!:DISK_QUOTA_MEASURE_2~!</span></div>\
|
||||
</div>\
|
||||
</div><!-- // disk usage block -->\
|
||||
<div class="b-usage-box2 bandwidth-box cc">\
|
||||
<span class="prop-title">bandwidth:</span>\
|
||||
<div class="usage-box">\
|
||||
<div class="value-box ~!:OVER_DRAFT_VALUE_2~!">\
|
||||
<div class="graph">\
|
||||
<span style="left:~!:U_BANDWIDTH_PERCENTAGE_2~!%;" class="value">~!:U_BANDWIDTH_PERCENTAGE~!% <span class="value-size">(~!:U_BANDWIDTH~! ~!:BANDWIDTH_MEASURE~!)</span></span>\
|
||||
<span style="width:~!:U_BANDWIDTH_PERCENTAGE_3~!%;" class="bar"></span>\
|
||||
~!:OVER_BAR_2~!\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="max-size">~!:BANDWIDTH~! <span class="units">~!:BANDWIDTH_MEASURE_2~!</span></div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="b-usage-box2 bandwidth-box cc">\
|
||||
<span class="prop-title">bandwidth:</span>\
|
||||
<div class="usage-box">\
|
||||
<div class="value-box ~!:OVER_DRAFT_VALUE_2~!">\
|
||||
<div class="graph">\
|
||||
<span style="left:~!:U_BANDWIDTH_PERCENTAGE_2~!%;" class="value">~!:U_BANDWIDTH_PERCENTAGE~!% <span class="value-size">(~!:U_BANDWIDTH~! ~!:BANDWIDTH_MEASURE~!)</span></span>\
|
||||
<span style="width:~!:U_BANDWIDTH_PERCENTAGE_3~!%;" class="bar"></span>\
|
||||
~!:OVER_BAR_2~!\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="max-size">~!:BANDWIDTH~! <span class="units">~!:BANDWIDTH_MEASURE_2~!</span></div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div><!-- // stats block -->\
|
||||
\
|
||||
</div>\
|
||||
|
@ -641,6 +641,10 @@ App.Templates.html = {
|
|||
<label for="#" class="field-label">Domain Aliases:</label>\
|
||||
<textarea name="ALIAS" class="textarea rule-alias">~!:ALIAS~!</textarea>\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">Nginx extensions:</label>\
|
||||
<textarea name="NGINX_EXT" class="textarea rule-list">~!:NGINX_EXT~!</textarea>\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">Statistics:</label>\
|
||||
<select name="STAT" class="styled">~!:STAT_OPTIONS~!</select>\
|
||||
|
@ -762,7 +766,7 @@ App.Templates.html = {
|
|||
</div>\
|
||||
</div><!-- // disk usage block -->\
|
||||
<!-- bandwidth block -->\
|
||||
<div class="b-usage-box2 bandwidth-box cc">\
|
||||
<div class="b-usage-box2 bandwidth-box cc">\
|
||||
<span class="prop-title">bandwidth:</span>\
|
||||
<div class="usage-box">\
|
||||
<div class="value-box ~!:OVER_DRAFT_VALUE_2~!">\
|
||||
|
@ -809,7 +813,7 @@ App.Templates.html = {
|
|||
<span class="prop-value">~!:NGINX~!</span>\
|
||||
<span class="nginx-ext-list do_action_view_nginx_extensions">extension list</span>\
|
||||
</span>\
|
||||
</div> \
|
||||
</div>\
|
||||
</div><!-- // .row-details -->\
|
||||
</div>']
|
||||
},
|
||||
|
@ -856,6 +860,10 @@ App.Templates.html = {
|
|||
<label for="#" class="field-label">Host:</label>\
|
||||
<select name="HOST" class="styled">~!:HOST_OPTIONS~!</select>\
|
||||
</div>\
|
||||
<div class="form-row cc">\
|
||||
<label for="#" class="field-label">Encoding:</label>\
|
||||
<select name="TYPE" class="styled">~!:ENCODING_OPTIONS~!</select>\
|
||||
</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" />\
|
||||
|
@ -899,7 +907,11 @@ App.Templates.html = {
|
|||
<span class="add-db-user do_action_add_db_user">Add user</span>\
|
||||
</div>\
|
||||
<div class="props-ext">\
|
||||
<span class="backup-db do_action_backup_db">backup</span>\
|
||||
<!-- span class="backup-db do_action_backup_db">backup</span-->\
|
||||
<span class="prop-box">\
|
||||
<span class="prop-title">encoding:</span>\
|
||||
<span class="prop-value">~!:ENCODING~!</span>\
|
||||
</span>\
|
||||
<!-- disk usage block -->\
|
||||
<div class="b-usage-box disk-usage cc">\
|
||||
<div class="usage-box">\
|
||||
|
|
|
@ -38,14 +38,26 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
'STATS_LOGIN' => $record['STATS_AUTH'],
|
||||
'SSL' => $record['SSL'],
|
||||
'SSL_HOME' => $record['SSL_HOME'],
|
||||
'SSL_CERT' => $record['SSL_CERT'],
|
||||
'SSL_KEY' => $record['SSL_KEY'],
|
||||
'SSL_CRT' => '',
|
||||
'SSL_KEY' => '',
|
||||
'SSL_CA' => '',
|
||||
'NGINX' => $record['NGINX'],
|
||||
'NGINX_EXT' => $record['NGINX_EXT'],
|
||||
'SUSPEND' => $record['SUSPEND'],
|
||||
'SUSPEND' => $record['SUSPEND'] == 'on' ? 'on' : 'off',
|
||||
'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE'])))
|
||||
);
|
||||
$web_details['STAT'] == '' ? $web_details['STAT'] = 'none' : true;
|
||||
|
||||
if($record['SSL'] == 'yes'){
|
||||
$result_ssl = Vesta::execute(Vesta::V_LIST_WEB_DOMAIN_SSL, array('USER' => $user['uid'], 'DOMAIN' => $web_domain, self::JSON));
|
||||
|
||||
if($result_ssl['status']){
|
||||
foreach ($result_ssl['data'][$web_domain] as $key => $value) {
|
||||
$web_details['SSL_'.$key] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$reply[$web_domain] = $web_details;
|
||||
}
|
||||
|
||||
|
@ -439,25 +451,7 @@ 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 (!empty($_s['SSL_KEY'])) {
|
||||
$ssl_file = tempnam(sys_get_temp_dir(), 'ssl');
|
||||
file_put_contents($ssl_file, $_s['SSL_KEY']);
|
||||
|
@ -498,8 +492,74 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
$this->errors['SSL_CERT'] = array($result['error_code'] => $result['error_message']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
if (!empty($_new['SSL_KEY']) && !empty($_new['SSL_CRT'])) {
|
||||
// $ssl_dir = sys_get_temp_dir().'/ssl/'.rand();
|
||||
$ssl_dir = sys_get_temp_dir().'/';
|
||||
// if(!mkdir($ssl_dir)){
|
||||
// return $this->reply(FALSE, array('error' => 'can\'t create temp ssl dir: '.$ssl_dir));
|
||||
// }
|
||||
|
||||
|
||||
|
||||
$ssl_crt_file = $ssl_dir . $_new['DOMAIN'] . '.crt';
|
||||
if(!file_put_contents($ssl_crt_file, $_new['SSL_CRT']))
|
||||
|
||||
$ssl_key_file = $ssl_dir . $_new['DOMAIN'] . '.key';
|
||||
file_put_contents($ssl_key_file, $_new['SSL_KEY']);
|
||||
|
||||
if (!empty($_new['SSL_CA'])) {
|
||||
$ssl_ca_file = $ssl_dir . $_new['DOMAIN'] . '.ca';
|
||||
// file_put_contents($ssl_ca_file, $_new['SSL_CA']);
|
||||
}
|
||||
|
||||
|
||||
// echo '<br>';
|
||||
// echo $ssl_crt_file;
|
||||
// echo '<br>';
|
||||
// echo $ssl_key_file;
|
||||
// echo '<br>';
|
||||
// echo $ssl_ca_file;
|
||||
|
||||
$params = array(
|
||||
'USER' => $user['uid'],
|
||||
'DOMAIN' => $_DOMAIN,
|
||||
'SSL_DIR' => $ssl_dir
|
||||
// 'SSL_DIR' => 'tmp'
|
||||
);
|
||||
|
||||
// if (!empty($_s['SSL_HOME'])) {
|
||||
// $params['SSL_HOME'] = $_s['SSL_HOME'];
|
||||
// }
|
||||
|
||||
$result = 0;
|
||||
|
||||
if($_old['SSL'] == 'on'){
|
||||
$result = Vesta::execute(Vesta::V_CHANGE_WEB_DOMAIN_SSL, $params);
|
||||
}
|
||||
else{
|
||||
$result = Vesta::execute(Vesta::V_ADD_WEB_DOMAIN_SSL, $params);
|
||||
}
|
||||
|
||||
// print_r($result);
|
||||
|
||||
if (!$result['status']) {
|
||||
$this->errors['SSL'] = array($result['error_code'] => $result['error_message']);
|
||||
}
|
||||
|
||||
unlink($ssl_crt_file);
|
||||
unlink($ssl_key_file);
|
||||
unlink($ssl_ca_file);
|
||||
|
||||
}
|
||||
|
||||
if (empty($_new['SSL_KEY']) && empty($_new['SSL_CRT']) && $_old['SSL'] == 'on') {
|
||||
$result = 0;
|
||||
$result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN_SSL, array('USER' => $user['uid'], 'DOMAIN' => $_DOMAIN));
|
||||
}
|
||||
|
||||
return $this->reply($result['status'], $result['data']);
|
||||
}
|
||||
|
||||
|
@ -551,7 +611,7 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
$_entities = $request->getParameter('entities');
|
||||
|
||||
foreach($_entities as $entity){
|
||||
$result = Vesta::execute(Vesta::V_SUSPEND_WEB_DOMAIN, array('USER' => $user, $entity['DOMAIN']));
|
||||
$result = Vesta::execute(Vesta::V_SUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], $entity['DOMAIN']));
|
||||
}
|
||||
|
||||
return $this->reply($result['status'], $result['data']);
|
||||
|
@ -563,7 +623,7 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
$_entities = $request->getParameter('entities');
|
||||
|
||||
foreach($_entities as $entity){
|
||||
$result = Vesta::execute(Vesta::V_UNUSPEND_WEB_DOMAIN, array('USER' => $user, $entity['DOMAIN']));
|
||||
$result = Vesta::execute(Vesta::V_UNSUSPEND_WEB_DOMAIN, array('USER' => $user['uid'], $entity['DOMAIN']));
|
||||
}
|
||||
|
||||
return $this->reply($result['status'], $result['data']);
|
||||
|
@ -575,7 +635,7 @@ class WEB_DOMAIN extends AjaxHandler
|
|||
$_entities = $request->getParameter('entities');
|
||||
|
||||
foreach($_entities as $entity){
|
||||
$result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN, array('USER' => $user, $entity['DOMAIN']));
|
||||
$result = Vesta::execute(Vesta::V_DEL_WEB_DOMAIN, array('USER' => $user['uid'], $entity['DOMAIN']));
|
||||
}
|
||||
|
||||
return $this->reply($result['status'], $result['data']);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue