diff --git a/admin-dev/themes/default/template/controllers/supply_orders_receipt_history/list_action_details.tpl b/admin-dev/themes/default/template/controllers/supply_orders_receipt_history/list_action_details.tpl deleted file mode 100644 index cebce9597..000000000 --- a/admin-dev/themes/default/template/controllers/supply_orders_receipt_history/list_action_details.tpl +++ /dev/null @@ -1,130 +0,0 @@ -{* -* 2007-2011 PrestaShop -* -* NOTICE OF LICENSE -* -* This source file is subject to the Academic Free License (AFL 3.0) -* that is bundled with this package in the file LICENSE.txt. -* It is also available through the world-wide-web at this URL: -* http://opensource.org/licenses/afl-3.0.php -* If you did not receive a copy of the license and are unable to -* obtain it through the world-wide-web, please send an email -* to license@prestashop.com so we can send you a copy immediately. -* -* DISCLAIMER -* -* Do not edit or add to this file if you wish to upgrade PrestaShop to newer -* versions in the future. If you wish to customize PrestaShop for your -* needs please refer to http://www.prestashop.com for more information. -* -* @author PrestaShop SA -* @copyright 2007-2011 PrestaShop SA -* @version Release: $Revision$ -* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*} - - - {$action} - \ No newline at end of file diff --git a/admin-dev/themes/default/template/helper/list/list_action_details.tpl b/admin-dev/themes/default/template/helper/list/list_action_details.tpl index 195d956c3..fb1a479c4 100644 --- a/admin-dev/themes/default/template/helper/list/list_action_details.tpl +++ b/admin-dev/themes/default/template/helper/list/list_action_details.tpl @@ -23,110 +23,7 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} - - + {$action} diff --git a/classes/helper/HelperList.php b/classes/helper/HelperList.php index b94cf151e..094ff4b80 100644 --- a/classes/helper/HelperList.php +++ b/classes/helper/HelperList.php @@ -392,12 +392,18 @@ class HelperListCore extends Helper $tpl = $this->createTemplate('list_action_details.tpl'); if (!array_key_exists('Details', self::$cache_lang)) self::$cache_lang['Details'] = $this->l('Details', 'helper'); + + $ajax_params = $this->ajax_params; + if (!is_array($ajax_params) || !isset($ajax_params['action'])) + $ajax_params['action'] = 'details'; + $tpl->assign(array( 'id' => $id, 'controller' => str_replace('Controller', '', get_class($this->context->controller)), 'token' => $token != null ? $token : $this->token, 'action' => self::$cache_lang['Details'], - 'params' => $this->ajax_params + 'params' => $ajax_params, + 'json_params' => Tools::jsonEncode($ajax_params) )); return $tpl->fetch(); } diff --git a/controllers/admin/AdminAttributesGroupsController.php b/controllers/admin/AdminAttributesGroupsController.php index 42d26f8cf..8f1798e8e 100644 --- a/controllers/admin/AdminAttributesGroupsController.php +++ b/controllers/admin/AdminAttributesGroupsController.php @@ -79,10 +79,9 @@ class AdminAttributesGroupsControllerCore extends AdminController * method call when ajax request is made with the details row action * @see AdminController::postProcess() */ - public function ajaxProcess() + public function ajaxProcessDetails() { - // test if an id is submit - if (($id = Tools::getValue('id')) && Tools::isSubmit('id')) + if (($id = Tools::getValue('id'))) { $this->table = 'attribute'; $this->className = 'Attribute'; @@ -150,9 +149,9 @@ class AdminAttributesGroupsControllerCore extends AdminController $helper->bulk_actions = $this->bulk_actions; $content = $helper->generateList($this->_list, $this->fieldsDisplay); - $this->content = Tools::jsonEncode(array('use_parent_structure' => false, 'data' => $content)); + echo Tools::jsonEncode(array('use_parent_structure' => false, 'data' => $content)); + exit; } - } /** diff --git a/controllers/admin/AdminFeaturesController.php b/controllers/admin/AdminFeaturesController.php index e855b969d..f56c5a88d 100644 --- a/controllers/admin/AdminFeaturesController.php +++ b/controllers/admin/AdminFeaturesController.php @@ -91,9 +91,8 @@ class AdminFeaturesControllerCore extends AdminController * method call when ajax request is made with the details row action * @see AdminController::postProcess() */ - public function ajaxProcess() + public function ajaxProcessDetails() { - // test if an id is submit if (($id = Tools::getValue('id'))) { $this->table = 'feature_value'; @@ -143,7 +142,8 @@ class AdminFeaturesControllerCore extends AdminController $helper->bulk_actions = $this->bulk_actions; $content = $helper->generateList($this->_list, $this->fieldsDisplay); - $this->content = Tools::jsonEncode(array('use_parent_structure' => false, 'data' => $content)); + echo Tools::jsonEncode(array('use_parent_structure' => false, 'data' => $content)); + exit; } } diff --git a/controllers/admin/AdminTabsController.php b/controllers/admin/AdminTabsController.php index a4caf9898..332f10a89 100644 --- a/controllers/admin/AdminTabsController.php +++ b/controllers/admin/AdminTabsController.php @@ -196,10 +196,9 @@ class AdminTabsControllerCore extends AdminController * method call when ajax request is made with the details row action * @see AdminController::postProcess() */ - public function ajaxProcess() + public function ajaxProcessDetails() { - // test if an id is submit - if (($id = Tools::getValue('id')) && Tools::isSubmit('id')) + if (($id = Tools::getValue('id'))) { // override attributes $this->display = 'list'; diff --git a/js/admin.js b/js/admin.js index d0bcd9597..fac2ee571 100644 --- a/js/admin.js +++ b/js/admin.js @@ -1061,3 +1061,112 @@ function showAjaxOverlay() clearTimeout(ajax_running_timeout); } +function display_action_details(row_id, controller, token, action, params) { + var id = action+'_'+row_id; + var current_element = $('#details_'+id); + if (!current_element.data('dataMaped')) { + var ajax_params = { + 'id': row_id, + 'controller': controller, + 'token': token, + 'action': action, + 'ajax': true + }; + + $.each(params, function(k, v) + { + ajax_params[k] = v; + }); + + $.ajax({ + url: 'index.php', + data: ajax_params, + dataType: 'json', + context: current_element, + async: false, + success: function(data) { + if (typeof(data.use_parent_structure) == 'undefined' || (data.use_parent_structure == true)) + { + if (current_element.parent().parent().hasClass('alt_row')) + var alt_row = true; + else + var alt_row = false; + current_element.parent().parent().after($('') + .append($('') + .attr('colspan', current_element.parent().parent().find('td').length))); + $.each(data.data, function(it, row) + { + var bg_color = ''; // Color + if (row.color) + bg_color = 'style="background:' + row.color +';"'; + + var content = $(''); + content.append($('')); + var first = true; + var count = 0; // Number of non-empty collum + $.each(row, function(it) + { + if(typeof(data.fields_display[it]) != 'undefined') + count++; + }); + $.each(data.fields_display, function(it, line) + { + if (typeof(row[it]) == 'undefined') + { + if (first || count == 0) + content.append($('')); + else + content.append($('')); + } + else + { + count--; + if (first) + { + first = false; + content.append($(''+row[it]+'')); + } + else if (count == 0) + content.append($(''+row[it]+'')); + else + content.append($(''+row[it]+'')); + } + }); + content.append($('')); + current_element.parent().parent().after(content.show('slow')); + }); + } + else + { + if (current_element.parent().parent().hasClass('alt_row')) + var content = $(''); + else + var content = $(''); + content.append($('
'+data.data+'
').attr('colspan', current_element.parent().parent().find('td').length)); + current_element.parent().parent().after(content); + current_element.parent().parent().parent().find('.details_'+id+' div.details_content').hide(); + } + current_element.data('dataMaped',true); + current_element.data('opened', false); + initTableDnD('.details_'+id+' table.tableDnD'); + } + }); + } + + if (current_element.data('opened')) + { + current_element.find('img').attr('src', '../img/admin/more.png'); + current_element.parent().parent().parent().find('.details_'+id+' div.details_content').slideUp('slow', function() + { + current_element.parent().parent().parent().find('.details_'+id).hide(); + }); + current_element.data('opened', false); + } + else + { + current_element.find('img').attr('src', '../img/admin/less.png'); + current_element.parent().parent().parent().find('.details_'+id).show(); + current_element.parent().parent().parent().find('.details_'+id+' div.details_content').slideDown('slow'); + current_element.data('opened', true); + } +} \ No newline at end of file