💄 Improved editor.svelte

This commit is contained in:
Mawoka
2022-03-28 21:26:15 +02:00
parent fe494bcb1f
commit 19c44d6765
5 changed files with 384 additions and 349 deletions
+70 -41
View File
@@ -1,4 +1,4 @@
<script lang="ts">
<script lang='ts'>
import { getLocalization } from '$lib/i18n';
const { t } = getLocalization();
@@ -41,75 +41,104 @@
};
</script>
<label>
<input type="checkbox" bind:checked={data.public} />
Public?
<label class='pl-2'>
<input type='checkbox' class='w-fit' bind:checked={data.public} />
{$t('words.public')}?
</label>
<label>
<input type="text" placeholder="Title" bind:value={data.title} class="text-black" />
Title
<label class='pl-2'>
{$t('words.title')}:
<input type='text' placeholder={$t('words.title')} bind:value={data.title}
class='text-black w-3/5 bg-inherit border-dotted border-b-2 border-black' />
</label>
<label>
<textarea placeholder="Description" bind:value={data.description} class="text-black" />
Description
<label class='pl-2'>
{$t('words.description')}:
<textarea placeholder={$t('words.description')} bind:value={data.description} class='text-black w-3/5' />
</label>
{#each data.questions as question, index_question}
<div class="ml-8 grid grid-cols-1 gap-2 m-2 border border-black border-2">
<h1 class="text-3xl">{$t('words.question')} {index_question + 1}</h1>
<div class='ml-8 grid grid-cols-1 gap-2 m-2 border border-black border-2'>
<h1 class='text-3xl m-1'>{$t('words.question')} {index_question + 1}</h1>
<label>
<label class='m-1'>
{$t('words.question')}:
<input
type="text"
type='text'
placeholder={$t('words.question')}
bind:value={question.question}
class="text-black"
class='text-black w-3/5 bg-inherit border-dotted border-b-2 border-black'
/>
{$t('words.question')}
</label>
<label>
<input type="text" placeholder="20" bind:value={question.time} class="text-black" />
{$t('editor.time_in_seconds')}
<label class='m-1'>
{$t('editor.time_in_seconds')}:
<input type='text' placeholder='20' bind:value={question.time}
class='text-black w-3/5 bg-inherit border-dotted border-b-2 border-black' />
</label>
{#each question.answers as answer, index_answer}
<div class="ml-8 grid grid-cols-1 gap-2 m-2 border border-black border-2">
<h1 class="text-3xl">{$t('words.answer')} {index_answer + 1}</h1>
<p>{$t('words.answer')}: {index_answer} {$t('words.question')}: {index_question}</p>
<label>
<div class='ml-8 grid grid-cols-1 gap-2 m-2 border border-black border-2 m-1'>
<h1 class='text-3xl m-1'>{$t('words.answer')} {index_answer + 1}</h1>
<p class='m-1'>{$t('words.answer')}: {index_answer + 1} {$t('words.question')}: {index_question + 1}</p>
<label class=' m-1'>
{$t('words.answer')}:
<input
type="text"
type='text'
placeholder={$t('words.answer')}
bind:value={data.questions[index_question].answers[index_answer].answer}
class="text-black"
class='text-black w-3/5 bg-inherit border-dotted border-b-2 border-black'
/>
{$t('words.answer')}
</label>
<label>
<input type="checkbox" bind:checked={answer.right} class="text-black" />
{$t('editor.right_or_true?')}?
<label class='m-1'>
<input type='checkbox' bind:checked={answer.right} class='text-black' />
{$t('editor.right_or_true?')}
</label>
<button
class="text-left"
type="button"
class='text-left border-yellow-500 border-2 w-fit m-1'
type='button'
on:click={() => {
data.questions[index_question].answers.splice(index_answer, 1);
data.questions[index_question].answers = data.questions[index_question].answers
}}
>
{$t('editor.delete_answer')}
</button>
</div>
{/each}
<button
class='text-left border-green-500 border-2 w-fit m-1'
type='button'
on:click={() => {
data.questions[index_question].answers = [
...data.questions[index_question].answers,
{ ...empty_answer }
];
}}
>
{$t('editor.add_new_answer')}
</button>
</div>
{/each}
>
{$t('editor.add_new_answer')}
</button>
<button
class="text-left"
type="button"
class='text-left border-red-500 border-2 w-fit m-1'
type='button'
on:click={() => {
data.questions = [...data.questions, { ...empty_question }];
data.questions.splice(index_question, 1);
data.questions = data.questions
}}
>
{$t('editor.add_new_question')}
{$t('editor.delete_question')}
</button>
</div>
{/each}
<button type="submit">{submit_button_text}</button>
<button
class='text-left'
type='button'
on:click={() => {
data.questions = [...data.questions, { ...empty_question }];
}}
>
{$t('editor.add_new_question')}
</button>
<button type='submit' class='text-xl'>{submit_button_text}</button>
+108 -105
View File
@@ -1,107 +1,110 @@
{
"index_page": {
"meta": {
"title": "Home",
"description": "ClassQuiz ist eine Quiz-App wie KAHOOT! für Schüler*innen, welche open-source und kostenlos ist"
},
"features_description": {
"1": "ClassQuiz ist eine Quiz-Platform, welche das erstellen und managen von Quizzes erlaubt.",
"2": "Das Hauptfeature ist die KAHOOT!-Importfunktion, mit der man Quizzes von KAHOOT! importieren kann."
},
"slogan": "Die open-source Quiz-Platform!"
},
"overview_page": {
"created_at": "Erstellt am",
"question_count": "Fragenanzahl"
},
"edit_page": {
"success_update_title": "Quiz erfolgreich aktualisiert!",
"success_update_body": "Das Quiz wurde erfolgreich aktualisiert!"
},
"create_page": {
"success": {
"title": "Quiz erfolgreich erstellt!",
"body": "Das Quiz wurde erfolgreich erstellt!"
}
},
"register_page": {
"greeting": "Schön, dich zu sehen!",
"create_account": "Account erstellen",
"forgot_password?": "Passwort vergessen?",
"already_have_account?": "Hast du schon einen Account?"
},
"login_page": {
"welcome_back": "Willkommen zurück!",
"login_or_create_account": "Einloggen oder Account erstellen",
"already_have_account": "Noch kein Account?",
"modal": {
"success": {
"success_check_mail": "Login erfolgreich! Guck in deine Mailbox!",
"success": "Login erfolgreich!",
"description": {
"success_check_mail": "Bitte überprüfe deine Mailbox, weil du eine Email mit einem Link, um dich einzuloggen, empfangen haben solltest.",
"success": "Du hast dich erfolgreich angemeldet!"
}
},
"error": {
"wrong_creds": "Falsche Email oder falsches Passwort!",
"unexpected": "Unerwarteter Fehler!",
"description": {
"wrong_creds": "Bitte stelle sicher, dass dein Passwort und deine Email richtig sind!",
"unexpected": "Der gute alte unerwartete Fehler hat uns heimgesucht!"
}
}
}
},
"words": {
"question": "Frage",
"answer": "Antwort",
"stats": "Statistiken",
"features": "Features",
"import": "Importieren",
"url": "URL",
"submit": "Abschicken",
"create": "Erstellen",
"logout": "Abmelden",
"title": "Titel",
"play": "Spielen",
"edit": "Bearbeiten",
"delete": "Löschen",
"public": "Öffentlich",
"start": "Start",
"connect": "Verbinden",
"pin": "PIN",
"kick": "Kicken",
"register": "Registrieren",
"login": "Anmelden",
"docs": "Dokumentation",
"close": "Schließen",
"save": "Speichern",
"username": "Nutzername",
"password": "Passwort",
"email": "Email"
},
"editor": {
"time_in_seconds": "Zeit in Sekunden",
"right_or_true?": "Richtig?",
"add_new_answer": "Neue Antwort hinzufügen",
"add_new_question": "Neue Frage hinzufügen"
},
"import": {
"need_help": "",
"visit_docs": ""
},
"admin": {
"already_registered_as_admin": ""
},
"admin_page": {
"already_registered_as_admin": "Ein Admin wurde schon für dieses Spiel registriert.",
"start_game": "Spiel starten",
"time_left": "Zeit übrig",
"get_results": "Ergebnisse abfragen"
},
"import_page": {
"need_help": "Brauchst du Hilfe?",
"visit_docs": "Besuche die Dokumentation"
}
"index_page": {
"meta": {
"title": "Home",
"description": "ClassQuiz ist eine Quiz-App wie KAHOOT! für Schüler*innen, welche open-source und kostenlos ist"
},
"features_description": {
"1": "ClassQuiz ist eine Quiz-Platform, welche das erstellen und managen von Quizzes erlaubt.",
"2": "Das Hauptfeature ist die KAHOOT!-Importfunktion, mit der man Quizzes von KAHOOT! importieren kann."
},
"slogan": "Die open-source Quiz-Platform!"
},
"overview_page": {
"created_at": "Erstellt am",
"question_count": "Fragenanzahl"
},
"edit_page": {
"success_update_title": "Quiz erfolgreich aktualisiert!",
"success_update_body": "Das Quiz wurde erfolgreich aktualisiert!"
},
"create_page": {
"success": {
"title": "Quiz erfolgreich erstellt!",
"body": "Das Quiz wurde erfolgreich erstellt!"
}
},
"register_page": {
"greeting": "Schön, dich zu sehen!",
"create_account": "Account erstellen",
"forgot_password?": "Passwort vergessen?",
"already_have_account?": "Hast du schon einen Account?"
},
"login_page": {
"welcome_back": "Willkommen zurück!",
"login_or_create_account": "Einloggen oder Account erstellen",
"already_have_account": "Noch kein Account?",
"modal": {
"success": {
"success_check_mail": "Login erfolgreich! Guck in deine Mailbox!",
"success": "Login erfolgreich!",
"description": {
"success_check_mail": "Bitte überprüfe deine Mailbox, weil du eine Email mit einem Link, um dich einzuloggen, empfangen haben solltest.",
"success": "Du hast dich erfolgreich angemeldet!"
}
},
"error": {
"wrong_creds": "Falsche Email oder falsches Passwort!",
"unexpected": "Unerwarteter Fehler!",
"description": {
"wrong_creds": "Bitte stelle sicher, dass dein Passwort und deine Email richtig sind!",
"unexpected": "Der gute alte unerwartete Fehler hat uns heimgesucht!"
}
}
}
},
"words": {
"question": "Frage",
"answer": "Antwort",
"stats": "Statistiken",
"features": "Features",
"import": "Importieren",
"url": "URL",
"submit": "Abschicken",
"create": "Erstellen",
"logout": "Abmelden",
"title": "Titel",
"play": "Spielen",
"edit": "Bearbeiten",
"delete": "Löschen",
"public": "Öffentlich",
"start": "Start",
"connect": "Verbinden",
"pin": "PIN",
"kick": "Kicken",
"register": "Registrieren",
"login": "Anmelden",
"docs": "Dokumentation",
"close": "Schließen",
"save": "Speichern",
"username": "Nutzername",
"password": "Passwort",
"email": "Email",
"description": "Beschreibung"
},
"editor": {
"time_in_seconds": "Zeit in Sekunden",
"right_or_true?": "Richtig?",
"add_new_answer": "Neue Antwort hinzufügen",
"add_new_question": "Neue Frage hinzufügen",
"delete_question": "Frage löschen",
"delete_answer": "Antwort löschen"
},
"import": {
"need_help": "",
"visit_docs": ""
},
"admin": {
"already_registered_as_admin": ""
},
"admin_page": {
"already_registered_as_admin": "Ein Admin wurde schon für dieses Spiel registriert.",
"start_game": "Spiel starten",
"time_left": "Zeit übrig",
"get_results": "Ergebnisse abfragen"
},
"import_page": {
"need_help": "Brauchst du Hilfe?",
"visit_docs": "Besuche die Dokumentation"
}
}
+101 -98
View File
@@ -1,100 +1,103 @@
{
"index_page": {
"slogan": "The open-source quiz-platform!",
"meta": {
"description": "ClassQuiz is a quiz app like KAHOOT! for students, which is open source and free to use",
"title": "Home"
},
"features_description": {
"1": "ClassQuiz is a quiz-platform that allows you to create and manage quizzes.",
"2": "The main feature is a KAHOOT!-import function that allows you to import quizzes from KAHOOT!-quizzes."
}
},
"overview_page": {
"created_at": "Created at",
"question_count": "Question count"
},
"edit_page": {
"success_update_title": "Successfully updated quiz!",
"success_update_body": "Updated the quiz successfully!"
},
"create_page": {
"success": {
"title": "Successfully created quiz!",
"body": "Created the quiz successfully!"
}
},
"register_page": {
"greeting": "Nice to meet you!",
"create_account": "Create account",
"forgot_password?": "Forgot password?",
"already_have_account?": "Already have an account?"
},
"login_page": {
"welcome_back": "Welcome back!",
"login_or_create_account": "Login or create an account",
"already_have_account": "Don't have an account?",
"modal": {
"success": {
"success_check_mail": "Login Succeded! Check your mailbox!",
"success": "Login Succeded!",
"description": {
"success_check_mail": "Please check your mailbox, since you should have received a mail, with a link you can click to login.",
"success": "You've successfully logged in!"
}
},
"error": {
"wrong_creds": "Wrong email or password!",
"unexpected": "Unexpected error!",
"description": {
"wrong_creds": "Please make sure that your password and your email are correct!",
"unexpected": "There was the good old unexpected error!"
}
}
}
},
"words": {
"question": "Question",
"answer": "Answer",
"stats": "Stats",
"features": "Features",
"login": "Login",
"email": "Email",
"username": "Username",
"password": "Password",
"play": "Play",
"edit": "Edit",
"delete": "Delete",
"public": "Public",
"start": "Start",
"create": "Create",
"import": "Import",
"logout": "Logout",
"title": "Title",
"url": "URL",
"submit": "Submit",
"connect": "Connect",
"pin": "PIN",
"kick": "Kick",
"register": "Register",
"docs": "Docs",
"close": "Close",
"save": "Save"
},
"editor": {
"time_in_seconds": "Time in seconds",
"right_or_true?": "Right?",
"add_new_answer": "Add new answer",
"add_new_question": "Add new question"
},
"import_page": {
"need_help": "Need help?",
"visit_docs": "Visit the documentation"
},
"admin_page": {
"already_registered_as_admin": "There is already an admin registered for this game.",
"start_game": "Start game",
"time_left": "Time left",
"get_results": "Get results"
}
"index_page": {
"slogan": "The open-source quiz-platform!",
"meta": {
"description": "ClassQuiz is a quiz app like KAHOOT! for students, which is open source and free to use",
"title": "Home"
},
"features_description": {
"1": "ClassQuiz is a quiz-platform that allows you to create and manage quizzes.",
"2": "The main feature is a KAHOOT!-import function that allows you to import quizzes from KAHOOT!-quizzes."
}
},
"overview_page": {
"created_at": "Created at",
"question_count": "Question count"
},
"edit_page": {
"success_update_title": "Successfully updated quiz!",
"success_update_body": "Updated the quiz successfully!"
},
"create_page": {
"success": {
"title": "Successfully created quiz!",
"body": "Created the quiz successfully!"
}
},
"register_page": {
"greeting": "Nice to meet you!",
"create_account": "Create account",
"forgot_password?": "Forgot password?",
"already_have_account?": "Already have an account?"
},
"login_page": {
"welcome_back": "Welcome back!",
"login_or_create_account": "Login or create an account",
"already_have_account": "Don't have an account?",
"modal": {
"success": {
"success_check_mail": "Login Succeded! Check your mailbox!",
"success": "Login Succeded!",
"description": {
"success_check_mail": "Please check your mailbox, since you should have received a mail, with a link you can click to login.",
"success": "You've successfully logged in!"
}
},
"error": {
"wrong_creds": "Wrong email or password!",
"unexpected": "Unexpected error!",
"description": {
"wrong_creds": "Please make sure that your password and your email are correct!",
"unexpected": "There was the good old unexpected error!"
}
}
}
},
"words": {
"question": "Question",
"answer": "Answer",
"stats": "Stats",
"features": "Features",
"login": "Login",
"email": "Email",
"username": "Username",
"password": "Password",
"play": "Play",
"edit": "Edit",
"delete": "Delete",
"public": "Public",
"start": "Start",
"create": "Create",
"import": "Import",
"logout": "Logout",
"title": "Title",
"url": "URL",
"submit": "Submit",
"connect": "Connect",
"pin": "PIN",
"kick": "Kick",
"register": "Register",
"docs": "Docs",
"close": "Close",
"save": "Save",
"description": "Description"
},
"editor": {
"time_in_seconds": "Time in seconds",
"right_or_true?": "Right?",
"add_new_answer": "Add new answer",
"add_new_question": "Add new question",
"delete_question": "Delete question",
"delete_answer": "Delete answer"
},
"import_page": {
"need_help": "Need help?",
"visit_docs": "Visit the documentation"
},
"admin_page": {
"already_registered_as_admin": "There is already an admin registered for this game.",
"start_game": "Start game",
"time_left": "Time left",
"get_results": "Get results"
}
}