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 2017/02/21 03:30:20 UTC
svn commit: r1783824 - in /openmeetings/application:
branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/
branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/
branches/3.2.x/openmeeti...
Author: solomax
Date: Tue Feb 21 03:30:19 2017
New Revision: 1783824
URL: http://svn.apache.org/viewvc?rev=1783824&view=rev
Log:
[OPENMEETINGS-1558] room public drive is accessible to all users
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/room.css
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html Tue Feb 21 03:30:19 2017
@@ -38,10 +38,10 @@
</script>
<div class="file tree item drop area">
<div class="icons clear trash-toolbar" wicket:id="trash-toolbar" wicket:message="title:705">
- <span wicket:id="upload" class="add om-icon big align-left clickable" wicket:message="title:702"></span>
- <span wicket:id="create" class="folder-create big om-icon align-left clickable" wicket:message="title:703"></span>
+ <span wicket:id="upload" wicket:message="title:702"></span>
+ <span wicket:id="create" wicket:message="title:703"></span>
<span wicket:id="refresh" class="refresh om-icon big align-left clickable" wicket:message="title:704"></span>
- <span wicket:id="trash" class="trash om-icon big align-right clickable"></span>
+ <span wicket:id="trash"></span>
<div class="clear"></div>
</div>
<div wicket:id="tree-container" class="trees">
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java Tue Feb 21 03:30:19 2017
@@ -43,6 +43,7 @@ import org.apache.openmeetings.web.commo
import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
import org.apache.openmeetings.web.common.ConfirmableAjaxBorder.ConfirmableBorderDialog;
import org.apache.openmeetings.web.util.AjaxDownload;
+import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -66,6 +67,13 @@ import com.googlecode.wicket.jquery.ui.w
public abstract class FileTreePanel extends Panel {
private static final long serialVersionUID = 1L;
+ private final static String ALIGN_LEFT_CLASS = " align-left";
+ private final static String ALIGN_RIGHT_CLASS = " align-right";
+ private final static String BASE_CLASS = " om-icon big clickable";
+ private final static String UPLOAD_CLASS = "add" + BASE_CLASS + ALIGN_LEFT_CLASS;
+ private final static String CREATE_DIR_CLASS = "folder-create" + BASE_CLASS + ALIGN_LEFT_CLASS;
+ private final static String TRASH_CLASS = "trash" + BASE_CLASS + ALIGN_RIGHT_CLASS;
+ private final static String DISABLED_CLASS = " disabled";
final WebMarkupContainer trees = new WebMarkupContainer("tree-container");
private final WebMarkupContainer sizes = new WebMarkupContainer("sizes");
private FileItem lastSelected = null;
@@ -88,13 +96,24 @@ public abstract class FileTreePanel exte
private final ConfirmableBorderDialog trashConfirm;
private ConfirmableAjaxBorder trashBorder;
private final Long roomId;
+ private final OmTreeProvider tp;
+ private boolean readOnly = true;
+ private final Component createDir = new WebMarkupContainer("create").add(new AjaxEventBehavior("click") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ addFolder.open(target);
+ }
+ });
+ private final Component upload = new WebMarkupContainer("upload");
public FileTreePanel(String id, Long roomId, AddFolderDialog addFolder, ConfirmableBorderDialog trashConfirm) {
super(id);
this.roomId = roomId;
this.addFolder = addFolder;
this.trashConfirm = trashConfirm;
- OmTreeProvider tp = new OmTreeProvider(roomId);
+ tp = new OmTreeProvider(roomId);
select(tp.getRoot(), null, false, false);
form.add(tree = new FileItemTree("tree", this, tp));
form.add(download.setVisible(false).setOutputMarkupPlaceholderTag(true));
@@ -160,15 +179,8 @@ public abstract class FileTreePanel exte
}
};
form.add(trashToolbar);
- trashToolbar.add(getUpload("upload"));
- trashToolbar.add(new WebMarkupContainer("create").add(new AjaxEventBehavior("click") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- addFolder.open(target);
- }
- }));
+ trashToolbar.add(getUpload());
+ trashToolbar.add(createDir);
trashToolbar.add(new WebMarkupContainer("refresh").add(new AjaxEventBehavior("click") {
private static final long serialVersionUID = 1L;
@@ -182,7 +194,7 @@ public abstract class FileTreePanel exte
@Override
protected boolean isClickable() {
- return !selected.isEmpty();
+ return !readOnly && !selected.isEmpty();
}
@Override
@@ -200,14 +212,15 @@ public abstract class FileTreePanel exte
updateSizes();
form.add(sizes.add(new Label("homeSize", homeSize), new Label("publicSize", publicSize)).setOutputMarkupId(true));
form.add(errorsDialog);
+ setReadOnly(false, null);
}
protected String getContainment() {
return ".file.item.drop.area";
}
- protected Component getUpload(String id) {
- return new WebMarkupContainer(id).setVisible(false);
+ protected Component getUpload() {
+ return upload.setVisible(false);
}
private void deleteAll(AjaxRequestTarget target) {
@@ -229,6 +242,24 @@ public abstract class FileTreePanel exte
update(handler);
}
+ public void setReadOnly(boolean readOnly, IPartialPageRequestHandler handler) {
+ if (this.readOnly != readOnly) {
+ this.readOnly = readOnly;
+ tp.refreshRoots(!readOnly);
+ createDir.setEnabled(!readOnly);
+ createDir.add(AttributeModifier.replace("class", new StringBuilder(CREATE_DIR_CLASS).append(readOnly ? DISABLED_CLASS : "")));
+ upload.add(AttributeModifier.replace("class", new StringBuilder(UPLOAD_CLASS).append(readOnly ? DISABLED_CLASS : "")));
+ trashBorder.add(AttributeModifier.replace("class", new StringBuilder(TRASH_CLASS).append(readOnly ? DISABLED_CLASS : "")));
+ if (handler != null) {
+ handler.add(createDir, upload, trashBorder);
+ }
+ }
+ }
+
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
protected abstract void update(AjaxRequestTarget target, FileItem f);
public void createFolder(AjaxRequestTarget target, String name) {
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java Tue Feb 21 03:30:19 2017
@@ -78,7 +78,7 @@ public class FolderPanel extends Panel {
target.add(treePanel.trees);
}
} : new WebMarkupContainer("drop");
- if (r.getId() == null) {
+ if (r.getId() == null || treePanel.isReadOnly()) {
drag = new WebMarkupContainer("drag");
} else {
drag = new Draggable<FileItem>("drag", Model.of(r)) {
@@ -94,7 +94,7 @@ public class FolderPanel extends Panel {
}.setContainment(treePanel.getContainment());
drag.add(AttributeAppender.append("class", r instanceof Recording ? "recorditem" : "fileitem"));
}
- drag.add(r.getId() == null ? new Label("name", r.getName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getName())) {
+ drag.add(r.getId() == null || treePanel.isReadOnly() ? new Label("name", r.getName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getName())) {
private static final long serialVersionUID = 1L;
@Override
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java Tue Feb 21 03:30:19 2017
@@ -46,29 +46,40 @@ public class OmTreeProvider implements I
public static String RECORDINGS_GROUP = "recordings-group-%s";
public static String FILES_MY = "files-my";
public static String FILES_ROOM = "files-room";
+ private final Long roomId;
private final List<FileItem> roots = new ArrayList<>();
public OmTreeProvider(Long roomId) {
+ this.roomId = roomId;
+ refreshRoots(true);
+ }
+
+ public void refreshRoots(boolean all) {
+ roots.clear();
if (roomId != null) {
- roots.add(createFileRoot(null));
roots.add(createFileRoot(roomId));
}
- final String PUBLIC = Application.getString(861);
- {
- Recording r = createRecRoot(Application.getString(860), RECORDINGS_MY);
- r.setOwnerId(getUserId());
- roots.add(r);
- }
- {
- Recording r = createRecRoot(PUBLIC, RECORDINGS_PUBLIC);
- roots.add(r);
- }
- for (GroupUser gu : getBean(UserDao.class).get(getUserId()).getGroupUsers()) {
- Group g = gu.getGroup();
+ if (all) {
+ if (roomId != null) {
+ roots.add(createFileRoot(null));
+ }
+ final String PUBLIC = Application.getString(861);
+ {
+ Recording r = createRecRoot(Application.getString(860), RECORDINGS_MY);
+ r.setOwnerId(getUserId());
+ roots.add(r);
+ }
+ {
+ Recording r = createRecRoot(PUBLIC, RECORDINGS_PUBLIC);
+ roots.add(r);
+ }
+ for (GroupUser gu : getBean(UserDao.class).get(getUserId()).getGroupUsers()) {
+ Group g = gu.getGroup();
- Recording r = createRecRoot(String.format("%s (%s)", PUBLIC, g.getName()), String.format(RECORDINGS_GROUP, g.getId()));
- r.setGroupId(g.getId());
- roots.add(r);
+ Recording r = createRecRoot(String.format("%s (%s)", PUBLIC, g.getName()), String.format(RECORDINGS_GROUP, g.getId()));
+ r.setGroupId(g.getId());
+ roots.add(r);
+ }
}
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java Tue Feb 21 03:30:19 2017
@@ -67,17 +67,16 @@ public class RoomFilePanel extends FileT
}
@Override
- protected Component getUpload(String id) {
- Component u = super.getUpload(id);
- u.setVisible(true);
- u.add(new AjaxEventBehavior("click") {
- private static final long serialVersionUID = 1L;
+ protected Component getUpload() {
+ return super.getUpload()
+ .setVisible(true)
+ .add(new AjaxEventBehavior("click") {
+ private static final long serialVersionUID = 1L;
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- room.getSidebar().showUpload(target);
- }
- });
- return u;
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ room.getSidebar().showUpload(target);
+ }
+ });
}
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java Tue Feb 21 03:30:19 2017
@@ -230,7 +230,6 @@ public class RoomSidebar extends Panel {
public RoomSidebar(String id, final RoomPanel room) {
super(id);
this.room = room;
- updateShowFiles();
userTab = new OmTab() {
private static final long serialVersionUID = 1L;
@@ -262,7 +261,7 @@ public class RoomSidebar extends Panel {
@Override
public boolean isVisible() {
- return showFiles;
+ return true;
}
@Override
@@ -308,13 +307,13 @@ public class RoomSidebar extends Panel {
}
}).setOutputMarkupId(true));
selfRights = new SelfIconsPanel("icons", room.getClient(), room, true);
- add(addFolder);
- add(toggleRight, toggleActivity, roomAction, avSettings);
}
@Override
protected void onInitialize() {
super.onInitialize();
+ add(addFolder);
+ add(toggleRight, toggleActivity, roomAction, avSettings);
add(confirmKick = new ConfirmableAjaxBorder("confirm-kick", getString("603"), getString("605")) {
private static final long serialVersionUID = 1L;
@@ -327,6 +326,7 @@ public class RoomSidebar extends Panel {
ConfirmableBorderDialog confirmTrash = new ConfirmableBorderDialog("confirm-trash", getString("80"), getString("713"), form);
roomFiles = new RoomFilePanel("tree", room, addFolder, confirmTrash);
add(form.add(confirmTrash), upload = new UploadDialog("upload", room, roomFiles));
+ updateShowFiles(null);
}
private TabListModel newTabModel() {
@@ -358,12 +358,13 @@ public class RoomSidebar extends Panel {
return users;
}
- private void updateShowFiles() {
+ private void updateShowFiles(IPartialPageRequestHandler handler) {
showFiles = !room.getRoom().isHidden(RoomElement.Files) && room.getClient().hasRight(Right.whiteBoard);
+ roomFiles.setReadOnly(!showFiles, handler);
}
public void updateUsers(IPartialPageRequestHandler handler) {
- updateShowFiles();
+ updateShowFiles(handler);
updateUsers();
selfRights.setVisible(room.getRoom().isAllowUserQuestions() || room.getClient().hasRight(Right.moderator));
selfRights.update(handler);
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/room.css
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/room.css?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/room.css (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/css/room.css Tue Feb 21 03:30:19 2017
@@ -231,7 +231,7 @@
.activity.mic.ui-icon {
background-image: url(images/microphone_enable.png);
}
-.ui-icon.disabled {
+.ui-icon.disabled, .om-icon.disabled {
-webkit-filter: grayscale(100%); /* Safari 6.0 - 9.0 */
filter: grayscale(100%);
pointer-events: none;
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html Tue Feb 21 03:30:19 2017
@@ -38,10 +38,10 @@
</script>
<div class="file tree item drop area">
<div class="icons clear trash-toolbar" wicket:id="trash-toolbar" wicket:message="title:705">
- <span wicket:id="upload" class="add om-icon big align-left clickable" wicket:message="title:702"></span>
- <span wicket:id="create" class="folder-create big om-icon align-left clickable" wicket:message="title:703"></span>
+ <span wicket:id="upload" wicket:message="title:702"></span>
+ <span wicket:id="create" wicket:message="title:703"></span>
<span wicket:id="refresh" class="refresh om-icon big align-left clickable" wicket:message="title:704"></span>
- <span wicket:id="trash" class="trash om-icon big align-right clickable"></span>
+ <span wicket:id="trash"></span>
<div class="clear"></div>
</div>
<div wicket:id="tree-container" class="trees">
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java Tue Feb 21 03:30:19 2017
@@ -43,6 +43,7 @@ import org.apache.openmeetings.web.commo
import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
import org.apache.openmeetings.web.common.ConfirmableAjaxBorder.ConfirmableBorderDialog;
import org.apache.openmeetings.web.util.AjaxDownload;
+import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -66,6 +67,13 @@ import com.googlecode.wicket.jquery.ui.w
public abstract class FileTreePanel extends Panel {
private static final long serialVersionUID = 1L;
+ private final static String ALIGN_LEFT_CLASS = " align-left";
+ private final static String ALIGN_RIGHT_CLASS = " align-right";
+ private final static String BASE_CLASS = " om-icon big clickable";
+ private final static String UPLOAD_CLASS = "add" + BASE_CLASS + ALIGN_LEFT_CLASS;
+ private final static String CREATE_DIR_CLASS = "folder-create" + BASE_CLASS + ALIGN_LEFT_CLASS;
+ private final static String TRASH_CLASS = "trash" + BASE_CLASS + ALIGN_RIGHT_CLASS;
+ private final static String DISABLED_CLASS = " disabled";
final WebMarkupContainer trees = new WebMarkupContainer("tree-container");
private final WebMarkupContainer sizes = new WebMarkupContainer("sizes");
private FileItem lastSelected = null;
@@ -88,13 +96,24 @@ public abstract class FileTreePanel exte
private final ConfirmableBorderDialog trashConfirm;
private ConfirmableAjaxBorder trashBorder;
private final Long roomId;
+ private final OmTreeProvider tp;
+ private boolean readOnly = true;
+ private final Component createDir = new WebMarkupContainer("create").add(new AjaxEventBehavior("click") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ addFolder.open(target);
+ }
+ });
+ private final Component upload = new WebMarkupContainer("upload");
public FileTreePanel(String id, Long roomId, AddFolderDialog addFolder, ConfirmableBorderDialog trashConfirm) {
super(id);
this.roomId = roomId;
this.addFolder = addFolder;
this.trashConfirm = trashConfirm;
- OmTreeProvider tp = new OmTreeProvider(roomId);
+ tp = new OmTreeProvider(roomId);
select(tp.getRoot(), null, false, false);
form.add(tree = new FileItemTree("tree", this, tp));
form.add(download.setVisible(false).setOutputMarkupPlaceholderTag(true));
@@ -160,15 +179,8 @@ public abstract class FileTreePanel exte
}
};
form.add(trashToolbar);
- trashToolbar.add(getUpload("upload"));
- trashToolbar.add(new WebMarkupContainer("create").add(new AjaxEventBehavior("click") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- addFolder.open(target);
- }
- }));
+ trashToolbar.add(getUpload());
+ trashToolbar.add(createDir);
trashToolbar.add(new WebMarkupContainer("refresh").add(new AjaxEventBehavior("click") {
private static final long serialVersionUID = 1L;
@@ -182,7 +194,7 @@ public abstract class FileTreePanel exte
@Override
protected boolean isClickable() {
- return !selected.isEmpty();
+ return !readOnly && !selected.isEmpty();
}
@Override
@@ -200,14 +212,15 @@ public abstract class FileTreePanel exte
updateSizes();
form.add(sizes.add(new Label("homeSize", homeSize), new Label("publicSize", publicSize)).setOutputMarkupId(true));
form.add(errorsDialog);
+ setReadOnly(false, null);
}
protected String getContainment() {
return ".file.item.drop.area";
}
- protected Component getUpload(String id) {
- return new WebMarkupContainer(id).setVisible(false);
+ protected Component getUpload() {
+ return upload.setVisible(false);
}
private void deleteAll(AjaxRequestTarget target) {
@@ -229,6 +242,24 @@ public abstract class FileTreePanel exte
update(handler);
}
+ public void setReadOnly(boolean readOnly, IPartialPageRequestHandler handler) {
+ if (this.readOnly != readOnly) {
+ this.readOnly = readOnly;
+ tp.refreshRoots(!readOnly);
+ createDir.setEnabled(!readOnly);
+ createDir.add(AttributeModifier.replace("class", new StringBuilder(CREATE_DIR_CLASS).append(readOnly ? DISABLED_CLASS : "")));
+ upload.add(AttributeModifier.replace("class", new StringBuilder(UPLOAD_CLASS).append(readOnly ? DISABLED_CLASS : "")));
+ trashBorder.add(AttributeModifier.replace("class", new StringBuilder(TRASH_CLASS).append(readOnly ? DISABLED_CLASS : "")));
+ if (handler != null) {
+ handler.add(createDir, upload, trashBorder);
+ }
+ }
+ }
+
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
protected abstract void update(AjaxRequestTarget target, FileItem f);
public void createFolder(AjaxRequestTarget target, String name) {
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java Tue Feb 21 03:30:19 2017
@@ -78,7 +78,7 @@ public class FolderPanel extends Panel {
target.add(treePanel.trees);
}
} : new WebMarkupContainer("drop");
- if (r.getId() == null) {
+ if (r.getId() == null || treePanel.isReadOnly()) {
drag = new WebMarkupContainer("drag");
} else {
drag = new Draggable<FileItem>("drag", Model.of(r)) {
@@ -94,7 +94,7 @@ public class FolderPanel extends Panel {
}.setContainment(treePanel.getContainment());
drag.add(AttributeAppender.append("class", r instanceof Recording ? "recorditem" : "fileitem"));
}
- drag.add(r.getId() == null ? new Label("name", r.getName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getName())) {
+ drag.add(r.getId() == null || treePanel.isReadOnly() ? new Label("name", r.getName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getName())) {
private static final long serialVersionUID = 1L;
@Override
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java Tue Feb 21 03:30:19 2017
@@ -46,29 +46,40 @@ public class OmTreeProvider implements I
public static String RECORDINGS_GROUP = "recordings-group-%s";
public static String FILES_MY = "files-my";
public static String FILES_ROOM = "files-room";
+ private final Long roomId;
private final List<FileItem> roots = new ArrayList<>();
public OmTreeProvider(Long roomId) {
+ this.roomId = roomId;
+ refreshRoots(true);
+ }
+
+ public void refreshRoots(boolean all) {
+ roots.clear();
if (roomId != null) {
- roots.add(createFileRoot(null));
roots.add(createFileRoot(roomId));
}
- final String PUBLIC = Application.getString(861);
- {
- Recording r = createRecRoot(Application.getString(860), RECORDINGS_MY);
- r.setOwnerId(getUserId());
- roots.add(r);
- }
- {
- Recording r = createRecRoot(PUBLIC, RECORDINGS_PUBLIC);
- roots.add(r);
- }
- for (GroupUser gu : getBean(UserDao.class).get(getUserId()).getGroupUsers()) {
- Group g = gu.getGroup();
+ if (all) {
+ if (roomId != null) {
+ roots.add(createFileRoot(null));
+ }
+ final String PUBLIC = Application.getString(861);
+ {
+ Recording r = createRecRoot(Application.getString(860), RECORDINGS_MY);
+ r.setOwnerId(getUserId());
+ roots.add(r);
+ }
+ {
+ Recording r = createRecRoot(PUBLIC, RECORDINGS_PUBLIC);
+ roots.add(r);
+ }
+ for (GroupUser gu : getBean(UserDao.class).get(getUserId()).getGroupUsers()) {
+ Group g = gu.getGroup();
- Recording r = createRecRoot(String.format("%s (%s)", PUBLIC, g.getName()), String.format(RECORDINGS_GROUP, g.getId()));
- r.setGroupId(g.getId());
- roots.add(r);
+ Recording r = createRecRoot(String.format("%s (%s)", PUBLIC, g.getName()), String.format(RECORDINGS_GROUP, g.getId()));
+ r.setGroupId(g.getId());
+ roots.add(r);
+ }
}
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java Tue Feb 21 03:30:19 2017
@@ -67,17 +67,16 @@ public class RoomFilePanel extends FileT
}
@Override
- protected Component getUpload(String id) {
- Component u = super.getUpload(id);
- u.setVisible(true);
- u.add(new AjaxEventBehavior("click") {
- private static final long serialVersionUID = 1L;
+ protected Component getUpload() {
+ return super.getUpload()
+ .setVisible(true)
+ .add(new AjaxEventBehavior("click") {
+ private static final long serialVersionUID = 1L;
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- room.getSidebar().showUpload(target);
- }
- });
- return u;
+ @Override
+ protected void onEvent(AjaxRequestTarget target) {
+ room.getSidebar().showUpload(target);
+ }
+ });
}
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java Tue Feb 21 03:30:19 2017
@@ -230,7 +230,6 @@ public class RoomSidebar extends Panel {
public RoomSidebar(String id, final RoomPanel room) {
super(id);
this.room = room;
- updateShowFiles();
userTab = new OmTab() {
private static final long serialVersionUID = 1L;
@@ -262,7 +261,7 @@ public class RoomSidebar extends Panel {
@Override
public boolean isVisible() {
- return showFiles;
+ return true;
}
@Override
@@ -308,13 +307,13 @@ public class RoomSidebar extends Panel {
}
}).setOutputMarkupId(true));
selfRights = new SelfIconsPanel("icons", room.getClient(), room, true);
- add(addFolder);
- add(toggleRight, toggleActivity, roomAction, avSettings);
}
@Override
protected void onInitialize() {
super.onInitialize();
+ add(addFolder);
+ add(toggleRight, toggleActivity, roomAction, avSettings);
add(confirmKick = new ConfirmableAjaxBorder("confirm-kick", getString("603"), getString("605")) {
private static final long serialVersionUID = 1L;
@@ -327,6 +326,7 @@ public class RoomSidebar extends Panel {
ConfirmableBorderDialog confirmTrash = new ConfirmableBorderDialog("confirm-trash", getString("80"), getString("713"), form);
roomFiles = new RoomFilePanel("tree", room, addFolder, confirmTrash);
add(form.add(confirmTrash), upload = new UploadDialog("upload", room, roomFiles));
+ updateShowFiles(null);
}
private TabListModel newTabModel() {
@@ -358,12 +358,13 @@ public class RoomSidebar extends Panel {
return users;
}
- private void updateShowFiles() {
+ private void updateShowFiles(IPartialPageRequestHandler handler) {
showFiles = !room.getRoom().isHidden(RoomElement.Files) && room.getClient().hasRight(Right.whiteBoard);
+ roomFiles.setReadOnly(!showFiles, handler);
}
public void updateUsers(IPartialPageRequestHandler handler) {
- updateShowFiles();
+ updateShowFiles(handler);
updateUsers();
selfRights.setVisible(room.getRoom().isAllowUserQuestions() || room.getClient().hasRight(Right.moderator));
selfRights.update(handler);
Modified: openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css?rev=1783824&r1=1783823&r2=1783824&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css Tue Feb 21 03:30:19 2017
@@ -231,7 +231,7 @@
.activity.mic.ui-icon {
background-image: url(images/microphone_enable.png);
}
-.ui-icon.disabled {
+.ui-icon.disabled, .om-icon.disabled {
-webkit-filter: grayscale(100%); /* Safari 6.0 - 9.0 */
filter: grayscale(100%);
pointer-events: none;