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