Author: fpunt
Date: 2010-08-02 16:28:02 +0200 (Mon, 02 Aug 2010)
New Revision: 43029

Modified:
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/NavigatorAction.java
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/SiteCreate.java
Log:
[CMSC-1723] Sort sites in navigation tree

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/NavigatorAction.java
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/NavigatorAction.java
        2010-08-02 14:00:36 UTC (rev 43028)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/NavigatorAction.java
        2010-08-02 14:28:02 UTC (rev 43029)
@@ -18,6 +18,7 @@
 
 import org.apache.struts.action.*;
 import org.mmbase.bridge.*;
+import org.mmbase.security.Rank;
 
 import com.finalist.cmsc.mmbase.TreeUtil;
 import com.finalist.cmsc.navigation.*;
@@ -30,14 +31,31 @@
 
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request,
-         HttpServletResponse response, Cloud cloud) throws Exception {
+               HttpServletResponse response, Cloud cloud) throws Exception {
+       
+       String doParam = request.getParameter("do");
+       if(doParam != null && doParam.equals("sortSite") && 
cloud.getUser().getRank() == Rank.ADMIN) {
+               doSiteSort(cloud, request.getParameter("id1"), 
request.getParameter("id2"));
+       }
 
-      JstlUtil.setResourceBundle(request, "cmsc-site");
+      JstlUtil.setResourceBundle(request, "cmsc-site"); 
       return super.execute(mapping, form, request, response, cloud);
    }
 
 
-   @Override
+   private void doSiteSort(Cloud cloud, String id1, String id2) {
+       Node node1 = cloud.getNode(id1); 
+               int pos1 = node1.getIntValue("pos");
+       Node node2 = cloud.getNode(id2); 
+               int pos2 = node2.getIntValue("pos");
+               node1.setIntValue("pos", pos2);
+               node1.commit();
+               node2.setIntValue("pos", pos1);
+               node2.commit();
+       }
+
+
+       @Override
    protected Node getRootNode(Cloud cloud) {
       return null;
    }

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/SiteCreate.java
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/SiteCreate.java
     2010-08-02 14:00:36 UTC (rev 43028)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/SiteCreate.java
     2010-08-02 14:28:02 UTC (rev 43029)
@@ -17,6 +17,7 @@
 import org.apache.struts.action.ActionMapping;
 import org.mmbase.bridge.Cloud;
 import org.mmbase.bridge.Node;
+import org.mmbase.bridge.NodeList;
 
 import com.finalist.cmsc.navigation.*;
 import com.finalist.cmsc.security.Role;
@@ -44,6 +45,8 @@
                                }
 
                                Node newSite = cloud.getNode(ewnodelastedited);
+                               newSite.setIntValue("pos", getMaxPos(cloud)+1);
+                               newSite.commit();
                                Node layoutNode = PagesUtil.getLayout(newSite);
                                PagesUtil.linkPortlets(newSite, layoutNode);
 
@@ -59,6 +62,16 @@
                }
        }
 
+       private int getMaxPos(Cloud cloud) {
+               NodeList list = cloud.getNodeManager("site").getList(null, 
"pos", "down");
+               if(list.size() > 0) {
+                       return list.get(0).getIntValue("pos");
+               }
+               else {
+                       return 0;
+               }
+       }
+
        @Override
        public String getRequiredRankStr() {
                return ADMINISTRATOR;

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to