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/01/19 16:54:11 UTC
svn commit: r1779496 - in /openmeetings/application:
branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/
branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/
branches/3.2.x/openmeetings-we...
Author: solomax
Date: Thu Jan 19 16:54:11 2017
New Revision: 1779496
URL: http://svn.apache.org/viewvc?rev=1779496&view=rev
Log:
[OPENMEETINGS-1527] multiselect seems to work as expected
Modified:
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
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/RoomPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
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/RoomPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java?rev=1779496&r1=1779495&r2=1779496&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java Thu Jan 19 16:54:11 2017
@@ -41,7 +41,7 @@ import org.springframework.transaction.a
/**
* @author sebastianwagner
- *
+ *
*/
@Transactional
public class FileExplorerItemDao {
@@ -95,10 +95,7 @@ public class FileExplorerItemDao {
public List<FileExplorerItem> getByRoom(Long roomId) {
log.debug("getFileExplorerItemsByRoom roomId :: " + roomId);
- TypedQuery<FileExplorerItem> query = em.createNamedQuery("getFilesByRoom", FileExplorerItem.class);
- query.setParameter("roomId", roomId);
-
- return query.getResultList();
+ return em.createNamedQuery("getFilesByRoom", FileExplorerItem.class).setParameter("roomId", roomId).getResultList();
}
public List<FileExplorerItem> getByOwner(Long ownerId) {
@@ -272,7 +269,7 @@ public class FileExplorerItemDao {
}
return size;
}
-
+
public long getSize(FileExplorerItem f) {
long size = 0;
try {
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java?rev=1779496&r1=1779495&r2=1779496&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java Thu Jan 19 16:54:11 2017
@@ -40,7 +40,7 @@ public class DownloadMenuItem extends Me
@Override
public boolean isEnabled() {
File f = null;
- if (tree.selectedCount() == 1) {
+ if (tree.getSelected().size() == 1) {
f = tree.getLastSelected().getFile(ext);
}
return f != null && f.exists();
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=1779496&r1=1779495&r2=1779496&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 Thu Jan 19 16:54:11 2017
@@ -79,9 +79,11 @@ public abstract class FileTreePanel exte
private final AddFolderDialog addFolder;
private final ConfirmableBorderDialog trashConfirm;
private ConfirmableAjaxBorder trashBorder;
+ private final Long roomId;
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);
@@ -103,7 +105,6 @@ public abstract class FileTreePanel exte
super.onConfigure(behavior);
behavior.setOption("hoverClass", Options.asString("ui-state-hover trash-toolbar-hover"));
behavior.setOption("accept", Options.asString(".recorditem, .fileitem"));
- behavior.setOption("drop", "function(event, ui) {$(this).append(ui.helper.children());}");
}
@Override
@@ -141,7 +142,12 @@ public abstract class FileTreePanel exte
public void onDrop(AjaxRequestTarget target, Component component) {
Object o = component.getDefaultModelObject();
if (o instanceof FileItem) {
- delete((FileItem)o, target);
+ FileItem f = (FileItem)o;
+ if (isSelected(f)) {
+ deleteAll(target);
+ } else {
+ delete(f, target);
+ }
}
}
};
@@ -178,9 +184,7 @@ public abstract class FileTreePanel exte
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
- for (Entry<String, FileItem> e : selected.entrySet()) {
- delete(e.getValue(), target);
- }
+ deleteAll(target);
}
});
@@ -198,6 +202,13 @@ public abstract class FileTreePanel exte
return new WebMarkupContainer(id).setVisible(false);
}
+ private void deleteAll(AjaxRequestTarget target) {
+ for (Entry<String, FileItem> e : selected.entrySet()) {
+ delete(e.getValue(), target);
+ }
+ selected.clear();
+ }
+
void delete(FileItem f, IPartialPageRequestHandler handler) {
Long id = f.getId();
if (id != null) {
@@ -241,8 +252,8 @@ public abstract class FileTreePanel exte
return selected.containsKey(f.getHash());
}
- public int selectedCount() {
- return selected.size();
+ public Map<String, FileItem> getSelected() {
+ return selected;
}
public FileItem getLastSelected() {
@@ -270,7 +281,7 @@ public abstract class FileTreePanel exte
}
}
- private static boolean sameParent(FileItem f1, FileItem f2) {
+ private static boolean sameParent(Long roomId, FileItem f1, FileItem f2) {
if (f1 instanceof Recording && f2 instanceof FileExplorerItem) {
return false;
}
@@ -284,7 +295,7 @@ public abstract class FileTreePanel exte
if (f1.getRoomId() != null && f1.getRoomId().equals(f2.getRoomId())) {
return true;
}
- if (f1.getRoomId() == null && f2.getRoomId() == null && f1.getOwnerId() == null && f2.getOwnerId() == null) {
+ if (f2 instanceof FileExplorerItem && roomId != null && f1.getRoomId() == null && f2.getRoomId() == null && f1.getOwnerId() == null && f2.getOwnerId() == null) {
return true;
}
}
@@ -300,7 +311,7 @@ public abstract class FileTreePanel exte
selected.put(fi.getHash(), fi);
}
lastSelected = fi;
- } else if (shift && lastSelected != null && !lastSelected.getHash().equals(fi.getHash()) && sameParent(fi, lastSelected)) {
+ } else if (shift && lastSelected != null && !lastSelected.getHash().equals(fi.getHash()) && sameParent(roomId, fi, lastSelected)) {
selected.clear();
String lastHash = null;
for (FileItem f : ((OmTreeProvider)tree.getProvider()).getByParent(fi, fi.getParentId())) {
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=1779496&r1=1779495&r2=1779496&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 Thu Jan 19 16:54:11 2017
@@ -20,6 +20,8 @@ package org.apache.openmeetings.web.comm
import static org.apache.openmeetings.web.app.Application.getBean;
+import java.util.Map.Entry;
+
import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
@@ -58,7 +60,6 @@ public class FolderPanel extends Panel {
super.onConfigure(behavior);
behavior.setOption("hoverClass", Options.asString("ui-state-hover"));
behavior.setOption("accept", Options.asString(getDefaultModelObject() instanceof Recording ? ".recorditem" : ".fileitem"));
- behavior.setOption("drop", "function(event, ui) {$(this).append(ui.helper.children());}");
}
@Override
@@ -67,23 +68,12 @@ public class FolderPanel extends Panel {
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 != null && pid.equals(f.getId())) {
- return;
- }
- f.setParentId(pid);
- f.setOwnerId(p.getOwnerId());
- f.setRoomId(p.getRoomId());
- if (f instanceof Recording) {
- Recording r = (Recording)f;
- r.setGroupId(((Recording)p).getGroupId());
- getBean(RecordingDao.class).update(r);
+ if (treePanel.isSelected(f)) {
+ moveAll(treePanel, target, p);
} else {
- getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
+ move(treePanel, target, p, f);
}
treePanel.updateNode(target, p);
- treePanel.updateNode(target, f);
}
target.add(treePanel.trees);
}
@@ -131,4 +121,29 @@ public class FolderPanel extends Panel {
});
add(drop.add(drag).setOutputMarkupId(true));
}
+
+ private void moveAll(final FileTreePanel treePanel, AjaxRequestTarget target, FileItem p) {
+ for (Entry<String, FileItem> e : treePanel.getSelected().entrySet()) {
+ move(treePanel, target, p, e.getValue());
+ }
+ }
+
+ private void move(final FileTreePanel treePanel, AjaxRequestTarget target, FileItem p, FileItem f) {
+ Long pid = p.getId();
+ //FIXME parent should not be moved to child !!!!!!!
+ if (pid != null && pid.equals(f.getId())) {
+ return;
+ }
+ f.setParentId(pid);
+ f.setOwnerId(p.getOwnerId());
+ f.setRoomId(p.getRoomId());
+ if (f instanceof Recording) {
+ Recording r = (Recording)f;
+ r.setGroupId(((Recording)p).getGroupId());
+ getBean(RecordingDao.class).update(r);
+ } else {
+ getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
+ }
+ treePanel.updateNode(target, f);
+ }
}
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=1779496&r1=1779495&r2=1779496&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 Thu Jan 19 16:54:11 2017
@@ -126,10 +126,10 @@ public class OmTreeProvider implements I
FileExplorerItemDao dao = getBean(FileExplorerItemDao.class);
List<FileExplorerItem> _list;
if (id == null) {
- if (roomId == null) {
- _list = dao.getByRoom(roomId);
- } else {
+ if (node.getRoomId() == null) {
_list = dao.getByOwner(node.getOwnerId());
+ } else {
+ _list = dao.getByRoom(node.getRoomId());
}
} else {
_list = dao.getByParent(id);
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1779496&r1=1779495&r2=1779496&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Thu Jan 19 16:54:11 2017
@@ -31,6 +31,7 @@ import static org.apache.wicket.ajax.att
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Calendar;
+import java.util.Map.Entry;
import java.util.UUID;
import org.apache.directory.api.util.Strings;
@@ -174,14 +175,20 @@ public class RoomPanel extends BasePanel
super.onConfigure(behavior);
behavior.setOption("hoverClass", Options.asString("ui-state-hover"));
behavior.setOption("accept", Options.asString(".recorditem, .fileitem"));
- behavior.setOption("drop", "function(event, ui) {$(this).append(ui.helper.children());}");
}
@Override
public void onDrop(AjaxRequestTarget target, Component component) {
Object o = component.getDefaultModelObject();
if (activeWbId > -1 && o instanceof FileItem) {
- sendFileToWb((FileItem)o, false);
+ FileItem f = (FileItem)o;
+ if (sidebar.getFilesPanel().isSelected(f)) {
+ for (Entry<String, FileItem> e : sidebar.getFilesPanel().getSelected().entrySet()) {
+ sendFileToWb(e.getValue(), false);
+ }
+ } else {
+ sendFileToWb(f, false);
+ }
}
}
};
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=1779496&r1=1779495&r2=1779496&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 Thu Jan 19 16:54:11 2017
@@ -365,6 +365,10 @@ public class RoomSidebar extends Panel {
roomFiles.update(handler);
}
+ public RoomFilePanel getFilesPanel() {
+ return roomFiles;
+ }
+
public boolean isShowFiles() {
return showFiles;
}
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java?rev=1779496&r1=1779495&r2=1779496&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java Thu Jan 19 16:54:11 2017
@@ -41,7 +41,7 @@ import org.springframework.transaction.a
/**
* @author sebastianwagner
- *
+ *
*/
@Transactional
public class FileExplorerItemDao {
@@ -95,10 +95,7 @@ public class FileExplorerItemDao {
public List<FileExplorerItem> getByRoom(Long roomId) {
log.debug("getFileExplorerItemsByRoom roomId :: " + roomId);
- TypedQuery<FileExplorerItem> query = em.createNamedQuery("getFilesByRoom", FileExplorerItem.class);
- query.setParameter("roomId", roomId);
-
- return query.getResultList();
+ return em.createNamedQuery("getFilesByRoom", FileExplorerItem.class).setParameter("roomId", roomId).getResultList();
}
public List<FileExplorerItem> getByOwner(Long ownerId) {
@@ -272,7 +269,7 @@ public class FileExplorerItemDao {
}
return size;
}
-
+
public long getSize(FileExplorerItem f) {
long size = 0;
try {
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java?rev=1779496&r1=1779495&r2=1779496&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java Thu Jan 19 16:54:11 2017
@@ -40,7 +40,7 @@ public class DownloadMenuItem extends Me
@Override
public boolean isEnabled() {
File f = null;
- if (tree.selectedCount() == 1) {
+ if (tree.getSelected().size() == 1) {
f = tree.getLastSelected().getFile(ext);
}
return f != null && f.exists();
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=1779496&r1=1779495&r2=1779496&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 Thu Jan 19 16:54:11 2017
@@ -79,9 +79,11 @@ public abstract class FileTreePanel exte
private final AddFolderDialog addFolder;
private final ConfirmableBorderDialog trashConfirm;
private ConfirmableAjaxBorder trashBorder;
+ private final Long roomId;
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);
@@ -103,7 +105,6 @@ public abstract class FileTreePanel exte
super.onConfigure(behavior);
behavior.setOption("hoverClass", Options.asString("ui-state-hover trash-toolbar-hover"));
behavior.setOption("accept", Options.asString(".recorditem, .fileitem"));
- behavior.setOption("drop", "function(event, ui) {$(this).append(ui.helper.children());}");
}
@Override
@@ -141,7 +142,12 @@ public abstract class FileTreePanel exte
public void onDrop(AjaxRequestTarget target, Component component) {
Object o = component.getDefaultModelObject();
if (o instanceof FileItem) {
- delete((FileItem)o, target);
+ FileItem f = (FileItem)o;
+ if (isSelected(f)) {
+ deleteAll(target);
+ } else {
+ delete(f, target);
+ }
}
}
};
@@ -178,9 +184,7 @@ public abstract class FileTreePanel exte
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
- for (Entry<String, FileItem> e : selected.entrySet()) {
- delete(e.getValue(), target);
- }
+ deleteAll(target);
}
});
@@ -198,6 +202,13 @@ public abstract class FileTreePanel exte
return new WebMarkupContainer(id).setVisible(false);
}
+ private void deleteAll(AjaxRequestTarget target) {
+ for (Entry<String, FileItem> e : selected.entrySet()) {
+ delete(e.getValue(), target);
+ }
+ selected.clear();
+ }
+
void delete(FileItem f, IPartialPageRequestHandler handler) {
Long id = f.getId();
if (id != null) {
@@ -241,8 +252,8 @@ public abstract class FileTreePanel exte
return selected.containsKey(f.getHash());
}
- public int selectedCount() {
- return selected.size();
+ public Map<String, FileItem> getSelected() {
+ return selected;
}
public FileItem getLastSelected() {
@@ -270,7 +281,7 @@ public abstract class FileTreePanel exte
}
}
- private static boolean sameParent(FileItem f1, FileItem f2) {
+ private static boolean sameParent(Long roomId, FileItem f1, FileItem f2) {
if (f1 instanceof Recording && f2 instanceof FileExplorerItem) {
return false;
}
@@ -284,7 +295,7 @@ public abstract class FileTreePanel exte
if (f1.getRoomId() != null && f1.getRoomId().equals(f2.getRoomId())) {
return true;
}
- if (f1.getRoomId() == null && f2.getRoomId() == null && f1.getOwnerId() == null && f2.getOwnerId() == null) {
+ if (f2 instanceof FileExplorerItem && roomId != null && f1.getRoomId() == null && f2.getRoomId() == null && f1.getOwnerId() == null && f2.getOwnerId() == null) {
return true;
}
}
@@ -300,7 +311,7 @@ public abstract class FileTreePanel exte
selected.put(fi.getHash(), fi);
}
lastSelected = fi;
- } else if (shift && lastSelected != null && !lastSelected.getHash().equals(fi.getHash()) && sameParent(fi, lastSelected)) {
+ } else if (shift && lastSelected != null && !lastSelected.getHash().equals(fi.getHash()) && sameParent(roomId, fi, lastSelected)) {
selected.clear();
String lastHash = null;
for (FileItem f : ((OmTreeProvider)tree.getProvider()).getByParent(fi, fi.getParentId())) {
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=1779496&r1=1779495&r2=1779496&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 Thu Jan 19 16:54:11 2017
@@ -20,6 +20,8 @@ package org.apache.openmeetings.web.comm
import static org.apache.openmeetings.web.app.Application.getBean;
+import java.util.Map.Entry;
+
import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
@@ -58,7 +60,6 @@ public class FolderPanel extends Panel {
super.onConfigure(behavior);
behavior.setOption("hoverClass", Options.asString("ui-state-hover"));
behavior.setOption("accept", Options.asString(getDefaultModelObject() instanceof Recording ? ".recorditem" : ".fileitem"));
- behavior.setOption("drop", "function(event, ui) {$(this).append(ui.helper.children());}");
}
@Override
@@ -67,23 +68,12 @@ public class FolderPanel extends Panel {
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 != null && pid.equals(f.getId())) {
- return;
- }
- f.setParentId(pid);
- f.setOwnerId(p.getOwnerId());
- f.setRoomId(p.getRoomId());
- if (f instanceof Recording) {
- Recording r = (Recording)f;
- r.setGroupId(((Recording)p).getGroupId());
- getBean(RecordingDao.class).update(r);
+ if (treePanel.isSelected(f)) {
+ moveAll(treePanel, target, p);
} else {
- getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
+ move(treePanel, target, p, f);
}
treePanel.updateNode(target, p);
- treePanel.updateNode(target, f);
}
target.add(treePanel.trees);
}
@@ -131,4 +121,29 @@ public class FolderPanel extends Panel {
});
add(drop.add(drag).setOutputMarkupId(true));
}
+
+ private void moveAll(final FileTreePanel treePanel, AjaxRequestTarget target, FileItem p) {
+ for (Entry<String, FileItem> e : treePanel.getSelected().entrySet()) {
+ move(treePanel, target, p, e.getValue());
+ }
+ }
+
+ private void move(final FileTreePanel treePanel, AjaxRequestTarget target, FileItem p, FileItem f) {
+ Long pid = p.getId();
+ //FIXME parent should not be moved to child !!!!!!!
+ if (pid != null && pid.equals(f.getId())) {
+ return;
+ }
+ f.setParentId(pid);
+ f.setOwnerId(p.getOwnerId());
+ f.setRoomId(p.getRoomId());
+ if (f instanceof Recording) {
+ Recording r = (Recording)f;
+ r.setGroupId(((Recording)p).getGroupId());
+ getBean(RecordingDao.class).update(r);
+ } else {
+ getBean(FileExplorerItemDao.class).update((FileExplorerItem)f);
+ }
+ treePanel.updateNode(target, f);
+ }
}
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=1779496&r1=1779495&r2=1779496&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 Thu Jan 19 16:54:11 2017
@@ -126,10 +126,10 @@ public class OmTreeProvider implements I
FileExplorerItemDao dao = getBean(FileExplorerItemDao.class);
List<FileExplorerItem> _list;
if (id == null) {
- if (roomId == null) {
- _list = dao.getByRoom(roomId);
- } else {
+ if (node.getRoomId() == null) {
_list = dao.getByOwner(node.getOwnerId());
+ } else {
+ _list = dao.getByRoom(node.getRoomId());
}
} else {
_list = dao.getByParent(id);
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1779496&r1=1779495&r2=1779496&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Thu Jan 19 16:54:11 2017
@@ -29,6 +29,7 @@ import static org.apache.openmeetings.we
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Calendar;
+import java.util.Map.Entry;
import java.util.UUID;
import org.apache.directory.api.util.Strings;
@@ -175,14 +176,20 @@ public class RoomPanel extends BasePanel
super.onConfigure(behavior);
behavior.setOption("hoverClass", Options.asString("ui-state-hover"));
behavior.setOption("accept", Options.asString(".recorditem, .fileitem"));
- behavior.setOption("drop", "function(event, ui) {$(this).append(ui.helper.children());}");
}
@Override
public void onDrop(AjaxRequestTarget target, Component component) {
Object o = component.getDefaultModelObject();
if (activeWbId > -1 && o instanceof FileItem) {
- sendFileToWb((FileItem)o, false);
+ FileItem f = (FileItem)o;
+ if (sidebar.getFilesPanel().isSelected(f)) {
+ for (Entry<String, FileItem> e : sidebar.getFilesPanel().getSelected().entrySet()) {
+ sendFileToWb(e.getValue(), false);
+ }
+ } else {
+ sendFileToWb(f, false);
+ }
}
}
};
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=1779496&r1=1779495&r2=1779496&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 Thu Jan 19 16:54:11 2017
@@ -365,6 +365,10 @@ public class RoomSidebar extends Panel {
roomFiles.update(handler);
}
+ public RoomFilePanel getFilesPanel() {
+ return roomFiles;
+ }
+
public boolean isShowFiles() {
return showFiles;
}