From: <ny...@us...> - 2008-07-27 13:22:44
|
Revision: 13900 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=13900&view=rev Author: nyloth Date: 2008-07-27 13:22:53 +0000 (Sun, 27 Jul 2008) Log Message: ----------- [FIX] tiki tabs: when using AJAX and tabs together, the current tab has to be set again after replacing content with the AJAX response, because it is usually done through the onload param of the body tag which is not included again in the AJAX response. This fixes, for example, the 'New Item' tab to be displayed under the 'List items' tab when using pagination links and AJAX in trackers. Modified Paths: -------------- trunk/lib/ajax/ajaxlib.php trunk/lib/ajax/tiki-ajax.js trunk/lib/smarty_tiki/block.ajax_href.php Modified: trunk/lib/ajax/ajaxlib.php =================================================================== --- trunk/lib/ajax/ajaxlib.php 2008-07-27 10:14:36 UTC (rev 13899) +++ trunk/lib/ajax/ajaxlib.php 2008-07-27 13:22:53 UTC (rev 13900) @@ -157,13 +157,26 @@ $ajaxlib = new TikiAjax(); $ajaxlib->registerFunction("loadComponent"); -function loadComponent($template, $htmlElementId) { - global $smarty, $ajaxlib; +function loadComponent($template, $htmlElementId, $max_tikitabs = 0) { + global $smarty, $ajaxlib, $prefs; $objResponse = new xajaxResponse(); if ($ajaxlib->templateIsRegistered($template)) { + $content = $smarty->fetch($template); $objResponse->addAssign($htmlElementId, "innerHTML", $content); + + // Handle TikiTabs in order to display only the current tab in the XAJAX response + // This has to be done here, since it is tikitabs() is usually called when loading the <body> tag + // which is not done again when replacing content by the XAJAX response + // + $max_tikitabs = (int)$max_tikitabs; + if ( $max_tikitabs > 0 && $prefs['feature_tabs'] == 'y' ) { + global $cookietab; + $tab = ( $cookietab != '' ) ? (int)$cookietab : 1; + $objResponse->addScript("tikitabs($tab,$max_tikitabs);"); + } + } else { $objResponse->addAlert(sprintf(tra("Template %s not registered"),$template)); } Modified: trunk/lib/ajax/tiki-ajax.js =================================================================== --- trunk/lib/ajax/tiki-ajax.js 2008-07-27 10:14:36 UTC (rev 13899) +++ trunk/lib/ajax/tiki-ajax.js 2008-07-27 13:22:53 UTC (rev 13900) @@ -1,6 +1,6 @@ -function loadComponent(url, template, htmlelement) { - xajaxRequestUri = url; - xajax_loadComponent(template, htmlelement); +function loadComponent(url, template, htmlelement, max_tikitabs) { + xajaxRequestUri = url; + xajax_loadComponent(template, htmlelement, max_tikitabs); } if (typeof xajax != "undefined") { xajax.loadingFunction = function() { Modified: trunk/lib/smarty_tiki/block.ajax_href.php =================================================================== --- trunk/lib/smarty_tiki/block.ajax_href.php 2008-07-27 10:14:36 UTC (rev 13899) +++ trunk/lib/smarty_tiki/block.ajax_href.php 2008-07-27 13:22:53 UTC (rev 13900) @@ -17,7 +17,8 @@ if ( $prefs['feature_ajax'] != 'y' || $prefs['javascript_enabled'] == 'n' ) { return " href=\"$url\" "; } else { - return " href=\"#\" onclick=\"loadComponent('$url','$template','$htmlelement');return false;\" "; + $max_tikitabs = 5; // Same value as in header.tpl, <body> tag onload's param + return " href=\"#\" onclick=\"loadComponent('$url','$template','$htmlelement',$max_tikitabs);return false;\" "; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |