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 2014/09/11 06:16:36 UTC
svn commit: r1624190 - in /openmeetings/branches/3.0.x: ./
src/main/webapp/css/ src/web/java/org/apache/openmeetings/web/pages/install/
src/web/java/org/apache/openmeetings/web/user/record/
Author: solomax
Date: Thu Sep 11 04:16:36 2014
New Revision: 1624190
URL: http://svn.apache.org/r1624190
Log:
[OPENMEETINGS-1041] drag&drop in recordings is improved;
Modified:
openmeetings/branches/3.0.x/ivy.xml
openmeetings/branches/3.0.x/src/main/webapp/css/theme.css
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
Modified: openmeetings/branches/3.0.x/ivy.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/ivy.xml?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/ivy.xml (original)
+++ openmeetings/branches/3.0.x/ivy.xml Thu Sep 11 04:16:36 2014
@@ -226,52 +226,52 @@
<dependency org="org.simpleframework" name="simple-xml" rev="2.7" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-request" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-request" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-util" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-util" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-core" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-core" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-auth-roles" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-auth-roles" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-ioc" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-ioc" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-extensions" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-extensions" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-datetime" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-datetime" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
<dependency org="joda-time" name="joda-time" rev="2.3" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-devutils" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-devutils" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-native-websocket-core" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-native-websocket-core" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-native-websocket-tomcat" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-native-websocket-tomcat" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-core" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-core" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-calendar" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-calendar" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-plugins" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-plugins" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-kendo-ui" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-kendo-ui" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
<dependency org="ro.fortsoft.wicket.dashboard" name="wicket-dashboard-core" rev="0.10" conf="openmeetings->*" transitive="false">
@@ -280,13 +280,10 @@
<dependency org="com.google.code.gson" name="gson" rev="2.2.4" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.github.svenmeier.wicket-dnd" name="wicket-dnd" rev="0.6.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.wicketstuff" name="wicketstuff-urlfragment" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.wicketstuff" name="wicketstuff-urlfragment" rev="6.16.0" conf="openmeetings->*" transitive="false">
- <include type="jar" />
- </dependency>
- <dependency org="org.wicketstuff" name="wicketstuff-html5" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.wicketstuff" name="wicketstuff-html5" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
<dependency org="com.vaynberg.wicket.select2" name="wicket-select2" rev="2.2.3" conf="openmeetings->*" transitive="false">
Modified: openmeetings/branches/3.0.x/src/main/webapp/css/theme.css
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/css/theme.css?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/css/theme.css (original)
+++ openmeetings/branches/3.0.x/src/main/webapp/css/theme.css Thu Sep 11 04:16:36 2014
@@ -288,6 +288,14 @@ html, body {
width: 250px;
border: 1px solid #ccc;
}
+.trash-toolbar {
+ font-weight: bold;
+ line-height: 20px;
+ color: transparent;
+}
+.trash-toolbar-hover {
+ color: inherit;
+}
.recording .files .trees {
min-height: 400px;
max-height: 600px;
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java Thu Sep 11 04:16:36 2014
@@ -340,7 +340,7 @@ public class InstallWizard extends Wizar
);
} else {
progressBar.setModelObject(Application.get()._getBean(ImportInitvalues.class).getProgress());
- progressBar.respond(target);
+ progressBar.refresh(target);
//TODO uncomment later target.add(value);
//TODO add current step result as info
}
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java Thu Sep 11 04:16:36 2014
@@ -33,18 +33,18 @@ import org.apache.wicket.model.IModel;
public class RecordingItemPanel extends RecordingPanel {
private static final long serialVersionUID = 1L;
- public RecordingItemPanel(String id, final IModel<FlvRecording> model, final RecordingErrorsDialog errorsDialog) {
- super(id, model);
+ public RecordingItemPanel(String id, final IModel<FlvRecording> model, final RecordingsPanel treePanel) {
+ super(id, model, treePanel);
FlvRecording r = model.getObject();
long errorCount = getBean(FlvRecordingLogDao.class).countErrors(r.getFlvRecordingId());
boolean visible = errorCount != 0 || (Status.PROCESSING != r.getStatus() && !isRecordingExists(r.getFileHash() + MP4_EXTENSION));
- item.add(new WebMarkupContainer("errors").add(new AjaxEventBehavior("click") {
+ drag.add(new WebMarkupContainer("errors").add(new AjaxEventBehavior("click") {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
- errorsDialog.setDefaultModel(model);
- errorsDialog.open(target);
+ treePanel.errorsDialog.setDefaultModel(model);
+ treePanel.errorsDialog.open(target);
}
}).setVisible(visible));
}
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html Thu Sep 11 04:16:36 2014
@@ -20,6 +20,6 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <div wicket:id="item" class="recording item"><span wicket:id="name" class="name"></span><wicket:child /></div>
+ <div wicket:id="drop" class="recording item"><div wicket:id="drag"><wicket:child /><span wicket:id="name" class="name"></span></div></div>
</wicket:panel>
</html>
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java Thu Sep 11 04:16:36 2014
@@ -22,7 +22,10 @@ import static org.apache.openmeetings.we
import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
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;
@@ -30,17 +33,67 @@ 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 RecordingPanel extends Panel {
private static final long serialVersionUID = 1L;
- protected final WebMarkupContainer item = new WebMarkupContainer("item");
+ protected final MarkupContainer drop;
+ protected final MarkupContainer drag;
- public RecordingPanel(String id, final IModel<FlvRecording> model) {
+ public RecordingPanel(String id, final IModel<FlvRecording> model, final RecordingsPanel treePanel) {
super(id, model);
FlvRecording r = model.getObject();
- add(new WindowsTheme());
- item.add(r.isFolder() ? new AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
+ drop = r.isFolder() ? new Droppable<FlvRecording>("drop", model) {
+ 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(".recorditem"));
+ }
+
+ @Override
+ public void onDrop(AjaxRequestTarget target, Component component) {
+ Object o = component.getDefaultModelObject();
+ if (o instanceof FlvRecording) {
+ FlvRecording p = (FlvRecording)drop.getDefaultModelObject();
+ FlvRecording f = (FlvRecording)o;
+ long pid = p.getFlvRecordingId();
+ //FIXME parent should not be moved to child !!!!!!!
+ if (pid == f.getFlvRecordingId()) {
+ return;
+ }
+ f.setParentFileExplorerItemId(pid > 0 ? pid : null);
+ f.setOwnerId(p.getOwnerId());
+ f.setRoom_id(p.getRoom_id());
+ f.setOrganization_id((p).getOrganization_id());
+ getBean(FlvRecordingDao.class).update(f);
+ }
+ target.add(treePanel.trees); //FIXME add correct refresh
+ }
+ } : new WebMarkupContainer("drop");
+ if (r.getFlvRecordingId() < 1) {
+ drag = new WebMarkupContainer("drag");
+ } else {
+ Draggable<FlvRecording> d = new Draggable<FlvRecording>("drag", model) {
+ 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");
+ d.add(AttributeAppender.append("class", "recorditem"));
+ drag = d;
+ }
+ drag.add(r.getFlvRecordingId() < 1 || !r.isFolder() ? new Label("name", r.getFileName()) : new AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
private static final long serialVersionUID = 1L;
@Override
@@ -51,16 +104,16 @@ public class RecordingPanel extends Pane
@Override
protected void onSubmit(AjaxRequestTarget target) {
super.onSubmit(target);
- FlvRecording r = model.getObject();
- r.setFileName(getEditor().getModelObject());
- getBean(FlvRecordingDao.class).update(r);
+ FlvRecording fi = model.getObject();
+ fi.setFileName(getEditor().getModelObject());
+ getBean(FlvRecordingDao.class).update(fi);
}
@Override
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/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html Thu Sep 11 04:16:36 2014
@@ -20,16 +20,25 @@
-->
<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>
<table class="recording">
<tr>
- <td valign="top" class="files">
- <div class="icons clear">
- <span wicket:id="create" class="folder-create om-icon align-left clickable"></span>
- <span wicket:id="refresh" class="refresh om-icon align-left clickable"></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>
+ <td valign="top" class="files file tree">
+ <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"></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/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java Thu Sep 11 04:16:36 2014
@@ -55,23 +55,20 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.time.Duration;
-import wicketdnd.DragSource;
-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 class RecordingsPanel extends UserPanel {
private static final long serialVersionUID = 1321258690447136958L;
- private final WebMarkupContainer trees = new WebMarkupContainer("tree-container");
+ final WebMarkupContainer trees = new WebMarkupContainer("tree-container");
private final WebMarkupContainer sizes = new WebMarkupContainer("sizes");
private final VideoPlayer video = new VideoPlayer("video");
private final VideoInfo info = new VideoInfo("info");
private final IModel<FlvRecording> rm = new CompoundPropertyModel<FlvRecording>(new FlvRecording());
private final IModel<String> homeSize = Model.of((String)null);
private final IModel<String> publicSize = Model.of((String)null);
- private final RecordingErrorsDialog errorsDialog = new RecordingErrorsDialog("errors", Model.of((FlvRecording)null));
+ final RecordingErrorsDialog errorsDialog = new RecordingErrorsDialog("errors", Model.of((FlvRecording)null));
private RecordingTree selected;
public RecordingsPanel(String id) {
@@ -102,45 +99,49 @@ public class RecordingsPanel extends Use
}
};
add(addFolder);
- add(new WebMarkupContainer("create").add(new AjaxEventBehavior("onclick") {
+ Droppable<FlvRecording> trashToolbar = new Droppable<FlvRecording>("trash-toolbar") {
private static final long serialVersionUID = 1L;
@Override
- protected void onEvent(AjaxRequestTarget target) {
- addFolder.open(target);
+ 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"));
}
- }));
- add(new WebMarkupContainer("refresh").add(new AjaxEventBehavior("onclick") {
+
+ @Override
+ public void onDrop(AjaxRequestTarget target, Component component) {
+ Object o = component.getDefaultModelObject();
+ if (o instanceof FlvRecording) {
+ delete((FlvRecording)o, target);
+ }
+ }
+ };
+ add(trashToolbar);
+ trashToolbar.add(new WebMarkupContainer("create").add(new AjaxEventBehavior("onclick") {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
- target.add(trees); //FIXME add correct refresh
+ addFolder.open(target);
}
}));
- ConfirmableAjaxLink trash = new ConfirmableAjaxLink("trash", 713) {
+ trashToolbar.add(new WebMarkupContainer("refresh").add(new AjaxEventBehavior("onclick") {
private static final long serialVersionUID = 1L;
@Override
- public void onClick(AjaxRequestTarget target) {
- long id = rm.getObject().getFlvRecordingId();
- if (id > 0) {
- getBean(FlvRecordingDao.class).delete(rm.getObject());
- }
+ protected void onEvent(AjaxRequestTarget target) {
target.add(trees); //FIXME add correct refresh
}
- };
- trash.add(new WebMarkupContainer("drop-center").setOutputMarkupId(true)).add(new DropTarget(Operation.MOVE) {
+ }));
+ trashToolbar.add(new ConfirmableAjaxLink("trash", 713) {
private static final long serialVersionUID = 1L;
@Override
- public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
- FlvRecording r = transfer.getData();
- getBean(FlvRecordingDao.class).delete(r);
- target.add(trees); //FIXME add correct refresh
+ public void onClick(AjaxRequestTarget target) {
+ delete(rm.getObject(), target);
}
- }.dropCenter("span"));
- add(trash/*.add(new WindowsTheme())*/); //TODO check theme here
+ });
RepeatingView treesView = new RepeatingView("tree");
treesView.add(selected = new RecordingTree(treesView.newChildId(), new MyRecordingTreeProvider()));
treesView.add(new RecordingTree(treesView.newChildId(), new PublicRecordingTreeProvider(null, null)));
@@ -161,6 +162,14 @@ public class RecordingsPanel extends Use
add(video, info, errorsDialog);
}
+ void delete(FlvRecording f, AjaxRequestTarget target) {
+ long id = f.getFlvRecordingId();
+ if (id > 0) {
+ getBean(FlvRecordingDao.class).delete(f);
+ }
+ target.add(trees); //FIXME add correct refresh
+ }
+
private void updateSizes() {
RecordingContainerData sizeData = getBean(FlvRecordingDao.class).getRecordingContainerData(getUserId());
if (sizeData != null) {
@@ -186,40 +195,7 @@ public class RecordingsPanel extends Use
@Override
protected Component newLabelComponent(String id, final IModel<FlvRecording> lm) {
FlvRecording r = lm.getObject();
- Component result = r.isFolder() || r.getFlvRecordingId() < 1 ? new RecordingPanel(id, lm) : new RecordingItemPanel(id, lm, errorsDialog);
- if (r.getFlvRecordingId() > 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.getFlvRecordingId() < 0 || r.isFolder()) {
- result.add(new DropTarget(Operation.MOVE) {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
- FlvRecording p = lm.getObject();
- long pid = p.getFlvRecordingId();
- FlvRecording r = transfer.getData();
- r.setParentFileExplorerItemId(pid > 0 ? pid : null);
- r.setOrganization_id(p.getOrganization_id());
- r.setOwnerId(p.getOwnerId());
- getBean(FlvRecordingDao.class).update(r);
- target.add(trees); //FIXME add correct refresh
- }
- }.dropCenter("div"));
- }
- return result;
+ return r.isFolder() || r.getFlvRecordingId() < 1 ? new RecordingPanel(id, lm, RecordingsPanel.this) : new RecordingItemPanel(id, lm, RecordingsPanel.this);
}
@Override
@@ -309,6 +285,7 @@ public class RecordingsPanel extends Use
FlvRecording r = new FlvRecording();
r.setFlvRecordingId(0);
r.setFileName(WebSession.getString(860));
+ r.setFolder(true);
r.setOwnerId(getUserId());
return Arrays.asList(r).iterator();
}
@@ -337,6 +314,7 @@ public class RecordingsPanel extends Use
r.setFlvRecordingId(orgId == null ? -1 : -orgId);
r.setOrganization_id(orgId);
r.setOwnerId(null);
+ r.setFolder(true);
String pub = WebSession.getString(861);
r.setFileName(orgId == null ? pub : String.format("%s (%s)", pub, name));
return Arrays.asList(r).iterator();