Compare commits
2
Commits
e3fcadc900
...
853498e9ac
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
853498e9ac | ||
|
|
fb5f59027e |
@@ -7,7 +7,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
IMAGE_NAME: tladle
|
IMAGE_NAME: tladle
|
||||||
REGISTRY_NAME: gitea.sc0tt.org
|
REGISTRY_NAME: gitea.sc0tt.org
|
||||||
GIT_TAG: 1.2
|
GIT_TAG: 1.2.1
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
|||||||
@@ -3,37 +3,17 @@
|
|||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Models\Tla;
|
use App\Models\Tla;
|
||||||
|
use App\Models\TlaSuggestion;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class TlaController extends Controller
|
class TlaController extends Controller
|
||||||
{
|
{
|
||||||
public function store(Request $request): RedirectResponse
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'title' => 'required',
|
|
||||||
'body' => 'required',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$tla = new Tla($requestData);
|
|
||||||
|
|
||||||
$tla->save();
|
|
||||||
|
|
||||||
return redirect()->route('admin')->with('success', 'Record added!');
|
|
||||||
} //
|
|
||||||
|
|
||||||
public function destroy(Tla $tla): RedirectResponse
|
|
||||||
{
|
|
||||||
$tla->delete();
|
|
||||||
|
|
||||||
return redirect()->route('admin')->with('success', 'Record deleted');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function session_flush(Request $request, string $language)
|
public function session_flush(Request $request, string $language)
|
||||||
{
|
{
|
||||||
$session = $request->session();
|
$session = $request->session();
|
||||||
if ($session->get('date-'.$language, NULL) != date('Y-m-d'))
|
if ($session->get('date-'.$language, NULL) != date('Y-m-d'))
|
||||||
{
|
{
|
||||||
$session->forget('guesses--'.$language);
|
$session->forget('guesses-'.$language);
|
||||||
$session->forget('tla-'.$language);
|
$session->forget('tla-'.$language);
|
||||||
$session->forget('correct-'.$language);
|
$session->forget('correct-'.$language);
|
||||||
$session->forget('review-'.$language);
|
$session->forget('review-'.$language);
|
||||||
@@ -53,8 +33,8 @@ class TlaController extends Controller
|
|||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'hint' => $tla->hint,
|
'hint' => $tla->hint,
|
||||||
'guesses' => $session->get('guesses--'.$language, []),
|
'guesses' => $session->get('guesses-'.$language, []),
|
||||||
'date' => $session->get('date--'.$language),
|
'date' => $session->get('date-'.$language),
|
||||||
'tla' => $session->get('tla-'.$language) == $tla->acronym ? $tla->acronym : NULL,
|
'tla' => $session->get('tla-'.$language) == $tla->acronym ? $tla->acronym : NULL,
|
||||||
'context' => $session->get('tla-'.$language) == $tla->acronym ? $tla->context : NULL,
|
'context' => $session->get('tla-'.$language) == $tla->acronym ? $tla->context : NULL,
|
||||||
'correct' => $session->get('correct-'.$language),
|
'correct' => $session->get('correct-'.$language),
|
||||||
@@ -107,8 +87,8 @@ class TlaController extends Controller
|
|||||||
$score += $guess_array[$i + 3];
|
$score += $guess_array[$i + 3];
|
||||||
}
|
}
|
||||||
|
|
||||||
$session->push('guesses--'.$language, $guess_array);
|
$session->push('guesses-'.$language, $guess_array);
|
||||||
$guesses = $session->get('guesses--'.$language, NULL);
|
$guesses = $session->get('guesses-'.$language, NULL);
|
||||||
|
|
||||||
if ($score == 12 || count($guesses) == env('MAX_GUESSES', 10)) {
|
if ($score == 12 || count($guesses) == env('MAX_GUESSES', 10)) {
|
||||||
$session->put('tla-'.$language, $tla_object->acronym);
|
$session->put('tla-'.$language, $tla_object->acronym);
|
||||||
@@ -125,8 +105,19 @@ class TlaController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function suggestion(?String $language = "en") {
|
public function suggestion(Request $request, ?String $language = "en") {
|
||||||
|
$request->validate([
|
||||||
|
'acronym' => 'required',
|
||||||
|
'hint' => 'required',
|
||||||
|
'context' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$requestData = $request->input();
|
||||||
|
$tla = new TlaSuggestion($requestData);
|
||||||
|
|
||||||
|
$tla->save();
|
||||||
|
|
||||||
|
return response($tla);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function review(Request $request, String $language, int $type) {
|
public function review(Request $request, String $language, int $type) {
|
||||||
@@ -161,20 +152,4 @@ class TlaController extends Controller
|
|||||||
else return response(null, 403);
|
else return response(null, 403);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update(Request $request, Tla $tla): RedirectResponse
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'title' => 'required',
|
|
||||||
'body' => 'required',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$requestData = $request->all();
|
|
||||||
|
|
||||||
$tla->update($requestData);
|
|
||||||
|
|
||||||
$tla->save();
|
|
||||||
|
|
||||||
return redirect()->route('admin')->with('success', 'Record updated!');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ class TlaSuggestion extends Model
|
|||||||
{
|
{
|
||||||
protected $table = 'tla_suggestion';
|
protected $table = 'tla_suggestion';
|
||||||
|
|
||||||
protected $fillable = ['acronym', 'hint', 'language', 'context'];
|
protected $fillable = ['acronym', 'hint', 'language', 'context', 'submitter'];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('tla_suggestion', function (Blueprint $table){
|
||||||
|
$table->string('submitter')->default('Anonymus')->after('context');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -38,7 +38,6 @@ import Review from '../components/Review.vue';
|
|||||||
onSubmit() {
|
onSubmit() {
|
||||||
|
|
||||||
if (this.words.length == 3 && this.guesses.length < this.maxGuesses) {
|
if (this.words.length == 3 && this.guesses.length < this.maxGuesses) {
|
||||||
console.log(this.words)
|
|
||||||
axios
|
axios
|
||||||
.post("/api/check_tla/en", {
|
.post("/api/check_tla/en", {
|
||||||
guess: this.words,
|
guess: this.words,
|
||||||
|
|||||||
@@ -1,25 +1,37 @@
|
|||||||
<template>
|
<template>
|
||||||
<h1>TLA suggestion form</h1>
|
<h1>TLA suggestion form</h1>
|
||||||
<UCard>
|
<UCard class="w-140 align-center">
|
||||||
<UForm class="space-y-4" style="text-align: left;" action="/api/suggestion" method="post">
|
|
||||||
|
<UForm @submit="onSubmit" class="space-y-4" action="/api/suggestion" method="post">
|
||||||
<UFormField class="form-field" label="Acronym" required>
|
<UFormField class="form-field" label="Acronym" required>
|
||||||
<UInput class="w-80" placeholder="Enter your TLA" name="tla"></UInput>
|
<UInput v-model="form.acronym" class="w-80" placeholder="Enter your TLA" name="tla"></UInput>
|
||||||
</UFormField>
|
</UFormField>
|
||||||
<UFormField label="Motto" required>
|
<UFormField label="Motto" required>
|
||||||
<UInput class="w-80" placeholder="Enter the motto for your TLA"></UInput>
|
<UInput class="w-80" v-model="form.hint" placeholder="Enter the motto for your TLA" name="hint"></UInput>
|
||||||
</UFormField>
|
</UFormField>
|
||||||
<UFormField label="Contex" required>
|
<UFormField label="Contex" required>
|
||||||
<UTextarea class="w-80" rows=5 placeholder="Provide context for your TLA. This will be displayed upon completing the riddle of the day, either by guessing it correctly, or by running out of guesses."></UTextarea>
|
<UTextarea class="w-80" v-model="form.context" name="context" rows=5 placeholder="Provide context for your TLA. This will be displayed upon completing the riddle of the day, either by guessing it correctly, or by running out of guesses."></UTextarea>
|
||||||
</UFormField>
|
</UFormField>
|
||||||
<UFormField>
|
<UFormField required>
|
||||||
<URadioGroup orientation="horizontal" variant="table" size="xs" default-value="en" :items="['en', 'hu']" />
|
<URadioGroup orientation="horizontal" v-model="form.language" name="language" variant="table" size="xs" default-value="en" :items="['en', 'hu']" />
|
||||||
|
</UFormField>
|
||||||
|
<UFormField class="form-field" label="Submitter (your name)">
|
||||||
|
<UInput v-model="form.submitter" class="w-80" placeholder="Anonymus" name="submitter"></UInput>
|
||||||
</UFormField>
|
</UFormField>
|
||||||
<UButton type="submit">
|
<UButton type="submit">
|
||||||
Submit suggestion
|
Submit suggestion
|
||||||
</UButton>
|
</UButton>
|
||||||
</UForm>
|
</UForm>
|
||||||
|
<br>
|
||||||
|
Disclaimer: I'm going through these manually, approving them or even changing the context or motto for them, if I feel it's necessary. I don't guarantee, that your suggestion will be approved and even if it is, it may not be next days TLA.
|
||||||
</UCard>
|
</UCard>
|
||||||
|
|
||||||
|
<Modal v-model:open="submited">
|
||||||
|
<b>Your suggestion has been submitted!</b><br>
|
||||||
|
If you wish, you can submit adnother TLA by exiting this alert. <br><br>
|
||||||
|
<UButton to="/">Main page</UButton>
|
||||||
|
</Modal>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@@ -32,5 +44,33 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
acronym: '',
|
||||||
|
hint: '',
|
||||||
|
context: '',
|
||||||
|
language: '',
|
||||||
|
submitter: '',
|
||||||
|
},
|
||||||
|
submited: false,
|
||||||
|
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onSubmit() {
|
||||||
|
axios.post('/api/suggestion/en', this.form);
|
||||||
|
this.form.acronym = '';
|
||||||
|
this.form.hint = '';
|
||||||
|
this.form.context = '';
|
||||||
|
this.form.submitter = '';
|
||||||
|
this.form.language = 'en';
|
||||||
|
this.submited = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
<!-- Dark mode favicon -->
|
<!-- Dark mode favicon -->
|
||||||
<link rel="icon" href="{{ asset('logo_full_tall_dark.svg') }}" type="image/x-icon" media="(prefers-color-scheme: dark)">
|
<link rel="icon" href="{{ asset('logo_full_tall_dark.svg') }}" type="image/x-icon" media="(prefers-color-scheme: dark)">
|
||||||
|
|
||||||
<title>TLAdle</title>
|
<title>{{ config('app.name') }}</title>
|
||||||
@vite(['resources/js/app.js'])
|
@vite(['resources/js/app.js'])
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
Reference in New Issue
Block a user