diff --git a/admin-dev/themes/default/css/admin.css b/admin-dev/themes/default/css/admin.css index 97f1f6389..07c1f0332 100644 --- a/admin-dev/themes/default/css/admin.css +++ b/admin-dev/themes/default/css/admin.css @@ -246,10 +246,18 @@ a.module_toggle_all{color: #268CCD;} right: 13px; top: 63px; z-index: 100; - padding: 10px; + padding: 10px 10px 0px 10px; box-shadow: 1px 5px 5px #CCCCCC; -moz-box-shadow: 1px 5px 10px #CCCCCC; -webkit-box-shadow: 1px 5px 10px #CCCCCC; + opacity: 1; + +} +.toolbarBox #modules_list_container #modules_list_container_content +{ + max-height: 500px; + overflow: scroll; + } .toolbarBox #modules_list_container #modules_list_container_tab {margin-top: 10px;width: auto;height: auto; } @@ -259,6 +267,45 @@ a.module_toggle_all{color: #268CCD;} .toolbarBox #modules_list_container #modules_list_container_tab #tab_module_switch {margin-bottom: 10px;} .toolbarBox #modules_list_container #modules_list_loader {margin-top: 10px} +.toolbarBox #modules_list_container .nav-tabs-modules:after { + clear: both; +} + +.toolbarBox #modules_list_container .nav-tabs-modules > li { + height: 19px; +} + +.toolbarBox #modules_list_container .nav-tabs-modules > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.toolbarBox #modules_list_container .nav-tabs-modules > li > a { + padding-top: 8px; + padding-bottom: 8px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.toolbarBox #modules_list_container .nav-tabs-modules > li > a:hover { + border-color: #C0C0C0; + background-color: #ffffff; +} + +.toolbarBox #modules_list_container .nav-tabs-modules > li > a {border: 1px solid #ddd;} + +.toolbarBox #modules_list_container .nav-tabs-modules > .active > a, +.toolbarBox #modules_list_container .nav-tabs-modules > .active > a:hover { + color: #555555; + cursor: default; + background-color: #EEE; + border: 1px solid #ddd; + border-bottom-color: transparent; +} div.fix-toolbar {border-bottom: 1px solid #E0E0E0;position:fixed;top:0;opacity:0.9;z-index:500;} @@ -462,7 +509,7 @@ form#product_form h4 { font-size:18px; font-weight:normal;} #moduleContainer .setup.non-install { background-color:#ec7000;} #moduleContainer .setup.must-have { background-color: #ec7000;} #moduleContainer .setup.off{ background-color:#ccc;} -#moduleContainer .row-actions-module span { padding-right:5px;} +#moduleContainer .row-actions-module span {padding-right:5px;} #moduleContainer .row-actions-module span a { font-size:12px;} #moduleContainer .button.uninstalled, #moduleContainer .button.installed { float:right; clear:both; margin-top:15px; font-size:12px;} @@ -478,7 +525,7 @@ form#product_form h4 { font-size:18px; font-weight:normal;} #modules_list_container_tab table tr td tr td {border: none} #modules_list_container_tab table tr:first-child {border-top:1px solid #ccc} #modules_list_container_tab .imgm {width:32px;} -#modules_list_container_tab .moduleDesc { font-size:12px; margin-bottom:10px;} +#modules_list_container_tab .moduleDesc { font-size:12px;} #modules_list_container_tab .moduleDesc h3 { color:#3A6EA7;margin: 0;font-size: 1.1em;text-align: left} #modules_list_container_tab .moduleDesc .metadata { float:left; display:block; margin:5px 0;} #modules_list_container_tab .moduleDesc .metadata dl { float:left; margin:0; padding-right:10px;} @@ -487,6 +534,7 @@ form#product_form h4 { font-size:18px; font-weight:normal;} #modules_list_container_tab .moduleDesc .metadata dl dt { font-weight:bold; padding-right:5px;} #modules_list_container_tab .moduleDesc p.desc { color:#666; font-family: Georgia; font-style: italic; font-size:12px; display:block; clear:both;text-align: left} #modules_list_container_tab .setup {background-color:#6db300; font-weight:bold; font-size:10px; color:#fff; text-transform:uppercase; position:relative; left:10px; padding:0px 4px; display: inline-block; border-radius:3px;} +#modules_list_container_tab .row-actions-module {float: right;} #modules_list_container_tab .setup.non-install { background-color:#ec7000;} #modules_list_container_tab .setup.must-have { background-color: #ec7000;} #modules_list_container_tab .setup.off{ background-color:#ccc;} @@ -497,7 +545,6 @@ form#product_form h4 { font-size:18px; font-weight:normal;} #modules_list_container_tab .moduleGridDesc { position:relative; display:block; height:30px;} #modules_list_container_tab .moduleGridDesc h3 { color:#3A6EA7; margin:0;} #modules_list_container_tab ul.listing-grid-module li select { position:absolute; top:0; right:0px; } -#modules_list_container_tab table tr td.tab_modules_actions_row { height: 20px} /*MODULE POSITION*/ diff --git a/admin-dev/themes/default/template/controllers/modules/favorites.tpl b/admin-dev/themes/default/template/controllers/modules/favorites.tpl index b3f43dfe3..3df17a423 100755 --- a/admin-dev/themes/default/template/controllers/modules/favorites.tpl +++ b/admin-dev/themes/default/template/controllers/modules/favorites.tpl @@ -42,7 +42,7 @@
| {l s='No modules available in this section.'} |
{l s='Click here to choose which modules to display here'}
\ No newline at end of file + \ No newline at end of file diff --git a/admin-dev/themes/default/template/toolbar.tpl b/admin-dev/themes/default/template/toolbar.tpl index f80ab8254..fb09f2364 100644 --- a/admin-dev/themes/default/template/toolbar.tpl +++ b/admin-dev/themes/default/template/toolbar.tpl @@ -49,6 +49,7 @@ {/block} diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 0f68ce46b..d63a9b922 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -1414,10 +1414,13 @@ class AdminControllerCore extends Controller 'href' => '#', 'desc' => $this->l('Modules List') ); - + $this->context->smarty->assign(array( 'tab_modules_list' => implode(',', $tab_modules_list), - 'admin_module_ajax_url' => $this->context->link->getAdminLink('AdminModules'))); + 'admin_module_ajax_url' => $this->context->link->getAdminLink('AdminModules'), + 'back_tab_modules_list' => $this->context->link->getAdminLink(Tools::getValue('controller')), + 'tab_modules_open' => (int)Tools::getValue('tab_modules_open') + )); } /** diff --git a/controllers/admin/AdminModulesController.php b/controllers/admin/AdminModulesController.php index 2096edd2a..58b72af7b 100644 --- a/controllers/admin/AdminModulesController.php +++ b/controllers/admin/AdminModulesController.php @@ -236,6 +236,9 @@ class AdminModulesControllerCore extends AdminController public function ajaxProcessGetTabModulesList() { $tab_modules_list = Tools::getValue('tab_modules_list'); + $back = Tools::getValue('back_tab_modules_list'); + if ($back) + $back .= '&tab_modules_open=1'; $modules_list = array('installed' =>array(), 'not_installed' => array()); if ($tab_modules_list) { @@ -245,7 +248,7 @@ class AdminModulesControllerCore extends AdminController { if (in_array($module->name, $tab_modules_list)) { - $this->fillModuleData($module, 'select'); + $this->fillModuleData($module, 'select', $back); if ($module->id) $modules_list['installed'][] = $module; else @@ -294,6 +297,22 @@ class AdminModulesControllerCore extends AdminController die('OK'); } + public function ajaxProcessSaveTabModulePreferences() + { + $values = Tools::getValue('value_pref'); + $module = Tools::getValue('module_pref'); + if (Validate::isModuleName($module)) + { + Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'tab_module_preference` WHERE `id_employee` = '.(int)$this->id_employee.' AND `module` = \''.pSQL($module).'\''); + if (is_array($values) && count($values)) + foreach($values as $value) + Db::getInstance()->execute(' + INSERT INTO `'._DB_PREFIX_.'tab_module_preference` (`id_tab_module_preference`, `id_employee`, `id_tab`, `module`) + VALUES (NULL, '.(int)$this->id_employee.', '.(int)$value.', \''.pSQL($module).'\');'); + } + die('OK'); + } + /* ** Get current URL ** @@ -759,6 +778,9 @@ class AdminModulesControllerCore extends AdminController // Call appropriate module callback if (!isset($ppmReturn)) $this->postProcessCallback(); + + if ($back = Tools::getValue('back')) + Tools::redirectAdmin($back); } /** @@ -787,12 +809,17 @@ class AdminModulesControllerCore extends AdminController return $html_error; } - /* - ** Display Modules Lists - ** - */ + /** + * Display modules list + * + * @param $module + * @param $output_type (link or select) + * @param $back + * + * @return string + */ protected $translationsTab = array(); - public function displayModuleOptions($module, $output_type = 'link') + public function displayModuleOptions($module, $output_type = 'link', $back = null) { if (!isset($this->translationsTab['Disable this module'])) { @@ -803,10 +830,19 @@ class AdminModulesControllerCore extends AdminController $this->translationsTab['Reset'] = $this->l('Reset'); $this->translationsTab['Configure'] = $this->l('Configure'); $this->translationsTab['Delete'] = $this->l('Delete'); + $this->translationsTab['Install'] = $this->l('Install'); + $this->translationsTab['Uninstall'] = $this->l('Uninstall'); $this->translationsTab['This action will permanently remove the module from the server. Are you sure you want to do this?'] = $this->l('This action will permanently remove the module from the server. Are you sure you want to do this?'); } $modules_options = array( + 'configure-module' => array( + 'href' => self::$currentIndex.'&configure='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.urlencode($module->name), + 'onclick' => $module->onclick_option && isset($module->onclick_option_content['configure']) ? $module->onclick_option_content['configure'] : '', + 'title' => '', + 'text' => $this->translationsTab['Configure'], + 'cond' => $module->id && isset($module->is_configurable) && $module->is_configurable, + ), 'desactive-module' => array( 'href' => self::$currentIndex.'&token='.$this->token.'&module_name='.urlencode($module->name).'&'.($module->active ? 'enable=0' : 'enable=1').'&tab_module='.$module->tab, 'onclick' => $module->active && $module->onclick_option && isset($module->onclick_option_content['desactive']) ? $module->onclick_option_content['desactive'] : '' , @@ -821,13 +857,6 @@ class AdminModulesControllerCore extends AdminController 'text' => $this->translationsTab['Reset'], 'cond' => $module->id && $module->active, ), - 'configure-module' => array( - 'href' => self::$currentIndex.'&configure='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.urlencode($module->name), - 'onclick' => $module->onclick_option && isset($module->onclick_option_content['configure']) ? $module->onclick_option_content['configure'] : '', - 'title' => '', - 'text' => $this->translationsTab['Configure'], - 'cond' => $module->id && isset($module->is_configurable) && $module->is_configurable, - ), 'delete-module' => array( 'href' => self::$currentIndex.'&delete='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.urlencode($module->name), 'onclick' => $module->onclick_option && isset($module->onclick_option_content['delete']) ? $module->onclick_option_content['delete'] : 'return confirm(\''.$this->translationsTab['This action will permanently remove the module from the server. Are you sure you want to do this?'].'\');', @@ -843,15 +872,22 @@ class AdminModulesControllerCore extends AdminController { if ($output_type == 'link') $return .= ' - '.$option['text'].' + '.$option['text'].' '; else if ($output_type == 'select') - $return .= ''; + $return .= ''; } } if ($output_type == 'select') + { + if (!$module->id) + $return = ''.$return; + else + $return = ''.$return; $return = '