From 70acd80a7abe6fb5ca4ff7ffe3fa49aff52295e6 Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Fri, 29 Nov 2019 14:39:02 +0100 Subject: [PATCH] OO-4382: Show error if file type does not match allowed type --- .../forms/ui/FileUploadController.java | 2 +- .../forms/ui/_content/file_upload.html | 18 ++++- .../forms/ui/_i18n/LocalStrings_de.properties | 74 +++++++++---------- .../forms/ui/_i18n/LocalStrings_en.properties | 8 +- 4 files changed, 59 insertions(+), 43 deletions(-) diff --git a/src/main/java/org/olat/modules/forms/ui/FileUploadController.java b/src/main/java/org/olat/modules/forms/ui/FileUploadController.java index 65d2159cbdf..b00c3dec8d7 100644 --- a/src/main/java/org/olat/modules/forms/ui/FileUploadController.java +++ b/src/main/java/org/olat/modules/forms/ui/FileUploadController.java @@ -86,7 +86,7 @@ public class FileUploadController extends FormBasicController implements Evaluat @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { String fileElId = "file_upload_" + CodeHelper.getRAMUniqueID(); - flc.contextPut("fileUpload", fileElId); + flc.contextPut("item", fileElId); fileEl = uifactory.addFileElement(getWindowControl(), fileElId, "", formLayout); fileEl.setPreview(ureq.getUserSession(), true); fileEl.setButtonsEnabled(false); diff --git a/src/main/java/org/olat/modules/forms/ui/_content/file_upload.html b/src/main/java/org/olat/modules/forms/ui/_content/file_upload.html index f002ed23e0a..de6cf34c6fc 100644 --- a/src/main/java/org/olat/modules/forms/ui/_content/file_upload.html +++ b/src/main/java/org/olat/modules/forms/ui/_content/file_upload.html @@ -15,5 +15,21 @@ </div> #end #else - $r.render("$fileUpload") + <div class="form-group $f.getElementCssClass($item) #if($f.hasError($item)) has-feedback has-error #end"> + #if ($f.hasLabel($item)) + $r.render("${item}_LABEL", "$f.getItemId($item)") + #end + $r.render(${item}, "form") + #if($f.hasError($item)) + <span class="o_icon o_icon_error form-control-feedback"></span> + #end + #if($f.hasExample($item)) + <div class="o_form_example help-block"> + $r.render("${item}_EXAMPLE") + </div> + #end + #if($f.hasError($item)) + $r.render("${item}_ERROR") + #end + </div> #end \ No newline at end of file diff --git a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties index 247910b23b6..ac26024a3e4 100644 --- a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_de.properties @@ -11,38 +11,38 @@ add.formrubric=Rubrik add.formsessioninformations=Informationen add.formsinglechoice=Einzelauswahl add.formtable=Tabelle -add.slider=Frage hinzuf\u00fcgen +add.slider=Frage hinzuf\u00FCgen bar.chart.legend=Legende chart.avg=Durchschnitt chart.count=Anzahl -choice.add=Eintrag hinzuf\u00fcgen -choice.delete=L\u00f6schen +choice.add=Eintrag hinzuf\u00FCgen +choice.delete=L\u00F6schen choice.example=Beispielwert choice.move=Verschieben choice.value=Eintrag -choice.values=Eintr\u00e4ge -confirm.done=M\u00f6chten Sie die Antworten abgeben? Diese k\u00f6nnen anschliessend nicht mehr bearbeitet werden. -disclaimer.agreement=Beschriftung Einverst\u00e4ndniserkl\u00e4rung -disclaimer.default.agreement=Ich habe die Einverst\u00e4ndniserkl\u00e4rung gelesen, verstanden und bin mit ihr einverstanden. -disclaimer.default.text=Alle von den Umfrageteilnehmern \u00fcbermittelten personenbezogenen Daten werden gem\u00e4ss den Datenschutzvorschriften bearbeitet und in keinem Fall an Dritte weitergegeben. -disclaimer.not.accepted=Bitte geben Sie zuerst Ihr Einverst\u00e4ndnis. -disclaimer.text=Einverst\u00e4ndniserkl\u00e4rung +choice.values=Eintr\u00E4ge +confirm.done=M\u00F6chten Sie die Antworten abgeben? Diese k\u00F6nnen anschliessend nicht mehr bearbeitet werden. +disclaimer.agreement=Beschriftung Einverst\u00E4ndniserkl\u00E4rung +disclaimer.default.agreement=Ich habe die Einverst\u00E4ndniserkl\u00E4rung gelesen, verstanden und bin mit ihr einverstanden. +disclaimer.default.text=Alle von den Umfrageteilnehmern \u00FCbermittelten personenbezogenen Daten werden gem\u00E4ss den Datenschutzvorschriften bearbeitet und in keinem Fall an Dritte weitergegeben. +disclaimer.not.accepted=Bitte geben Sie zuerst Ihr Einverst\u00E4ndnis. +disclaimer.text=Einverst\u00E4ndniserkl\u00E4rung end.label=End error.cannot.save=Speichern fehlgeschlagen error.no.number=Falsches Zahlenformat. Beispiele\: 1.0, 0.5, 0.2 error.outside.range=Der Wert muss zwischen {0} und {1} liegen. -error.range.overlapping=Zwei Wertebereiche \u00fcberlappen sich. +error.range.overlapping=Zwei Wertebereiche \u00FCberlappen sich. error.wrong.int=Falsches Zahlenformat. Beispiele\: 1, 5, 10 -evaluation.anonymous= Dies ist eine anonyme Umfrage, die Umfrageantworten sind anonymisiert. Es werden keine pers\u00f6nlichen Daten \u00fcber Sie gespeichert, es sei denn, es wird ausdr\u00fccklich danach gefragt (z. B. Alter, Geschlecht). Auch die IP-Adresse des von Ihnen verwendeten PC wird nicht gespeichert. Es gibt somit keinen Weg, die Umfrageergebnisse mit Ihren Daten zusammenzuf\u00fchren. -evaluation.form.in.use=Die Ressource wird bereits verwendet. Die Bearbeitung ist beschr\u00e4nkt. -evaluation.form.without.elements=F\u00fcr diesen Fragebogen sind noch keine Fragen vorhanden. -evaluation.in.progress=Die Einsch\u00e4tzung ist gerade in Bearbeitung +evaluation.anonymous= Dies ist eine anonyme Umfrage, die Umfrageantworten sind anonymisiert. Es werden keine pers\u00F6nlichen Daten \u00FCber Sie gespeichert, es sei denn, es wird ausdr\u00FCcklich danach gefragt (z. B. Alter, Geschlecht). Auch die IP-Adresse des von Ihnen verwendeten PC wird nicht gespeichert. Es gibt somit keinen Weg, die Umfrageergebnisse mit Ihren Daten zusammenzuf\u00FChren. +evaluation.form.in.use=Die Ressource wird bereits verwendet. Die Bearbeitung ist beschr\u00E4nkt. +evaluation.form.without.elements=F\u00FCr diesen Fragebogen sind noch keine Fragen vorhanden. +evaluation.in.progress=Die Einsch\u00E4tzung ist gerade in Bearbeitung evaluator=Benutzer {0} file.upload.download.info=Es werden {0} von {1} Dateien angezeigt. file.upload.download.link=Alle Dateien herunterladen. file.upload.error.limit.exeeded=Die Datei ist zu gross -file.upload.error.mime.type.wrong=Dieser Dateityps ist nicht erlaubt -file.upload.limit=Maximale Dateigr\u00f6sse +file.upload.error.mime.type.wrong=Dieser Dateityp ist nicht erlaubt. +file.upload.limit=Maximale Dateigr\u00F6sse file.upload.mime.type.all=Alle file.upload.mime.type.audio=Audio file.upload.mime.type.image=Bilder @@ -61,15 +61,15 @@ htitle=Titel multiple.choice.others=Weitere multiple.choice.with.others.enabled=Teilnehmer kann weitere Werte erfassen multiple.choice.with.others=Weitere -no.response.help=Aktivieren Sie diese Option, um im Fragebogen die Spalte "Keine Antwort m\u00f6glich" anzuzeigen. Der Teilnehmer kann so zum Ausdruck bringen, dass er nicht in der Lage ist, eine Frage zu beantworten. -no.response=Keine Antwort m\u00f6glich +no.response.help=Aktivieren Sie diese Option, um im Fragebogen die Spalte "Keine Antwort m\u00F6glich" anzuzeigen. Der Teilnehmer kann so zum Ausdruck bringen, dass er nicht in der Lage ist, eine Frage zu beantworten. +no.response=Keine Antwort m\u00F6glich report.anonymous.user=Anonym report.count.count.title=Anzahl report.count.name.title=Wert report.excel.legend=Legende report.excel.text=Text report.export=Export Excel -report.max.session.exceeded=Die maximale Anzahl von einzelnen Frageb\u00f6gen ({0}) wurde \u00fcberschritten. Die einzelnen Frageb\u00f6gen werden nicht gedruckt. +report.max.session.exceeded=Die maximale Anzahl von einzelnen Frageb\u00F6gen ({0}) wurde \u00FCberschritten. Die einzelnen Frageb\u00F6gen werden nicht gedruckt. report.overview.duration.count=Anzahl report.overview.duration.title=Bearbeitungsdauer report.overview.duration=Bearbeitungsdauer @@ -95,20 +95,20 @@ report.session.dummy= report.session.participant=Teilnehmer report.session.quickview=<i class\='o_icon o_icon_quickview'> </i> reports.diagram.report=Diagramme -reports.session.forms=Frageb\u00f6gen -reports.session.selection=Einzelne Frageb\u00f6gen -reports.table.overview=\u00dcbersicht +reports.session.forms=Frageb\u00F6gen +reports.session.selection=Einzelne Frageb\u00F6gen +reports.table.overview=\u00DCbersicht reports.table.report=Tabellen rubric.column.label=Spaltenbeschriftung rubric.good.rating.end=Rechts -rubric.good.rating.help=Definieren Sie, ob die linke oder die rechte Seite der Skala eine positive Beurteilung darstellt. Diese Angabe wird f\u00fcr die Darstellung des Trenddiagramms verwendet. +rubric.good.rating.help=Definieren Sie, ob die linke oder die rechte Seite der Skala eine positive Beurteilung darstellt. Diese Angabe wird f\u00FCr die Darstellung des Trenddiagramms verwendet. rubric.good.rating.start=Links rubric.good.rating=Positive Bewertung -rubric.insufficient.explanation=Ungen\u00fcgende Beurteilung (Wert zwischen {0} und {1}) -rubric.insufficient=Ungen\u00fcgend +rubric.insufficient.explanation=Ungen\u00FCgende Beurteilung (Wert zwischen {0} und {1}) +rubric.insufficient=Ungen\u00FCgend rubric.lower.bound=von rubric.name.display=Anzeige des Namens -rubric.name.execution=In Durchf\u00fchrung +rubric.name.execution=In Durchf\u00FChrung rubric.name.help=Geben Sie diesem Rubric einen Namen und legen Sie fest, ob dieser im Fragebogen und in den Reports dargestellt werden soll. Im Report werden Rubrics ohne Namen zur Kennzeichnung durchnummeriert. rubric.name.report=In Reports rubric.name=Name @@ -116,7 +116,7 @@ rubric.neutral.explanation=Neutrale Beurteilung (Wert zwischen {0} und {1}) rubric.neutral=Neutral rubric.no.response.enabled=Spalte "$\:no.response" rubric.rating.help=Definieren Sie den Bereich der Beurteilung "{0}". Die Beurteilung wird in den einzelnen Reports und in der Analyse von Umfragen verwendet. Zudem basieren die Kriterien einiger Datenerhebungsgeneratoren auf diesem Bereich. -rubric.report.avg.abrev=\u00f8 +rubric.report.avg.abrev=\u00F8 rubric.report.avg.title=Durchschnitt rubric.report.end.lable.title= rubric.report.figure.title=Kennzahl @@ -127,12 +127,12 @@ rubric.report.number.no.responses.abrev=kA rubric.report.number.no.responses.title=Anzahl "$\:no.response" rubric.report.number.responses.abrev=A rubric.report.number.responses.title=Anzahl Antworten -rubric.report.sdtdev.abrev=\u03c3 +rubric.report.sdtdev.abrev=\u03C3 rubric.report.sdtdev.title=Standardabweichung rubric.report.start.label.title= rubric.report.total=Gesamttotal {0} rubric.report.value.title=Wert -rubric.report.variance.abrev=\u03c3\u00b2 +rubric.report.variance.abrev=\u03C3\u00B2 rubric.report.variance.title=Varianz rubric.report.weight.abrev=g rubric.report.weight.title=Gewichtung @@ -141,7 +141,7 @@ rubric.scale.maxToOne=Absteigende Likert-Skala (x bis 1) rubric.scale.maxToZero=Absteigende Likert-Skala (x bis 0) rubric.scale.oneToMax=Aufsteigende Likert-Skala (1 bis x) rubric.scale.zeroToMax=Aufsteigende Likert-Skala (0 bis x) -rubric.scale.type.help=Legen Sie die Werte der gew\u00e4hlten Skala fest. Die Werte werden in den Reports und der Analyse von Umfragen verwendet. +rubric.scale.type.help=Legen Sie die Werte der gew\u00E4hlten Skala fest. Die Werte werden in den Reports und der Analyse von Umfragen verwendet. rubric.scale.type=Skalentyp rubric.scale.zeroBallanced=Symmetrische Likert-Skala (-x bis x) rubric.sufficient.explanation=Gute Beurteilung (Wert zwischen {0} und {1}) @@ -152,13 +152,13 @@ rubric.upper.bound=bis save.as.done=Speichern und abschliessen save.intermediate=Zwischenspeichern session.informations.fill.in.label= -session.informations.fill.in=Automatisch einf\u00fcllen +session.informations.fill.in=Automatisch einf\u00FCllen session.informations.informations=Informationen session.informations.label={0} session.information.obligation=Obligatorisch / Optional -session.information.obligation.autofill=Obligatorisch, automatisch ausgef\u00fcllt und nicht bearbeitbar +session.information.obligation.autofill=Obligatorisch, automatisch ausgef\u00FCllt und nicht bearbeitbar session.information.obligation.mandatory=Obligatorisch, bearbeitbar durch den Benutzer -session.information.obligation.optional=Optional, muss nicht ausgef\u00fcllt werden +session.information.obligation.optional=Optional, muss nicht ausgef\u00FCllt werden session.informations.report.number.participants=Es haben {0} Benutzer/innen an der Umfrage teilgenommen, {1} davon anonym. session.informations.type.age=Alter single.choice.presentation.dropdown=Auswahlliste @@ -176,8 +176,8 @@ slider.steps=Schritte slider.type=Typ slider.weight=Gewicht standalone.already.done=Sie haben bereits an der Umfrage teilgenommen. Vielen Dank! -standalone.done.now=Vielen Dank f\u00fcr Ihre Teilnahme an der Umfrage. -standalone.not.executable=Die Teilnahme an dieser Umfrage ist (noch) nicht m\u00f6glich. +standalone.done.now=Vielen Dank f\u00FCr Ihre Teilnahme an der Umfrage. +standalone.not.executable=Die Teilnahme an dieser Umfrage ist (noch) nicht m\u00F6glich. standalone.not.found=Es ist keine Umfrage vorhanden. start.label=Beginn textinput.download.info=Es werden {0} von {1} Texten angezeigt. @@ -191,4 +191,4 @@ textinput.rows.mode=Zeilentyp textinput.rows=Zeilen textinput.single.row=Eine Zeile title.example=<h1>Anklicken um Titel zu bearbeiten</h1> -warning.form.not.completed=Achtung! Sie haben nicht alle Felder ausgef\u00fcllt. +warning.form.not.completed=Achtung! Sie haben nicht alle Felder ausgef\u00FCllt. diff --git a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties index de22b0e8c39..6bca28ac4e6 100644 --- a/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/forms/ui/_i18n/LocalStrings_en.properties @@ -40,7 +40,7 @@ evaluator=User {0} file.upload.download.info={0} of {1} files are shown. file.upload.download.link=Download all files. file.upload.error.limit.exeeded=The file is too large -file.upload.error.mime.type.wrong=The data type is not allowed +file.upload.error.mime.type.wrong=This data type is not allowed. file.upload.limit=Maximal file size file.upload.mime.type.all=All file.upload.mime.type.audio=Audio @@ -115,7 +115,7 @@ rubric.neutral.explanation=Neutral assessment (value between {0} and {1}) rubric.neutral=Neutral rubric.no.response.enabled=Column "$\:no.response" rubric.rating.help=Define the range of the rating "{0}". The rating is used in reports and in the analysis of surveys. In addition, the criteria of some data collection generators are based on this range. -rubric.report.avg.abrev=\u00f8 +rubric.report.avg.abrev=\u00F8 rubric.report.avg.title=Average rubric.report.end.lable.title= rubric.report.figure.title=Figure @@ -126,12 +126,12 @@ rubric.report.number.no.responses.abrev=na rubric.report.number.no.responses.title=Number of "$\:no.response" rubric.report.number.responses.abrev=a rubric.report.number.responses.title=Number of answers -rubric.report.sdtdev.abrev=\u03c3 +rubric.report.sdtdev.abrev=\u03C3 rubric.report.sdtdev.title=Standard deviation rubric.report.start.label.title= rubric.report.total=Total {0} rubric.report.value.title=Value -rubric.report.variance.abrev=\u03c3\u00b2 +rubric.report.variance.abrev=\u03C3\u00B2 rubric.report.variance.title=Variance rubric.report.weight.abrev=w rubric.report.weight.title=Weight -- GitLab