diff --git a/modules/configs.min.mjs b/modules/configs.min.mjs
new file mode 100644
index 00000000..7f4e7cdc
--- /dev/null
+++ b/modules/configs.min.mjs
@@ -0,0 +1,2 @@
+export const submit_app_collection={entries:["
",{label:"Titel der App-Sammlung:",name:"title",type:"text"},"",{name:"sections",type:"several",items:[{label:"Titel der Sektion:",name:"title",type:"text"},{label:"Enthaltene Apps:",name:"entries",type:"several",items:[{label:"Titel der App:",name:"title",type:"text"},{label:"Icon der App:",name:"icon",type:"url",info:"Hier können Sie ein individuelles App-Icon für die App festlegen, in dem Sie die URL einer Bilddatei angeben. Bitte achten Sie darauf, kein Urheberrecht zu verletzen."},{label:"App-URL oder Einbettungscode:",name:"ignore",type:"text",info:"Jede App aus dem Digital Makerspace kann hier platziert werden. Geben Sie dafür die App-URL oder den Einbettungscode der App an."}]}]},"",{name:"footer",type:"several",items:[{label:"Titel der App:",name:"title",type:"text"},{label:"Icon der App:",name:"icon",type:"url",info:"Hier können Sie ein individuelles App-Icon für die App festlegen, in dem Sie die URL einer Bilddatei angeben. Bitte achten Sie darauf, kein Urheberrecht zu verletzen."},{label:"App-URL oder Einbettungscode:",name:"ignore",type:"text",info:"Jede App aus dem Digital Makerspace kann hier platziert werden. Geben Sie dafür die App-URL oder den Einbettungscode der App an."}]},"",{label:"Farbe einer Sektion",name:"color",type:"color",info:"Hintergrundfarbe für den Titel der Sektionen."},{label:"URL für Standard-Icon",name:"icon",type:"text",info:"Wenn für eine App kein individuelles Icon festgelegt wird, wird das hier angegebene Icon eingesetzt. Wird auch hier kein Icon festgelegt, wird kein Icon dargestellt. Bitte achten Sie darauf, kein Urheberrecht zu verletzen."},{label:"Dark Mode",name:"dark",type:"select",info:"Im Dark Mode erscheint die App-Sammlung in einem dunklen Layout, was Augen und Batterie schont. Standardmäßig wird automatisch vom Betriebssystem des App-Nutzers ermittelt, ob ein Dark Mode bevorzugt wird.",items:[{inner:"Automatisch",value:"auto"},{inner:"Ein",value:true},{inner:"Aus",value:false}]},{label:"Anmeldung von Benutzern:",name:"user",type:"select",info:"Legt fest, ob man sich in der App-Sammlung anmelden kann. Dies ist dann sinnvoll, wenn die App-Sammlung Apps enthält, die eine Anmeldung erfordern und es einen übergeordneten Login geben soll.
Folgende Anmeldeverfahren sind möglich:
- Gastmodus: Der Benutzer kann sich mit einem beliebigen Namen ohne Passwort anmelden.
- Digital Makerspace Account: Anmeldung mit einem kostenlosen Digital Makerspace-Account.
- H-BRS FB02 Account: Der Benutzer muss sich mit mit einem Account des Fachbereichs Informatik der Hochschule Bonn-Rhein-Sieg anmelden.
- H-BRS FB02 Account mit Pseudonym: Das gleiche wie die vorherige Option, aber im Frontend wird der Benutzername durch ein Pseudonym ersetzt.
- Einmaliges Pseudonym: Man ist automatisch angemeldet unter einem zufällig generierten Pseudonym. Bei jeder Anmeldung nach Ablauf einer Session wird ein neues Pseudonym generiert.
",items:[{inner:"Deaktiviert",value:null},{inner:"Gastmodus",value:"[%'%ccm.start%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.7.2.min.js%'%,[%'%ccm.get%'%,%'%https://ccmjs.github.io/akless-components/user/resources/resources.min.js%'%,%'%guest%'%]]"},{inner:"Digital Makerspace Account",value:"[%'%ccm.start%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.7.2.min.js%'%,[%'%ccm.get%'%,%'%https://ccmjs.github.io/akless-components/user/resources/resources.min.js%'%,%'%cloud%'%]]"},{inner:"H-BRS FB02 Account",value:"[%'%ccm.start%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.7.2.min.js%'%,[%'%ccm.get%'%,%'%https://ccmjs.github.io/akless-components/user/resources/resources.min.js%'%,%'%hbrsinfkaul%'%]]"},{inner:"H-BRS FB02 Account mit Pseudonym",value:"[%'%ccm.start%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.7.2.min.js%'%,[%'%ccm.get%'%,%'%https://ccmjs.github.io/akless-components/user/resources/resources.min.js%'%,%'%hbrsinfpseudo%'%]]"},{inner:"Einmaliges Pseudonym",value:"[%'%ccm.start%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.7.2.min.js%'%,[%'%ccm.get%'%,%'%https://ccmjs.github.io/akless-components/user/resources/resources.min.js%'%,%'%pseudo%'%]]"}]},{label:"Mehrsprachigkeit",name:"lang",type:"select",info:"Geben Sie hier an, ob man in der App-Sammlung die Sprache wechseln kann. Dies ist dann sinnvoll, wenn die App-Sammlung mehrsprachige Apps enthält und es einen übergeordnete Sprachauswahl geben soll.",items:[{inner:"Aus",value:null},{inner:"Ein",value:"[%'%ccm.start%'%,%'%https://ccmjs.github.io/akless-components/lang/versions/ccm.lang-1.1.0.min.js%'%]"}]},"
",{name:"routing",type:"hidden"}],ignore:{defaults:{content:[],footer:[],color:"#00BFFF",routing:["ccm.instance","https://ccmjs.github.io/akless-components/routing/versions/ccm.routing-3.0.0.min.js"]}}};export const submit_live_poll={entries:["
",{name:"chart",type:"hidden"},{name:"converter",type:"hidden"},{name:"css",type:"hidden"},{name:"data",type:"hidden"},{name:"data.key",type:"key"},{name:"helper",type:"hidden"},{name:"html",type:"hidden"},{name:"logger",type:"hidden"},{name:"placeholder",type:"hidden"},{name:"show_results",type:"hidden"},{name:"user",type:"hidden"},{label:"Benutzeranmeldung",name:"user",type:"select",info:'Wählen aus, wie sich ein Benutzer in der App anmelden muss.- Gastmodus: Der Benutzer kann sich mit einem beliebigen Benutzernamen und ohne Passwort anmelden.
- Digital Makerspace Account: Der Benutzer muss sich mit einem Digital Makerspace-Account anmelden.
- H-BRS FB02 Account: Der Nutzer muss sich mit einem Account des Fachbereichs Informatik der Hochschule Bonn-Rhein-Sieg authentifizieren.
- H-BRS FB02 Account mit Pseudonym: Dasselbe wie die vorherige Option, jedoch wird der Benutzername durch ein Pseudonym ersetzt.
- Einmaliges Pseudonym: Der Benutzer wird automatisch mit einem einmaligen Pseudonym angemeldet. Jede Anmeldung gibt nach dem Ablauf einer Session ein anderes Pseudonym zurück.
',items:[{inner:"Gastmodus",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%]"},{inner:"DMS Account",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%hash%'%:[%'%ccm.load%'%,{%'%url%'%:%'%https://ccmjs.github.io/akless-components/modules/md5.mjs%'%,%'%type%'%:%'%module%'%}],%'%realm%'%:%'%cloud%'%,%'%store%'%:%'%dms-user%'%,%'%url%'%:%'%https://ccm2.inf.h-brs.de%'%}]"},{inner:"H-BRS FB02 Account",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%hbrsinfkaul%'%,%'%realm%'%:%'%hbrsinfkaul%'%}]"},{inner:"H-BRS FB02 Account mit Pseudonym",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%hbrsinfpseudo%'%,%'%realm%'%:%'%hbrsinfpseudo%'%}]"},{inner:"Einmaliges Pseudonym",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%pseudo%'%,%'%realm%'%:%'%guest%'%,%'%guest%'%:true}]"}]},{label:"Umfrageleiter",name:"admin",type:"text",info:"Benutzername des Umfrageleiters. Der Umfrageleiter kontrolliert die Umfrage. Alle anderen Benutzer können nur eine Antwort auswählen, wenn die Umfrage aktiv ist. Wenn kein Umfrageleiter angegeben ist, kann jeder Benutzer die Umfrage steuern."},{label:"Passwort",name:"password",type:"password",info:"Wenn angegeben, muss dieses Passwort eingegeben werden, um eine Umfrage abzuschließen und die Ergebnisse anzuzeigen."},{label:"Refresh-Button",name:"data.store.1",type:"radio",info:"Die Umfrage kann entweder über einen Refresh-Button aktualisiert werden, oder sie aktualisiert sich automatisch in Echtzeit (Echtzeit funktioniert nur für wenige Mitglieder, da der Server sonst überlastet ist).",items:[{label:"Refresh-Button",value:"{%'%url%'%:%'%https://ccm2.inf.h-brs.de%'%,%'%name%'%:%'%live_poll_data%'%}"},{label:"Echtzeit",value:"{%'%url%'%:%'%wss://ccm2.inf.h-brs.de%'%,%'%name%'%:%'%live_poll_data%'%}"}]},{label:"Bearbeitbare Fragen und Antworten",name:"editable",type:"checkbox",info:"Wenn aktiviert, können die Fragen und Antworten direkt vor Beginn der Umfrage bearbeitet werden. Wenn ein Umfrageleiter angegeben ist, kann nur der Umfrageleiter bearbeiten."},{label:"Teilnehmer verbergen",name:"no_members_section",type:"checkbox",info:"Wenn aktiviert, wird der Teilnehmerbereich ausgeblendet. Der Teilnehmerbereich zeigt, wer anwesend ist und wer bereits abgestimmt hat."},{label:"Kontrolle per LOCK-Button",name:"lock",type:"checkbox",info:"Wenn aktiviert, gibt es einen LOCK-Button, über den man wie der Umfrageleiter die Kontrolle über die Umfrage erlangen kann. Ein anderer Benutzer kann diese Rechte erst erhalten, nachdem sie durch einen erneuten Klick auf den LOCK-Button zurückgegeben wurden. Die Rechte des Umfrageleiters werden durch den LOCK-Button in keiner Weise eingeschränkt. Der Umfrageleiter kann jederzeit die alleinige Kontrolle übernehmen."},"",{label:"START-Button",name:"placeholder.start",type:"text",info:"Beschriftung für den Button, mit dem die Umfrage gestartet wird."},{label:"FERTIG-Button",name:"placeholder.finish",type:"text",info:"Beschriftung für den Button, der die Umfrage abschließt und die Ergebnisse anzeigt."},{label:"RESET-Button",name:"placeholder.reset",type:"text",info:"Beschriftung für den Button, der die Umfrage zurücksetzt, nachdem die Ergebnisse angezeigt wurden. Danach können Frage und Antworten erneut editiert und die Umfrage neu gestartet werden."},{label:"LOCK-Button",name:"placeholder.locked",type:"text",info:"Beschriftung für den Button, mit dem die Kontrolle über die Umfrage für die anderen Benutzer gesperrt wird."},{label:"UNLOCK-Button",name:"placeholder.unlocked",type:"text",info:"Beschriftung für den Button, mit dem die Kontrolle über die Umfrage für alle Benutzer wieder freigegeben wird."},{label:"Passworteingabe",name:"prompt",type:"text",info:"Text der erscheint, wenn für den Abbschluss der Umfrage zur Eingabe des Passwort aufgefordert wird."},{label:"Falsches Passwort",name:"denied",type:"text",info:"Text der erscheint, wenn ein falsches Passwort eingegeben wird."}],ignore:{defaults:{chart:["ccm.component","https://ccmjs.github.io/akless-components/highchart/versions/ccm.highchart-3.0.4.js"],converter:["ccm.load",{url:"https://ccmjs.github.io/akless-components/modules/json2json.mjs",type:"module",import:"poll_to_highchart"}],css:["ccm.load","https://ccmjs.github.io/akless-components/live_poll/resources/styles.css"],data:{store:["ccm.store",{url:"https://ccm2.inf.h-brs.de",name:"live_poll_data"}]},denied:"Das eingegebene Passwort ist nicht korrekt.",editable:true,helper:["ccm.load","https://ccmjs.github.io/akless-components/modules/versions/helper-4.2.0.mjs"],html:["ccm.load","https://ccmjs.github.io/akless-components/live_poll/resources/templates.html"],lock:true,placeholder:{start:"START",finish:"AUSWERTUNG",reset:"RESET",locked:"🔒 LOCKED",unlocked:"🔓"},prompt:"Passwort:",user:["ccm.instance","https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js",{key:"pseudo",realm:"guest",guest:true}]}}};export const submit_quiz={entries:[{name:"css",type:"hidden"},{name:"data",type:"hidden"},{name:"data.key",type:"key"},{name:"onfinish",type:"hidden"},"",{name:"questions",type:"several",items:[{label:"Frage",name:"text",type:"text",info:"Hier den Text der Frage eingeben. Weitere Fragen können über den entsprechenden Plus- und Minus-Button hinzugefügt und entfernen werden."},{label:"Typ",name:"input",type:"radio",info:"Wähle Single Choice, wenn nur eine Antwort oder Multiple Choice, wenn mehrere Antworten ausgewählt werden können.",items:[{label:"Single Choice",value:"radio"},{label:"Multiple Choice",value:"checkbox"}]},{label:"Beschreibung",name:"description",type:"textarea",info:"Hier kann eine zusätzliche Beschreibung zur Frage angegeben werden."},"
",{name:"answers",type:"several",items:[{label:"Antwort",name:"text",type:"text",info:"Hier den Text für eine Antwortmöglichksit eingeben. Weitere Antworten können über den entsprechenden Plus- und Minus-Button hinzugefügt und entfernen werden."},{label:"Correct",name:"correct",type:"checkbox",info:"Gibt an, ob diese Antwort korrekt ist."},{label:"Comment",name:"comment",type:"text",info:"in Kommentar kann einen Hinweis darauf geben, warum eine Antwort richtig oder falsch ist. Der Kommentar wird dann zusammen mit dem direkten Feedback angezeigt."}]}]},"
",'',{label:"START-Button",name:"start_button",type:"checkbox",info:"Wenn aktiviert, wird ein START-BUTTON angezeigt, bevor das Quiz beginnt."},{label:"Feedback",name:"feedback",type:"checkbox",info:"Wenn aktiviert, wird nach der Beantwortung einer Frage ein direktes Feedback angezeigt."},{label:"Fortschrittsbalken",name:"progress_bar",type:"checkbox",info:"Wenn aktiviert, wird ein Fortschrittsbalken angezeigt, wenn das Quiz abgeschlossen ist."},{label:"Navigation",name:"navigation",type:"checkbox",info:"Wenn aktiviert, kann zwischen den Fragen navigiert werden."},{label:"Überspringbar",name:"skippable",type:"checkbox",info:"Wenn aktiviert, können Fragen übersprungen werden."},{label:"Abschluss jederzeit möglich",name:"anytime_finish",type:"checkbox",info:"Wenn aktiviert, müssen nicht alle Fragen beantwortet werden, um das Quiz abzuschließen."},{label:"Zeitlimit",name:"time",type:"number",min:1,info:"Falls angegeben, hat das Quiz ein Zeitlimit und wird automatisch nach der angegebenen Anzahl von Sekunden abgeschlossen."},{label:"Fragen mischen",name:"shuffle",type:"checkbox",info:"Wenn aktiviert, werden die Fragen gemischt, sodass ihre Reihenfolge bei jedem Start zufällig ist."},{label:"Antworten mischen",name:"random",type:"checkbox",info:"Wenn aktiviert, werden die Antworten auf die Fragen in zufälliger Reihenfolge angezeigt."},{label:"HTML-Code nicht auswerten",name:"escape",type:"checkbox",info:"Wenn aktiviert, wird in Fragen und Antworten enthaltener HTML-Code nicht ausgewertet, sondern unverändert angezeigt."},{label:"Ergebnisse speichern",name:"data.store",type:"select",info:'Wähle aus, wo die Ergebnisse gespeichert werden sollen.Lokale Datenbank: Die Ergebnisse werden in der lokalen Datenbank des Webbrowsers gespeichert und sind somit nur auf diesem Gerät und auch offline verfügbar.- Serverseitige Datenbank: Die Ergebnisse werden in einer serverseitigen Datenbank gespeichert. Konkret handelt es sich um einen Datenserver des Fachbereichs Informatik der Hochschule Bonn-Rhein-Sieg in Deutschland.
',items:[{inner:"Deaktiviert",value:"[%'%ccm.store%'%]"},{inner:"Lokale Datenbank",value:"[%'%ccm.store%'%,{%'%name%'%:%'%quiz_results%'%}]"},{inner:"Serverseitige Datenbank",value:"[%'%ccm.store%'%,{%'%name%'%:%'%quiz_results%'%,%'%url%'%:%'%https://ccm2.inf.h-brs.de%'%}]"}]},{label:"Benutzeranmeldung",name:"user",type:"select",info:'Wählen aus, wie sich ein Benutzer beim Abschließen des Quiz anmelden muss, damit sein Ergebnis gespeichert werden kann.- Gastmodus: Der Benutzer kann sich mit einem beliebigen Benutzernamen und ohne Passwort anmelden.
- Digital Makerspace Account: Der Benutzer muss sich mit einem Digital Makerspace-Account anmelden.
- H-BRS FB02 Account: Der Nutzer muss sich mit einem Account des Fachbereichs Informatik der Hochschule Bonn-Rhein-Sieg authentifizieren.
- H-BRS FB02 Account mit Pseudonym: Dasselbe wie die vorherige Option, jedoch wird der Benutzername durch ein Pseudonym ersetzt.
- Einmaliges Pseudonym: Der Benutzer wird automatisch mit einem einmaligen Pseudonym angemeldet. Jede Anmeldung gibt nach dem Ablauf einer Session ein anderes Pseudonym zurück.
',items:[{inner:"Deaktiviert",value:"null"},{inner:"Gastmodus",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%]"},{inner:"DMS Account",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%hash%'%:[%'%ccm.load%'%,{%'%url%'%:%'%https://ccmjs.github.io/akless-components/modules/md5.mjs%'%,%'%type%'%:%'%module%'%}],%'%realm%'%:%'%cloud%'%,%'%store%'%:%'%dms-user%'%,%'%url%'%:%'%https://ccm2.inf.h-brs.de%'%}]"},{inner:"H-BRS FB02 Account",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%hbrsinfkaul%'%,%'%realm%'%:%'%hbrsinfkaul%'%}]"},{inner:"H-BRS FB02 Account mit Pseudonym",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%hbrsinfpseudo%'%,%'%realm%'%:%'%hbrsinfpseudo%'%}]"},{inner:"Einmaliges Pseudonym",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%pseudo%'%,%'%realm%'%:%'%guest%'%,%'%guest%'%:true}]"}]},"
",'',{label:"Bestätigungs-Dialog",name:"onfinish.confirm",type:"text",info:"Wenn aktiv, muss der Benutzer vor dem Speichern einer Lösung dies explizit bestätigen. Um dies zu aktivieren, geben Sie den Text an, der dem Benutzer im Bestätigung-Dialog angezeigt wird."},{label:"Leerer Inhalt",name:"onfinish.clear",type:"checkbox",info:"Wenn aktiv, wird der Quiz nach Abschluss ausgeblendet."},{label:"Neustarten",name:"onfinish.restart",type:"checkbox",info:"Gibt an, ob der Quiz nach Abschluss neu gestartet wird."},{label:"Erfolgs-Dialog",name:"onfinish.alert",type:"text",info:"Meldung, die dem Benutzer angezeigt wird, wenn die eingereichte Lösung erfolgreich gespeichert wurde."},"
",'',{label:"Vorherige Frage",name:"placeholder.prev",type:"text",info:"Beschriftung für den Button, mit dem man zur vorherigen Frage wechselt."},{label:"Abschicken",name:"placeholder.submit",type:"text",info:"Beschriftung für den Button, mit dem man die Lösung zu einer Frage abschickt."},{label:"Nächste Frage",name:"placeholder.next",type:"text",info:"Beschriftung für den Button, mit dem man zur nächstemn Frage wechselt."},{label:"Abschließen",name:"placeholder.finish",type:"text",info:"Beschriftung für den Button, mit dem man den Quiz abschließt."},{label:"Prefix einer Frage",name:"placeholder.prefix",type:"text",info:"Vor jeder Frage steht ein Prefix gefolgt von der Nummer der aktuellen Frage und der Gesamtzahl der Fragen. Der Prefix kann hier individuell festgelegt werden."}],ignore:{defaults:{css:["ccm.load","https://ccmjs.github.io/akless-components/quiz/resources/weblysleek-v2.css",{context:"head",url:"https://ccmjs.github.io/akless-components/resources/fonts/WeblySleekUI/font.css"}],placeholder:{cancel:"Abbrechen",prev:"Vorherige Frage",submit:"Abschicken",next:"Nächste Frage",correct:"Korrekte Lösung: ",finish:"Quiz abschließen",prefix:"Frage"},feedback:true,progress_bar:true,questions:[{text:"Erste Frage",input:"radio",answers:[{text:"Antwort A",correct:true},{text:"Antwort B"}]}]}}};export const submit_quiz_en={entries:[{name:"css",type:"hidden"},{name:"data",type:"hidden"},{name:"data.key",type:"key"},{name:"onfinish",type:"hidden"},"",{name:"questions",type:"several",items:[{label:"Question",name:"text",type:"text",info:"Enter the text of the question here. Additional questions can be added and removed using the corresponding plus and minus buttons."},{label:"Type",name:"input",type:"radio",info:"Choose Single Choice if only one answer or Multiple Choice if multiple answers can be selected.",items:[{label:"Single Choice",value:"radio"},{label:"Multiple Choice",value:"checkbox"}]},{label:"Description",name:"description",type:"textarea",info:"An additional description of the question can be entered here."},"
",{name:"answers",type:"several",items:[{label:"Answer",name:"text",type:"text",info:"Enter the text for an answer option here. Additional answers can be added and removed using the corresponding plus and minus buttons."},{label:"Correct",name:"correct",type:"checkbox",info:"Indicates whether this answer is correct."},{label:"Comment",name:"comment",type:"text",info:"A comment can provide a hint as to why an answer is correct or incorrect. The comment will then be displayed along with the direct feedback."}]}]},"
",'',{label:"START Button",name:"start_button",type:"checkbox",info:"If activated, a START BUTTON is displayed before the quiz starts."},{label:"Feedback",name:"feedback",type:"checkbox",info:"If activated, direct feedback is displayed after answering a question."},{label:"Progress Bar",name:"progress_bar",type:"checkbox",info:"Wenn aktiviert, wird ein Fortschrittsbalken angezeigt, wenn das Quiz abgeschlossen ist."},{label:"Navigation",name:"navigation",type:"checkbox",info:"If activated, you can navigate between questions."},{label:"Skippable",name:"skippable",type:"checkbox",info:"If activated, questions can be skipped."},{label:"Anytime Finish",name:"anytime_finish",type:"checkbox",info:"If activated, not all questions need to be answered to complete the quiz."},{label:"Time Limit",name:"time",type:"number",min:1,info:"If specified, the quiz has a time limit and will automatically end after the specified number of seconds."},{label:"Shuffle Questions",name:"shuffle",type:"checkbox",info:"If activated, the questions are shuffled so that their order is random each time."},{label:"Shuffle Answers",name:"random",type:"checkbox",info:"If activated, the answers to the questions are displayed in random order."},{label:"Escape HTML code",name:"escape",type:"checkbox",info:"If activated, HTML code contained in questions and answers is not evaluated, but displayed unchanged."},{label:"Save Results",name:"data.store",type:"select",info:'Choose where to save the results.Local Database: The results are saved in the local database of the web browser and are therefore only available on this device and also offline.- Server-side Database: The results are stored in a server-side database. Specifically, it is a data server from the computer science department at the Bonn-Rhein-Sieg University of Applied Sciences in Germany.
',items:[{inner:"Disabled",value:"[%'%ccm.store%'%]"},{inner:"Local Database",value:"[%'%ccm.store%'%,{%'%name%'%:%'%quiz_results%'%}]"},{inner:"Server-side Database",value:"[%'%ccm.store%'%,{%'%name%'%:%'%quiz_results%'%,%'%url%'%:%'%https://ccm2.inf.h-brs.de%'%}]"}]},{label:"User Authentication",name:"user",type:"select",info:'Select how a user must log in when completing the quiz so that their result can be saved.- Guest Mode: The user can log in with any username and without a password.
- Digital Makerspace Account: The user must log in with a Digital Makerspace account.
- H-BRS FB02 Account: The user must authenticate himself with an account from the Computer Science Department at Bonn-Rhein-Sieg University of Applied Sciences.
- H-BRS FB02 Account with Pseudonym: The same as the previous option, but the username is replaced with a pseudonym.
- One-time Pseudonym: The user is automatically logged in with a unique pseudonym. Each login returns a different pseudonym after a session has ended.
',items:[{inner:"Disabled",value:"null"},{inner:"Guest Mode",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%]"},{inner:"DMS Account",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%hash%'%:[%'%ccm.load%'%,{%'%url%'%:%'%https://ccmjs.github.io/akless-components/modules/md5.mjs%'%,%'%type%'%:%'%module%'%}],%'%realm%'%:%'%cloud%'%,%'%store%'%:%'%dms-user%'%,%'%url%'%:%'%https://ccm2.inf.h-brs.de%'%}]"},{inner:"H-BRS FB02 Account",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%hbrsinfkaul%'%,%'%realm%'%:%'%hbrsinfkaul%'%}]"},{inner:"H-BRS FB02 Account with Pseudonym",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%hbrsinfpseudo%'%,%'%realm%'%:%'%hbrsinfpseudo%'%}]"},{inner:"One-time Pseudonym",value:"[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%pseudo%'%,%'%realm%'%:%'%guest%'%,%'%guest%'%:true}]"}]},"
",'',{label:"Confirmation Dialog",name:"onfinish.confirm",type:"text",info:"If activated, the user must explicitly confirm before saving a solution. To activate this, specify the text that will be displayed to the user in the confirmation dialog."},{label:"Clear Content",name:"onfinish.clear",type:"checkbox",info:"If activated, the quiz is hidden after completion."},{label:"Restart",name:"onfinish.restart",type:"checkbox",info:"Indicates whether the quiz is restarted after completion."},{label:"Success Dialog",name:"onfinish.alert",type:"text",info:"Message displayed to the user when the submitted solution has been successfully saved."},"
",'',{label:"Previous Question",name:"placeholder.prev",type:"text",info:"Label for the button that switches to the previous question."},{label:"Abschicken",name:"placeholder.submit",type:"text",info:"Beschriftung für den Button, mit dem man die Lösung zu einer Frage abschickt."},{label:"Next Question",name:"placeholder.next",type:"text",info:"Label for the button that switches to the next question."},{label:"Finish",name:"placeholder.finish",type:"text",info:"Label for the button that completes the quiz."},{label:"Prefix of a Question",name:"placeholder.prefix",type:"text",info:"Before each question there is a prefix followed by the number of the current question and the total number of questions. The prefix can be individually defined here."}],ignore:{defaults:{css:["ccm.load","https://ccmjs.github.io/akless-components/quiz/resources/weblysleek-v2.css",{context:"head",url:"https://ccmjs.github.io/akless-components/resources/fonts/WeblySleekUI/font.css"}],placeholder:{cancel:"Cancel",prev:"Previous Question",submit:"Submit",next:"Next Question",correct:"Correct solution: ",finish:"Finish Quiz",prefix:"Question"},feedback:true,progress_bar:true,questions:[{text:"First Question",input:"radio",answers:[{text:"Answer A",correct:true},{text:"Answer B"}]}]}}};
+//# sourceMappingURL=configs.min.mjs.map
\ No newline at end of file
diff --git a/modules/configs.min.mjs.map b/modules/configs.min.mjs.map
new file mode 100644
index 00000000..36bc7b5e
--- /dev/null
+++ b/modules/configs.min.mjs.map
@@ -0,0 +1 @@
+{"version":3,"names":["submit_app_collection","entries","label","name","type","items","info","inner","value","ignore","defaults","content","footer","color","routing","submit_live_poll","chart","converter","url","import","css","data","store","denied","editable","helper","html","lock","placeholder","start","finish","reset","locked","unlocked","prompt","user","key","realm","guest","submit_quiz","min","context","cancel","prev","submit","next","correct","prefix","feedback","progress_bar","questions","text","input","answers","submit_quiz_en"],"sources":["configs.mjs"],"mappings":"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"}
\ No newline at end of file
diff --git a/modules/configs.mjs b/modules/configs.mjs
index 2fd0cee4..e7f0f957 100644
--- a/modules/configs.mjs
+++ b/modules/configs.mjs
@@ -682,3 +682,295 @@ export const submit_quiz = {
}
}
};
+
+export const submit_quiz_en = {
+ "entries": [
+ {
+ "name": "css",
+ "type": "hidden"
+ },
+ {
+ "name": "data",
+ "type": "hidden"
+ },
+ {
+ "name": "data.key",
+ "type": "key"
+ },
+ {
+ "name": "onfinish",
+ "type": "hidden"
+ },
+ "",
+ {
+ "name": "questions",
+ "type": "several",
+ "items": [
+ {
+ "label": "Question",
+ "name": "text",
+ "type": "text",
+ "info": "Enter the text of the question here. Additional questions can be added and removed using the corresponding plus and minus buttons."
+ },
+ {
+ "label": "Type",
+ "name": "input",
+ "type": "radio",
+ "info": "Choose Single Choice if only one answer or Multiple Choice if multiple answers can be selected.",
+ "items": [
+ {
+ "label": "Single Choice",
+ "value": "radio"
+ },
+ {
+ "label": "Multiple Choice",
+ "value": "checkbox"
+ }
+ ]
+ },
+ {
+ "label": "Description",
+ "name": "description",
+ "type": "textarea",
+ "info": "An additional description of the question can be entered here."
+ },
+ "
",
+ {
+ "name": "answers",
+ "type": "several",
+ "items": [
+ {
+ "label": "Answer",
+ "name": "text",
+ "type": "text",
+ "info": "Enter the text for an answer option here. Additional answers can be added and removed using the corresponding plus and minus buttons."
+ },
+ {
+ "label": "Correct",
+ "name": "correct",
+ "type": "checkbox",
+ "info": "Indicates whether this answer is correct."
+ },
+ {
+ "label": "Comment",
+ "name": "comment",
+ "type": "text",
+ "info": "A comment can provide a hint as to why an answer is correct or incorrect. The comment will then be displayed along with the direct feedback."
+ }
+ ]
+ }
+ ]
+ },
+ "
",
+ "",
+ {
+ "label": "START Button",
+ "name": "start_button",
+ "type": "checkbox",
+ "info": "If activated, a START BUTTON is displayed before the quiz starts."
+ },
+ {
+ "label": "Feedback",
+ "name": "feedback",
+ "type": "checkbox",
+ "info": "If activated, direct feedback is displayed after answering a question."
+ },
+ {
+ "label": "Progress Bar",
+ "name": "progress_bar",
+ "type": "checkbox",
+ "info": "Wenn aktiviert, wird ein Fortschrittsbalken angezeigt, wenn das Quiz abgeschlossen ist."
+ },
+ {
+ "label": "Navigation",
+ "name": "navigation",
+ "type": "checkbox",
+ "info": "If activated, you can navigate between questions."
+ },
+ {
+ "label": "Skippable",
+ "name": "skippable",
+ "type": "checkbox",
+ "info": "If activated, questions can be skipped."
+ },
+ {
+ "label": "Anytime Finish",
+ "name": "anytime_finish",
+ "type": "checkbox",
+ "info": "If activated, not all questions need to be answered to complete the quiz."
+ },
+ {
+ "label": "Time Limit",
+ "name": "time",
+ "type": "number",
+ "min": 1,
+ "info": "If specified, the quiz has a time limit and will automatically end after the specified number of seconds."
+ },
+ {
+ "label": "Shuffle Questions",
+ "name": "shuffle",
+ "type": "checkbox",
+ "info": "If activated, the questions are shuffled so that their order is random each time."
+ },
+ {
+ "label": "Shuffle Answers",
+ "name": "random",
+ "type": "checkbox",
+ "info": "If activated, the answers to the questions are displayed in random order."
+ },
+ {
+ "label": "Escape HTML code",
+ "name": "escape",
+ "type": "checkbox",
+ "info": "If activated, HTML code contained in questions and answers is not evaluated, but displayed unchanged."
+ },
+ {
+ "label": "Save Results",
+ "name": "data.store",
+ "type": "select",
+ "info": "Choose where to save the results.Local Database: The results are saved in the local database of the web browser and are therefore only available on this device and also offline.- Server-side Database: The results are stored in a server-side database. Specifically, it is a data server from the computer science department at the Bonn-Rhein-Sieg University of Applied Sciences in Germany.
",
+ "items": [
+ {
+ "inner": "Disabled",
+ "value": "[%'%ccm.store%'%]"
+ },
+ {
+ "inner": "Local Database",
+ "value": "[%'%ccm.store%'%,{%'%name%'%:%'%quiz_results%'%}]"
+ },
+ {
+ "inner": "Server-side Database",
+ "value": "[%'%ccm.store%'%,{%'%name%'%:%'%quiz_results%'%,%'%url%'%:%'%https://ccm2.inf.h-brs.de%'%}]"
+ }
+ ]
+ },
+ {
+ "label": "User Authentication",
+ "name": "user",
+ "type": "select",
+ "info": "Select how a user must log in when completing the quiz so that their result can be saved.- Guest Mode: The user can log in with any username and without a password.
- Digital Makerspace Account: The user must log in with a Digital Makerspace account.
- H-BRS FB02 Account: The user must authenticate himself with an account from the Computer Science Department at Bonn-Rhein-Sieg University of Applied Sciences.
- H-BRS FB02 Account with Pseudonym: The same as the previous option, but the username is replaced with a pseudonym.
- One-time Pseudonym: The user is automatically logged in with a unique pseudonym. Each login returns a different pseudonym after a session has ended.
",
+ "items": [
+ {
+ "inner": "Disabled",
+ "value": "null"
+ },
+ {
+ "inner": "Guest Mode",
+ "value": "[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%]"
+ },
+ {
+ "inner": "DMS Account",
+ "value": "[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%hash%'%:[%'%ccm.load%'%,{%'%url%'%:%'%https://ccmjs.github.io/akless-components/modules/md5.mjs%'%,%'%type%'%:%'%module%'%}],%'%realm%'%:%'%cloud%'%,%'%store%'%:%'%dms-user%'%,%'%url%'%:%'%https://ccm2.inf.h-brs.de%'%}]"
+ },
+ {
+ "inner": "H-BRS FB02 Account",
+ "value": "[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%hbrsinfkaul%'%,%'%realm%'%:%'%hbrsinfkaul%'%}]"
+ },
+ {
+ "inner": "H-BRS FB02 Account with Pseudonym",
+ "value": "[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%hbrsinfpseudo%'%,%'%realm%'%:%'%hbrsinfpseudo%'%}]"
+ },
+ {
+ "inner": "One-time Pseudonym",
+ "value": "[%'%ccm.instance%'%,%'%https://ccmjs.github.io/akless-components/user/versions/ccm.user-9.3.1.js%'%,{%'%key%'%:%'%pseudo%'%,%'%realm%'%:%'%guest%'%,%'%guest%'%:true}]"
+ }
+ ]
+ },
+ "
",
+ "",
+ {
+ "label": "Confirmation Dialog",
+ "name": "onfinish.confirm",
+ "type": "text",
+ "info": "If activated, the user must explicitly confirm before saving a solution. To activate this, specify the text that will be displayed to the user in the confirmation dialog."
+ },
+ {
+ "label": "Clear Content",
+ "name": "onfinish.clear",
+ "type": "checkbox",
+ "info": "If activated, the quiz is hidden after completion."
+ },
+ {
+ "label": "Restart",
+ "name": "onfinish.restart",
+ "type": "checkbox",
+ "info": "Indicates whether the quiz is restarted after completion."
+ },
+ {
+ "label": "Success Dialog",
+ "name": "onfinish.alert",
+ "type": "text",
+ "info": "Message displayed to the user when the submitted solution has been successfully saved."
+ },
+ "
",
+ "",
+ {
+ "label": "Previous Question",
+ "name": "placeholder.prev",
+ "type": "text",
+ "info": "Label for the button that switches to the previous question."
+ },
+ {
+ "label": "Abschicken",
+ "name": "placeholder.submit",
+ "type": "text",
+ "info": "Beschriftung für den Button, mit dem man die Lösung zu einer Frage abschickt."
+ },
+ {
+ "label": "Next Question",
+ "name": "placeholder.next",
+ "type": "text",
+ "info": "Label for the button that switches to the next question."
+ },
+ {
+ "label": "Finish",
+ "name": "placeholder.finish",
+ "type": "text",
+ "info": "Label for the button that completes the quiz."
+ },
+ {
+ "label": "Prefix of a Question",
+ "name": "placeholder.prefix",
+ "type": "text",
+ "info": "Before each question there is a prefix followed by the number of the current question and the total number of questions. The prefix can be individually defined here."
+ }
+ ],
+ "ignore": {
+ "defaults": {
+ "css": [
+ "ccm.load",
+ "https://ccmjs.github.io/akless-components/quiz/resources/weblysleek-v2.css",
+ {
+ "context": "head",
+ "url": "https://ccmjs.github.io/akless-components/resources/fonts/WeblySleekUI/font.css"
+ }
+ ],
+ "placeholder": {
+ "cancel": "Cancel",
+ "prev": "Previous Question",
+ "submit": "Submit",
+ "next": "Next Question",
+ "correct": "Correct solution: ",
+ "finish": "Finish Quiz",
+ "prefix": "Question"
+ },
+ "feedback": true,
+ "progress_bar": true,
+ "questions": [
+ {
+ "text": "First Question",
+ "input": "radio",
+ "answers": [
+ {
+ "text": "Answer A",
+ "correct": true
+ },
+ {
+ "text": "Answer B"
+ }
+ ]
+ }
+ ]
+ }
+ }
+};