Skip to content

Commit c1dfbaa

Browse files
committed
Allow to specify start date or limit date types
1 parent 15506e6 commit c1dfbaa

2 files changed

Lines changed: 28 additions & 5 deletions

File tree

src/Controllers/TicketsController.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,12 @@ public function data($ticketList = 'active')
7070
$collection->inList($value);
7171

7272
}elseif(in_array($field, ['start_date', 'limit_date'])){
73-
$collection->where($field, '>=', Carbon::createFromFormat(trans('panichd::lang.datetime-format'), $value));
73+
if ($search_fields[$field . '_type'] == 'exact_day'){
74+
$collection->whereDate($field, Carbon::createFromFormat(trans('panichd::lang.datetime-format'), $value)->toDateTimeString());
75+
76+
}else{
77+
$collection->where($field, ($search_fields[$field . '_type'] == 'from' ? '>=' : '<'), Carbon::createFromFormat(trans('panichd::lang.datetime-format'), $value)->toDateTimeString());
78+
}
7479

7580
}elseif(in_array($field, $this->a_search_fields_text)){
7681
$collection->where($field, 'like', '%' . $value . '%');
@@ -791,6 +796,15 @@ public function register_search_fields(Request $request)
791796
}
792797
}
793798

799+
// Register Start date and Limit date types (from radio buttons)
800+
if ($request->filled('start_date') or $request->filled('start_date')){
801+
foreach (['start_date', 'limit_date'] as $field){
802+
if($request->filled($field)){
803+
$search_fields[$field . '_type'] = $request->{$field . '_type'};
804+
}
805+
}
806+
}
807+
794808
// Check ticket tags
795809
if ($request->filled('category_id') and $request->filled('category_' . $request->category_id . '_tags')){
796810
$search_fields['tags'] = $request->{'category_' . $request->category_id . '_tags'};

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

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
</div>
111111
</div>
112112

113-
<div class="form-group row">
113+
<div class="form-group row"><!-- START DATE -->
114114
{!! CollectiveForm::label('start_date', trans('panichd::lang.start-date') . trans('panichd::lang.colon'), ['class' => 'col-lg-3 col-form-label']) !!}
115115
<div class="col-lg-9">
116116
<div class="input-group date" id="start_date">
@@ -120,10 +120,15 @@
120120
<button class="btn btn-light btn-default"><span class="fa fa-calendar"></span></button>
121121
</span>
122122
</div>
123-
<div class="form-text text-muted">From specified date time</div>
123+
<div class="form-text">
124+
<label><input type="radio" name="start_date_type" value="from" checked="checked"> From specified</label>
125+
<label class="ml-2"><input type="radio" name="start_date_type" value="until"> Until specified</label>
126+
<label class="ml-2"><input type="radio" name="start_date_type" value="exact_day"> Exact day, any time</label>
127+
</div>
124128
</div>
125129
</div>
126-
<div class="form-group row" style="margin-bottom: 1.5em">
130+
131+
<div class="form-group row" style="margin-bottom: 1.5em"><!-- LIMIT DATE -->
127132
{!! CollectiveForm::label('limit_date', trans('panichd::lang.limit-date') . trans('panichd::lang.colon'), ['class' => 'col-lg-3 col-form-label']) !!}
128133
<div class="col-lg-9">
129134
<div class="input-group date" id="limit_date">
@@ -133,7 +138,11 @@
133138
<button class="btn btn-light btn-default"><span class="fa fa-calendar"></span></button>
134139
</span>
135140
</div>
136-
<div class="form-text text-muted">From specified date time</div>
141+
<div class="form-text">
142+
<label><input type="radio" name="limit_date_type" value="from" checked="checked"> From specified</label>
143+
<label class="ml-2"><input type="radio" name="limit_date_type" value="until"> Until specified</label>
144+
<label class="ml-2"><input type="radio" name="limit_date_type" value="exact_day"> Exact day, any time</label>
145+
</div>
137146
</div>
138147
</div>
139148
</div>

0 commit comments

Comments
 (0)