[1.6+] BO, ajax error dans la page produit - pas d'autre explication de l'erreur



  • En Prestashop 1.6, même en mode debug, il est impossible de connaître la cause exacte de l'erreur qui provoque une erreur ajax.

    Il est possible (utile) de rendre l'erreur sous-jacente compréhensible en appliquant le patch suivant:
    https://github.com/PrestaShop/PrestaShop/pull/8475/files

    js/admin/products.js

    				if ((in_array(status, wrong_statuses) || in_array(request.status, wrong_status_code)) && !self.page_reloading) {
    
    					var current_tab = '';
    					try {
    					if (request.responseText !== 'undefined' && request.responseText && request.responseText.length) {
    						current_tab = $(request.responseText).filter('.product-tab').attr('id').replace('product-', '');
    					}
    					jAlert((current_tab ? 'Tab : ' + current_tab : '') + ' (' + (request.status ? request.status + ' ' : '' ) + request.statusText + ')\n' + reload_tab_description + request.responseText, reload_tab_title);
    					self.page_reloading = true;
    					self.has_error_loading_tabs = true;
    					clearTimeout(tabs_running_timeout);
    

    par

    				if ((in_array(status, wrong_statuses) || in_array(request.status, wrong_status_code)) && !self.page_reloading) {
    					var current_tab = '';
    					try {
    					if (request.responseText !== 'undefined' && request.responseText && request.responseText.length) {
    						current_tab = $(request.responseText).filter('.product-tab').attr('id').replace('product-', '');
    					}
    					} catch(e){};
    					jAlert((current_tab ? 'Tab : ' + current_tab : '') + ' (' + (request.status ? request.status + ' ' : '' ) + request.statusText + ')\n' + reload_tab_description, reload_tab_title);
    					self.page_reloading = true;
    					self.has_error_loading_tabs = true;
    					clearTimeout(tabs_running_timeout);
    

    Patchez également js/jquery/plugins/alerts/jquery.alerts.css

    #popup_message {
    	padding-left: 48px;
    }
    

    par

    #popup_message {
    	padding-left: 48px;
    	max-height: 350px;
    	overflow: auto;
    }