Author: solomax
Date: Thu Sep 11 03:14:08 2014
New Revision: 1624188
URL: http://svn.apache.org/r1624188
Log:
[OPENMEETINGS-1030] Recordings/Files section is rewritten to use
wicket-jqueryui, drag&drop works better
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/pom.xml
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/MyRecordingTreeProvider.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/PublicRecordingTreeProvider.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/pom.xml
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/pom.xml?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/pom.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/pom.xml Thu Sep 11
03:14:08 2014
@@ -32,7 +32,6 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<wicket-dashboard.version>0.11.0+wicket-7</wicket-dashboard.version>
- <dnd.version>0.6.0</dnd.version>
<commons-io.version>2.4</commons-io.version>
<commons-fileupload.version>1.3</commons-fileupload.version>
<mysql.version>5.1.30</mysql.version>
@@ -392,11 +391,6 @@
<version>${wicket.version}</version>
</dependency>
<dependency>
- <groupId>com.github.svenmeier.wicket-dnd</groupId>
- <artifactId>wicket-dnd</artifactId>
- <version>${dnd.version}</version>
- </dependency>
- <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
Thu Sep 11 03:14:08 2014
@@ -290,7 +290,7 @@ public class WebSession extends Abstract
String s = getBean(FieldLanguagesValuesDao.class).getString(id,
getLanguage());
s = s == null ? "[Missing]" :
(STRINGS_WITH_APP.contains(id) ?
s.replaceAll("\\$APP_NAME", getBean(ConfigurationDao.class).getAppName()) : s);
- return s;// +
(Application.get().getDebugSettings().isDevelopmentUtilitiesEnabled() ? " [" +
id + "]" : "");
+ return s +
(Application.get().getDebugSettings().isDevelopmentUtilitiesEnabled() ? " [" +
id + "]" : "");
}
public void setLanguage(long languageId) {
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/menu/MenuPanel.java
Thu Sep 11 03:14:08 2014
@@ -69,26 +69,27 @@ public class MenuPanel extends BasePanel
if (!Strings.isEmpty(gl.getDesc())) {
link.add(AttributeAppender.append("title", gl.getDesc()));
}
- item.add(new WebMarkupContainer("childItems")
- .add(new
ListView<MenuItem>("childItem", gl.getChildren()) {
- private static final
long serialVersionUID = 1L;
-
- @Override
- protected void
populateItem(ListItem<MenuItem> item) {
- final MenuItem
m = item.getModelObject();
- item.add(new
AjaxLink<Void>("link") {
- private
static final long serialVersionUID = 1L;
- {
-
add(new Label("name", m.getName()));
-
add(new Label("description", m.getDesc()));
- }
-
- public
void onClick(AjaxRequestTarget target) {
-
m.onClick(getMainPage(), target);
- }
- });
- }
-
}.setReuseItems(true)).setVisible(null != gl.getChildren()));
+ item.setVisible(gl.isActive());
+ item.add(new
WebMarkupContainer("childItems").add(new ListView<MenuItem>("childItem",
gl.getChildren()) {
+ private static final long
serialVersionUID = 1L;
+
+ @Override
+ protected void
populateItem(ListItem<MenuItem> item) {
+ final MenuItem m =
item.getModelObject();
+
item.setVisible(m.isActive());
+ item.add(new
AjaxLink<Void>("link") {
+ private static
final long serialVersionUID = 1L;
+ {
+ add(new
Label("name", m.getName()));
+ add(new
Label("description", m.getDesc()));
+ }
+
+ public void
onClick(AjaxRequestTarget target) {
+
m.onClick(getMainPage(), target);
+ }
+ });
+ }
+ }.setReuseItems(true)).setVisible(null
!= gl.getChildren()));
}
}.setReuseItems(true));
add(new MenuFunctionsBehavior(menuContainer.getMarkupId(), id));
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java
Thu Sep 11 03:14:08 2014
@@ -35,8 +35,8 @@ public class FileItemPanel extends Folde
private static final long serialVersionUID = 1L;
private final WebMarkupContainer errors = new
WebMarkupContainer("errors");
- public FileItemPanel(String id, final IModel<? extends FileItem> model,
final ConvertingErrorsDialog errorsDialog) {
- super(id, model);
+ public FileItemPanel(String id, final IModel<? extends FileItem> model,
final FileTreePanel fileTreePanel) {
+ super(id, model, fileTreePanel);
if (model.getObject() instanceof FlvRecording) {
FlvRecording r = (FlvRecording)model.getObject();
long errorCount =
getBean(FlvRecordingLogDao.class).countErrors(r.getId());
@@ -46,13 +46,13 @@ public class FileItemPanel extends Folde
@Override
protected void onEvent(AjaxRequestTarget
target) {
- errorsDialog.setDefaultModel(model);
- errorsDialog.open(target);
+
fileTreePanel.errorsDialog.setDefaultModel(model);
+ fileTreePanel.errorsDialog.open(target);
}
}).setVisible(visible);
} else {
errors.setVisible(false);
}
- item.add(errors);
+ drag.add(errors);
}
}
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
Thu Sep 11 03:14:08 2014
@@ -20,11 +20,7 @@ package org.apache.openmeetings.web.comm
import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
-import static org.apache.openmeetings.web.app.Application.getBean;
-import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
-import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
-import org.apache.openmeetings.db.entity.file.FileExplorerItem;
import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.file.FileItem.Type;
import org.apache.openmeetings.db.entity.record.FlvRecording;
@@ -38,13 +34,6 @@ import org.apache.wicket.markup.repeater
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import wicketdnd.DragSource;
-import wicketdnd.DropTarget;
-import wicketdnd.Location;
-import wicketdnd.Operation;
-import wicketdnd.Reject;
-import wicketdnd.Transfer;
-
public class FileItemTree<T extends FileItem> extends DefaultNestedTree<T> {
private static final long serialVersionUID = 1L;
private final FileTreePanel treePanel;
@@ -64,46 +53,7 @@ public class FileItemTree<T extends File
@Override
protected Component newLabelComponent(String id, final
IModel<T> lm) {
FileItem r = lm.getObject();
- Component result = Type.Folder == r.getType()
|| r.getId() < 1 ? new FolderPanel(id, lm) : new FileItemPanel(id, lm,
treePanel.errorsDialog);
- if (r.getId() > 0) {
- result.add(new
DragSource(Operation.MOVE) {
- private static final long
serialVersionUID = 1L;
-
- @Override
- public void
onBeforeDrop(Component drag, Transfer transfer) throws Reject {
-
transfer.setData(lm.getObject());
- };
-
- @Override
- public void
onAfterDrop(AjaxRequestTarget target, wicketdnd.Transfer transfer) {
- transfer.setData(null);
- }
- }.drag("div"));
- }
- if (r.getId() < 0 || Type.Folder ==
r.getType()) {
- result.add(new
DropTarget(Operation.MOVE) {
- private static final long
serialVersionUID = 1L;
-
- @Override
- public void
onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws
Reject {
- FileItem p =
lm.getObject();
- long pid = p.getId();
- T f =
transfer.getData();
- f.setParentItemId(pid >
0 ? pid : null); //FIXME need to disable drop to self
-
f.setOwnerId(p.getOwnerId());
-
f.setRoomId(p.getRoomId());
- if (f instanceof
FlvRecording) {
- FlvRecording r
= (FlvRecording)f;
-
r.setOrganization_id(((FlvRecording)p).getOrganization_id());
-
getBean(FlvRecordingDao.class).update(r);
- } else {
-
getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
- }
-
target.add(treePanel.trees); //FIXME add correct refresh
- }
- }.dropCenter("div"));
- }
- return result;
+ return Type.Folder == r.getType() || r.getId()
< 1 ? new FolderPanel(id, lm, treePanel) : new FileItemPanel(id, lm, treePanel);
}
@Override
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.html
Thu Sep 11 03:14:08 2014
@@ -20,14 +20,23 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
+ <script type="text/javascript">
+ function treeRevert(dropped) {
+ $('#tree-anchor').get(0).scrollIntoView();
+ this.parent().parent().get(0).scrollIntoView();
+ return !dropped;
+ }
+ </script>
<div class="file tree">
- <div class="icons clear">
+ <div class="icons clear trash-toolbar"
wicket:id="trash-toolbar">
<span wicket:id="create" class="folder-create om-icon
align-left clickable" wicket:ommessage="title:703"></span>
<span wicket:id="refresh" class="refresh om-icon
align-left clickable" wicket:ommessage="title:704"></span>
- <span wicket:id="trash" class="trash om-icon
align-right clickable" wicket:ommessage="title:705"><span style="display:
block;" wicket:id="drop-center"> </span></span>
+ <span wicket:id="trash" class="trash om-icon
align-right clickable"></span>
+ <span style="padding-left: 20px;"
wicket:ommessage="title:705"><wicket:ommessage key="1224"/></span>
<div class="clear"></div>
</div>
<div wicket:id="tree-container" class="trees">
+ <div id="tree-anchor" style="height: 2px; width:
2px;"></div>
<div wicket:id="tree"></div>
</div>
<div class="sizes" wicket:id="sizes">
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
Thu Sep 11 03:14:08 2014
@@ -32,6 +32,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.AddFolderDialog;
import org.apache.openmeetings.web.common.ConfirmableAjaxLink;
+import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
@@ -44,11 +45,9 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.time.Duration;
-import wicketdnd.DropTarget;
-import wicketdnd.Location;
-import wicketdnd.Operation;
-import wicketdnd.Reject;
-import wicketdnd.Transfer;
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.interaction.droppable.Droppable;
public abstract class FileTreePanel extends Panel {
private static final long serialVersionUID = 1L;
@@ -75,7 +74,26 @@ public abstract class FileTreePanel exte
}
};
add(addFolder);
- add(new WebMarkupContainer("create").add(new
AjaxEventBehavior("onclick") {
+ Droppable<FileItem> trashToolbar = new
Droppable<FileItem>("trash-toolbar") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onConfigure(JQueryBehavior behavior) {
+ super.onConfigure(behavior);
+ behavior.setOption("hoverClass",
Options.asString("ui-state-hover trash-toolbar-hover"));
+ behavior.setOption("accept",
Options.asString(".recorditem, .fileitem"));
+ }
+
+ @Override
+ public void onDrop(AjaxRequestTarget target, Component
component) {
+ Object o = component.getDefaultModelObject();
+ if (o instanceof FileItem) {
+ delete((FileItem)o, target);
+ }
+ }
+ };
+ add(trashToolbar);
+ trashToolbar.add(new WebMarkupContainer("create").add(new
AjaxEventBehavior("onclick") {
private static final long serialVersionUID = 1L;
@Override
@@ -83,7 +101,7 @@ public abstract class FileTreePanel exte
addFolder.open(target);
}
}));
- add(new WebMarkupContainer("refresh").add(new
AjaxEventBehavior("onclick") {
+ trashToolbar.add(new WebMarkupContainer("refresh").add(new
AjaxEventBehavior("onclick") {
private static final long serialVersionUID = 1L;
@Override
@@ -91,24 +109,14 @@ public abstract class FileTreePanel exte
target.add(trees); //FIXME add correct refresh
}
}));
- ConfirmableAjaxLink trash = new ConfirmableAjaxLink("trash",
713) {
+ trashToolbar.add(new ConfirmableAjaxLink("trash", 713) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
delete(selectedFile.getObject(), target);
}
- };
- trash.add(new
WebMarkupContainer("drop-center").setOutputMarkupId(true)).add(new
DropTarget(Operation.MOVE) {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onDrop(AjaxRequestTarget target, Transfer
transfer, Location location) throws Reject {
- FileItem f = transfer.getData();
- delete(f, target);
- }
- }.dropCenter("span"));
- add(trash/*.add(new WindowsTheme())*/); //TODO check theme here
+ });
add(trees.add(treesView).setOutputMarkupId(true));
updateSizes();
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.html
Thu Sep 11 03:14:08 2014
@@ -20,6 +20,6 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <div wicket:id="item" class="file item"><wicket:child /><span
wicket:id="name" class="name"></span></div>
+ <div wicket:id="drop" class="file item"><div
wicket:id="drag"><wicket:child /><span wicket:id="name"
class="name"></span></div></div>
</wicket:panel>
</html>
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
Thu Sep 11 03:14:08 2014
@@ -26,7 +26,10 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.file.FileItem.Type;
import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@@ -34,17 +37,72 @@ import org.apache.wicket.markup.html.pan
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import wicketdnd.theme.WindowsTheme;
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.interaction.draggable.Draggable;
+import com.googlecode.wicket.jquery.ui.interaction.droppable.Droppable;
public class FolderPanel extends Panel {
private static final long serialVersionUID = 1L;
- protected final WebMarkupContainer item = new
WebMarkupContainer("item");
+ protected final MarkupContainer drop;
+ protected final MarkupContainer drag;
- public FolderPanel(String id, final IModel<? extends FileItem> model) {
+ public FolderPanel(String id, final IModel<? extends FileItem> model,
final FileTreePanel treePanel) {
super(id, model);
FileItem r = model.getObject();
- add(new WindowsTheme());
- item.add(Type.Folder == r.getType() ? new
AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
+ drop = r.getType() == Type.Folder ? new
Droppable<FileItem>("drop", Model.of(r)) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onConfigure(JQueryBehavior behavior) {
+ super.onConfigure(behavior);
+ behavior.setOption("hoverClass",
Options.asString("ui-state-hover"));
+ behavior.setOption("accept",
Options.asString(getDefaultModelObject() instanceof FlvRecording ?
".recorditem" : ".fileitem"));
+ }
+
+ @Override
+ public void onDrop(AjaxRequestTarget target, Component
component) {
+ Object o = component.getDefaultModelObject();
+ if (o instanceof FileItem) {
+ FileItem p =
(FileItem)drop.getDefaultModelObject();
+ FileItem f = (FileItem)o;
+ long pid = p.getId();
+ //FIXME parent should not be moved to
child !!!!!!!
+ if (pid == f.getId()) {
+ return;
+ }
+ f.setParentItemId(pid > 0 ? pid : null);
+ f.setOwnerId(p.getOwnerId());
+ f.setRoomId(p.getRoomId());
+ if (f instanceof FlvRecording) {
+ FlvRecording r =
(FlvRecording)f;
+
r.setOrganization_id(((FlvRecording)p).getOrganization_id());
+
getBean(FlvRecordingDao.class).update(r);
+ } else {
+
getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
+ }
+ }
+ target.add(treePanel.trees); //FIXME add
correct refresh
+ }
+ } : new WebMarkupContainer("drop");
+ if (r.getId() < 1) {
+ drag = new WebMarkupContainer("drag");
+ } else {
+ Draggable<? extends FileItem> d = new
Draggable<FileItem>("drag", Model.of(r)) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onConfigure(JQueryBehavior
behavior) {
+ super.onConfigure(behavior);
+ behavior.setOption("revert",
"treeRevert");
+ behavior.setOption("cursor",
Options.asString("move"));
+ }
+ };
+ d.setContainment(".file.tree, .icons");
+ d.add(AttributeAppender.append("class", r instanceof
FlvRecording ? "recorditem" : "fileitem"));
+ drag = d;
+ }
+ drag.add(r.getId() < 1 || r.getType() != Type.Folder ? new
Label("name", r.getFileName()) : new AjaxEditableLabel<String>("name",
Model.of(model.getObject().getFileName())) {
private static final long serialVersionUID = 1L;
@Override
@@ -68,7 +126,7 @@ public class FolderPanel extends Panel {
public void onEdit(AjaxRequestTarget target) {
super.onEdit(target);
}
- } : new Label("name", r.getFileName()));
- add(item.setOutputMarkupId(true));
+ });
+ add(drop.add(drag).setOutputMarkupId(true));
}
}
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/MyRecordingTreeProvider.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/MyRecordingTreeProvider.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/MyRecordingTreeProvider.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/MyRecordingTreeProvider.java
Thu Sep 11 03:14:08 2014
@@ -25,6 +25,7 @@ import java.util.Arrays;
import java.util.Iterator;
import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
import org.apache.openmeetings.db.entity.record.FlvRecording;
import org.apache.openmeetings.web.app.WebSession;
@@ -34,6 +35,7 @@ public class MyRecordingTreeProvider ext
public Iterator<? extends FlvRecording> getRoots() {
FlvRecording r = new FlvRecording();
r.setId(0L);
+ r.setType(Type.Folder);
r.setFileName(WebSession.getString(860));
r.setOwnerId(getUserId());
return Arrays.asList(r).iterator();
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/PublicRecordingTreeProvider.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/PublicRecordingTreeProvider.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/PublicRecordingTreeProvider.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/PublicRecordingTreeProvider.java
Thu Sep 11 03:14:08 2014
@@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.Iterator;
import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
import org.apache.openmeetings.db.entity.record.FlvRecording;
import org.apache.openmeetings.web.app.WebSession;
@@ -42,6 +43,7 @@ public class PublicRecordingTreeProvider
r.setId(orgId == null ? -1 : -orgId);
r.setOrganization_id(orgId);
r.setOwnerId(null);
+ r.setType(Type.Folder);
String pub = WebSession.getString(861);
r.setFileName(orgId == null ? pub : String.format("%s (%s)",
pub, name));
return Arrays.asList(r).iterator();
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
Thu Sep 11 03:14:08 2014
@@ -76,7 +76,7 @@ public class MainPage extends BaseInited
private final WebMarkupContainer topLinks = new
WebMarkupContainer("topLinks");
private final MarkupContainer contents;
private final AbstractAjaxTimerBehavior areaBehavior;
- private DebugBar dev = null;
+ private final Component dev;
public MainPage(PageParameters pp) {
super();
@@ -121,10 +121,9 @@ public class MainPage extends BaseInited
});
add(about);
if
(getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled()) {
- add(dev = new DebugBar("dev"));
- dev.setOutputMarkupId(true);
+ add((dev = new DebugBar("dev")).setOutputMarkupId(true));
} else {
- add(new EmptyPanel("dev").setVisible(false));
+ add((dev = new EmptyPanel("dev")).setVisible(false));
}
topLinks.add(new ExternalLink("bug",
"https://issues.apache.org/jira/browse/OPENMEETINGS"));//FIXME hardcoded
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
Thu Sep 11 03:14:08 2014
@@ -41,5 +41,6 @@
<div class="wb" wicket:id="whiteboard"></div>
</div>
<div wicket:id="invite"></div>
+ <div wicket:id="createPoll"></div>
</wicket:panel>
</html>
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
Thu Sep 11 03:14:08 2014
@@ -97,7 +97,7 @@ public class RoomPanel extends BasePanel
private long roomId;
private Client c;
private final StartSharingEventBehavior startSharing;
- private AbstractDefaultAjaxBehavior aab = new
AbstractDefaultAjaxBehavior() {
+ private final AbstractDefaultAjaxBehavior aab = new
AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@Override
@@ -116,6 +116,15 @@ public class RoomPanel extends BasePanel
}
};
private final InvitationDialog invite;
+ private final CreatePollDialog createPoll;
+ private final MenuPanel menuPanel;
+ private final RoomMenuItem shareItem;
+ private final RoomMenuItem applyModer;
+ private final RoomMenuItem applyWB;
+ private final RoomMenuItem applyAV;
+ private final RoomMenuItem pollVote;
+ private final RoomMenuItem pollResult;
+ private final RoomMenuItem sipDialer;
public RoomPanel(String id, long _roomId) {
this(id, getBean(RoomDao.class).get(_roomId));
@@ -124,8 +133,27 @@ public class RoomPanel extends BasePanel
public RoomPanel(String id, Room r) {
super(id);
this.roomId = r.getId();
- invite = new InvitationDialog("invite", roomId);
- add(new MenuPanel("roomMenu",
getMenu()).setVisible(!r.getHideTopBar()));
+ shareItem = new RoomMenuItem(WebSession.getString(239),
WebSession.getString(1480)) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick(MainPage page, AjaxRequestTarget
target) {
+ startSharing.respond(target);
+ }
+ };
+ applyModer = new RoomMenuItem(WebSession.getString(784),
WebSession.getString(1481));
+ applyModer.setActive(false);
+ applyWB = new RoomMenuItem(WebSession.getString(785),
WebSession.getString(1492));
+ applyWB.setActive(false);
+ applyAV = new RoomMenuItem(WebSession.getString(786),
WebSession.getString(1482));
+ applyAV.setActive(false);
+ pollVote = new RoomMenuItem(WebSession.getString(42),
WebSession.getString(1485));
+ pollVote.setActive(false);
+ pollResult = new RoomMenuItem(WebSession.getString(37),
WebSession.getString(1484));
+ pollResult.setActive(false);
+ sipDialer = new RoomMenuItem(WebSession.getString(1447),
WebSession.getString(1488));
+ sipDialer.setActive(false);
+ add((menuPanel = new MenuPanel("roomMenu",
getMenu())).setVisible(!r.getHideTopBar()));
WebMarkupContainer wb = new WebMarkupContainer("whiteboard");
add(wb.setOutputMarkupId(true));
add(new WhiteboardBehavior("1", wb.getMarkupId(), null, null,
null));
@@ -201,7 +229,8 @@ public class RoomPanel extends BasePanel
startSharing.respond(target);
}
}).add(new AttributeAppender("title",
WebSession.getString(1480)))); //FIXME add/remove
- add(invite);
+ add(invite = new InvitationDialog("invite", roomId));
+ add(createPoll = new CreatePollDialog("createPoll", roomId));
}
private JSONArray getStringLabels(long... ids) {
@@ -287,9 +316,8 @@ public class RoomPanel extends BasePanel
}
private List<MenuItem> getMenu() {
- //TODO hide/show
List<MenuItem> menu = new ArrayList<MenuItem>();
- menu.add(new RoomMenuItem(WebSession.getString(308),
WebSession.getString(309), "room menu exit") {
+ RoomMenuItem exit = new RoomMenuItem(WebSession.getString(308),
WebSession.getString(309), "room menu exit") {
private static final long serialVersionUID = 1L;
@Override
@@ -305,7 +333,10 @@ public class RoomPanel extends BasePanel
throw new RedirectToUrlException(url);
}
}
- });
+ };
+ User u = getBean(UserDao.class).get(getUserId());
+ exit.setActive(u.getType() != User.Type.external && u.getType()
!= User.Type.contact);
+ menu.add(exit);//TODO check this
MenuItem files = new RoomMenuItem(WebSession.getString(245));
List<RoomMenuItem> fileItems = new ArrayList<RoomMenuItem>();
fileItems.add(new RoomMenuItem(WebSession.getString(15),
WebSession.getString(1479)));
@@ -323,21 +354,21 @@ public class RoomPanel extends BasePanel
invite.open(target);
}
});
- actionItems.add(new RoomMenuItem(WebSession.getString(239),
WebSession.getString(1480)) {
+ actionItems.add(shareItem); //FIXME enable/disable
+ actionItems.add(applyModer); //FIXME enable/disable
+ actionItems.add(applyWB); //FIXME enable/disable
+ actionItems.add(applyAV); //FIXME enable/disable
+ actionItems.add(new RoomMenuItem(WebSession.getString(24),
WebSession.getString(1483)) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(MainPage page, AjaxRequestTarget
target) {
- startSharing.respond(target);
+ createPoll.open(target);
}
});
- actionItems.add(new RoomMenuItem(WebSession.getString(784),
WebSession.getString(1481)));
- actionItems.add(new RoomMenuItem(WebSession.getString(785),
WebSession.getString(1492)));
- actionItems.add(new RoomMenuItem(WebSession.getString(786),
WebSession.getString(1482)));
- actionItems.add(new RoomMenuItem(WebSession.getString(24),
WebSession.getString(1483)));
- actionItems.add(new RoomMenuItem(WebSession.getString(37),
WebSession.getString(1484)));
- actionItems.add(new RoomMenuItem(WebSession.getString(42),
WebSession.getString(1485)));
- actionItems.add(new RoomMenuItem(WebSession.getString(1447),
WebSession.getString(1488)));
+ actionItems.add(pollResult); //FIXME enable/disable
+ actionItems.add(pollVote); //FIXME enable/disable
+ actionItems.add(sipDialer);
actionItems.add(new RoomMenuItem(WebSession.getString(1126),
WebSession.getString(1490)));
actions.setChildren(actionItems);
menu.add(actions);
@@ -408,6 +439,7 @@ public class RoomPanel extends BasePanel
public Iterator<? extends FileExplorerItem> getRoots() {
FileExplorerItem f = new FileExplorerItem();
f.setRoomId(roomId);
+ f.setType(Type.Folder);
if (roomId == null) {
f.setId(0L);
f.setOwnerId(getUserId());
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
Thu Sep 11 03:14:08 2014
@@ -85,9 +85,11 @@ public class VideoInfo extends Panel {
FlvRecording r = _r == null ? new FlvRecording() : _r;
rm.setObject(r);
try {
- Room room = getBean(RoomDao.class).get(r.getRoomId());
- if (room != null) {
- roomName.setObject(room.getName());
+ if (r.getRoomId() != null) {
+ Room room =
getBean(RoomDao.class).get(r.getRoomId());
+ if (room != null) {
+ roomName.setObject(room.getName());
+ }
}
} catch (Exception e) {
//no-op
Modified:
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css?rev=1624188&r1=1624187&r2=1624188&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
(original)
+++
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/theme.css
Thu Sep 11 03:14:08 2014
@@ -296,6 +296,14 @@ html, body {
overflow-x: hidden;
overflow-y: auto;
}
+.trash-toolbar {
+ font-weight: bold;
+ line-height: 20px;
+ color: transparent;
+}
+.trash-toolbar-hover {
+ color: inherit;
+}
.file.tree .files .sizes table, .file.tree .files .info table {
width: 100%;
}
@@ -404,6 +412,7 @@ html, body {
.file.item {
position: relative;
display: inline-block;
+ min-width: 150px;
}
.file.item .name {
color: black;