Skip to content

Commit ded18c9

Browse files
committed
Search by owner department
1 parent c1dfbaa commit ded18c9

3 files changed

Lines changed: 57 additions & 24 deletions

File tree

src/Controllers/TicketsController.php

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use PanicHD\PanicHD\Models;
1818
use PanicHD\PanicHD\Models\Attachment;
1919
use PanicHD\PanicHD\Models\Category;
20+
use PanicHD\PanicHD\Models\Department;
2021
use PanicHD\PanicHD\Models\Member;
2122
use PanicHD\PanicHD\Models\Setting;
2223
use 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};

src/Models/Department.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public function getName()
6666
*/
6767
public function getFullName()
6868
{
69-
$ancestor = ($this->is_main() ? '' : $this->ancestor()->first()->name . trans('panichd::lang.colon'));
69+
$ancestor = ($this->is_main() ? '' : $this->ancestor->name . trans('panichd::lang.colon'));
7070

7171
return ucwords(mb_strtolower($ancestor . $this->name));
7272
}

src/Views/tickets/search/form.blade.php

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,28 +38,46 @@
3838
<div class="help-block text-muted">Who created the ticket (Sometimes is an agent in the name of a Member)</div>
3939
</div>
4040
</div>
41-
42-
<div class="form-group row" style="margin-bottom: 1.5em"><!-- OWNER -->
43-
44-
<label for="user_id" class="col-lg-3 level_class col-form-label tooltip-info" data-level-1-class="col-lg-2" data-level-2-class="col-lg-3" title="{{ trans('panichd::lang.create-ticket-owner-help') }}"> *{{trans('panichd::lang.owner')}}{{trans('panichd::lang.colon')}} <span class="fa fa-question-circle" style="color: #bbb"></span></label>
45-
46-
<div class="col-lg-9 level_class" data-level-1-class="col-lg-10" data-level-2-class="col-lg-9">
47-
<select name="user_id" class="generate_default_select2 form-control" style="display: none; width: 100%">
48-
<option value="">- none -</option>
49-
@foreach ($c_members as $owner)
50-
<option value="{{ $owner->id }}">{{ $owner->name . ($owner->email == "" ? ' ' . trans('panichd::lang.ticket-owner-no-email') : ' - ' . $owner->email) }}
51-
@if ($setting->grab('departments_notices_feature'))
52-
@if ($owner->ticketit_department == '0')
53-
{{ ' - ' . trans('panichd::lang.create-ticket-notices') . ' ' . trans('panichd::lang.all-depts')}}
54-
@elseif ($owner->ticketit_department != "")
55-
{{ ' - ' . trans('panichd::lang.create-ticket-notices') . ' ' . $owner->userDepartment->getFullName() }}
41+
42+
<div style="margin-bottom: 1.5em">
43+
<div class="form-group row"><!-- OWNER -->
44+
<label for="user_id" class="col-lg-3 level_class col-form-label tooltip-info" data-level-1-class="col-lg-2" data-level-2-class="col-lg-3" title="{{ trans('panichd::lang.create-ticket-owner-help') }}"> *{{trans('panichd::lang.owner')}}{{trans('panichd::lang.colon')}} <span class="fa fa-question-circle" style="color: #bbb"></span></label>
45+
<div class="col-lg-9 level_class" data-level-1-class="col-lg-10" data-level-2-class="col-lg-9">
46+
<select name="user_id" class="generate_default_select2 form-control" style="display: none; width: 100%">
47+
<option value="">- none -</option>
48+
@foreach ($c_members as $owner)
49+
<option value="{{ $owner->id }}">{{ $owner->name . ($owner->email == "" ? ' ' . trans('panichd::lang.ticket-owner-no-email') : ' - ' . $owner->email) }}
50+
@if ($setting->grab('departments_notices_feature'))
51+
@if ($owner->ticketit_department == '0')
52+
{{ ' - ' . trans('panichd::lang.create-ticket-notices') . ' ' . trans('panichd::lang.all-depts')}}
53+
@elseif ($owner->ticketit_department != "")
54+
{{ ' - ' . trans('panichd::lang.create-ticket-notices') . ' ' . $owner->userDepartment->getFullName() }}
55+
@endif
5656
@endif
57-
@endif
58-
</option>
59-
@endforeach
60-
</select>
61-
<div class="help-block text-muted">Member that owns the ticket</div>
57+
</option>
58+
@endforeach
59+
</select>
60+
<div class="help-block text-muted">Member that owns the ticket</div>
61+
</div>
6262
</div>
63+
64+
@if($setting->grab('departments_feature'))
65+
<div class="form-group row"><!-- DEPARTMENT -->
66+
<label for="user_id" class="col-lg-3 level_class col-form-label" data-level-1-class="col-lg-2" data-level-2-class="col-lg-3"> Department{{trans('panichd::lang.colon')}}</label>
67+
<div class="col-lg-9 level_class" data-level-1-class="col-lg-10" data-level-2-class="col-lg-9">
68+
<select name="department_id" class="generate_default_select2 form-control" style="display: none; width: 100%">
69+
<option value="">- none -</option>
70+
@foreach ($c_departments as $dep)
71+
<option value="{{ $dep->id }}">{{ $dep->name }}</option>
72+
@foreach($dep->descendants as $descendant)
73+
<option value="{{ $descendant->id }}">&nbsp;&nbsp;&nbsp;&nbsp;{{ $descendant->getFullName() }}</option>
74+
@endforeach
75+
@endforeach
76+
</select>
77+
<div class="help-block text-muted">Owner departments</div>
78+
</div>
79+
</div>
80+
@endif
6381
</div>
6482

6583
<div>

0 commit comments

Comments
 (0)