From ab826b2469aea9067c4ab4010e4e06a60e5d8442 Mon Sep 17 00:00:00 2001 From: fkiefer <none@none> Date: Tue, 14 Jun 2016 16:56:47 +0200 Subject: [PATCH] OO-2057: update of mask create binder and create entry --- .../ui/BinderMetadataEditController.java | 62 +++++++++++++++++++ .../ui/PageMetadataEditController.java | 41 ++++++++++++ .../ui/_i18n/LocalStrings_en.properties | 7 +++ 3 files changed, 110 insertions(+) diff --git a/src/main/java/org/olat/modules/portfolio/ui/BinderMetadataEditController.java b/src/main/java/org/olat/modules/portfolio/ui/BinderMetadataEditController.java index 4c2b7286d07..0a32d5f397c 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/BinderMetadataEditController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/BinderMetadataEditController.java @@ -20,21 +20,31 @@ package org.olat.modules.portfolio.ui; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; +import org.olat.basesecurity.GroupRoles; import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.FileElement; +import org.olat.core.gui.components.form.flexible.elements.StaticTextElement; import org.olat.core.gui.components.form.flexible.elements.TextBoxListElement; import org.olat.core.gui.components.form.flexible.elements.TextElement; 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.components.form.flexible.impl.elements.FileElementEvent; 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.id.Identity; import org.olat.modules.portfolio.Binder; import org.olat.modules.portfolio.Category; import org.olat.modules.portfolio.PortfolioService; +import org.olat.user.UserManager; import org.springframework.beans.factory.annotation.Autowired; /** @@ -45,13 +55,26 @@ import org.springframework.beans.factory.annotation.Autowired; */ public class BinderMetadataEditController extends FormBasicController { + private static final Set<String> imageMimeTypes = new HashSet<String>(); + static { + imageMimeTypes.add("image/gif"); + imageMimeTypes.add("image/jpg"); + imageMimeTypes.add("image/jpeg"); + imageMimeTypes.add("image/png"); + } + private TextElement titleEl, summaryEl; private TextBoxListElement categoriesEl; + private FileElement fileUpload; + private static final int picUploadlimitKB = 5120; + private Binder binder; private Map<String,String> categories = new HashMap<>(); private Map<String,Category> categoriesMap = new HashMap<>(); + @Autowired + private UserManager userManager; @Autowired private PortfolioService portfolioService; @@ -83,11 +106,37 @@ public class BinderMetadataEditController extends FormBasicController { summaryEl = uifactory.addTextAreaElement("summary", "summary", 4096, 4, 60, false, summary, formLayout); summaryEl.setPlaceholderKey("summary.placeholder", null); + fileUpload = uifactory.addFileElement(getWindowControl(), "file", "fileupload",formLayout); + + fileUpload.setPreview(ureq.getUserSession(), true); + fileUpload.addActionListener(FormEvent.ONCHANGE); + fileUpload.setDeleteEnabled(true); + fileUpload.setHelpText("background img of binder"); + //fileUpload.setExampleKey("advanced_form.file", null); + fileUpload.limitToMimeType(imageMimeTypes, null, null); + fileUpload.setMaxUploadSizeKB(picUploadlimitKB, null, null); + categoriesEl = uifactory.addTextBoxListElement("categories", "categories", "categories.hint", categories, formLayout, getTranslator()); categoriesEl.setElementCssClass("o_sel_ep_tagsinput"); //Map<String, String> allUsersTags = ePFMgr.getUsersMostUsedTags(getIdentity(), 50); //categoriesEl.setAutoCompleteContent(allUsersTags); categoriesEl.setAllowDuplicates(false); + + //owners + StringBuilder sb = new StringBuilder(); + if(binder == null || binder.getKey() == null) { + sb.append(userManager.getUserDisplayName(getIdentity())); + } else { + List<Identity> owners = portfolioService.getMembers(binder, GroupRoles.owner.name()); + for(Identity owner:owners) { + if(sb.length() > 0) sb.append(", "); + sb.append(userManager.getUserDisplayName(owner)); + } + } + uifactory.addStaticTextElement("Author", "author", sb.toString(), formLayout); + uifactory.addStaticTextElement("Access", "access", "[private]", formLayout); + uifactory.addStaticTextElement("Template", "template", "[none]", formLayout); + uifactory.addStaticTextElement("Portfoliotask", "portfoliotask", "[none]", formLayout); FormLayoutContainer buttonsCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); buttonsCont.setRootForm(mainForm); @@ -129,4 +178,17 @@ public class BinderMetadataEditController extends FormBasicController { protected void formCancelled(UserRequest ureq) { fireEvent(ureq, Event.CANCELLED_EVENT); } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + super.formInnerEvent(ureq, source, event); + if (fileUpload == source) { + if (event instanceof FileElementEvent) { + String cmd = event.getCommand(); + if (FileElementEvent.DELETE.equals(cmd)) { + fileUpload.reset(); + } + } + } + } } diff --git a/src/main/java/org/olat/modules/portfolio/ui/PageMetadataEditController.java b/src/main/java/org/olat/modules/portfolio/ui/PageMetadataEditController.java index 67cf66d76be..dbb11ea45d0 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/PageMetadataEditController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/PageMetadataEditController.java @@ -19,14 +19,20 @@ */ package org.olat.modules.portfolio.ui; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.FileElement; import org.olat.core.gui.components.form.flexible.elements.SingleSelection; import org.olat.core.gui.components.form.flexible.elements.TextElement; 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.components.form.flexible.impl.elements.FileElementEvent; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; @@ -47,9 +53,20 @@ import org.springframework.beans.factory.annotation.Autowired; */ public class PageMetadataEditController extends FormBasicController { + private static final Set<String> imageMimeTypes = new HashSet<String>(); + static { + imageMimeTypes.add("image/gif"); + imageMimeTypes.add("image/jpg"); + imageMimeTypes.add("image/jpeg"); + imageMimeTypes.add("image/png"); + } + private TextElement titleEl, summaryEl; private SingleSelection bindersEl, sectionsEl; + private FileElement fileUpload; + private static final int picUploadlimitKB = 5120; + private Page page; private Binder currentBinder; private SectionRef currentSection; @@ -89,6 +106,17 @@ public class PageMetadataEditController extends FormBasicController { summaryEl = uifactory.addTextAreaElement("summary", "page.summary", 4096, 4, 60, false, summary, formLayout); summaryEl.setPlaceholderKey("summary.placeholder", null); + fileUpload = uifactory.addFileElement(getWindowControl(), "file", "fileupload",formLayout); + + fileUpload.setPreview(ureq.getUserSession(), true); + fileUpload.addActionListener(FormEvent.ONCHANGE); + fileUpload.setDeleteEnabled(true); + fileUpload.setHelpText("background img of binder"); + //fileUpload.setExampleKey("advanced_form.file", null); + fileUpload.limitToMimeType(imageMimeTypes, null, null); + fileUpload.setMaxUploadSizeKB(picUploadlimitKB, null, null); + + //list of binder if(chooseBinder) { @@ -161,4 +189,17 @@ public class PageMetadataEditController extends FormBasicController { protected void formCancelled(UserRequest ureq) { fireEvent(ureq, Event.CANCELLED_EVENT); } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + super.formInnerEvent(ureq, source, event); + if (fileUpload == source) { + if (event instanceof FileElementEvent) { + String cmd = event.getCommand(); + if (FileElementEvent.DELETE.equals(cmd)) { + fileUpload.reset(); + } + } + } + } } 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 7701f97de3e..74b0872d9af 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 @@ -1,4 +1,10 @@ #Tue Apr 10 10:28:36 CEST 2012 +teaser=Teaser Image +author=Author +access=Access +template=Template +portfoliotask=Portfolio Task + add.html=HTML begin.date=Begin binder.by=by {0} @@ -38,6 +44,7 @@ portfolio.root.breadcrump=Portfolio publish.status.title=Publish status of binder "{0}" section.delete=Delete section section.edit=Edit section +fileupload=Teaser Image summary=Summary summary.placeholder=Short summary about the content table.of.contents=Table of contents {0} -- GitLab