Use separate form field to close poll immediately

This commit is contained in:
Les De Ridder 2018-10-22 20:48:35 +02:00
parent e54925060b
commit e54df0aade
2 changed files with 7 additions and 18 deletions

View File

@ -291,22 +291,21 @@ class PollController extends Controller
return redirect() return redirect()
->action('PollController@admin', ['poll' => $poll, 'password' => $poll->admin_password]) ->action('PollController@admin', ['poll' => $poll, 'password' => $poll->admin_password])
->with('extraCodes', $codes); ->with('extraCodes', $codes);
} else if($request->has('close_now')) {
$poll->closes_at = Carbon::now();
$poll->save();
return redirect()->action('PollController@viewResults', ['poll' => $poll]);
} else { } else {
$request['allow_multiple_answers'] = $request->has('allow_multiple_answers'); $request['allow_multiple_answers'] = $request->has('allow_multiple_answers');
$request['hide_results_until_closed'] = $request->has('hide_results_until_closed'); $request['hide_results_until_closed'] = $request->has('hide_results_until_closed');
$request['automatically_close_poll'] = $request->has('automatically_close_poll'); $request['automatically_close_poll'] = $request->has('automatically_close_poll');
$request['set_admin_password'] = $request->has('set_admin_password'); $request['set_admin_password'] = $request->has('set_admin_password');
if($request['automatically_close_poll'] && $request['automatically_close_poll_datetime'] == 'now') {
//HACK: The validation rule 'date' doesn't accept 'now' as a valid date
$request['automatically_close_poll_datetime'] = Carbon::now()->format('Y-m-d\TH:i');
}
$validatedInput = $request->validate([ $validatedInput = $request->validate([
'hide_results_until_closed' => 'required|boolean', 'hide_results_until_closed' => 'required|boolean',
'automatically_close_poll' => 'required|boolean', 'automatically_close_poll' => 'required|boolean',
'automatically_close_poll_datetime' => 'required_if:automatically_close_poll,true|date|after_or_equal:1 minute ago', 'automatically_close_poll_datetime' => 'required_if:automatically_close_poll,true|date|after:now',
'set_admin_password' => 'required|boolean', 'set_admin_password' => 'required|boolean',
'admin_password' => 'required_if:set_admin_password,true|nullable|string', 'admin_password' => 'required_if:set_admin_password,true|nullable|string',
]); ]);

View File

@ -88,17 +88,7 @@
@csrf @csrf
<div class="some-top-margin"> <div class="some-top-margin">
@if ($poll->hide_results_until_closed) <input type="hidden" name="close_now" value="1">
<input type="hidden" name="hide_results_until_closed" value="1">
@endif
@if ($poll->admin_password != null)
<input type="hidden" name="set_admin_password" value="1">
<input type="hidden" name="admin_password" value="{{ $poll->admin_password }}">
@endif
<input type="hidden" name="automatically_close_poll" value="1">
<input type="hidden" name="automatically_close_poll_datetime" value="now">
<input type="submit" class="btn huge-button" value="Close poll now"> <input type="submit" class="btn huge-button" value="Close poll now">
</div> </div>