v0.12.2 - Added feedback storing to ajax instead of backend

This commit is contained in:
Anders 2020-09-07 14:21:59 +02:00
parent 1030bcc13f
commit 66762efb8a
5 changed files with 56 additions and 12 deletions

View File

@ -166,5 +166,15 @@ class FeedbackController extends Controller
}
}
public function storeajax(Request $request) {
$requestBody = $request->validate([
"message" => "required",
"suggestion_form" => "required|max:255"
]);
$feedbacks = new Feedbacks($requestBody);
$feedbacks->save();
}
}

View File

@ -65,10 +65,7 @@ return[
"error" => "Fejl",
"404" => "Denne side findes ikke.",
"403" => "Du har ikke rettigheder til denne side.",
"canceled" => "Aflyst"
"canceled" => "Aflyst",
"feedbacksendt" => "Tak for din feedback!",
"feedbackerror" => "Du skal skrive en besked."
];

View File

@ -71,5 +71,7 @@ return[
"error" => "Error",
"404" => "This page doesn't exist.",
"403" => "You don't have permissions to access this page.",
"canceled" => "Canceled"
"canceled" => "Canceled",
"feedbacksendt" => "Thank you for your feedback!",
"feedbackerror" => "You have to write a feedback message."
];

View File

@ -11,15 +11,49 @@
}
</style>
<main style="min-height: calc(100% - 61.34px)" class="text-center">
<form action="{{ action('FeedbackController@store') }}" method="post" style="margin-top: 4rem; margin-bottom: auto;">
<div method="post" style="margin-top: 4rem; margin-bottom: auto; max-width: 100%; padding: 0 0.45rem 0 0.45rem; display: flex; flex-direction: column; justify-content: center;">
@csrf
<span>Ris el. Ros?</span>
<select name="suggestion_form" class="mb-2" required>
<select id="suggestion_form" name="suggestion_form" class="mb-2" required>
<option selected>Ros</option>
<option>Ris</option>
</select>
<textarea name="message" placeholder="Skriv Ris/Ros besked her" style="resize: vertical;" required></textarea>
<button type="submit" class="btn btn-sde-blue mt-2">Send Ris/Ros</button>
</form>
<span>Besked:</span>
<textarea id="message" name="message" placeholder="Skriv Ris/Ros besked her" style="resize: vertical;" required></textarea>
<button onclick="ajaxCall(document.getElementById('suggestion_form'), document.getElementById('message'))" class="btn btn-sde-blue mt-2">Send Ris/Ros</button>
</div>
<div id="snackbar"></div>
</main>
@endsection
@section("scripts")
<script type="text/javascript">
function snackbar(data) {
var x = document.getElementById("snackbar");
x.innerHTML = data;
x.className = "show";
setTimeout(function(){ x.className = x.className.replace("show", ""); }, 5000);
}
function ajaxCall(suggestion_form, message) {
var SF = suggestion_form.value
var M = message.value
if(SF != '' && M != '') {
axios.post("{{ route("feedbacks.storeajax") }}",
{
suggestion_form: SF,
message: M
}
).then(function (response) {
snackbar('{{__("msg.feedbacksendt")}}');
message.value = "";
}).catch(function (error) {
console.log(error);
});
} else {
snackbar('{{__("msg.feedbackerror")}}');
}
}
</script>
@endsection

View File

@ -40,6 +40,7 @@ Route::get("/about", "AboutController@index")->name("about.index");
Route::post("/events/cancelsignup", "UserEventController@createajaxcancel")->name("userevents.createajaxcancel");
Route::post("/account/cancelmailwants", "UserController@createajaxcancel")->name("users.createajaxcancel");
Route::delete("/notifications/delete", "EventController@deleteNotifications")->name("notifications.delete");
Route::post("/feedbacks/store", "FeedbackController@storeajax")->name("feedbacks.storeajax");
//Route::get("/signup", "UserController@signup")->name("users.signup");
//Search/Filter