@@ -58,8 +58,12 @@ public function data($ticketList = 'active')
5858 $ collection = Ticket::visible ();
5959
6060 if ($ ticketList == 'search ' ){
61- // Filter by all specified fields
62- if (session ()->has ('search_fields ' )){
61+ if (!session ()->has ('search_fields ' )){
62+ // Load an empty table
63+ $ collection ->where ('panichd_tickets.id ' , '0 ' );
64+
65+ }else {
66+ // Filter by all specified fields
6367 $ search_fields = session ()->get ('search_fields ' );
6468 foreach ($ search_fields as $ field => $ value ){
6569 if ($ field == 'list ' ){
@@ -722,46 +726,16 @@ protected function getCacheList($list)
722726 */
723727 public function search_form ()
724728 {
725- $ data = $ this ->search_form_defaults ();
726-
727- return view ('panichd::tickets.search ' , $ data );
728- }
729-
730- /**
731- * Ticket search results
732- *
733- * @return Response
734- */
735- public function search_results (Request $ request )
736- {
737- $ data = $ this ->search_form_defaults ();
738-
739- $ data ['ticketList ' ] = 'search ' ;
740-
741729 // Forget last search
742730 session ()->forget ('search_fields ' );
731+
732+ $ data = $ this ->search_form_defaults ();
743733
744- // Check all fields
745- $ a_fields = array_merge ($ this ->a_search_fields_numeric , $ this ->a_search_fields_text , ['list ' , 'start_date ' , 'limit_date ' , 'comments ' , 'attachment_name ' , 'any_text_field ' ]);
746- foreach ($ a_fields as $ field ){
747- if ($ request ->filled ($ field )){
748- $ search_fields [$ field ] = $ request ->{$ field };
749- }
750- }
751-
752- // Check ticket tags
753- if ($ request ->filled ('category_id ' ) and $ request ->filled ('category_ ' . $ request ->category_id . '_tags ' )){
754- $ search_fields ['tags ' ] = $ request ->{'category_ ' . $ request ->category_id . '_tags ' };
755- }
756-
757- if (isset ($ search_fields )){
758- // Store search fields in session to use in datatable
759- session (compact ('search_fields ' ));
760- }
734+ $ data ['ticketList ' ] = 'search ' ;
761735
762- return view ('panichd::tickets.search.results ' , $ data );
736+ return view ('panichd::tickets.search ' , $ data );
763737 }
764-
738+
765739 /**
766740 * Ticket search default data
767741 *
@@ -796,6 +770,43 @@ public function search_form_defaults()
796770 return compact ('c_members ' , 'c_status ' , 'priorities ' , 'a_categories ' , 'c_visible_agents ' , 'c_cat_tags ' );
797771 }
798772
773+ /**
774+ * Register search fields in user session
775+ *
776+ * @return Response
777+ */
778+ public function register_search_fields (Request $ request )
779+ {
780+ $ result = "error " ;
781+ $ message = "No field was registered " ;
782+
783+ // Forget last search
784+ session ()->forget ('search_fields ' );
785+
786+ // Check all fields
787+ $ a_fields = array_merge ($ this ->a_search_fields_numeric , $ this ->a_search_fields_text , ['list ' , 'start_date ' , 'limit_date ' , 'comments ' , 'attachment_name ' , 'any_text_field ' ]);
788+ foreach ($ a_fields as $ field ){
789+ if ($ request ->filled ($ field )){
790+ $ search_fields [$ field ] = $ request ->{$ field };
791+ }
792+ }
793+
794+ // Check ticket tags
795+ if ($ request ->filled ('category_id ' ) and $ request ->filled ('category_ ' . $ request ->category_id . '_tags ' )){
796+ $ search_fields ['tags ' ] = $ request ->{'category_ ' . $ request ->category_id . '_tags ' };
797+ }
798+
799+ if (isset ($ search_fields )){
800+ // Store search fields in session to use in datatable
801+ session (compact ('search_fields ' ));
802+
803+ $ result = "ok " ;
804+ $ message = count ($ search_fields ) . " fields registered " ;
805+ }
806+
807+ return response ()->json (['result ' => $ result , 'messages ' => [$ message ]]);
808+ }
809+
799810 /**
800811 * Open Ticket creation form with optional parameters pre-setted by URL
801812 *
0 commit comments