You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2021/09/20 04:15:34 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2668] upload to various 'roots' should work

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 63dd35e  [OPENMEETINGS-2668] upload to various 'roots' should work
     new ca98a7a  Merge branch 'master' of github.com:apache/openmeetings
63dd35e is described below

commit 63dd35eee32cfe60db605793bb8ddd374e8190a4
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Mon Sep 20 11:14:42 2021 +0700

    [OPENMEETINGS-2668] upload to various 'roots' should work
---
 .../sidebar/RoomFileUploadResourceReference.java   | 24 ++++++++++++----
 .../web/room/sidebar/UploadDialog.html             |  5 +++-
 .../web/room/sidebar/UploadDialog.java             | 32 ++++++++++++++--------
 3 files changed, 43 insertions(+), 18 deletions(-)

diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFileUploadResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFileUploadResourceReference.java
index 7c9278f..3a8af9f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFileUploadResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFileUploadResourceReference.java
@@ -71,7 +71,10 @@ public class RoomFileUploadResourceReference extends ResourceReference {
 	private static final String PARAM_TO_WB_NAME = "room-upload-to-wb";
 	private static final String PARAM_CLEAN_NAME = "room-upload-clean";
 	private static final String PARAM_SID_NAME = "room-upload-sid";
-	private static final String PARAM_LAST_SELECTED_NAME = "room-upload-last-selected";
+	public static final String PARAM_LAST_SELECTED_ID = "room-upload-last-selected-id";
+	public static final String PARAM_LAST_SELECTED_ROOM = "room-upload-last-selected-room";
+	public static final String PARAM_LAST_SELECTED_OWNER = "room-upload-last-selected-pwner";
+	public static final String PARAM_LAST_SELECTED_GROUP = "room-upload-last-selected-group";
 	private enum Status {
 		SUCCESS
 		, PROGRESS
@@ -114,9 +117,12 @@ public class RoomFileUploadResourceReference extends ResourceReference {
 
 						final boolean toWb = multiPartRequest.getPostParameters().getParameterValue(PARAM_TO_WB_NAME).toBoolean(false);
 						final boolean clean = multiPartRequest.getPostParameters().getParameterValue(PARAM_CLEAN_NAME).toBoolean(false);
-						final long lastSelected = multiPartRequest.getPostParameters().getParameterValue(PARAM_LAST_SELECTED_NAME).toLong(-1L);
+						final long lastSelectedId = multiPartRequest.getPostParameters().getParameterValue(PARAM_LAST_SELECTED_ID).toLong(-1L);
+						final long lastSelectedRoom = multiPartRequest.getPostParameters().getParameterValue(PARAM_LAST_SELECTED_ROOM).toLong(-1L);
+						final long lastSelectedOwner = multiPartRequest.getPostParameters().getParameterValue(PARAM_LAST_SELECTED_OWNER).toLong(-1L);
+						final long lastSelectedGroup = multiPartRequest.getPostParameters().getParameterValue(PARAM_LAST_SELECTED_GROUP).toLong(-1L);
 						final String uuid = randomUUID().toString();
-						startRunnable(() -> convertAll(c, fileItems, uuid, toWb, clean, lastSelected));
+						startRunnable(() -> convertAll(c, fileItems, uuid, toWb, clean, lastSelectedId, lastSelectedRoom, lastSelectedOwner, lastSelectedGroup));
 
 						prepareResponse(response, Status.SUCCESS, uuid, Application.getString("54", langId));
 					} else {
@@ -157,8 +163,8 @@ public class RoomFileUploadResourceReference extends ResourceReference {
 		return !r.isHidden(RoomElement.FILES) && c.hasRight(Right.PRESENTER);
 	}
 
-	private void convertAll(Client c, List<FileItem> files, String uuid, boolean toWb, boolean clean, long lastSelected) {
-		final BaseFileItem parent = fileDao.get(lastSelected);
+	private void convertAll(Client c, List<FileItem> files, String uuid, boolean toWb, boolean clean, long lastSelectedId, long lastSelectedRoom, long lastSelectedOwner, long lastSelectedGroup) {
+		final BaseFileItem parent = fileDao.get(lastSelectedId);
 		final long langId = getLangId(c);
 		final long totalSize = files.stream().mapToLong(FileItem::getSize).sum();
 		final AtomicInteger progress = new AtomicInteger(0);
@@ -170,7 +176,13 @@ public class RoomFileUploadResourceReference extends ResourceReference {
 				f.setSize(size);
 				f.setName(curItem.getName());
 				if (parent == null || BaseFileItem.Type.RECORDING == parent.getType()) {
-					f.setOwnerId(getUserId());
+					if (lastSelectedGroup > -1) {
+						f.setGroupId(lastSelectedGroup);
+					} else if (lastSelectedRoom > -1) {
+						f.setRoomId(lastSelectedRoom);
+					} else {
+						f.setOwnerId(lastSelectedOwner > -1 ? lastSelectedOwner : getUserId());
+					}
 				} else {
 					f.setRoomId(parent.getRoomId());
 					f.setOwnerId(parent.getOwnerId());
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html
index 1600d66..2333d66 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.html
@@ -38,7 +38,10 @@
 			</div>
 		</div>
 		<input wicket:id="sid" name="room-upload-sid" type="hidden"/>
-		<input wicket:id="lastSelected" name="room-upload-last-selected" type="hidden" value=""/>
+		<input wicket:id="lastSelectedId" name="room-upload-last-selected-id" type="hidden" value=""/>
+		<input wicket:id="lastSelectedRoom" name="room-upload-last-selected-room" type="hidden" value=""/>
+		<input wicket:id="lastSelectedOwner" name="room-upload-last-selected-owner" type="hidden" value=""/>
+		<input wicket:id="lastSelectedGroup" name="room-upload-last-selected-group" type="hidden" value=""/>
 	</form>
 	<div class="progress d-none">
 		<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">0%</div>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
index 270e763..c1b6510 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java
@@ -19,9 +19,12 @@
 package org.apache.openmeetings.web.room.sidebar;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.getMaxUploadSize;
+import static org.apache.openmeetings.web.room.sidebar.RoomFileUploadResourceReference.PARAM_LAST_SELECTED_GROUP;
+import static org.apache.openmeetings.web.room.sidebar.RoomFileUploadResourceReference.PARAM_LAST_SELECTED_ID;
+import static org.apache.openmeetings.web.room.sidebar.RoomFileUploadResourceReference.PARAM_LAST_SELECTED_OWNER;
+import static org.apache.openmeetings.web.room.sidebar.RoomFileUploadResourceReference.PARAM_LAST_SELECTED_ROOM;
 
-import org.apache.openmeetings.core.data.file.FileProcessor;
-import org.apache.openmeetings.db.dao.file.FileItemLogDao;
+import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.OmModalCloseButton;
 import org.apache.openmeetings.web.room.RoomPanel;
@@ -35,7 +38,6 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.lang.Bytes;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
@@ -45,12 +47,10 @@ public class UploadDialog extends Modal<String> {
 	private final WebMarkupContainer form = new WebMarkupContainer("form");
 	private final RoomFilePanel roomFiles;
 	private final RoomPanel room;
-	private final WebMarkupContainer lastSelected = new WebMarkupContainer("lastSelected");
-
-	@SpringBean
-	private FileProcessor processor;
-	@SpringBean
-	private FileItemLogDao fileLogDao;
+	private final WebMarkupContainer lastSelectedId = new WebMarkupContainer("lastSelectedId");
+	private final WebMarkupContainer lastSelectedRoom = new WebMarkupContainer("lastSelectedRoom"); // required for "fake" root
+	private final WebMarkupContainer lastSelectedOwner = new WebMarkupContainer("lastSelectedOwner"); // required for "fake" root
+	private final WebMarkupContainer lastSelectedGroup = new WebMarkupContainer("lastSelectedGroup"); // required for "fake" root
 
 	public UploadDialog(String id, RoomPanel room, RoomFilePanel roomFiles) {
 		super(id);
@@ -72,7 +72,10 @@ public class UploadDialog extends Modal<String> {
 				.setOutputMarkupId(true)
 				.setOutputMarkupPlaceholderTag(true));
 		form.add(new WebMarkupContainer("sid").add(AttributeModifier.append("value", room.getClient().getSid())).setMarkupId("room-upload-sid").setOutputMarkupId(true));
-		form.add(lastSelected.setMarkupId("room-upload-last-selected").setOutputMarkupId(true));
+		form.add(lastSelectedId.setMarkupId(PARAM_LAST_SELECTED_ID).setOutputMarkupId(true));
+		form.add(lastSelectedRoom.setMarkupId(PARAM_LAST_SELECTED_ROOM).setOutputMarkupId(true));
+		form.add(lastSelectedOwner.setMarkupId(PARAM_LAST_SELECTED_OWNER).setOutputMarkupId(true));
+		form.add(lastSelectedGroup.setMarkupId(PARAM_LAST_SELECTED_GROUP).setOutputMarkupId(true));
 		add(BootstrapFileUploadBehavior.INSTANCE);
 		addButton(OmModalCloseButton.of("85"));
 
@@ -81,7 +84,14 @@ public class UploadDialog extends Modal<String> {
 
 	@Override
 	public Modal<String> show(IPartialPageRequestHandler handler) {
-		lastSelected.add(AttributeModifier.replace("value", roomFiles.getLastSelected().getId()));
+		BaseFileItem last = roomFiles.getLastSelected();
+		if (last.getId() == null) {
+			lastSelectedRoom.add(AttributeModifier.replace("value", last.getRoomId()));
+			lastSelectedOwner.add(AttributeModifier.replace("value", last.getOwnerId()));
+			lastSelectedGroup.add(AttributeModifier.replace("value", last.getGroupId()));
+		} else {
+			lastSelectedId.add(AttributeModifier.replace("value", last.getId()));
+		}
 		handler.add(form.setVisible(true));
 		handler.appendJavaScript("Upload.bindUpload();");
 		return super.show(handler);