@@ -69,6 +69,66 @@ public function only(Request $request, $filter, $value, $list)
6969 return \Redirect::back ();
7070 }
7171
72+ /*
73+ * Delete all previous filters and apply just the valid ones from the requested
74+ * You may specify a ticket list as a final parameter (like URL/complete) o as key/value (like URL/list/complete)
75+ */
76+ public function just (Request $ request , $ parameters )
77+ {
78+ // Get URL parameters and replace a_current array with them
79+ $ a_temp = explode ('/ ' , $ parameters );
80+ $ a_valid = [];
81+ $ list = false ;
82+
83+ $ i = 0 ;
84+ $ filter = "" ;
85+ foreach ($ a_temp as $ param ){
86+ $ i ++;
87+ if ($ filter == "" ){
88+ if (!$ list and $ i == count ($ a_temp ) and array_key_exists ($ param , $ this ->a_lists )){
89+ // Allow ticket list as a last parameter if not set as list/list_key in previous parameters
90+ $ list = $ param ;
91+ }else
92+ $ filter = $ param ;
93+ }else {
94+ if (in_array ($ filter , $ this ->a_filters )){
95+ // Add filter to validate
96+ $ a_valid [$ filter ] = $ param ;
97+ }elseif ($ filter == 'list ' and array_key_exists ($ param , $ this ->a_lists )){
98+ // Select ticket list
99+ $ list = $ param ;
100+ }
101+ $ filter = "" ;
102+ }
103+ }
104+
105+ // Delete each filter from session
106+ foreach ($ this ->a_filters as $ delete ){
107+ $ request ->session ()->forget ('panichd_filter_ ' .$ delete );
108+ }
109+
110+ if ($ a_valid ){
111+ foreach ($ a_valid as $ filter => $ value ){
112+ // Add filter
113+ $ request ->session ()->put ('panichd_filter_ ' .$ filter , $ value );
114+ }
115+
116+ // Check all filters
117+ list ($ request , $ filters_count ) = $ this ->validateFilters ($ request );
118+
119+ if ($ filters_count > 0 ) {
120+ // General filter check
121+ $ request ->session ()->put ('panichd_filters ' ,'yes ' );
122+ }
123+ }
124+
125+ if ($ list ){
126+ // Redirect to specified list
127+ return redirect ()->route (Setting::grab ('main_route ' ) . $ this ->a_lists [$ list ]);
128+ }else
129+ return redirect ()->route (Setting::grab ('main_route ' ) . '.index ' );
130+ }
131+
72132 /*
73133 * Add a filter and validate it
74134 *
0 commit comments