1 package com.dotmarketing.portlets.folders.action; 2 3 import java.util.ArrayList ; 4 import java.util.Iterator ; 5 import javax.portlet.ActionRequest; 6 import javax.portlet.ActionResponse; 7 import javax.portlet.PortletConfig; 8 import org.apache.struts.action.ActionForm; 9 import org.apache.struts.action.ActionMapping; 10 import com.dotmarketing.beans.Inode; 11 import com.dotmarketing.beans.WebAsset; 12 import com.dotmarketing.factories.InodeFactory; 13 import com.dotmarketing.menubuilders.RefreshMenus; 14 import com.dotmarketing.portal.struts.DotPortletAction; 15 import com.dotmarketing.portlets.folders.factories.FolderFactory; 16 import com.dotmarketing.portlets.folders.model.Folder; 17 import com.dotmarketing.util.Config; 18 import com.dotmarketing.util.WebKeys; 19 import com.liferay.portal.struts.ActionException; 20 import com.liferay.util.servlet.SessionMessages; 21 22 25 26 public class OrderMenuAction extends DotPortletAction { 27 28 public static boolean debug = false; 29 30 public void processAction( 31 ActionMapping mapping, ActionForm form, PortletConfig config, 32 ActionRequest req, ActionResponse res) 33 throws Exception { 34 35 try { 36 String cmd = req.getParameter("cmd"); 37 38 if (((cmd != null) && cmd.equals("generatemenu"))) { 39 RefreshMenus.deleteMenus(); 41 _sendToReferral(req,res,req.getParameter("referer")); 42 return; 43 } 44 if (((cmd != null) && cmd.equals(com.dotmarketing.util.Constants.REORDER))) { 45 _orderMenuItems(req,res,config,form); 47 } 48 _getMenuItems(req,res,config,form); 49 setForward(req,"portlet.ext.folders.order_menu"); 50 51 } catch (ActionException ae) { 52 _handleException(ae,req); 53 } 54 55 } 56 57 private void _getMenuItems(ActionRequest req, ActionResponse res,PortletConfig config,ActionForm form) 58 throws Exception { 59 60 String path = req.getParameter("path"); 61 String hostId = req.getParameter("hostId"); 62 63 if (!path.equals("/")) { 65 66 Folder folder = FolderFactory.getFolderByPath(path, Long.parseLong(hostId)); 67 68 java.util.List itemsList = FolderFactory.getMenuItems(folder); 70 71 req.setAttribute(WebKeys.MENU_ITEMS,itemsList); 72 req.setAttribute(WebKeys.MENU_MAIN_FOLDER,folder); 73 } 74 else { 75 String condition = "show_on_menu = " + com.dotmarketing.db.DbConnectionFactory.getDBTrue(); 76 java.util.List itemsList = FolderFactory.getFoldersByParentAndCondition(Long.parseLong(hostId),condition); 77 req.setAttribute(WebKeys.MENU_ITEMS,itemsList); 78 } 79 } 80 81 private void _orderMenuItems(ActionRequest req, ActionResponse res,PortletConfig config,ActionForm form) 82 throws Exception { 83 84 String itemInode = req.getParameter("item"); 86 87 Folder folder = (Folder) InodeFactory.getInode(req.getParameter("folderParent"),Folder.class); 89 90 java.util.List itemsList = new ArrayList (); 91 92 if (folder.getInode()!=0) { 93 itemsList = FolderFactory.getMenuItems(folder); 95 } 96 else { 97 String condition = "show_on_menu = " + com.dotmarketing.db.DbConnectionFactory.getDBTrue(); 99 String hostId = req.getParameter("hostId"); 100 itemsList = FolderFactory.getFoldersByParentAndCondition(Long.parseLong(hostId),condition); 101 } 102 103 int increment = 0; 104 105 if (req.getParameter("move").equals("up")) { 106 increment = -3; 108 } 109 else { 110 increment = 3; 112 } 113 114 Iterator i = itemsList.iterator(); 115 int x = 0; 116 while (i.hasNext()) { 117 118 Inode item = (Inode) i.next(); 119 120 121 if (item.getInode() == Integer.parseInt(itemInode)) { 122 if (item instanceof Folder) { 124 ((Folder)item).setSortOrder(x + increment); 125 } 126 else { 127 ((WebAsset)item).setSortOrder(x + increment); 128 } 129 } 130 else { 131 if (item instanceof Folder) { 133 ((Folder)item).setSortOrder(x); 134 } 135 else { 136 ((WebAsset)item).setSortOrder(x); 137 } 138 } 139 x = x + 2; 140 } 141 142 SessionMessages.add(req, "message", "message.menu.reordered"); 143 144 } 145 146 } 147 | Popular Tags |