From 7d21c77061bb95429ac4984f43c1a61f7b530e5c Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 7 Nov 2016 11:27:45 +0100 Subject: [PATCH] OO-2226: wording and more checkbox to confirmation delete --- .../modules/portfolio/manager/BinderDAO.java | 8 +- .../ui/BinderDeliveryOptionsController.java | 89 ++++++++++++- .../ui/ConfirmDeleteBinderController.java | 35 +++-- .../ConfirmMoveBinderToTrashController.java | 122 ++++++++++++++++++ .../portfolio/ui/DeletedBinderController.java | 2 +- .../portfolio/ui/PortfolioHomeController.java | 13 -- .../ui/TableOfContentController.java | 7 +- .../ui/_content/confirm_delete_binder.html | 15 ++- .../ui/_content/confirm_delete_option.html | 21 +++ .../ui/_i18n/LocalStrings_de.properties | 7 +- .../ui/_i18n/LocalStrings_en.properties | 7 +- 11 files changed, 280 insertions(+), 46 deletions(-) create mode 100644 src/main/java/org/olat/modules/portfolio/ui/ConfirmMoveBinderToTrashController.java create mode 100644 src/main/java/org/olat/modules/portfolio/ui/_content/confirm_delete_option.html diff --git a/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java b/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java index 0e6bd02c934..d344ae00880 100644 --- a/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java +++ b/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java @@ -419,8 +419,8 @@ public class BinderDAO { .append(" where pageSection.binder.key=binder.key and page.section.key=pageSection.key and comment.resId=page.key and comment.resName='Page'") .append(" ) as numOfComments") .append(" from pfbinder as binder") - .append(" inner join binder.baseGroup as baseGroup") - .append(" inner join baseGroup.members as membership") + .append(" left join binder.baseGroup as baseGroup") + .append(" left join baseGroup.members as membership") .append(" left join binder.entry binderEntry") .append(" where binder.key=:binderKey"); @@ -467,8 +467,8 @@ public class BinderDAO { .append(" where pageSection.binder.key=binder.key and page.section.key=pageSection.key and comment.resId=page.key and comment.resName='Page'") .append(" ) as numOfComments") .append(" from pfbinder as binder") - .append(" inner join binder.baseGroup as baseGroup") - .append(" inner join baseGroup.members as membership") + .append(" left join binder.baseGroup as baseGroup") + .append(" left join baseGroup.members as membership") .append(" left join binder.entry binderEntry") .append(" where binder.olatResource is null and membership.identity.key=:identityKey and membership.role=:role"); if(deleted) { diff --git a/src/main/java/org/olat/modules/portfolio/ui/BinderDeliveryOptionsController.java b/src/main/java/org/olat/modules/portfolio/ui/BinderDeliveryOptionsController.java index 6c897257d44..f67fe3c25dc 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/BinderDeliveryOptionsController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/BinderDeliveryOptionsController.java @@ -29,7 +29,9 @@ import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController; import org.olat.core.gui.control.generic.dtabs.Activateable2; import org.olat.core.id.context.ContextEntry; import org.olat.core.id.context.StateEntry; @@ -52,6 +54,9 @@ public class BinderDeliveryOptionsController extends FormBasicController impleme private MultipleSelectionElement newEntriesEl; private MultipleSelectionElement deleteBinderEl; + private CloseableModalController deleteOptionCmcCtrl; + private ConfirmDeleteOptionController deleteOptionCtrl; + private final Binder binder; private final BinderDeliveryOptions deliveryOptions; @@ -80,7 +85,7 @@ public class BinderDeliveryOptionsController extends FormBasicController impleme deleteBinderEl = uifactory.addCheckboxesHorizontal("canDeleteBinder", "allow.delete.binder", formLayout, onKeys, onValues); deleteBinderEl.addActionListener(FormEvent.ONCHANGE); if(deliveryOptions.isAllowDeleteBinder()) { - deleteBinderEl.select(onKeys[0], true); + deleteBinderEl.select(onKeys[0], false); } FormLayoutContainer buttonsLayout = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); @@ -103,7 +108,7 @@ public class BinderDeliveryOptionsController extends FormBasicController impleme protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { if(source == deleteBinderEl) { if(deleteBinderEl.isAtLeastSelected(1)) { - showWarning("allow.delete.binder.warning"); + doConfirmDeleteOption(ureq); } } super.formInnerEvent(ureq, source, event); @@ -117,4 +122,84 @@ public class BinderDeliveryOptionsController extends FormBasicController impleme deliveryOptions.setAllowDeleteBinder(allowDeleteBinder); portfolioService.setDeliveryOptions(binder.getOlatResource(), deliveryOptions); } + + @Override + protected void event(UserRequest ureq, Controller source, Event event) { + if(deleteOptionCtrl == source) { + if(event != Event.DONE_EVENT) { + deleteBinderEl.uncheckAll(); + } + deleteOptionCmcCtrl.deactivate(); + cleanUp(); + } else if(deleteOptionCmcCtrl == source) { + deleteBinderEl.uncheckAll(); + cleanUp(); + } + super.event(ureq, source, event); + } + + private void cleanUp() { + removeAsListenerAndDispose(deleteOptionCmcCtrl); + removeAsListenerAndDispose(deleteOptionCtrl); + deleteOptionCmcCtrl = null; + deleteOptionCtrl = null; + } + + private void doConfirmDeleteOption(UserRequest ureq) { + if(deleteOptionCtrl != null) return; + + deleteOptionCtrl = new ConfirmDeleteOptionController(ureq, getWindowControl()); + listenTo(deleteOptionCtrl); + + String title = translate("create.new.binder"); + deleteOptionCmcCtrl = new CloseableModalController(getWindowControl(), null, deleteOptionCtrl.getInitialComponent(), true, title, true); + listenTo(deleteOptionCmcCtrl); + deleteOptionCmcCtrl.activate(); + } + + private class ConfirmDeleteOptionController extends FormBasicController { + + private MultipleSelectionElement acknowledgeEl; + + public ConfirmDeleteOptionController(UserRequest ureq, WindowControl wControl) { + super(ureq, wControl, "confirm_delete_option"); + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + String[] values = new String[] { translate("allow.delete.binder.warning") }; + acknowledgeEl = uifactory.addCheckboxesHorizontal("acknowledge", "confirmation", formLayout, onKeys, values); + uifactory.addFormCancelButton("cancel", formLayout, ureq, getWindowControl()); + uifactory.addFormSubmitButton("delete", "ok", formLayout); + } + + @Override + protected void doDispose() { + // + } + + @Override + protected boolean validateFormLogic(UserRequest ureq) { + boolean allOk = true; + + acknowledgeEl.clearError(); + if(!acknowledgeEl.isAtLeastSelected(1)) { + acknowledgeEl.setErrorKey("form.mandatory.hover", null); + allOk &= false; + } + + return allOk & super.validateFormLogic(ureq); + } + + @Override + protected void formOK(UserRequest ureq) { + fireEvent(ureq, Event.DONE_EVENT); + } + + @Override + protected void formCancelled(UserRequest ureq) { + fireEvent(ureq, Event.CANCELLED_EVENT); + } + } } diff --git a/src/main/java/org/olat/modules/portfolio/ui/ConfirmDeleteBinderController.java b/src/main/java/org/olat/modules/portfolio/ui/ConfirmDeleteBinderController.java index ec4ffb36089..49e8903d26f 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/ConfirmDeleteBinderController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/ConfirmDeleteBinderController.java @@ -31,7 +31,6 @@ import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.util.StringHelper; -import org.olat.modules.portfolio.BinderStatus; import org.olat.modules.portfolio.model.BinderStatistics; /** @@ -44,19 +43,17 @@ public class ConfirmDeleteBinderController extends FormBasicController { private static final String[] onKeys = new String[]{ "on" }; - private MultipleSelectionElement acknowledgeEl; + private MultipleSelectionElement acknowledgeEl, acknowledge2El; - private final boolean danger; private final List<BinderStatistics> stats; - public ConfirmDeleteBinderController(UserRequest ureq, WindowControl wControl, BinderStatistics stats, boolean danger) { - this(ureq, wControl, Collections.singletonList(stats), danger); + public ConfirmDeleteBinderController(UserRequest ureq, WindowControl wControl, BinderStatistics stats) { + this(ureq, wControl, Collections.singletonList(stats)); } - public ConfirmDeleteBinderController(UserRequest ureq, WindowControl wControl, List<BinderStatistics> stats, boolean danger) { + public ConfirmDeleteBinderController(UserRequest ureq, WindowControl wControl, List<BinderStatistics> stats) { super(ureq, wControl, "confirm_delete_binder"); this.stats = stats; - this.danger = danger; initForm(ureq); } @@ -70,14 +67,12 @@ public class ConfirmDeleteBinderController extends FormBasicController { int numOfPages = 0; int numOfSections = 0; int numOfComments = 0; - boolean deleted = false; for(BinderStatistics stat:stats) { if(names.length() > 0) names.append(", "); names.append(StringHelper.escapeHtml(stat.getTitle())); numOfPages += stat.getNumOfPages(); numOfSections += stat.getNumOfSections(); numOfComments += stat.getNumOfComments(); - deleted |= BinderStatus.deleted.name().equals(stat.getStatus()); } String[] args = new String[] { @@ -89,17 +84,14 @@ public class ConfirmDeleteBinderController extends FormBasicController { if(formLayout instanceof FormLayoutContainer) { FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout; layoutCont.contextPut("msg", translate("delete.binder.warning", args)); - layoutCont.contextPut("dangerCssClass", danger || deleted ? "o_error" : "o_warning"); + layoutCont.contextPut("dangerCssClass", "o_error"); } - String[] onValues; - if(danger || deleted) { - onValues = new String[]{ translate("delete.binder.acknowledge") }; - } else { - onValues = new String[]{ translate("trash.binder.acknowledge") }; - } - - acknowledgeEl = uifactory.addCheckboxesHorizontal("acknowledge", "delete.binder.acknowledge", formLayout, onKeys, onValues); + String[] onValues = new String[]{ translate("delete.binder.acknowledge") }; + acknowledgeEl = uifactory.addCheckboxesHorizontal("acknowledge", "confirmation", formLayout, onKeys, onValues); + String[] on2Values = new String[]{ translate("delete.binder.acknowledge.2") }; + acknowledge2El = uifactory.addCheckboxesHorizontal("acknowledge2", "confirmation", formLayout, onKeys, on2Values); + uifactory.addFormCancelButton("cancel", formLayout, ureq, getWindowControl()); uifactory.addFormSubmitButton("delete", "delete.binder", formLayout); } @@ -113,11 +105,18 @@ public class ConfirmDeleteBinderController extends FormBasicController { protected boolean validateFormLogic(UserRequest ureq) { boolean allOk = true; + acknowledgeEl.clearError(); if(!acknowledgeEl.isAtLeastSelected(1)) { acknowledgeEl.setErrorKey("form.mandatory.hover", null); allOk &= false; } + acknowledge2El.clearError(); + if(!acknowledge2El.isAtLeastSelected(1)) { + acknowledge2El.setErrorKey("form.mandatory.hover", null); + allOk &= false; + } + return allOk & super.validateFormLogic(ureq); } diff --git a/src/main/java/org/olat/modules/portfolio/ui/ConfirmMoveBinderToTrashController.java b/src/main/java/org/olat/modules/portfolio/ui/ConfirmMoveBinderToTrashController.java new file mode 100644 index 00000000000..1da16ba6460 --- /dev/null +++ b/src/main/java/org/olat/modules/portfolio/ui/ConfirmMoveBinderToTrashController.java @@ -0,0 +1,122 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.modules.portfolio.ui; + +import java.util.Collections; +import java.util.List; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.util.StringHelper; +import org.olat.modules.portfolio.model.BinderStatistics; + +/** + * + * Initial date: 7 nov. 2016<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class ConfirmMoveBinderToTrashController extends FormBasicController { + + private static final String[] onKeys = new String[]{ "on" }; + + private MultipleSelectionElement acknowledgeEl; + + private final List<BinderStatistics> stats; + + public ConfirmMoveBinderToTrashController(UserRequest ureq, WindowControl wControl, BinderStatistics stats) { + this(ureq, wControl, Collections.singletonList(stats)); + } + + public ConfirmMoveBinderToTrashController(UserRequest ureq, WindowControl wControl, List<BinderStatistics> stats) { + super(ureq, wControl, "confirm_delete_binder"); + this.stats = stats; + initForm(ureq); + } + + public List<BinderStatistics> getBinderStatistics() { + return stats; + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + StringBuilder names = new StringBuilder(); + int numOfPages = 0; + int numOfSections = 0; + int numOfComments = 0; + for(BinderStatistics stat:stats) { + if(names.length() > 0) names.append(", "); + names.append(StringHelper.escapeHtml(stat.getTitle())); + numOfPages += stat.getNumOfPages(); + numOfSections += stat.getNumOfSections(); + numOfComments += stat.getNumOfComments(); + } + + String[] args = new String[] { + names.toString(), + Integer.toString(numOfSections), + Integer.toString(numOfPages), + Integer.toString(numOfComments) + }; + if(formLayout instanceof FormLayoutContainer) { + FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout; + layoutCont.contextPut("msg", translate("delete.binder.warning", args)); + layoutCont.contextPut("dangerCssClass", "o_warning"); + } + + String[] onValues = new String[]{ translate("trash.binder.acknowledge") }; + acknowledgeEl = uifactory.addCheckboxesHorizontal("acknowledge", "delete.binder.acknowledge", formLayout, onKeys, onValues); + uifactory.addFormCancelButton("cancel", formLayout, ureq, getWindowControl()); + uifactory.addFormSubmitButton("delete", "delete.binder", formLayout); + } + + @Override + protected void doDispose() { + // + } + + @Override + protected boolean validateFormLogic(UserRequest ureq) { + boolean allOk = true; + + if(!acknowledgeEl.isAtLeastSelected(1)) { + acknowledgeEl.setErrorKey("form.mandatory.hover", null); + allOk &= false; + } + + return allOk & super.validateFormLogic(ureq); + } + + @Override + protected void formOK(UserRequest ureq) { + fireEvent(ureq, Event.DONE_EVENT); + } + + @Override + protected void formCancelled(UserRequest ureq) { + fireEvent(ureq, Event.CANCELLED_EVENT); + } +} diff --git a/src/main/java/org/olat/modules/portfolio/ui/DeletedBinderController.java b/src/main/java/org/olat/modules/portfolio/ui/DeletedBinderController.java index e5b8d0efb3b..00585599cdf 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/DeletedBinderController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/DeletedBinderController.java @@ -170,7 +170,7 @@ public class DeletedBinderController extends BinderListController { stats.add(row.getStatistics()); } - deleteBinderCtrl = new ConfirmDeleteBinderController(ureq, getWindowControl(), stats, true); + deleteBinderCtrl = new ConfirmDeleteBinderController(ureq, getWindowControl(), stats); listenTo(deleteBinderCtrl); String title = translate("delete.binder"); diff --git a/src/main/java/org/olat/modules/portfolio/ui/PortfolioHomeController.java b/src/main/java/org/olat/modules/portfolio/ui/PortfolioHomeController.java index 5035d0100d8..fcced8b83ff 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/PortfolioHomeController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/PortfolioHomeController.java @@ -250,19 +250,6 @@ public class PortfolioHomeController extends BasicController implements Activate return myPortfolioListCtrl; } - private void doOpenLastEditedBindersEntry(UserRequest ureq) { - Page lastModifiedPage = portfolioService.getLastPage(getIdentity(), true); - if(lastModifiedPage == null) { - //show message - } else { - Binder binder = lastModifiedPage.getSection().getBinder(); - List<ContextEntry> entries = new ArrayList<>(); - entries.add(BusinessControlFactory.getInstance().createContextEntry(OresHelper.createOLATResourceableInstance(Binder.class, binder.getKey()))); - BinderListController ctrl = doOpenMyBinders(ureq); - ctrl.activate(ureq, entries, null); - } - } - private TrashController doDeletedPages(UserRequest ureq) { OLATResourceable bindersOres = OresHelper.createOLATResourceableInstance("Trash", 0l); WindowControl swControl = addToHistory(ureq, bindersOres, null); diff --git a/src/main/java/org/olat/modules/portfolio/ui/TableOfContentController.java b/src/main/java/org/olat/modules/portfolio/ui/TableOfContentController.java index 7a93f8df54a..78e5deb2b64 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/TableOfContentController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/TableOfContentController.java @@ -97,9 +97,10 @@ public class TableOfContentController extends BasicController implements TooledC private SectionEditController newSectionCtrl; private SectionEditController editSectionCtrl; private AssignmentEditController newAssignmentCtrl; + private ConfirmDeleteBinderController deleteBinderCtrl; private SectionDatesEditController editSectionDatesCtrl; private BinderMetadataEditController binderMetadataCtrl; - private ConfirmDeleteBinderController moveBinderToTrashCtrl, deleteBinderCtrl; + private ConfirmMoveBinderToTrashController moveBinderToTrashCtrl; private DialogBoxController confirmCloseSectionCtrl, confirmReopenSectionCtrl, confirmDeleteSectionCtrl, confirmRestoreBinderCtrl; @@ -723,7 +724,7 @@ public class TableOfContentController extends BasicController implements TooledC if(moveBinderToTrashCtrl != null) return; BinderStatistics stats = portfolioService.getBinderStatistics(binder); - moveBinderToTrashCtrl = new ConfirmDeleteBinderController(ureq, getWindowControl(), stats, false); + moveBinderToTrashCtrl = new ConfirmMoveBinderToTrashController(ureq, getWindowControl(), stats); listenTo(moveBinderToTrashCtrl); String title = translate("delete.binder"); @@ -754,7 +755,7 @@ public class TableOfContentController extends BasicController implements TooledC if(moveBinderToTrashCtrl != null) return; BinderStatistics stats = portfolioService.getBinderStatistics(binder); - deleteBinderCtrl = new ConfirmDeleteBinderController(ureq, getWindowControl(), stats, false); + deleteBinderCtrl = new ConfirmDeleteBinderController(ureq, getWindowControl(), stats); listenTo(deleteBinderCtrl); String title = translate("delete.binder"); diff --git a/src/main/java/org/olat/modules/portfolio/ui/_content/confirm_delete_binder.html b/src/main/java/org/olat/modules/portfolio/ui/_content/confirm_delete_binder.html index 131d92decc5..b8b266cdfbd 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/_content/confirm_delete_binder.html +++ b/src/main/java/org/olat/modules/portfolio/ui/_content/confirm_delete_binder.html @@ -1,12 +1,25 @@ -<div class="$dangerCssClass"> +<div class="$dangerCssClass clearfix"> <i class="o_icon o_icon-lg o_icon_important"> </i> $msg </div> +<div class="clearfix"> $r.render("acknowledge") #if($f.hasError("acknowledge")) <div class="clearfix"> $r.render("acknowledge_ERROR") </div> #end +</div> +#if($r.available("acknowledge2")) +<div class="clearfix"> + $r.render("acknowledge2") + #if($f.hasError("acknowledge2")) + <div class="clearfix"> + $r.render("acknowledge2_ERROR") + </div> + #end +</div> +#end + <div class="o_button_group"> $r.render("cancel") $r.render("delete") diff --git a/src/main/java/org/olat/modules/portfolio/ui/_content/confirm_delete_option.html b/src/main/java/org/olat/modules/portfolio/ui/_content/confirm_delete_option.html new file mode 100644 index 00000000000..037cd8dd350 --- /dev/null +++ b/src/main/java/org/olat/modules/portfolio/ui/_content/confirm_delete_option.html @@ -0,0 +1,21 @@ +<fieldset class="o_form form-horizontal"> + <div class="form-group o_warning $f.getElementCssClass("acknowledge") #if($f.hasError("acknowledge")) has-feedback has-error #end clearfix"> + #if ($f.hasLabel("acknowledge") && $r.visible("acknowledge_LABEL")) + $r.render("acknowledge_LABEL", "acknowledge", "col-sm-3") + #end + <div class='col-sm-9'> + $r.render("acknowledge", "form") + #if($f.hasError("acknowledge")) + <span class="o_icon o_icon_error form-control-feedback"></span> + #end + </div> + #if($f.hasError("acknowledge")) + <div class="col-sm-offset-3 col-sm-9"> + $r.render("acknowledge_ERROR") + </div> + #end + </div> + <div class="col-sm-offset-3 col-sm-9"> + $r.render("cancel") $r.render("delete") + </div> +</fieldset> \ No newline at end of file diff --git a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_de.properties index badab662b6a..f5feb9a8392 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_de.properties @@ -53,6 +53,7 @@ attachments.error.file.exists=Diese Datei existiert bereits und kann nicht erneu attachments.upload.successful=Die Datei {0} wurde erfolgreich hochgeladen. Bei Bedarf k\u00F6nnen noch weitere Dateien angeh\u00E4ngt werden. author=Autor begin.date=Beginn +binder.atleastone=Bitte w\u00E4hlen Sie mindestens eine Mappe. binder.by=von {0} binder.entry.name=Zum Kurs binder.last.update=Letzte \u00C4nderung @@ -78,6 +79,7 @@ comment.one=1 Kommentar comment.several={0} Kommentare comment.title=Kommentare comment.zero=Noch keine Kommentare +confirmation=Best\u00E4tigung create.binder=Mappe erstellen create.empty.binder=Leere Mappe erstellen create.empty.binder.from.course=Mappe f\u00FCr Portfolioaufgabe aus Kurs erstellen @@ -102,7 +104,8 @@ delete.assignment.confirm.descr=Wollen Sie wirklich diesem Aufgabe "{0}" l\u00F6 delete.assignment.confirm.title=Aufgabe l\u00F6schen delete.assignment.in.use.confirm.descr=$\:delete.assignment.confirm.descr <div class\='o_warning'>Es gibt schon Benutzer die es angefangen haben.</div> delete.binder=Mappe l\u00F6schen -delete.binder.acknowledge=Ich verstehe dass alle Eintr\u00E4ge werden definitive gel\u00F6scht +delete.binder.acknowledge=Ich verstehe dass die Mappe und alle ihre Eintr\u00E4ge werden definitive gel\u00F6scht. +delete.binder.acknowledge.2=Ich verstehe dass ich die Mappe nicht mehr wiedererstellen kann. delete.binder.success=Die Mappe wurde erfolgreich gel\u00F6scht. delete.binder.warning=Wollen Sie wirklich die Mappe "{0}" l\u00F6schen? Sie enth\u00E4lt <strong>{1}</strong> Bereiche, <strong>{2}</strong> Eintr\u00E4ge und <sstrong>{3}</strong> Kommentar. delete.def.page=Eintrag l\u00F6schen @@ -273,7 +276,7 @@ reopen.section.confirm.descr=Wollen Sie diesen Bereich "{0}" neu er\u00F6ffnen? reopen.section.confirm.title=Bereich er\u00F6ffnen restore.binder=Wiedererstellen restore.binder.confirm.title=Mappe wiedererstellen -restore.binder.confirm.descr=Wollen sie die Mappe "{0}" wiedererstellen? +restore.binder.confirm.descr=Wollen sie die Mappe "{0}" wiedererstellen? Sie wird wieder in "Meine Portfolio Mappen" erscheinen. restore.binder.success=Die Mappe wurde erfolgreich wiedererstellt. restore.page=Wiedererstellen revision.confirm.descr=Wollen Sie diesen Eintrag "{0}" neu \u00FCberarbeiten lassen? diff --git a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_en.properties index 59f45f3fc7e..69dc78c707e 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_en.properties @@ -53,6 +53,7 @@ attachments.error.file.exists=This file already exists and can therefore not be attachments.upload.successful=File {0} successfully uploaded. Other files can still be attached if needed. author=Author begin.date=Begin +binder.atleastone=Please select at least one binder. binder.by=by {0} binder.entry.name=Regarding course binder.last.update=Last update @@ -78,6 +79,7 @@ comment.one=1 comment comment.several={0} comments comment.title=Comments comment.zero=Still no comments +confirmation=Confirmation create.binder=Create binder create.empty.binder=New empty binder create.empty.binder.from.course=New binder from course portfolio task @@ -102,7 +104,8 @@ delete.assignment.confirm.descr=Do you really want to delete this assignment "{0 delete.assignment.confirm.title=Delete assignment delete.assignment.in.use.confirm.descr=$\:delete.assignment.confirm.descr <div class\='o_warning'>There are already users which started the assignment.</div> delete.binder=Delete binder -delete.binder.acknowledge=I understand that all the entries will be deleted. +delete.binder.acknowledge=I understand that the binder and all its entries will be definetly deleted. +delete.binder.acknowledge.2=I understand that the binder cannot be restored again. delete.binder.success=Binder is successfully deleted. delete.binder.warning=Do you really want to delete the binder "{0}"? It contains <strong>{1}</strong> sections, <strong>{2}</strong> entries and <strong>{3}</strong> comments. delete.def.page=Delete entry @@ -272,7 +275,7 @@ reopen.section=Reopen reopen.section.confirm.descr=Do you want to reopen this section "{0}"? reopen.section.confirm.title=Reopen section restore.binder=Restore -restore.binder.confirm.descr=Do you want to restore the binder "{0}"? +restore.binder.confirm.descr=Do you want to restore the binder "{0}"? It will appear in "My binders" again. restore.binder.confirm.title=Restore binder restore.binder.success=The binder was successfully restored. restore.page=Restore -- GitLab