From: <kil...@us...> - 2010-12-07 16:38:26
|
Revision: 31266 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=31266&view=rev Author: killianebel Date: 2010-12-07 16:38:18 +0000 (Tue, 07 Dec 2010) Log Message: ----------- [FIX] Improved {TRACKERFILTER} : keep filters when sorting and changing page + added a 'reset filters' action Modified Paths: -------------- trunk/lib/wiki-plugins/wikiplugin_trackerfilter.php trunk/templates/wiki-plugins/wikiplugin_trackerfilter.tpl trunk/templates/wiki-plugins/wikiplugin_trackerlist.tpl Modified: trunk/lib/wiki-plugins/wikiplugin_trackerfilter.php =================================================================== --- trunk/lib/wiki-plugins/wikiplugin_trackerfilter.php 2010-12-07 16:37:55 UTC (rev 31265) +++ trunk/lib/wiki-plugins/wikiplugin_trackerfilter.php 2010-12-07 16:38:18 UTC (rev 31266) @@ -107,7 +107,12 @@ } $default = array('noflipflop'=>'n', 'action'=>'Filter', 'line' => 'n', 'displayList' => 'n', 'export_action' => '', 'export_itemid' => 'y', 'export_status' => 'n', 'export_created' => 'n', 'export_modif' => 'n', 'export_charset' => 'UTF-8', 'status' => 'opc'); - + + if (isset($_REQUEST['reset_filter'])) { + wikiplugin_trackerFilter_reset_filters(); + } else if (!isset($_REQUEST['filter']) && isset($_REQUEST['session_filters']) && $_REQUEST['session_filters'] == 'y') { + $params = array_merge($params, wikiplugin_trackerFilter_get_session_filters()); + } if (isset($_REQUEST["mapview"]) && $_REQUEST["mapview"] == 'y' && !isset($_REQUEST["searchmap"]) && !isset($_REQUEST["searchlist"]) || isset($_REQUEST["searchmap"]) && !isset($_REQUEST["searchlist"])) { $params["googlemap"] = 'y'; } @@ -239,6 +244,7 @@ } } $params['max'] = $prefs['maxRecords']; + wikiplugin_trackerFilter_save_session_filters($params); $smarty->assign('urlquery', wikiplugin_trackerFilter_build_urlquery($params)); include_once('lib/wiki-plugins/wikiplugin_trackerlist.php'); $dataRes .= wikiplugin_trackerlist($data, $params); @@ -343,6 +349,42 @@ } } +function wikiplugin_trackerFilter_reset_filters() { + unset($_SESSION[wikiplugin_trackerFilter_get_session_filters_key()]); + unset($_REQUEST['tracker_filters']); + + foreach ($_REQUEST as $key => $val) { + if (substr($key, 0, 2) == 'f_') { + unset($_REQUEST[$key]); + } + } +} + +function wikiplugin_trackerFilter_get_session_filters_key() { + $trackerId = isset($_REQUEST['trackerId']) ? $_REQUEST['trackerId'] : 0; + return 'f_' . $_REQUEST['page'] . '_' . $trackerId; +} + +function wikiplugin_trackerFilter_save_session_filters($filters) { + $_SESSION[wikiplugin_trackerFilter_get_session_filters_key()] = $filters; +} + +function wikiplugin_trackerFilter_get_session_filters() { + $key = wikiplugin_trackerFilter_get_session_filters_key(); + + if (!isset($_SESSION[$key])) { + return array(); + } + + if (isset($_SESSION[$key]['filterfield'])) { + foreach ($_SESSION[$key]['filterfield'] as $idx => $field) { + $_REQUEST['f_' . $field] = $_SESSION[$key]['filtervalue'][$idx]; + } + } + + return $_SESSION[$key]; +} + function wikiplugin_trackerFilter_split_filters($filters) { if (empty($filters)) { return array(); Modified: trunk/templates/wiki-plugins/wikiplugin_trackerfilter.tpl =================================================================== --- trunk/templates/wiki-plugins/wikiplugin_trackerfilter.tpl 2010-12-07 16:37:55 UTC (rev 31265) +++ trunk/templates/wiki-plugins/wikiplugin_trackerfilter.tpl 2010-12-07 16:38:18 UTC (rev 31266) @@ -112,6 +112,7 @@ <input class="button submit" type="submit" name="export_filter" value="{tr}{$export_action}{/tr}" /> {elseif $action and $action neq " "} <input class="button submit" type="submit" name="filter" value="{if empty($action)}{tr}Filter{/tr}{else}{tr}{$action}{/tr}{/if}" /> + <input class="button submit" type="submit" name="reset_filter" value="{tr}Reset{/tr}" /> {else} {/if} Modified: trunk/templates/wiki-plugins/wikiplugin_trackerlist.tpl =================================================================== --- trunk/templates/wiki-plugins/wikiplugin_trackerlist.tpl 2010-12-07 16:37:55 UTC (rev 31265) +++ trunk/templates/wiki-plugins/wikiplugin_trackerlist.tpl 2010-12-07 16:38:18 UTC (rev 31266) @@ -77,7 +77,7 @@ {/if} {else} <th class="auto field{$ix.fieldId}"> - {self_link _sort_arg='tr_sort_mode'|cat:$iTRACKERLIST _sort_field='f_'|cat:$ix.fieldId}{$ix.name|default:" "}{/self_link} + {self_link _sort_arg='tr_sort_mode'|cat:$iTRACKERLIST _sort_field='f_'|cat:$ix.fieldId session_filters='y'}{$ix.name|default:" "}{/self_link} </th> {/if} {/if} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |