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 4494c3e4e [OPENMEETINGS-2840] hidden fields are removed
4494c3e4e is described below

commit 4494c3e4e9bd8d38356f8807a4a29d3ba960a7cb
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Tue Sep 15 21:20:04 2026 +0700

    [OPENMEETINGS-2840] hidden fields are removed
---
 .../openmeetings/db/entity/basic/Client.java       | 17 +++++
 .../openmeetings/web/common/upload/UploadForm.java |  2 +-
 .../apache/openmeetings/web/room/RoomPanel.java    |  2 +-
 .../web/room/activities/ActivitiesPanel.java       | 40 +++++++-----
 .../web/room/sidebar/RoomFilePanel.java            | 10 +--
 .../sidebar/RoomFileUploadResourceReference.java   | 13 ++--
 .../openmeetings/web/room/sidebar/RoomSidebar.java | 74 ++++++++++++----------
 .../web/room/sidebar/RoomUploadForm.html           |  4 --
 .../web/room/sidebar/RoomUploadForm.java           | 35 ++++------
 .../web/room/sidebar/UploadDialog.java             |  6 +-
 10 files changed, 109 insertions(+), 94 deletions(-)

diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index 356f9b751..58cd9af06 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -22,6 +22,7 @@ import static java.util.UUID.randomUUID;
 import static org.apache.openmeetings.util.OmFileHelper.SIP_USER_ID;
 
 import java.util.Date;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -67,6 +68,7 @@ public class Client implements IDataProviderEntity, IWsClient 
{
        private String remoteAddress;
        private final Set<Right> rights = ConcurrentHashMap.newKeySet();
        private final Map<String, StreamDesc> streams = new 
ConcurrentHashMap<>();
+       private final Map<String, Object> props = new HashMap<>();
        private final Date connectedSince;
        private int cam = -1;
        private int mic = -1;
@@ -133,6 +135,7 @@ public class Client implements IDataProviderEntity, 
IWsClient {
        public void clear() {
                rights.clear();
                streams.clear();
+               props.clear();
        }
 
        public boolean hasRight(Right right) {
@@ -397,12 +400,26 @@ public class Client implements IDataProviderEntity, 
IWsClient {
                                        }
                                ).forEach(sd -> streams.put(sd.getUid(), sd));
                }
+               synchronized (props) {
+                       Map<String, Object> pp = new HashMap<>(c.props);
+                       props.clear();
+                       props.putAll(pp);
+               }
                cam = c.cam;
                mic = c.mic;
                width = c.width;
                height = c.height;
        }
 
+       public Map<String, Object> getCustomProps() {
+               return props;
+       }
+
+       public long getPropInt64(String name, long def) {
+               Object val = props.get(name);
+               return val instanceof Long l ? l : def;
+       }
+
        @Override
        public int hashCode() {
                final int prime = 31;
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadForm.java
index 738441b05..8db003e68 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadForm.java
@@ -83,7 +83,7 @@ public abstract class UploadForm extends Panel {
 
        public void show(IPartialPageRequestHandler handler) {
                handler.add(form.setVisible(true));
-               handler.appendJavaScript("Upload.bindUpload(\"" + 
uploadLocation() + "\", "+ extraBindFunc() + ", " + onCompleteFunc() + ");");
+               handler.appendJavaScript("Upload.bindUpload(\"" + 
uploadLocation() + "\", " + extraBindFunc() + ", " + onCompleteFunc() + ");");
        }
 
        @Override
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index fd823ab5a..1436d30eb 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -328,7 +328,7 @@ public class RoomPanel extends BasePanel {
                        room.add(wbArea.add(wb));
                }
                room.add(roomEnter);
-               room.add(sidebar = new RoomSidebar("sidebar", this));
+               room.add(sidebar = new RoomSidebar("sidebar"));
                add(roomClosed = new RedirectMessageDialog("room-closed", 
"1098", r.isClosed(), r.getRedirectURL()));
                if (r.isClosed()) {
                        room.setVisible(false);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
index a0f1a65cd..b0bb3d526 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
@@ -73,12 +73,12 @@ public class ActivitiesPanel extends Panel {
        }
        private static final FastDateFormat df = 
FastDateFormat.getInstance("HH:mm:ss");
        private final Map<String, Activity> activities = new LinkedHashMap<>();
-       private final RoomPanel room;
        private final AbstractDefaultAjaxBehavior actionBehavior = new 
AbstractDefaultAjaxBehavior() {
                private static final long serialVersionUID = 1L;
 
                private TextRoomMessage getRemoveMsg(String id) {
-                       return new TextRoomMessage(room.getRoom().getId(), 
room.getClient(), RoomMessage.Type.ACTIVITY_REMOVE, id);
+                       final RoomPanel rp = getRoomPanel();
+                       return new TextRoomMessage(rp.getRoom().getId(), 
rp.getClient(), RoomMessage.Type.ACTIVITY_REMOVE, id);
                }
 
                @Override
@@ -87,11 +87,12 @@ public class ActivitiesPanel extends Panel {
                                return;
                        }
                        try {
+                               final RoomPanel rp = getRoomPanel();
                                String id = 
getRequest().getRequestParameters().getParameterValue(PARAM_ID).toString();
                                long roomId = 
getRequest().getRequestParameters().getParameterValue(PARAM_ROOM_ID).toLong();
                                Action act = 
Action.of(getRequest().getRequestParameters().getParameterValue(ACTION));
                                Activity a = activities.get(id);
-                               if (a == null || 
!room.getRoom().getId().equals(roomId)) {
+                               if (a == null || 
!rp.getRoom().getId().equals(roomId)) {
                                        log.error("It seems like we are being 
hacked!!!!");
                                        return;
                                }
@@ -100,45 +101,45 @@ public class ActivitiesPanel extends Panel {
                                                remove(target, id);
                                                break;
                                        case DECLINE:
-                                               if 
(room.getClient().hasRight(Right.MODERATOR)) {
+                                               if 
(rp.getClient().hasRight(Right.MODERATOR)) {
                                                        
sendRoom(getRemoveMsg(id));
                                                }
                                                break;
                                        case ACCEPT:
                                                Client client = 
cm.get(a.getUid());
-                                               if 
(room.getClient().hasRight(Right.MODERATOR) && client != null && 
client.getRoom() != null && roomId == client.getRoom().getId()) {
+                                               if 
(rp.getClient().hasRight(Right.MODERATOR) && client != null && client.getRoom() 
!= null && roomId == client.getRoom().getId()) {
                                                        switch (a.getType()) {
                                                                case 
REQ_RIGHT_MODERATOR:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.MODERATOR);
+                                                                       
rp.allowRight(client, Right.MODERATOR);
                                                                        break;
                                                                case 
REQ_RIGHT_AV:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.AUDIO, Right.VIDEO);
+                                                                       
rp.allowRight(client, Right.AUDIO, Right.VIDEO);
                                                                        break;
                                                                case 
REQ_RIGHT_PRESENTER:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.PRESENTER);
+                                                                       
rp.allowRight(client, Right.PRESENTER);
                                                                        break;
                                                                case 
REQ_RIGHT_WB:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.WHITEBOARD);
+                                                                       
rp.allowRight(client, Right.WHITEBOARD);
                                                                        break;
                                                                case 
REQ_RIGHT_SHARE:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.SHARE);
+                                                                       
rp.allowRight(client, Right.SHARE);
                                                                        break;
                                                                case 
REQ_RIGHT_REMOTE:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.REMOTE_CONTROL);
+                                                                       
rp.allowRight(client, Right.REMOTE_CONTROL);
                                                                        break;
                                                                case 
REQ_RIGHT_A:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.AUDIO);
+                                                                       
rp.allowRight(client, Right.AUDIO);
                                                                        break;
                                                                case 
REQ_RIGHT_MUTE_OTHERS:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.MUTE_OTHERS);
+                                                                       
rp.allowRight(client, Right.MUTE_OTHERS);
                                                                        break;
                                                                default:
                                                                        break;
@@ -163,15 +164,19 @@ public class ActivitiesPanel extends Panel {
 
        public ActivitiesPanel(String id, RoomPanel room) {
                super(id);
-               this.room = room;
                setVisible(!room.getRoom().isHidden(RoomElement.ACTIVITIES));
                setOutputMarkupPlaceholderTag(true);
                setMarkupId(id);
                add(actionBehavior);
        }
 
+       RoomPanel getRoomPanel() {
+               return findParent(RoomPanel.class);
+       }
+
        private boolean shouldSkip(final boolean self, final Activity a) {
-               return !self && a.getType().isAction() && 
!room.getClient().hasRight(Right.MODERATOR);
+               final RoomPanel rp = getRoomPanel();
+               return !self && a.getType().isAction() && 
!rp.getClient().hasRight(Right.MODERATOR);
        }
 
        public void add(Activity a, IPartialPageRequestHandler handler) {
@@ -237,11 +242,12 @@ public class ActivitiesPanel extends Panel {
                        .put("action", a.getType().isAction())
                        .put("find", false);
 
+               final RoomPanel rp = getRoomPanel();
                switch (a.getType()) {
                        case REQ_RIGHT_MODERATOR, REQ_RIGHT_PRESENTER, 
REQ_RIGHT_WB, REQ_RIGHT_SHARE, REQ_RIGHT_REMOTE
                                        , REQ_RIGHT_A, REQ_RIGHT_AV, 
REQ_RIGHT_MUTE_OTHERS:
-                               aobj.put("accept", 
room.getClient().hasRight(Right.MODERATOR));
-                               aobj.put("decline", 
room.getClient().hasRight(Right.MODERATOR));
+                               aobj.put("accept", 
rp.getClient().hasRight(Right.MODERATOR));
+                               aobj.put("decline", 
rp.getClient().hasRight(Right.MODERATOR));
                                break;
                        case REQ_RIGHT_HAVE_QUESTION:
                                aobj.put("find", !self);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
index 18d69db87..a42751832 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
@@ -38,7 +38,6 @@ import jakarta.inject.Inject;
 
 public class RoomFilePanel extends FileTreePanel {
        private static final long serialVersionUID = 1L;
-       private final RoomPanel room;
 
        @Inject
        private FileItemDao fileDao;
@@ -47,14 +46,17 @@ public class RoomFilePanel extends FileTreePanel {
 
        public RoomFilePanel(String id, RoomPanel room, NameDialog addFolder) {
                super(id, room.getRoom().getId(), addFolder);
-               this.room = room;
+       }
+
+       RoomPanel getRoomPanel() {
+               return findParent(RoomPanel.class);
        }
 
        @Override
        public void updateSizes() {
                RecordingContainerData sizeData = 
recDao.getContainerData(getUserId());
                long userSize = fileDao.getOwnSize(getUserId());
-               long roomSize = fileDao.getRoomSize(room.getRoom().getId());
+               long roomSize = 
fileDao.getRoomSize(getRoomPanel().getRoom().getId());
                if (sizeData != null) {
                        userSize += sizeData.getUserHomeSize();
                        roomSize += sizeData.getPublicFileSize();
@@ -77,6 +79,6 @@ public class RoomFilePanel extends FileTreePanel {
        protected Component getUpload() {
                return super.getUpload()
                                .setVisible(true)
-                               .add(AjaxEventBehavior.onEvent(EVT_CLICK, 
target -> room.getSidebar().showUpload(target)));
+                               .add(AjaxEventBehavior.onEvent(EVT_CLICK, 
target -> getRoomPanel().getSidebar().showUpload(target)));
        }
 }
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 a77192847..ad5e93dd7 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
@@ -87,15 +87,16 @@ public class RoomFileUploadResourceReference extends 
UploadResourceReference {
        protected void processFiles(Client c, List<FileItem> fileItems, String 
uuid, MultipartServletWebRequest multiPartRequest) {
                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 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);
 
-               startRunnable(() -> convertAll(c, fileItems, uuid, toWb, clean, 
lastSelectedId, lastSelectedRoom, lastSelectedOwner, lastSelectedGroup));
+               startRunnable(() -> convertAll(c, fileItems, uuid, toWb, 
clean));
        }
 
-       private void convertAll(Client c, List<FileItem> files, String uuid, 
boolean toWb, boolean clean, long lastSelectedId, long lastSelectedRoom, long 
lastSelectedOwner, long lastSelectedGroup) {
+       private void convertAll(Client c, List<FileItem> files, String uuid, 
boolean toWb, boolean clean) {
+               final long lastSelectedId = 
c.getPropInt64(PARAM_LAST_SELECTED_ID, -1L);
+               final long lastSelectedRoom = 
c.getPropInt64(PARAM_LAST_SELECTED_ROOM, -1L);
+               final long lastSelectedOwner = 
c.getPropInt64(PARAM_LAST_SELECTED_OWNER, -1L);
+               final long lastSelectedGroup = 
c.getPropInt64(PARAM_LAST_SELECTED_GROUP, -1L);
+
                final BaseFileItem parent = fileDao.get(lastSelectedId);
                final long langId = getLangId(c);
                final long totalSize = 
files.stream().mapToLong(FileItem::getSize).sum();
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 4f8c573a7..64b910047 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -54,64 +54,69 @@ public class RoomSidebar extends Panel {
        public static final String PARAM_RIGHT = "right";
        public static final String PARAM_UID = "uid";
        public static final String PARAM_SETTINGS = "s";
-       private final RoomPanel room;
-       private UploadDialog upload;
-       private RoomFilePanel roomFiles;
-       private final WebMarkupContainer fileTab = new 
WebMarkupContainer("file-tab");
        private boolean showFiles;
-       private VideoSettings settings = new VideoSettings("settings");
-       private ActivitiesPanel activities;
 
        @Inject
        private ClientManager cm;
 
-       public RoomSidebar(String id, final RoomPanel room) {
+       public RoomSidebar(String id) {
                super(id);
-               this.room = room;
        }
 
        @Override
        protected void onInitialize() {
                super.onInitialize();
+               final RoomPanel room = getRoomPanel();
                final NameDialog addFolder = new NameDialog("addFolder", 
getString("712")) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
                        protected void onSubmit(AjaxRequestTarget target) {
-                               roomFiles.createFolder(target, 
getModelObject());
+                               getFilesPanel().createFolder(target, 
getModelObject());
                                super.onSubmit(target);
                        }
                };
-               roomFiles = new RoomFilePanel("tree", room, addFolder);
+               final RoomFilePanel roomFiles = new RoomFilePanel("tree", room, 
addFolder);
+               final WebMarkupContainer fileTab = new 
WebMarkupContainer("file-tab");
                add(fileTab.setVisible(!room.isInterview()), 
roomFiles.setVisible(!room.isInterview()));
 
-               add(addFolder, settings);
-               add(upload = new UploadDialog("upload", roomFiles));
+               add(addFolder, new VideoSettings("settings"));
+               add(new UploadDialog("upload"));
                updateShowFiles(null);
-               add(activities = new ActivitiesPanel("activities", room));
+               add(new ActivitiesPanel("activities", room));
        }
 
        private void updateShowFiles(IPartialPageRequestHandler handler) {
-               if (room.isInterview()) {
+               final RoomPanel rp = getRoomPanel();
+               if (rp.isInterview()) {
                        return;
                }
-               showFiles = !room.getRoom().isHidden(RoomElement.FILES) && 
room.getClient().hasRight(Right.PRESENTER);
-               roomFiles.setReadOnly(!showFiles, handler);
+               showFiles = !rp.getRoom().isHidden(RoomElement.FILES) && 
rp.getClient().hasRight(Right.PRESENTER);
+               getFilesPanel().setReadOnly(!showFiles, handler);
        }
 
        public void update(IPartialPageRequestHandler handler) {
-               if (room.getRoom() == null || room.getClient() == null) {
+               final RoomPanel rp = getRoomPanel();
+               if (rp.getRoom() == null || rp.getClient() == null) {
                        return;
                }
                updateShowFiles(handler);
        }
 
        public void updateFiles(IPartialPageRequestHandler handler) {
-               roomFiles.update(handler);
+               getFilesPanel().update(handler);
+       }
+
+       RoomPanel getRoomPanel() {
+               return findParent(RoomPanel.class);
        }
 
        public RoomFilePanel getFilesPanel() {
-               return roomFiles;
+               return (RoomFilePanel)get("tree");
+       }
+
+       ActivitiesPanel getActivities() {
+               return (ActivitiesPanel)get("activities");
        }
 
        public boolean isShowFiles() {
@@ -119,7 +124,7 @@ public class RoomSidebar extends Panel {
        }
 
        public void showUpload(IPartialPageRequestHandler handler) {
-               upload.show(handler);
+               ((UploadDialog)get("upload")).show(handler);
        }
 
        public void setFilesActive(IPartialPageRequestHandler handler) {
@@ -127,11 +132,11 @@ public class RoomSidebar extends Panel {
        }
 
        public void addActivity(Activity a, IPartialPageRequestHandler handler) 
{
-               activities.add(a, handler);
+               getActivities().add(a, handler);
        }
 
        public void removeActivity(String uid, IPartialPageRequestHandler 
handler) {
-               activities.remove(handler, uid);
+               getActivities().remove(handler, uid);
        }
 
        public void roomAction(IPartialPageRequestHandler handler, JSONObject 
o) {
@@ -140,12 +145,13 @@ public class RoomSidebar extends Panel {
                        if (Strings.isEmpty(uid)) {
                                return;
                        }
-                       Client self = room.getClient();
+                       final RoomPanel rp = getRoomPanel();
+                       Client self = rp.getClient();
                        Action a = Action.of(o.getString(PARAM_ACTION));
                        switch (a) {
                                case KICK:
                                        if (self.hasRight(Right.MODERATOR)) {
-                                               final Client kickedClient = 
cm.getInRoom(uid, room.getRoom().getId());
+                                               final Client kickedClient = 
cm.getInRoom(uid, rp.getRoom().getId());
                                                if (kickedClient == null) {
                                                        return;
                                                }
@@ -155,8 +161,8 @@ public class RoomSidebar extends Panel {
                                        }
                                        break;
                                case MUTE_OTHERS:
-                                       if (self.hasRight(Right.MUTE_OTHERS) && 
cm.getInRoom(uid, room.getRoom().getId()) != null) {
-                                               WebSocketHelper.sendRoom(new 
TextRoomMessage(room.getRoom().getId(), self, RoomMessage.Type.MUTE_OTHERS, 
uid));
+                                       if (self.hasRight(Right.MUTE_OTHERS) && 
cm.getInRoom(uid, rp.getRoom().getId()) != null) {
+                                               WebSocketHelper.sendRoom(new 
TextRoomMessage(rp.getRoom().getId(), self, RoomMessage.Type.MUTE_OTHERS, uid));
                                        }
                                        break;
                                case MUTE:
@@ -173,12 +179,13 @@ public class RoomSidebar extends Panel {
        }
 
        private void muteRoomAction(String uid, Client self, JSONObject o) {
-               Client c = cm.getInRoom(uid, room.getRoom().getId());
+               final RoomPanel rp = getRoomPanel();
+               Client c = cm.getInRoom(uid, rp.getRoom().getId());
                if (c == null || !c.has(Client.Activity.AUDIO)) {
                        return;
                }
                if (self.hasRight(Right.MODERATOR) || 
self.getUid().equals(c.getUid())) {
-                       WebSocketHelper.sendRoom(new 
TextRoomMessage(room.getRoom().getId(), self, RoomMessage.Type.MUTE
+                       WebSocketHelper.sendRoom(new 
TextRoomMessage(rp.getRoom().getId(), self, RoomMessage.Type.MUTE
                                        , new JSONObject()
                                                        .put("sid", 
self.getSid())
                                                        .put(PARAM_UID, uid)
@@ -187,22 +194,23 @@ public class RoomSidebar extends Panel {
        }
 
        private void toggleRight(IPartialPageRequestHandler handler, Client 
self, String uid, JSONObject o) {
+               final RoomPanel rp = getRoomPanel();
                try {
                        Right right = Right.valueOf(o.getString(PARAM_RIGHT));
                        if (self.hasRight(Right.MODERATOR)) {
-                               Client client = cm.getInRoom(uid, 
room.getRoom().getId());
+                               Client client = cm.getInRoom(uid, 
rp.getRoom().getId());
                                if (client == null) {
                                        return;
                                }
                                if (client.hasRight(right)) {
-                                       room.denyRight(client, right);
+                                       rp.denyRight(client, right);
                                } else if (Right.VIDEO == right) {
-                                       room.allowRight(client, Right.AUDIO, 
right);
+                                       rp.allowRight(client, Right.AUDIO, 
right);
                                } else {
-                                       room.allowRight(client, right);
+                                       rp.allowRight(client, right);
                                }
                        } else {
-                               room.requestRight(right, handler);
+                               rp.requestRight(right, handler);
                        }
                } catch (Exception e) {
                        log.error("Unexpected exception while toggle 'right'", 
e);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomUploadForm.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomUploadForm.html
index 756b55a84..c9014d27d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomUploadForm.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomUploadForm.html
@@ -30,9 +30,5 @@
                        <label for="room-upload-clean" 
class="form-check-label"><wicket:message key="62"/></label>
                </div>
        </div>
-       <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=""/>
 </wicket:extend>
 </html>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomUploadForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomUploadForm.java
index 8039f0427..9cea1b148 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomUploadForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomUploadForm.java
@@ -22,51 +22,38 @@ import static 
org.apache.openmeetings.web.room.sidebar.RoomFileUploadResourceRef
 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 static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_VALUE;
 
+import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.web.common.upload.UploadForm;
-import org.apache.wicket.AttributeModifier;
+import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
-import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 
 public class RoomUploadForm extends UploadForm {
        private static final long serialVersionUID = 1L;
-       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
-       private final RoomFilePanel roomFiles;
 
-       public RoomUploadForm(String id, RoomFilePanel roomFiles) {
+       public RoomUploadForm(String id) {
                super(id, "" + RequestCycle.get().urlFor(new 
RoomFileUploadResourceReference(), new PageParameters()));
-               this.roomFiles = roomFiles;
-       }
-
-       @Override
-       protected void onInitialize() {
-               super.onInitialize();
-               
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));
        }
 
        @Override
        public void show(IPartialPageRequestHandler handler) {
-               BaseFileItem last = roomFiles.getLastSelected();
+               final RoomPanel rp = findParent(RoomPanel.class);
+               final BaseFileItem last = 
rp.getSidebar().getFilesPanel().getLastSelected();
+               Client c = rp.getClient();
+               c.getCustomProps().clear();
                if (last.getId() == null) {
-                       
lastSelectedRoom.add(AttributeModifier.replace(ATTR_VALUE, last.getRoomId()));
-                       
lastSelectedOwner.add(AttributeModifier.replace(ATTR_VALUE, last.getOwnerId()));
-                       
lastSelectedGroup.add(AttributeModifier.replace(ATTR_VALUE, last.getGroupId()));
+                       c.getCustomProps().put(PARAM_LAST_SELECTED_ROOM, 
last.getRoomId());
+                       c.getCustomProps().put(PARAM_LAST_SELECTED_OWNER, 
last.getOwnerId());
+                       c.getCustomProps().put(PARAM_LAST_SELECTED_GROUP, 
last.getGroupId());
                } else {
-                       
lastSelectedId.add(AttributeModifier.replace(ATTR_VALUE, last.getId()));
+                       c.getCustomProps().put(PARAM_LAST_SELECTED_ID, 
last.getId());
                }
                super.show(handler);
        }
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 3d2d3ea88..55105c659 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
@@ -30,11 +30,9 @@ public class UploadDialog extends Modal<String> {
        private static final long serialVersionUID = 1L;
        static final String DIALOG_CLASS = "room-file-upload-dlg";
        private RoomUploadForm wsUpload;
-       private final RoomFilePanel roomFiles;
 
-       public UploadDialog(String id, RoomFilePanel roomFiles) {
+       public UploadDialog(String id) {
                super(id);
-               this.roomFiles = roomFiles;
        }
 
        @Override
@@ -43,7 +41,7 @@ public class UploadDialog extends Modal<String> {
                setCloseOnEscapeKey(false);
                setBackdrop(Backdrop.STATIC);
 
-               wsUpload = new RoomUploadForm("wsupload", roomFiles);
+               wsUpload = new RoomUploadForm("wsupload");
                add(wsUpload);
                addButton(OmModalCloseButton.of("85"));
 

Reply via email to