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