Author: solomax Date: Mon Feb 17 19:56:20 2014 New Revision: 1569100 URL: http://svn.apache.org/r1569100 Log: [OPENMEETINGS-924] drag-n-drop into trash is added
Modified: openmeetings/branches/3.0.x/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.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 openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java Modified: openmeetings/branches/3.0.x/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/branches/3.0.x/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java (original) +++ openmeetings/branches/3.0.x/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java Mon Feb 17 19:56:20 2014 @@ -175,7 +175,7 @@ public class RoomWebService { Long user_level = userManager.getUserLevelByID(users_id); if (AuthLevelUtil.checkWebServiceLevel(user_level)) { - return flvRecordingDao.deleteFlvRecording(flvRecordingId); + return flvRecordingDao.delete(flvRecordingId); } } catch (Exception err) { Modified: openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java (original) +++ openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java Mon Feb 17 19:56:20 2014 @@ -181,69 +181,12 @@ public class FlvRecordingDao { return null; } - public List<FlvRecording> getFlvRecordingsPublic() { - try { - - String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted = false " - + "AND (c.ownerId IS NULL OR c.ownerId = 0) " - + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) " - + "ORDER BY c.folder DESC, c.fileName "; - - TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class); - - List<FlvRecording> flvRecordingList = query.getResultList(); - return flvRecordingList; - } catch (Exception ex2) { - log.error("[getFlvRecordingsPublic]: ", ex2); - } - return null; - } - public List<FlvRecording> getFlvRecordingRootByPublic(Long organization_id) { return em.createNamedQuery("getRecordingsByOrganization", FlvRecording.class).setParameter("organization_id", organization_id).getResultList(); } public List<FlvRecording> getFlvRecordingRootByOwner(Long ownerId) { - try { - - String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted " + "AND c.ownerId = :ownerId " - + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) " - + "ORDER BY c.folder DESC, c.fileName "; - - TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class); - query.setParameter("deleted", true); - query.setParameter("ownerId", ownerId); - - List<FlvRecording> flvRecordingList = query.getResultList(); - - return flvRecordingList; - } catch (Exception ex2) { - log.error("[getFlvRecordingByOwner]: ", ex2); - } - return null; - } - - public List<FlvRecording> getFlvRecordingByOwner(Long ownerId, Long parentFileExplorerItemId) { - try { - - String hql = "SELECT c FROM FlvRecording c " - + "WHERE c.deleted <> :deleted " - + "AND c.ownerId = :ownerId " - + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = :parentFileExplorerItemId)" - + "ORDER BY c.folder DESC, c.fileName "; - - TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class); - query.setParameter("deleted", true); - query.setParameter("ownerId", ownerId); - query.setParameter("parentFileExplorerItemId", parentFileExplorerItemId); - - List<FlvRecording> flvRecordingList = query.getResultList(); - - return flvRecordingList; - } catch (Exception ex2) { - log.error("[getFlvRecordingByOwner]: ", ex2); - } - return null; + return em.createNamedQuery("getRecordingsByOwner", FlvRecording.class).setParameter("ownerId", ownerId).getResultList(); } public List<FlvRecording> getFlvRecordingByRoomId(Long room_id) { @@ -285,44 +228,6 @@ public class FlvRecordingDao { return null; } - public Long addFlvFolderRecording(String fileHash, String fileName, Long fileSize, Long user_id, Long room_id, - Date recordStart, Date recordEnd, Long ownerId, String comment, Long parentFileExplorerItemId, - Long organization_id) { - try { - - FlvRecording flvRecording = new FlvRecording(); - - flvRecording.setParentFileExplorerItemId(parentFileExplorerItemId); - - flvRecording.setDeleted(false); - flvRecording.setFileHash(fileHash); - flvRecording.setFileName(fileName); - flvRecording.setFileSize(fileSize); - flvRecording.setInserted(new Date()); - flvRecording.setInsertedBy(user_id); - flvRecording.setFolder(true); - flvRecording.setIsImage(false); - flvRecording.setIsPresentation(false); - flvRecording.setIsRecording(true); - flvRecording.setComment(comment); - flvRecording.setOrganization_id(organization_id); - - flvRecording.setRoom_id(room_id); - flvRecording.setRecordStart(recordStart); - flvRecording.setRecordEnd(recordEnd); - - flvRecording.setOwnerId(ownerId); - - flvRecording = em.merge(flvRecording); - Long flvRecordingId = flvRecording.getFlvRecordingId(); - - return flvRecordingId; - } catch (Exception ex2) { - log.error("[addFlvRecording]: ", ex2); - } - return null; - } - public Long addFlvRecording(String fileHash, String fileName, Long fileSize, Long user_id, Long room_id, Date recordStart, Date recordEnd, Long ownerId, String comment, String recorderStreamId, Integer width, Integer height, Boolean isInterview) { @@ -334,7 +239,6 @@ public class FlvRecordingDao { flvRecording.setFileHash(fileHash); flvRecording.setFileName(fileName); flvRecording.setFileSize(fileSize); - flvRecording.setInserted(new Date()); flvRecording.setInsertedBy(user_id); flvRecording.setFolder(false); flvRecording.setIsImage(false); @@ -352,49 +256,14 @@ public class FlvRecordingDao { flvRecording.setOwnerId(ownerId); - flvRecording = em.merge(flvRecording); - Long flvRecordingId = flvRecording.getFlvRecordingId(); - - return flvRecordingId; - } catch (Exception ex2) { - log.error("[addFlvRecording]: ", ex2); - } - return null; - } - - public Long addFlvRecordingObj(FlvRecording flvRecording) { - try { - - flvRecording = em.merge(flvRecording); - Long flvRecordingId = flvRecording.getFlvRecordingId(); - - return flvRecordingId; + flvRecording = update(flvRecording); + return flvRecording.getFlvRecordingId(); } catch (Exception ex2) { log.error("[addFlvRecording]: ", ex2); } return null; } - public void updateFlvRecordingOrganization(Long flvRecordingId, Long organization_id) { - try { - - FlvRecording fId = get(flvRecordingId); - - fId.setOrganization_id(organization_id); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - - } catch (Exception ex2) { - log.error("[deleteFileExplorerItem]: ", ex2); - } - } - public void updateFlvRecordingEndTime(Long flvRecordingId, Date recordEnd, Long organization_id) { try { @@ -404,34 +273,7 @@ public class FlvRecordingDao { fId.setRecordEnd(recordEnd); fId.setOrganization_id(organization_id); - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - - } catch (Exception ex2) { - log.error("[deleteFileExplorerItem]: ", ex2); - } - } - - public void updateFlvRecordingProgress(Long flvRecordingId, Integer progress) { - try { - - FlvRecording fId = get(flvRecordingId); - - fId.setProgressPostProcessing(progress); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - + update(fId); } catch (Exception ex2) { log.error("[deleteFileExplorerItem]: ", ex2); } @@ -440,114 +282,45 @@ public class FlvRecordingDao { /** * @param fileExplorerItemId */ - public boolean deleteFlvRecording(Long flvRecordingId) { + public boolean delete(Long flvRecordingId) { try { - FlvRecording fId = get(flvRecordingId); - - if (fId == null) { - return false; - } - - fId.setDeleted(true); - fId.setUpdated(new Date()); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - - return true; - + FlvRecording f = get(flvRecordingId); + return delete(f); } catch (Exception ex2) { - log.error("[deleteFileExplorerItem]: ", ex2); + log.error("[delete]: ", ex2); } return false; } - /** - * @param fileExplorerItemId - * @param fileName - */ - public void updateFileOrFolderName(Long flvRecordingId, String fileName) { - try { - - FlvRecording fId = get(flvRecordingId); - - fId.setFileName(fileName); - fId.setUpdated(new Date()); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - - } catch (Exception ex2) { - log.error("[updateFileOrFolderName]: ", ex2); - } + public boolean delete(FlvRecording f) { + if (f == null || f.getFlvRecordingId() == 0) { + return false; + } + f.setDeleted(true); + update(f); + return true; } - - public void update(FlvRecording fId) { + + public FlvRecording update(FlvRecording f) { try { - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); + if (f.getFlvRecordingId() == 0) { + f.setInserted(new Date()); + em.persist(f); } else { - if (!em.contains(fId)) { - em.merge(fId); + f.setUpdated(new Date()); + if (!em.contains(f)) { + f = em.merge(f); } } } catch (Exception ex2) { - log.error("[updateFileOrFolderName]: ", ex2); + log.error("[update]: ", ex2); } + return f; } - /** - * @param fileExplorerItemId - * @param newParentFileExplorerItemId - * @param isOwner - */ - public void moveFile(Long flvRecordingId, Long parentFileExplorerItemId, Boolean isOwner, Long ownerId) { - try { - - FlvRecording fId = get(flvRecordingId); - - fId.setParentFileExplorerItemId(parentFileExplorerItemId); - - if (parentFileExplorerItemId == 0) { - if (isOwner) { - // move to personal Folder - fId.setOwnerId(ownerId); - } else { - // move to public room folder - fId.setOwnerId(null); - } - } else { - fId.setOwnerId(null); - } - - fId.setUpdated(new Date()); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - } catch (Exception ex2) { - log.error("[moveFile]: ", ex2); - } - } - public RecordingContainerData getRecordingContainerData(long userId) { try { RecordingContainerData containerData = new RecordingContainerData(); Modified: openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java (original) +++ openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java Mon Feb 17 19:56:20 2014 @@ -67,7 +67,10 @@ import org.simpleframework.xml.Root; + "AND c.deleted = false") , @NamedQuery(name = "getRecordingsByOrganization", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL " + "AND f.organization_id = :organization_id AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) " - + "ORDER BY f.folder DESC, f.fileName") + + "ORDER BY f.folder DESC, f.fileName") + , @NamedQuery(name = "getRecordingsByOwner", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId = :ownerId " + + "AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) " + + "ORDER BY f.folder DESC, f.fileName ") }) @Table(name = "flvrecording") @Root(name = "flvrecording") Modified: openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java (original) +++ openmeetings/branches/3.0.x/src/install/java/org/apache/openmeetings/backup/BackupImport.java Mon Feb 17 19:56:20 2014 @@ -488,7 +488,7 @@ public class BackupImport { meta.setFlvRecording(fr); } } - flvRecordingDao.addFlvRecordingObj(fr); + flvRecordingDao.update(fr); } } 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=1569100&r1=1569099&r2=1569100&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 Mon Feb 17 19:56:20 2014 @@ -26,7 +26,7 @@ <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> + <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> <div class="clear"></div> </div> <div wicket:id="tree-container" class="trees"> 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=1569100&r1=1569099&r2=1569100&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 Mon Feb 17 19:56:20 2014 @@ -117,18 +117,29 @@ public class RecordingsPanel extends Use target.add(trees); //FIXME add correct refresh } })); - add(new ConfirmableAjaxLink("trash", 713) { + ConfirmableAjaxLink trash = new ConfirmableAjaxLink("trash", 713) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { long id = rm.getObject().getFlvRecordingId(); if (id > 0) { - getBean(FlvRecordingDao.class).deleteFlvRecording(id); + getBean(FlvRecordingDao.class).delete(rm.getObject()); } target.add(trees); //FIXME add correct refresh } - }); + }; + 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 { + FlvRecording r = transfer.getData(); + getBean(FlvRecordingDao.class).delete(r); + target.add(trees); //FIXME add correct refresh + } + }.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())); for (Organisation_Users ou : getBean(UserDao.class).get(getUserId()).getOrganisation_users()) { Modified: openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java (original) +++ openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java Mon Feb 17 19:56:20 2014 @@ -175,7 +175,7 @@ public class RoomWebService { Long user_level = userManager.getUserLevelByID(users_id); if (AuthLevelUtil.checkWebServiceLevel(user_level)) { - return flvRecordingDao.deleteFlvRecording(flvRecordingId); + return flvRecordingDao.delete(flvRecordingId); } } catch (Exception err) { Modified: openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java (original) +++ openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java Mon Feb 17 19:56:20 2014 @@ -181,69 +181,12 @@ public class FlvRecordingDao { return null; } - public List<FlvRecording> getFlvRecordingsPublic() { - try { - - String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted = false " - + "AND (c.ownerId IS NULL OR c.ownerId = 0) " - + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) " - + "ORDER BY c.folder DESC, c.fileName "; - - TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class); - - List<FlvRecording> flvRecordingList = query.getResultList(); - return flvRecordingList; - } catch (Exception ex2) { - log.error("[getFlvRecordingsPublic]: ", ex2); - } - return null; - } - public List<FlvRecording> getFlvRecordingRootByPublic(Long organization_id) { return em.createNamedQuery("getRecordingsByOrganization", FlvRecording.class).setParameter("organization_id", organization_id).getResultList(); } public List<FlvRecording> getFlvRecordingRootByOwner(Long ownerId) { - try { - - String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted " + "AND c.ownerId = :ownerId " - + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = 0) " - + "ORDER BY c.folder DESC, c.fileName "; - - TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class); - query.setParameter("deleted", true); - query.setParameter("ownerId", ownerId); - - List<FlvRecording> flvRecordingList = query.getResultList(); - - return flvRecordingList; - } catch (Exception ex2) { - log.error("[getFlvRecordingByOwner]: ", ex2); - } - return null; - } - - public List<FlvRecording> getFlvRecordingByOwner(Long ownerId, Long parentFileExplorerItemId) { - try { - - String hql = "SELECT c FROM FlvRecording c " - + "WHERE c.deleted <> :deleted " - + "AND c.ownerId = :ownerId " - + "AND (c.parentFileExplorerItemId IS NULL OR c.parentFileExplorerItemId = :parentFileExplorerItemId)" - + "ORDER BY c.folder DESC, c.fileName "; - - TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class); - query.setParameter("deleted", true); - query.setParameter("ownerId", ownerId); - query.setParameter("parentFileExplorerItemId", parentFileExplorerItemId); - - List<FlvRecording> flvRecordingList = query.getResultList(); - - return flvRecordingList; - } catch (Exception ex2) { - log.error("[getFlvRecordingByOwner]: ", ex2); - } - return null; + return em.createNamedQuery("getRecordingsByOwner", FlvRecording.class).setParameter("ownerId", ownerId).getResultList(); } public List<FlvRecording> getFlvRecordingByRoomId(Long room_id) { @@ -285,44 +228,6 @@ public class FlvRecordingDao { return null; } - public Long addFlvFolderRecording(String fileHash, String fileName, Long fileSize, Long user_id, Long room_id, - Date recordStart, Date recordEnd, Long ownerId, String comment, Long parentFileExplorerItemId, - Long organization_id) { - try { - - FlvRecording flvRecording = new FlvRecording(); - - flvRecording.setParentFileExplorerItemId(parentFileExplorerItemId); - - flvRecording.setDeleted(false); - flvRecording.setFileHash(fileHash); - flvRecording.setFileName(fileName); - flvRecording.setFileSize(fileSize); - flvRecording.setInserted(new Date()); - flvRecording.setInsertedBy(user_id); - flvRecording.setFolder(true); - flvRecording.setIsImage(false); - flvRecording.setIsPresentation(false); - flvRecording.setIsRecording(true); - flvRecording.setComment(comment); - flvRecording.setOrganization_id(organization_id); - - flvRecording.setRoom_id(room_id); - flvRecording.setRecordStart(recordStart); - flvRecording.setRecordEnd(recordEnd); - - flvRecording.setOwnerId(ownerId); - - flvRecording = em.merge(flvRecording); - Long flvRecordingId = flvRecording.getFlvRecordingId(); - - return flvRecordingId; - } catch (Exception ex2) { - log.error("[addFlvRecording]: ", ex2); - } - return null; - } - public Long addFlvRecording(String fileHash, String fileName, Long fileSize, Long user_id, Long room_id, Date recordStart, Date recordEnd, Long ownerId, String comment, String recorderStreamId, Integer width, Integer height, Boolean isInterview) { @@ -334,7 +239,6 @@ public class FlvRecordingDao { flvRecording.setFileHash(fileHash); flvRecording.setFileName(fileName); flvRecording.setFileSize(fileSize); - flvRecording.setInserted(new Date()); flvRecording.setInsertedBy(user_id); flvRecording.setFolder(false); flvRecording.setIsImage(false); @@ -352,49 +256,14 @@ public class FlvRecordingDao { flvRecording.setOwnerId(ownerId); - flvRecording = em.merge(flvRecording); - Long flvRecordingId = flvRecording.getFlvRecordingId(); - - return flvRecordingId; - } catch (Exception ex2) { - log.error("[addFlvRecording]: ", ex2); - } - return null; - } - - public Long addFlvRecordingObj(FlvRecording flvRecording) { - try { - - flvRecording = em.merge(flvRecording); - Long flvRecordingId = flvRecording.getFlvRecordingId(); - - return flvRecordingId; + flvRecording = update(flvRecording); + return flvRecording.getFlvRecordingId(); } catch (Exception ex2) { log.error("[addFlvRecording]: ", ex2); } return null; } - public void updateFlvRecordingOrganization(Long flvRecordingId, Long organization_id) { - try { - - FlvRecording fId = get(flvRecordingId); - - fId.setOrganization_id(organization_id); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - - } catch (Exception ex2) { - log.error("[deleteFileExplorerItem]: ", ex2); - } - } - public void updateFlvRecordingEndTime(Long flvRecordingId, Date recordEnd, Long organization_id) { try { @@ -404,34 +273,7 @@ public class FlvRecordingDao { fId.setRecordEnd(recordEnd); fId.setOrganization_id(organization_id); - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - - } catch (Exception ex2) { - log.error("[deleteFileExplorerItem]: ", ex2); - } - } - - public void updateFlvRecordingProgress(Long flvRecordingId, Integer progress) { - try { - - FlvRecording fId = get(flvRecordingId); - - fId.setProgressPostProcessing(progress); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - + update(fId); } catch (Exception ex2) { log.error("[deleteFileExplorerItem]: ", ex2); } @@ -440,114 +282,45 @@ public class FlvRecordingDao { /** * @param fileExplorerItemId */ - public boolean deleteFlvRecording(Long flvRecordingId) { + public boolean delete(Long flvRecordingId) { try { - FlvRecording fId = get(flvRecordingId); - - if (fId == null) { - return false; - } - - fId.setDeleted(true); - fId.setUpdated(new Date()); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - - return true; - + FlvRecording f = get(flvRecordingId); + return delete(f); } catch (Exception ex2) { - log.error("[deleteFileExplorerItem]: ", ex2); + log.error("[delete]: ", ex2); } return false; } - /** - * @param fileExplorerItemId - * @param fileName - */ - public void updateFileOrFolderName(Long flvRecordingId, String fileName) { - try { - - FlvRecording fId = get(flvRecordingId); - - fId.setFileName(fileName); - fId.setUpdated(new Date()); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - - } catch (Exception ex2) { - log.error("[updateFileOrFolderName]: ", ex2); - } + public boolean delete(FlvRecording f) { + if (f == null || f.getFlvRecordingId() == 0) { + return false; + } + f.setDeleted(true); + update(f); + return true; } - - public void update(FlvRecording fId) { + + public FlvRecording update(FlvRecording f) { try { - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); + if (f.getFlvRecordingId() == 0) { + f.setInserted(new Date()); + em.persist(f); } else { - if (!em.contains(fId)) { - em.merge(fId); + f.setUpdated(new Date()); + if (!em.contains(f)) { + f = em.merge(f); } } } catch (Exception ex2) { - log.error("[updateFileOrFolderName]: ", ex2); + log.error("[update]: ", ex2); } + return f; } - /** - * @param fileExplorerItemId - * @param newParentFileExplorerItemId - * @param isOwner - */ - public void moveFile(Long flvRecordingId, Long parentFileExplorerItemId, Boolean isOwner, Long ownerId) { - try { - - FlvRecording fId = get(flvRecordingId); - - fId.setParentFileExplorerItemId(parentFileExplorerItemId); - - if (parentFileExplorerItemId == 0) { - if (isOwner) { - // move to personal Folder - fId.setOwnerId(ownerId); - } else { - // move to public room folder - fId.setOwnerId(null); - } - } else { - fId.setOwnerId(null); - } - - fId.setUpdated(new Date()); - - if (fId.getFlvRecordingId() == 0) { - em.persist(fId); - } else { - if (!em.contains(fId)) { - em.merge(fId); - } - } - } catch (Exception ex2) { - log.error("[moveFile]: ", ex2); - } - } - public RecordingContainerData getRecordingContainerData(long userId) { try { RecordingContainerData containerData = new RecordingContainerData(); Modified: openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java (original) +++ openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java Mon Feb 17 19:56:20 2014 @@ -67,7 +67,10 @@ import org.simpleframework.xml.Root; + "AND c.deleted = false") , @NamedQuery(name = "getRecordingsByOrganization", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL " + "AND f.organization_id = :organization_id AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) " - + "ORDER BY f.folder DESC, f.fileName") + + "ORDER BY f.folder DESC, f.fileName") + , @NamedQuery(name = "getRecordingsByOwner", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId = :ownerId " + + "AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) " + + "ORDER BY f.folder DESC, f.fileName ") }) @Table(name = "flvrecording") @Root(name = "flvrecording") Modified: openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java (original) +++ openmeetings/trunk/singlewebapp/src/install/java/org/apache/openmeetings/backup/BackupImport.java Mon Feb 17 19:56:20 2014 @@ -488,7 +488,7 @@ public class BackupImport { meta.setFlvRecording(fr); } } - flvRecordingDao.addFlvRecordingObj(fr); + flvRecordingDao.update(fr); } } Modified: openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html (original) +++ openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html Mon Feb 17 19:56:20 2014 @@ -26,7 +26,7 @@ <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> + <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> <div class="clear"></div> </div> <div wicket:id="tree-container" class="trees"> Modified: openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1569100&r1=1569099&r2=1569100&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java (original) +++ openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java Mon Feb 17 19:56:20 2014 @@ -117,18 +117,29 @@ public class RecordingsPanel extends Use target.add(trees); //FIXME add correct refresh } })); - add(new ConfirmableAjaxLink("trash", 713) { + ConfirmableAjaxLink trash = new ConfirmableAjaxLink("trash", 713) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { long id = rm.getObject().getFlvRecordingId(); if (id > 0) { - getBean(FlvRecordingDao.class).deleteFlvRecording(id); + getBean(FlvRecordingDao.class).delete(rm.getObject()); } target.add(trees); //FIXME add correct refresh } - }); + }; + 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 { + FlvRecording r = transfer.getData(); + getBean(FlvRecordingDao.class).delete(r); + target.add(trees); //FIXME add correct refresh + } + }.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())); for (Organisation_Users ou : getBean(UserDao.class).get(getUserId()).getOrganisation_users()) {