[OPENMEETINGS-1030] more work of files section: files drop
git-svn-id: https://svn.apache.org/repos/asf/openmeetings/application/trunk@1753586 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
index 7d55d0d..8dab317 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
@@ -123,7 +123,9 @@
@Override
public void resultReceived(IPendingServiceCall arg0) {
- // TODO Auto-generated method stub
+ if (log.isTraceEnabled()) {
+ log.trace("resultReceived:: {}", arg0);
+ }
}
@Override
@@ -1367,12 +1369,22 @@
String fuid = UUID.randomUUID().toString();
Client client = sessionManager.getClientByPublicSIDAnyServer(uid).getRcl();
+ String type = "n/a";
+ switch (fi.getType()) {
+ case Image:
+ type = "image";
+ break;
+ case Presentation:
+ type = "swf";
+ break;
+ default:
+ }
sendToWhiteboard(client, Arrays.asList(
"whiteboard"
, new Date()
, "draw"
, Arrays.asList(
- "swf" // 0
+ type // 0
, url // urlname
, "--dummy--" // baseurl
, fi.getHash() // fileName //3
@@ -1661,8 +1673,7 @@
if (filter(conn)) {
continue;
}
- Object[] msg = newMessage instanceof Object[] ? (Object[])newMessage : new Object[] { newMessage };
- ((IServiceCapableConnection) conn).invoke(remoteMethodName, msg, ScopeApplicationAdapter.this);
+ ((IServiceCapableConnection) conn).invoke(remoteMethodName, new Object[] { newMessage }, ScopeApplicationAdapter.this);
count++;
}
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index ae0e823..ae0bedf 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -55,7 +55,7 @@
import org.apache.openmeetings.web.pages.SwfPage;
import org.apache.openmeetings.web.pages.auth.SignInPage;
import org.apache.openmeetings.web.pages.install.InstallWizardPage;
-import org.apache.openmeetings.web.room.RoomSwfResourceReference;
+import org.apache.openmeetings.web.room.RoomResourceReference;
import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.StartWidgetDescriptor;
@@ -150,7 +150,7 @@
mountResource("/recordings/mp4/${id}", new Mp4RecordingResourceReference());
mountResource("/recordings/ogg/${id}", new OggRecordingResourceReference());
mountResource("/recordings/jpg/${id}", new JpgRecordingResourceReference()); //should be in sync with VideoPlayer
- mountResource("/room/swf/${id}", new RoomSwfResourceReference());
+ mountResource("/room/file/${id}", new RoomResourceReference());
mountResource("/profile/${id}", new ProfileImageResourceReference());
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomFileResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomFileResourceReference.java
index 8dcf2d1..903d241 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomFileResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomFileResourceReference.java
@@ -31,7 +31,7 @@
}
@Override
- protected String getMimeType() {
+ protected String getMimeType(FileExplorerItem r) {
return "application/octet-stream";
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPdfResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPdfResourceReference.java
index 7eb0e02..113c98a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPdfResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPdfResourceReference.java
@@ -30,7 +30,7 @@
}
@Override
- protected String getMimeType() {
+ protected String getMimeType(FileExplorerItem r) {
return "application/pdf";
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
index 880ae36..70deed7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
@@ -33,14 +33,35 @@
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.string.Strings;
-public abstract class RoomResourceReference extends FileItemResourceReference<FileExplorerItem> {
+public class RoomResourceReference extends FileItemResourceReference<FileExplorerItem> {
private static final long serialVersionUID = 1L;
+ public static final String DEFAULT_NAME = "wb-room-file";
+
+ public RoomResourceReference() {
+ super(DEFAULT_NAME);
+ }
public RoomResourceReference(String name) {
super(name);
}
@Override
+ protected String getMimeType(FileExplorerItem r) {
+ String mime = null;
+ switch (r.getType()) {
+ case Image:
+ mime = "image/jpeg";
+ break;
+ case Presentation:
+ mime = "application/x-shockwave-flash";
+ break;
+ default:
+ throw new RuntimeException("Not supported");
+ }
+ return mime;
+ }
+
+ @Override
protected FileExplorerItem getFileItem(Attributes attributes) {
PageParameters params = attributes.getParameters();
StringValue _id = params.get("id");
@@ -53,14 +74,38 @@
}
WebSession ws = WebSession.get();
if (id != null && ws.isSignedIn() && !Strings.isEmpty(uid) && getOnlineClient(uid) != null) {
- //TODO ADDITIONALLY CHECK Rights !! and room !!
+ //FIXME TODO ADDITIONALLY CHECK Rights !! and room !!
return getBean(FileExplorerItemDao.class).get(id);
}
return null;
}
protected File getFile(FileExplorerItem r, String ext) {
- File d = new File(OmFileHelper.getUploadFilesDir(), r.getHash());
- return new File(d, String.format("%s.%s", r.getHash(), ext));
+ File result = null;
+ switch (r.getType()) {
+ case Image: {
+ result = new File(OmFileHelper.getUploadFilesDir(), String.format("%s.%s", r.getHash(), ext == null ? "jpg" : ext));
+ }
+ break;
+ case Presentation: {
+ File d = new File(OmFileHelper.getUploadFilesDir(), r.getHash());
+ result = new File(d, String.format("%s.%s", r.getHash(), ext == null ? "swf" : ext));
+ }
+ break;
+ default:
+ throw new RuntimeException("Not supported");
+ }
+ return result;
+ }
+
+ @Override
+ protected File getFile(FileExplorerItem r) {
+ return getFile(r, null);
+ }
+
+ @Override
+ protected String getFileName(FileExplorerItem r) {
+ // TODO Auto-generated method stub
+ return null;
}
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomSwfResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomSwfResourceReference.java
deleted file mode 100644
index dd631ec..0000000
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomSwfResourceReference.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") + you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.openmeetings.web.room;
-
-import java.io.File;
-
-import org.apache.openmeetings.db.entity.file.FileExplorerItem;
-
-public class RoomSwfResourceReference extends RoomResourceReference {
- private static final long serialVersionUID = 1L;
-
- public RoomSwfResourceReference() {
- super("swf-room-file");
- }
-
- @Override
- protected String getMimeType() {
- return "application/x-shockwave-flash";
- }
-
- @Override
- protected String getFileName(FileExplorerItem r) {
- return r.getName();
- }
-
- @Override
- protected File getFile(FileExplorerItem r) {
- return getFile(r, "swf");
- }
-}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index 39ab2b7..7566d01 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -264,8 +264,8 @@
boolean notExternalUser = u.getType() != User.Type.external && u.getType() != User.Type.contact;
exitMenuItem.setEnabled(notExternalUser);//TODO check this
filesMenu.setEnabled(room.getSidebar().isShowFiles());
- actionsMenu.setEnabled(!r.isHidden(RoomElement.ActionMenu) && r.isAllowUserQuestions());
boolean moder = room.getClient().hasRight(Room.Right.moderator);
+ actionsMenu.setEnabled((moder &&!r.isHidden(RoomElement.ActionMenu)) || (!moder && r.isAllowUserQuestions()));
inviteMenuItem.setEnabled(notExternalUser && moder);
//TODO add check "sharing started"
boolean shareVisible = room.screenShareAllowed();
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
index 67ba4d0..d397ff9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
@@ -46,6 +46,13 @@
}
@Override
+ public String getMimeType(Recording r) {
+ return getMimeType();
+ }
+
+ public abstract String getMimeType();
+
+ @Override
protected Recording getFileItem(Attributes attributes) {
PageParameters params = attributes.getParameters();
StringValue _id = params.get("id");
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java
index 439179b..ad3ab9f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java
@@ -46,15 +46,16 @@
return new FileSystemResource() {
private static final long serialVersionUID = 1L;
private File file;
+ private T r;
@Override
protected String getMimeType() throws IOException {
- return FileItemResourceReference.this.getMimeType();
+ return FileItemResourceReference.this.getMimeType(r);
}
@Override
protected ResourceResponse newResourceResponse(Attributes attributes) {
- T r = getFileItem(attributes);
+ r = getFileItem(attributes);
if (r != null) {
file = getFile(r);
ResourceResponse rr = createResourceResponse(file.toPath());
@@ -70,7 +71,7 @@
};
}
- protected abstract String getMimeType();
+ protected abstract String getMimeType(T r);
protected abstract String getFileName(T r);
protected abstract File getFile(T r);
protected abstract T getFileItem(Attributes attributes);
diff --git a/openmeetings-web/src/main/webapp/css/room.css b/openmeetings-web/src/main/webapp/css/room.css
index efdef4d..72172d4 100644
--- a/openmeetings-web/src/main/webapp/css/room.css
+++ b/openmeetings-web/src/main/webapp/css/room.css
@@ -34,8 +34,12 @@
.ui-icon.status-mod {
background-image: url(images/status-mod.png);
}
-.top.room.menu.exit {
- padding-left: 30px;
+.room.menu .ui-menu .ui-menu-item {
+ padding-left: 5px;
+ padding-right: 0;
+}
+.room.menu .top.room.menu.exit {
+ padding-left: 0;
}
.room.menu.right {
position: absolute;