1717use PanicHD \PanicHD \Models ;
1818use PanicHD \PanicHD \Models \Attachment ;
1919use PanicHD \PanicHD \Models \Category ;
20+ use PanicHD \PanicHD \Models \Department ;
2021use PanicHD \PanicHD \Models \Member ;
2122use PanicHD \PanicHD \Models \Setting ;
2223use PanicHD \PanicHD \Models \Tag ;
@@ -66,7 +67,15 @@ public function data($ticketList = 'active')
6667 // Filter by all specified fields
6768 $ search_fields = session ()->get ('search_fields ' );
6869 foreach ($ search_fields as $ field => $ value ){
69- if ($ field == 'list ' ){
70+ if ($ field == 'department_id ' ){
71+ $ collection ->whereHas ('owner ' , function ($ query )use ($ search_fields ){
72+ $ query ->whereHas ('department ' , function ($ q1 )use ($ search_fields ){
73+ $ q1 ->where ('id ' , $ search_fields ['department_id ' ])
74+ ->orWhere ('department_id ' , $ search_fields ['department_id ' ]);
75+ });
76+ });
77+
78+ }elseif ($ field == 'list ' ){
7079 $ collection ->inList ($ value );
7180
7281 }elseif (in_array ($ field , ['start_date ' , 'limit_date ' ])){
@@ -772,7 +781,13 @@ public function search_form_defaults()
772781 ])
773782 ->select ('id ' , 'name ' )->get ();
774783
775- return compact ('c_members ' , 'c_status ' , 'priorities ' , 'a_categories ' , 'c_visible_agents ' , 'c_cat_tags ' );
784+ $ data = compact ('c_members ' , 'c_status ' , 'priorities ' , 'a_categories ' , 'c_visible_agents ' , 'c_cat_tags ' );
785+
786+ if (Setting::grab ('departments_feature ' )){
787+ $ data ['c_departments ' ] = Department::whereNull ('department_id ' )->with ('descendants.ancestor ' )->orderBy ('name ' , 'asc ' )->get ();
788+ }
789+
790+ return $ data ;
776791 }
777792
778793 /**
@@ -789,7 +804,7 @@ public function register_search_fields(Request $request)
789804 session ()->forget ('search_fields ' );
790805
791806 // Check all fields
792- $ 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 ' ]);
807+ $ a_fields = array_merge ($ this ->a_search_fields_numeric , $ this ->a_search_fields_text , ['department_id ' , ' list ' , 'start_date ' , 'limit_date ' , 'comments ' , 'attachment_name ' , 'any_text_field ' ]);
793808 foreach ($ a_fields as $ field ){
794809 if ($ request ->filled ($ field )){
795810 $ search_fields [$ field ] = $ request ->{$ field };
0 commit comments