Author: solomax
Date: Thu Feb 20 19:07:20 2014
New Revision: 1570307

URL: http://svn.apache.org/r1570307
Log:
[OPENMEETINGS-922] Add folder works as expected

Modified:
    
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/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.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/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java

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=1570307&r1=1570306&r2=1570307&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
 Thu Feb 20 19:07:20 2014
@@ -181,8 +181,12 @@ public class FlvRecordingDao {
                return null;
        }
 
-       public List<FlvRecording> getFlvRecordingRootByPublic(Long 
organization_id) {
-               return em.createNamedQuery("getRecordingsByOrganization", 
FlvRecording.class).setParameter("organization_id", 
organization_id).getResultList();
+       public List<FlvRecording> getFlvRecordingRootByPublic(Long orgId) {
+               TypedQuery<FlvRecording> q = em.createNamedQuery(orgId == null 
? "getRecordingsPublic" : "getRecordingsByOrganization", FlvRecording.class);
+               if (orgId != null) {
+                       q.setParameter("organization_id", orgId);
+               }
+               return q.getResultList();
        }
 
        public List<FlvRecording> getFlvRecordingRootByOwner(Long ownerId) {

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=1570307&r1=1570306&r2=1570307&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
 Thu Feb 20 19:07:20 2014
@@ -65,6 +65,9 @@ import org.simpleframework.xml.Root;
                        + "FROM FlvRecording c, User u "
                        + "WHERE c.insertedBy = u.user_id AND u.externalUserId 
= :externalUserId  AND u.externalUserType = :externalUserType "
                        + "AND c.deleted = false") 
+       , @NamedQuery(name = "getRecordingsPublic", query = "SELECT f FROM 
FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL "
+                       + "AND f.organization_id IS NULL AND 
(f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) "
+                       + "ORDER BY f.folder DESC, f.fileName")
        , @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")

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=1570307&r1=1570306&r2=1570307&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 Feb 20 19:07:20 2014
@@ -102,7 +102,7 @@ public class RecordingsPanel extends Use
                };
                add(addFolder);
                add(new WebMarkupContainer("create").add(new 
AjaxEventBehavior("onclick") {
-                       private static final long serialVersionUID = 
-110084769805785972L;
+                       private static final long serialVersionUID = 1L;
 
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
@@ -110,7 +110,7 @@ public class RecordingsPanel extends Use
                        }
                }));
                add(new WebMarkupContainer("refresh").add(new 
AjaxEventBehavior("onclick") {
-                       private static final long serialVersionUID = 
-110084769805785972L;
+                       private static final long serialVersionUID = 1L;
 
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
@@ -142,6 +142,7 @@ public class RecordingsPanel extends Use
                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)));
                for (Organisation_Users ou : 
getBean(UserDao.class).get(getUserId()).getOrganisation_users()) {
                        Organisation o = ou.getOrganisation();
                        treesView.add(new RecordingTree(treesView.newChildId(), 
new PublicRecordingTreeProvider(o.getOrganisation_id(), o.getName())));
@@ -209,14 +210,8 @@ public class RecordingsPanel extends Use
                                                                FlvRecording p 
= lm.getObject();
                                                                long pid = 
p.getFlvRecordingId();
                                                                FlvRecording r 
= transfer.getData();
-                                                               if (pid == 0) {
-                                                                       
r.setParentFileExplorerItemId(null);
-                                                               } else if (pid 
< 0) {
-                                                                       
r.setOrganization_id(-pid);
-                                                                       
r.setParentFileExplorerItemId(null);
-                                                               } else {
-                                                                       
r.setParentFileExplorerItemId(pid);
-                                                               }
+                                                               
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
@@ -315,7 +310,7 @@ public class RecordingsPanel extends Use
        }
        
        class MyRecordingTreeProvider extends RecordingTreeProvider {
-               private static final long serialVersionUID = 
-4463900798616753927L;
+               private static final long serialVersionUID = 1L;
 
                public Iterator<? extends FlvRecording> getRoots() {
                        FlvRecording r = new FlvRecording();
@@ -336,18 +331,21 @@ public class RecordingsPanel extends Use
        
        class PublicRecordingTreeProvider extends RecordingTreeProvider {
                private static final long serialVersionUID = 
5502610991599632079L;
-               private final long orgId;
+               private final Long orgId;
                private final String name;
 
-               public PublicRecordingTreeProvider(long orgId, String name) {
+               public PublicRecordingTreeProvider(Long orgId, String name) {
                        this.orgId = orgId;
                        this.name = name;
                }
                
                public Iterator<? extends FlvRecording> getRoots() {
                        FlvRecording r = new FlvRecording();
-                       r.setFlvRecordingId(-orgId);
-                       r.setFileName(String.format("%s (%s)", 
WebSession.getString(861), name));
+                       r.setFlvRecordingId(-1);
+                       r.setOrganization_id(orgId);
+                       r.setOwnerId(null);
+                       String pub = WebSession.getString(861);
+                       r.setFileName(orgId == null ? pub : String.format("%s 
(%s)", pub, name));
                        return Arrays.asList(r).iterator();
                }
                
@@ -361,7 +359,7 @@ public class RecordingsPanel extends Use
        }
        
        abstract class RecordingTreeProvider implements 
ITreeProvider<FlvRecording> {
-               private static final long serialVersionUID = 
-3149843028275612342L;
+               private static final long serialVersionUID = 1L;
 
                public void detach() {
                        // TODO LDM should be used

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=1570307&r1=1570306&r2=1570307&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
 Thu Feb 20 19:07:20 2014
@@ -181,8 +181,12 @@ public class FlvRecordingDao {
                return null;
        }
 
-       public List<FlvRecording> getFlvRecordingRootByPublic(Long 
organization_id) {
-               return em.createNamedQuery("getRecordingsByOrganization", 
FlvRecording.class).setParameter("organization_id", 
organization_id).getResultList();
+       public List<FlvRecording> getFlvRecordingRootByPublic(Long orgId) {
+               TypedQuery<FlvRecording> q = em.createNamedQuery(orgId == null 
? "getRecordingsPublic" : "getRecordingsByOrganization", FlvRecording.class);
+               if (orgId != null) {
+                       q.setParameter("organization_id", orgId);
+               }
+               return q.getResultList();
        }
 
        public List<FlvRecording> getFlvRecordingRootByOwner(Long ownerId) {

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=1570307&r1=1570306&r2=1570307&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
 Thu Feb 20 19:07:20 2014
@@ -65,6 +65,9 @@ import org.simpleframework.xml.Root;
                        + "FROM FlvRecording c, User u "
                        + "WHERE c.insertedBy = u.user_id AND u.externalUserId 
= :externalUserId  AND u.externalUserType = :externalUserType "
                        + "AND c.deleted = false") 
+       , @NamedQuery(name = "getRecordingsPublic", query = "SELECT f FROM 
FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL "
+                       + "AND f.organization_id IS NULL AND 
(f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) "
+                       + "ORDER BY f.folder DESC, f.fileName")
        , @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")

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=1570307&r1=1570306&r2=1570307&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
 Thu Feb 20 19:07:20 2014
@@ -102,7 +102,7 @@ public class RecordingsPanel extends Use
                };
                add(addFolder);
                add(new WebMarkupContainer("create").add(new 
AjaxEventBehavior("onclick") {
-                       private static final long serialVersionUID = 
-110084769805785972L;
+                       private static final long serialVersionUID = 1L;
 
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
@@ -110,7 +110,7 @@ public class RecordingsPanel extends Use
                        }
                }));
                add(new WebMarkupContainer("refresh").add(new 
AjaxEventBehavior("onclick") {
-                       private static final long serialVersionUID = 
-110084769805785972L;
+                       private static final long serialVersionUID = 1L;
 
                        @Override
                        protected void onEvent(AjaxRequestTarget target) {
@@ -142,6 +142,7 @@ public class RecordingsPanel extends Use
                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)));
                for (Organisation_Users ou : 
getBean(UserDao.class).get(getUserId()).getOrganisation_users()) {
                        Organisation o = ou.getOrganisation();
                        treesView.add(new RecordingTree(treesView.newChildId(), 
new PublicRecordingTreeProvider(o.getOrganisation_id(), o.getName())));
@@ -209,14 +210,8 @@ public class RecordingsPanel extends Use
                                                                FlvRecording p 
= lm.getObject();
                                                                long pid = 
p.getFlvRecordingId();
                                                                FlvRecording r 
= transfer.getData();
-                                                               if (pid == 0) {
-                                                                       
r.setParentFileExplorerItemId(null);
-                                                               } else if (pid 
< 0) {
-                                                                       
r.setOrganization_id(-pid);
-                                                                       
r.setParentFileExplorerItemId(null);
-                                                               } else {
-                                                                       
r.setParentFileExplorerItemId(pid);
-                                                               }
+                                                               
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
@@ -315,7 +310,7 @@ public class RecordingsPanel extends Use
        }
        
        class MyRecordingTreeProvider extends RecordingTreeProvider {
-               private static final long serialVersionUID = 
-4463900798616753927L;
+               private static final long serialVersionUID = 1L;
 
                public Iterator<? extends FlvRecording> getRoots() {
                        FlvRecording r = new FlvRecording();
@@ -336,18 +331,21 @@ public class RecordingsPanel extends Use
        
        class PublicRecordingTreeProvider extends RecordingTreeProvider {
                private static final long serialVersionUID = 
5502610991599632079L;
-               private final long orgId;
+               private final Long orgId;
                private final String name;
 
-               public PublicRecordingTreeProvider(long orgId, String name) {
+               public PublicRecordingTreeProvider(Long orgId, String name) {
                        this.orgId = orgId;
                        this.name = name;
                }
                
                public Iterator<? extends FlvRecording> getRoots() {
                        FlvRecording r = new FlvRecording();
-                       r.setFlvRecordingId(-orgId);
-                       r.setFileName(String.format("%s (%s)", 
WebSession.getString(861), name));
+                       r.setFlvRecordingId(-1);
+                       r.setOrganization_id(orgId);
+                       r.setOwnerId(null);
+                       String pub = WebSession.getString(861);
+                       r.setFileName(orgId == null ? pub : String.format("%s 
(%s)", pub, name));
                        return Arrays.asList(r).iterator();
                }
                
@@ -361,7 +359,7 @@ public class RecordingsPanel extends Use
        }
        
        abstract class RecordingTreeProvider implements 
ITreeProvider<FlvRecording> {
-               private static final long serialVersionUID = 
-3149843028275612342L;
+               private static final long serialVersionUID = 1L;
 
                public void detach() {
                        // TODO LDM should be used


Reply via email to