diff --git a/admin-dev/themes/default/template/products/form.tpl b/admin-dev/themes/default/template/products/form.tpl index 04872dee0..3aa2cde16 100644 --- a/admin-dev/themes/default/template/products/form.tpl +++ b/admin-dev/themes/default/template/products/form.tpl @@ -212,6 +212,7 @@ {foreach $tabs_preloaded as $k => $tab} tabs_preloaded['{$k}'] = '{$tab}'; {/foreach} + var stack = new Array(); $('.product-tab-content').each(function(){ var id = $(this).attr('id').substr(20); @@ -220,8 +221,11 @@ if (tabs_preloaded[btn_name]) if ($("#product-tab-content-"+id).hasClass('not-loaded')) - displayTabProductById('#link-'+id, id, false); + stack.push(id); }); + + displayTabProductById2(0, false, stack); + $('.productTabs').show(); $('#product_form').show(); $('#product-tab-content-wait').hide(); diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php index adc740eda..ea0992303 100644 --- a/controllers/admin/AdminProductsController.php +++ b/controllers/admin/AdminProductsController.php @@ -41,8 +41,6 @@ class AdminProductsControllerCore extends AdminController protected $available_tabs = array( 'Informations', - 'Pack', - 'VirtualProduct', 'Prices', 'Seo', 'Associations', @@ -55,7 +53,9 @@ class AdminProductsControllerCore extends AdminController 'Quantities', 'Suppliers', 'Warehouses', - 'Accounting' + 'Accounting', + 'Pack', + 'VirtualProduct' ); protected $available_tabs_lang = array (); diff --git a/js/admin-products.js b/js/admin-products.js index 693c7742a..ab6f0bfae 100644 --- a/js/admin-products.js +++ b/js/admin-products.js @@ -247,6 +247,41 @@ function displayTabProductById(el, id, selected) }); } +function displayTabProductById2(index, selected, stack) +{ + id = stack[index]; + myurl = $('#link-'+id).attr("href")+"&ajax=1"; + // Used to check if the tab is already in the process of being loaded + $("#product-tab-content-"+id).addClass('loading'); + + if (selected) + $('#product-tab-content-wait').show(); + + $.ajax({ + url : myurl, + async : true, + success : function(data) + { + $("#product-tab-content-"+id).html(data); + $("#product-tab-content-"+id).removeClass('not-loaded'); + + if (selected) + { + $("#link-"+id).addClass('selected'); + $("#product-tab-content-"+id).show(); + } + }, + complete : function(data) + { + $("#product-tab-content-"+id).removeClass('loading'); + if (selected) + $('#product-tab-content-wait').hide(); + if (stack[index + 1]) + displayTabProductById2(index + 1, selected, stack); + } + }); +} + /** * Update the manufacturer select element with the list of existing manufacturers */