Save active tab in cookie in order to restore after page refresh

This commit is contained in:
Malishev Dmitry 2011-09-02 21:38:27 +03:00
parent 0f2c093148
commit f651c68a6a
9 changed files with 99 additions and 65 deletions

View file

@ -1,6 +1,6 @@
<?php <?php
require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta/core/utils/error_logger.php' require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta/core/utils/error_logger.php';
require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta/app.init.php'; require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vesta/app.init.php';
?> ?>

View file

@ -204,6 +204,7 @@
<!-- script type="text/javascript" src="js/lib/jquery-1.4.4.min.js"></script --> <!-- script type="text/javascript" src="js/lib/jquery-1.4.4.min.js"></script -->
<script type="text/javascript" src="js/lib/cookie.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.js"></script>
<script type="text/javascript" src="js/date_format.js"></script> <script type="text/javascript" src="js/date_format.js"></script>
<script type="text/javascript" src="js/lib/custom-form-elements.js"></script> <script type="text/javascript" src="js/lib/custom-form-elements.js"></script>

View file

@ -1,7 +1,21 @@
$(document).ready(function(){ $(document).ready(function(){
try{ try{
App.Utils.detectBrowser(); App.Utils.detectBrowser();
App.Env.world = 'CRON';
if ('undefined' != typeof App.Tmp.loadTAB) {
App.Env.world = App.Tmp.loadTAB;
}
if ('undefined' == typeof App.Tmp.loadTAB && cookieEnabled()) {
var tab = getCookie('tab');
if (null != tab && $.inArray(tab, App.Constants.TABS)) {
App.Env.world = tab;
}
else {
App.Env.world = App.Constants.TABS[0];
}
}
App.Pages.init(); App.Pages.init();
App.Ref.init(); App.Ref.init();

View file

@ -78,7 +78,9 @@ var App = {
Core: {}, Core: {},
Bash: {}, Bash: {},
Console: {}, Console: {},
Constants: {}, Constants: {
TABS: ['USER','WEB_DOMAIN','MAIL','DB','DNS','IP','CRON']
},
Actions: {}, Actions: {},
Helpers: {}, Helpers: {},
Filters: {}, Filters: {},
@ -175,16 +177,7 @@ App.Ajax.request = function(jedi_method, data, callback)
{ {
App.Helpers.beforeAjax(jedi_method); App.Helpers.beforeAjax(jedi_method);
$.ajax({ $.ajax({
url: function() { url: App.Helpers.getBackendUrl(),
var url_parts = location.href.replace('#', '').split('/');
if (url_parts[url_parts.length -1] == 'index.html') {
url_parts[url_parts.length -1] = 'dispatch.php';
}
else {
url_parts.push('dispatch.php');
}
return url_parts.join('/');
}(),
global: false, global: false,
type: data.request_method || "POST", type: data.request_method || "POST",
data: $.extend(data, {'jedi_method': jedi_method}), data: $.extend(data, {'jedi_method': jedi_method}),

View file

@ -264,3 +264,26 @@ App.Helpers.closeInnerPopup = function(evt)
{ {
$('#inner-popup').remove(); $('#inner-popup').remove();
} }
App.Helpers.getBackendUrl = function()
{
var url_parts = location.href.split('#');
if (url_parts.length > 1) {
var tab = url_parts[url_parts.length - 1];
if ($.inArray(tab, App.Constants.TABS) != -1) {
App.Tmp.loadTAB = tab;
}
}
var url_parts = location.href.split('?', 1);
var url = url_parts[0];
url_parts = url.split('/');
if (url_parts[url_parts.length -1] == 'index.html') {
url_parts[url_parts.length -1] = 'dispatch.php';
}
else {
url_parts.push('dispatch.php');
}
return url_parts.join('/');
}

View file

@ -8,6 +8,10 @@ App.Pages.init = function(){
$('.section.active').removeClass('active'); $('.section.active').removeClass('active');
$('#'+App.Env.world).addClass('active'); $('#'+App.Env.world).addClass('active');
if (cookieEnabled()) {
setCookie('tab', App.Env.world);
}
} }
App.Pages.prepareHTML = function() App.Pages.prepareHTML = function()

View file

@ -24,6 +24,11 @@ class AjaxHandler {
{ {
return null == self::$instance ? self::$instance = new self() : self::$instance; return null == self::$instance ? self::$instance = new self() : self::$instance;
} }
public function getLoggedUser()
{
return VestaSession::getInstance()->getUser();
}
/** /**
* Called functions should reply in the following way * Called functions should reply in the following way

View file

@ -17,7 +17,7 @@ class USER extends AjaxHandler
* @param Request $request * @param Request $request
* @return string - Ajax Reply * @return string - Ajax Reply
*/ */
public function getListExecute($request) public function getListExecute(Request $request)
{ {
$reply = array(); $reply = array();
$result = Vesta::execute(Vesta::V_LIST_SYS_USERS, array(Config::get('response_type'))); $result = Vesta::execute(Vesta::V_LIST_SYS_USERS, array(Config::get('response_type')));
@ -34,40 +34,40 @@ class USER extends AjaxHandler
$reply[$user] = array( $reply[$user] = array(
"LOGIN_NAME" => $user, "LOGIN_NAME" => $user,
"FULLNAME" => $fullname, // TODO skid "FULLNAME" => $fullname, // TODO skid
"PACKAGE" => $details['PACKAGE'], "PACKAGE" => $details['PACKAGE'],
"WEB_DOMAINS" => $details['WEB_DOMAINS'], "WEB_DOMAINS" => $details['WEB_DOMAINS'],
"WEB_SSL" => $details['WEB_SSL'], "WEB_SSL" => $details['WEB_SSL'],
"WEB_ALIASES" => $details['WEB_ALIASES'], "WEB_ALIASES" => $details['WEB_ALIASES'],
"DATABASES" => $details['DATABASES'], "DATABASES" => $details['DATABASES'],
"MAIL_DOMAINS" => $details['MAIL_DOMAINS'], "MAIL_DOMAINS" => $details['MAIL_DOMAINS'],
"MAIL_BOXES" => $details['MAIL_BOXES'], "MAIL_BOXES" => $details['MAIL_BOXES'],
"MAIL_FORWARDERS" => $details['MAIL_FORWARDERS'], "MAIL_FORWARDERS" => $details['MAIL_FORWARDERS'],
"DNS_DOMAINS" => $details['DNS_DOMAINS'], "DNS_DOMAINS" => $details['DNS_DOMAINS'],
"DISK_QUOTA" => $details['DISK_QUOTA'],//$disk_quota, "DISK_QUOTA" => $details['DISK_QUOTA'],//$disk_quota,
"BANDWIDTH" => $details['BANDWIDTH'],//$bandwidth, "BANDWIDTH" => $details['BANDWIDTH'],//$bandwidth,
"NS_LIST" => array($details['NS1'], $details['NS2']), // TODO skid "NS_LIST" => array($details['NS1'], $details['NS2']), // TODO skid
"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'], "SUSPENDED" => $details['SUSPENDED'],
"OWNER" => $details['OWNER'], "OWNER" => $details['OWNER'],
"ROLE" => $details['ROLE'], "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_disk,
"U_BANDWIDTH" => $details['U_BANDWIDTH'],//$u_bandwidth, "U_BANDWIDTH" => $details['U_BANDWIDTH'],//$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'],
"U_DATABASES" => $details['U_DATABASES'], "U_DATABASES" => $details['U_DATABASES'],
"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" => rand(1, 10), // TODO: skid
"U_MAIL_FORWARDERS" => rand(1, 10), // TODO: skid "U_MAIL_FORWARDERS" => rand(1, 10), // TODO: skid
"REPORTS_ENABLED" => 'enabled' // TODO: skid "REPORTS_ENABLED" => 'enabled' // TODO: skid
); );
} }
@ -80,26 +80,19 @@ class USER extends AjaxHandler
* @param Request $request * @param Request $request
* @return string - Ajax Reply * @return string - Ajax Reply
*/ */
public function addExecute($_spell = FALSE) public function addExecute(Request $request)
{ {
$r = new Request(); $spell = $request->getParameter('spell');
if ($_spell) { $user = $this->getLoggedUser();
$_s = $_spell;
}
else {
$_s = $r->getSpell();
}
$_user = 'vesta';
$params = array( $params = array(
'USER' => $_s['USER'], 'USER' => $spell['USER'],
'PASSWORD' => $_s['PASSWORD'], 'PASSWORD' => $spell['PASSWORD'],
'EMAIL' => $_s['EMAIL'], 'EMAIL' => $spell['EMAIL'],
'ROLE' => $_s['ROLE'], 'ROLE' => $spell['ROLE'],
'OWNER' => $_user, 'OWNER' => $user['uid'],
'PACKAGE' => $_s['PACKAGE'], 'PACKAGE' => $spell['PACKAGE'],
'NS1' => $_s['NS1'], 'NS1' => $spell['NS1'],
'NS2' => $_s['NS2'] 'NS2' => $spell['NS2']
); );
$result = Vesta::execute(Vesta::V_ADD_SYS_USER, $params); $result = Vesta::execute(Vesta::V_ADD_SYS_USER, $params);

View file

@ -3,6 +3,7 @@
define('V_ROOT_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR); define('V_ROOT_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
require_once V_ROOT_DIR . 'config/Config.class.php'; require_once V_ROOT_DIR . 'config/Config.class.php';
require_once V_ROOT_DIR . 'core/VestaSession.class.php';
require_once V_ROOT_DIR . 'core/Vesta.class.php'; require_once V_ROOT_DIR . 'core/Vesta.class.php';
require_once V_ROOT_DIR . 'core/exceptions/SystemException.class.php'; require_once V_ROOT_DIR . 'core/exceptions/SystemException.class.php';
require_once V_ROOT_DIR . 'core/exceptions/ProtectionException.class.php'; require_once V_ROOT_DIR . 'core/exceptions/ProtectionException.class.php';