KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > director > action > DirectorAction


1 /**
2  * Copyright (c) 2000-2004 Liferay, LLC. All rights reserved.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20  * SOFTWARE.
21  */

22
23 package com.dotmarketing.portlets.director.action;
24
25 import java.net.URLDecoder JavaDoc;
26 import java.util.ArrayList JavaDoc;
27 import java.util.HashSet JavaDoc;
28 import java.util.Iterator JavaDoc;
29 import java.util.List JavaDoc;
30 import java.util.Set JavaDoc;
31
32 import javax.portlet.ActionRequest;
33 import javax.portlet.ActionResponse;
34 import javax.portlet.PortletConfig;
35 import javax.portlet.WindowState;
36 import javax.servlet.http.HttpServletRequest JavaDoc;
37 import javax.servlet.http.HttpSession JavaDoc;
38
39 import org.apache.struts.action.ActionForm;
40 import org.apache.struts.action.ActionMapping;
41
42 import com.dotmarketing.beans.Identifier;
43 import com.dotmarketing.beans.MultiTree;
44 import com.dotmarketing.beans.WebAsset;
45 import com.dotmarketing.cache.IdentifierCache;
46 import com.dotmarketing.factories.IdentifierFactory;
47 import com.dotmarketing.factories.InodeFactory;
48 import com.dotmarketing.factories.MultiTreeFactory;
49 import com.dotmarketing.factories.WebAssetFactory;
50 import com.dotmarketing.portal.struts.DotPortletAction;
51 import com.dotmarketing.portlets.categories.model.Category;
52 import com.dotmarketing.portlets.containers.model.Container;
53 import com.dotmarketing.portlets.contentlet.factories.ContentletFactory;
54 import com.dotmarketing.portlets.contentlet.model.Contentlet;
55 import com.dotmarketing.portlets.files.model.File;
56 import com.dotmarketing.portlets.folders.model.Folder;
57 import com.dotmarketing.portlets.htmlpages.model.HTMLPage;
58 import com.dotmarketing.portlets.links.model.Link;
59 import com.dotmarketing.portlets.templates.model.Template;
60 import com.dotmarketing.portlets.user.factories.UserPreferencesFactory;
61 import com.dotmarketing.portlets.user.model.UserPreference;
62 import com.dotmarketing.services.ContentletServices;
63 import com.dotmarketing.util.Config;
64 import com.dotmarketing.util.Logger;
65 import com.dotmarketing.util.UtilMethods;
66 import com.dotmarketing.util.WebKeys;
67 import com.liferay.portal.model.User;
68 import com.liferay.portlet.ActionRequestImpl;
69 import com.liferay.util.ParamUtil;
70
71 public class DirectorAction extends DotPortletAction {
72
73     public void processAction(
74              ActionMapping mapping, ActionForm form, PortletConfig config,
75              ActionRequest req, ActionResponse res)
76          throws Exception JavaDoc {
77
78             String JavaDoc cmd = req.getParameter("cmd");
79             String JavaDoc subcmd = ParamUtil.getString(req,"subcmd");
80             String JavaDoc referer = (req.getParameter("referer") != null) ? URLDecoder.decode(req.getParameter("referer"), "UTF-8"): "/c";
81
82             Logger.debug(DirectorAction.class, "DirectorAction :: referer=" + referer);
83
84             //wraps request to get session object
85
ActionRequestImpl reqImpl = (ActionRequestImpl)req;
86             HttpServletRequest JavaDoc httpReq = reqImpl.getHttpServletRequest();
87             //gets the session object for the messages
88
HttpSession JavaDoc session = httpReq.getSession();
89
90             Logger.debug(DirectorAction.class, "I'm inside the Director cmd = " + cmd);
91             Logger.debug(DirectorAction.class, "I'm inside the Director subcmd = " + subcmd);
92             Logger.debug(DirectorAction.class, "I'm inside the Director referer = " + referer);
93
94             //get the user
95
User user = _getUser(req);
96
97             //to order menu items
98
if (cmd!=null && cmd.equals("orderMenu")) {
99
100                 Logger.debug(DirectorAction.class, "Director :: orderMenu");
101
102                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
103                 params.put("struts_action",new String JavaDoc[] {"/ext/folders/order_menu"});
104                 params.put("path",new String JavaDoc[] { req.getParameter("path")});
105                 params.put("pagePath",new String JavaDoc[] { req.getParameter("pagePath")});
106                 if (req.getParameter("openAll")!=null) {
107                     params.put("openAll",new String JavaDoc[] { req.getParameter("openAll")});
108                 }
109                 params.put("hostId",new String JavaDoc[] { req.getParameter("hostId")});
110                 params.put("referer",new String JavaDoc[] { referer });
111
112                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
113
114                 _sendToReferral(req, res, af);
115
116                 return;
117             }
118             if (cmd!=null && cmd.equals("addWorkflow")) {
119
120                 Logger.debug(DirectorAction.class, "Director :: addWorkflow");
121
122                 HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
123
124                 Identifier identifier = IdentifierFactory.getParentIdentifier(htmlPage);
125                 //gets the current working asset
126
WebAsset workingHTMLPage = (WebAsset) IdentifierFactory.getWorkingChildOfClass(identifier,HTMLPage.class);
127
128                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
129                 params.put("struts_action",new String JavaDoc[] {"/ext/workflows/edit_workflow_task"});
130                 params.put("cmd",new String JavaDoc[] { "add" });
131                 params.put("webasset",new String JavaDoc[] { workingHTMLPage.getInode() + "" });
132                 params.put("referer",new String JavaDoc[] { referer });
133
134                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
135
136                 _sendToReferral(req, res, af);
137                 return;
138             }
139             if (cmd!=null && cmd.equals("viewWorkflow")) {
140
141                 Logger.debug(DirectorAction.class, "Director :: viewWorkflow");
142
143                 String JavaDoc taskInode = req.getParameter("taskInode");
144
145                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
146                 params.put("struts_action",new String JavaDoc[] {"/ext/workflows/edit_workflow_task"});
147                 params.put("cmd",new String JavaDoc[] { "view" });
148                 params.put("inode",new String JavaDoc[] { taskInode });
149                 params.put("referer",new String JavaDoc[] { referer });
150
151                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
152
153                 _sendToReferral(req, res, af);
154                 return;
155             }
156
157             if (cmd!=null && cmd.equals("newHTMLPage")) {
158
159                 Logger.debug(DirectorAction.class, "Director :: editHTMLPage");
160
161                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
162                 params.put("struts_action",new String JavaDoc[] {"/ext/htmlpages/edit_htmlpage"});
163                 params.put("cmd",new String JavaDoc[] { "edit" });
164                 params.put("inode",new String JavaDoc[] { "0" });
165
166                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
167
168                 _sendToReferral(req, res, af);
169                 return;
170             }
171             
172             if (cmd!=null && cmd.equals("editHTMLPage")) {
173
174                 Logger.debug(DirectorAction.class, "Director :: editHTMLPage");
175
176                 HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
177
178                 Identifier identifier = IdentifierFactory.getParentIdentifier(htmlPage);
179                 //gets the current working asset
180
WebAsset workingHTMLPage = (WebAsset) IdentifierFactory.getWorkingChildOfClass(identifier,HTMLPage.class);
181
182                 if ("unlockHTMLPage".equals(subcmd)) {
183                     WebAssetFactory.unLockAsset(workingHTMLPage);
184                 }
185
186                 if (workingHTMLPage.isLocked() && !workingHTMLPage.getModUser().equals(user.getUserId())) {
187                     req.setAttribute(WebKeys.HTMLPAGE_EDIT, workingHTMLPage);
188                     setForward(req,"portlet.ext.director.unlock_htmlpage");
189                     return;
190                 }
191                 else if (workingHTMLPage.isLocked()) {
192                     //it's locked by the same user
193
WebAssetFactory.unLockAsset(workingHTMLPage);
194                 }
195
196                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
197                 params.put("struts_action",new String JavaDoc[] {"/ext/htmlpages/edit_htmlpage"});
198                 params.put("cmd",new String JavaDoc[] { "edit" });
199                 params.put("inode",new String JavaDoc[] { workingHTMLPage.getInode() + "" });
200                 params.put("referer",new String JavaDoc[] { referer });
201
202                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
203
204                 _sendToReferral(req, res, af);
205                 return;
206             }
207             if (cmd!=null && cmd.equals("viewStatistics")) {
208
209                 Logger.debug(DirectorAction.class, "Director :: editHTMLPage");
210
211                 HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
212
213
214                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
215                 params.put("struts_action",new String JavaDoc[] {"/ext/htmlpageviews/view_htmlpage_views"});
216                 params.put("htmlpage",new String JavaDoc[] { htmlPage.getInode() + "" });
217                 params.put("referer",new String JavaDoc[] { referer });
218
219                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getRenderURL(httpReq,WindowState.MAXIMIZED.toString(),params);
220
221                 _sendToReferral(req, res, af);
222                 return;
223             }
224
225             if (cmd!=null && cmd.equals("editFile")) {
226
227                 Logger.debug(DirectorAction.class, "Director :: editFile");
228
229                 File file = (File) InodeFactory.getInode(req.getParameter("file"), File.class);
230
231                 Identifier identifier = IdentifierFactory.getParentIdentifier(file);
232                 //gets the current working asset
233
WebAsset workingFile = (WebAsset) IdentifierFactory.getWorkingChildOfClass(identifier,File.class);
234
235                 if ("unlockFile".equals(subcmd)) {
236                     WebAssetFactory.unLockAsset(workingFile);
237                 }
238
239                 if (workingFile.isLocked() && !workingFile.getModUser().equals(user.getUserId())) {
240                     req.setAttribute(WebKeys.FILE_EDIT, workingFile);
241                     setForward(req,"portlet.ext.director.unlock_file");
242                     return;
243                 }
244                 else if (workingFile.isLocked()) {
245                     //it's locked by the same user
246
WebAssetFactory.unLockAsset(workingFile);
247                 }
248
249                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
250                 params.put("struts_action",new String JavaDoc[] {"/ext/files/edit_file"});
251                 params.put("cmd",new String JavaDoc[] { "edit" });
252                 params.put("inode",new String JavaDoc[] { workingFile.getInode() + "" });
253                 params.put("referer",new String JavaDoc[] { referer });
254
255                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
256
257                 _sendToReferral(req, res, af);
258                 return;
259             }
260
261             if (cmd!=null && cmd.equals("editTemplate")) {
262
263                 Logger.debug(DirectorAction.class, "Director :: editTemplate");
264
265                 Template template = null;
266                 HTMLPage htmlPage = null;
267                 if (req.getParameter("htmlPage")!=null) {
268                     htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
269                     template = (Template) InodeFactory.getParentOfClass(htmlPage, Template.class);
270                 }
271                 else {
272                     htmlPage = new HTMLPage();
273                     template = (Template) InodeFactory.getInode(req.getParameter("template"), Template.class);
274                 }
275
276                 Identifier identifier = IdentifierFactory.getParentIdentifier(template);
277                 //gets the current working asset
278
WebAsset workingTemplate = (WebAsset) IdentifierFactory.getWorkingChildOfClass(identifier,Template.class);
279
280
281                 if ("unlockTemplate".equals(subcmd)) {
282                     WebAssetFactory.unLockAsset(workingTemplate);
283                 }
284
285                 if (workingTemplate.isLocked() && !workingTemplate.getModUser().equals(user.getUserId())) {
286                     req.setAttribute(WebKeys.HTMLPAGE_EDIT, htmlPage);
287                     req.setAttribute(WebKeys.TEMPLATE_EDIT, workingTemplate);
288                     setForward(req,"portlet.ext.director.unlock_template");
289                     return;
290                 }
291                 else if (workingTemplate.isLocked()) {
292                     //it's locked by the same user
293
WebAssetFactory.unLockAsset(workingTemplate);
294                 }
295
296                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
297                 params.put("struts_action",new String JavaDoc[] {"/ext/templates/edit_template"});
298                 params.put("cmd",new String JavaDoc[] { "edit" });
299                 params.put("inode",new String JavaDoc[] { workingTemplate.getInode() + "" });
300                 params.put("referer",new String JavaDoc[] { referer });
301
302                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
303
304                 _sendToReferral(req, res, af);
305                 return;
306             }
307
308             if (cmd!=null && cmd.equals("publishHTMLPage")) {
309
310                 Logger.debug(DirectorAction.class, "Director :: publishHTMLPage");
311
312                 HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
313
314                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
315                 params.put("struts_action",new String JavaDoc[] {"/ext/htmlpages/publish_htmlpages"});
316                 params.put("cmd",new String JavaDoc[] { "prepublish" });
317                 params.put("publishInode",new String JavaDoc[] { htmlPage.getInode() + "" });
318                 params.put("referer",new String JavaDoc[] { referer });
319
320                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
321
322                 _sendToReferral(req, res, af);
323                 return;
324             }
325
326
327             if (cmd!=null && cmd.equals("editContainer")) {
328
329                 Logger.debug(DirectorAction.class, "Director :: editContainer" + subcmd);
330
331                 Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
332
333                 Identifier identifier = IdentifierFactory.getParentIdentifier(container);
334                 //gets the current working asset
335
WebAsset workingContainer = (WebAsset) IdentifierFactory.getWorkingChildOfClass(identifier,Container.class);
336
337                 if ("unlockContainer".equals(subcmd)) {
338                     WebAssetFactory.unLockAsset(workingContainer);
339                 }
340                 if (workingContainer.isLocked() && !workingContainer.getModUser().equals(user.getUserId())) {
341                     req.setAttribute(WebKeys.CONTAINER_EDIT, workingContainer);
342                     setForward(req,"portlet.ext.director.unlock_container");
343                     return;
344                 }
345                 else if (workingContainer.isLocked()) {
346                     //it's locked by the same user
347
WebAssetFactory.unLockAsset(workingContainer);
348                 }
349                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
350                 params.put("struts_action",new String JavaDoc[] {"/ext/containers/edit_container"});
351                 params.put("cmd",new String JavaDoc[] { "edit" });
352                 params.put("inode",new String JavaDoc[] { workingContainer.getInode() + "" });
353                 params.put("referer",new String JavaDoc[] { referer });
354
355                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
356
357                 _sendToReferral(req, res, af);
358                 return;
359             }
360
361             if (cmd!=null && cmd.equals("editLink")) {
362
363                 Logger.debug(DirectorAction.class, "Director :: editLink");
364
365                 String JavaDoc popup = req.getParameter("popup");
366                 Link link = (Link) InodeFactory.getInode(req.getParameter("link"), Link.class);
367
368                 Identifier identifier = IdentifierFactory.getParentIdentifier(link);
369                 //gets the current working asset
370
WebAsset workingLink = (WebAsset) IdentifierFactory.getWorkingChildOfClass(identifier,Link.class);
371
372                 if ("unlockLink".equals(subcmd)) {
373                     WebAssetFactory.unLockAsset(workingLink);
374                 }
375                 if (workingLink.isLocked() && !workingLink.getModUser().equals(user.getUserId())) {
376                     req.setAttribute(WebKeys.LINK_EDIT, workingLink);
377                     if (UtilMethods.isSet(popup)) {
378                         Logger.debug(DirectorAction.class, "Going to SIX I have popup!!!!!!!!!!!!!!!!");
379                         setForward(req,"portlet.ext.director.unlock_popup_link");
380                         return;
381                     }
382                     else {
383                         Logger.debug(DirectorAction.class, "Going to FIVE I dont have popup!!!!!!!!!!!!!!!!");
384                         setForward(req,"portlet.ext.director.unlock_link");
385                         return;
386                     }
387                 }
388                 else if (workingLink.isLocked()) {
389                     //it's locked by the same user
390
WebAssetFactory.unLockAsset(workingLink);
391                 }
392                 String JavaDoc popURL = "";
393                 if (UtilMethods.isSet(popup)){
394                     popURL = "_popup";
395                 }
396                 java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
397                 params.put("struts_action",new String JavaDoc[] {"/ext/links/edit_link"});
398                 params.put("cmd",new String JavaDoc[] { "edit" });
399                 params.put("inode",new String JavaDoc[] { workingLink.getInode() + "" });
400                 params.put("popup",new String JavaDoc[] { popup });
401                 params.put("referer",new String JavaDoc[] { referer });
402                 params.put("child", new String JavaDoc[] { (req.getParameter("child")!=null) ? req.getParameter("child") : "" });
403                 params.put("page_width", new String JavaDoc[] { (req.getParameter("page_width")!=null) ? req.getParameter("page_width") : ""});
404                 params.put("browse", new String JavaDoc[] { (req.getParameter("browse")!=null) ? req.getParameter("browse") : "" });
405
406                 String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
407
408                 _sendToReferral(req, res, af);
409                 return;
410             }
411
412             if (cmd!=null && cmd.equals("addChild")) {
413
414                 Logger.debug(DirectorAction.class, "Director :: addChild");
415
416                 Contentlet contentlet = (Contentlet) InodeFactory.getInode(req.getParameter("contentlet"), Contentlet.class);
417                 Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
418                 HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
419
420                 Identifier identifier = IdentifierCache.getIdentifierByInodeFromCache(contentlet);
421
422                 Identifier htmlPageIdentifier = IdentifierCache.getIdentifierByInodeFromCache(htmlPage);
423                 Identifier containerIdentifier = IdentifierCache.getIdentifierByInodeFromCache(container);
424
425                 if (identifier.getInode() != 0 && htmlPageIdentifier.getInode() != 0 && containerIdentifier.getInode() != 0) {
426                     MultiTree mTree = new MultiTree(htmlPageIdentifier.getInode(),containerIdentifier.getInode(),identifier.getInode());
427                     MultiTreeFactory.saveMultiTree(mTree);
428                 } else {
429                     Logger.error("Error found trying to associate the contentlet inode: " + contentlet.getInode() + "(iden: " + identifier.getInode() + ") " +
430                             "to the container: " + container.getInode() + "(iden: " + containerIdentifier.getInode() + ") " +
431                                     "of the page: " + htmlPage.getInode() + "(iden: " + htmlPageIdentifier.getInode() + ") " +
432                                             "the system was unable to find some the identifiers (tree error?)!");
433                 }
434
435                 _sendToReferral(req, res, referer);
436                 return;
437
438             }
439
440             if (cmd!=null && cmd.equals("removeChild")) {
441
442                 Logger.debug(DirectorAction.class, "Director :: removeChild");
443
444                 Contentlet contentlet = (Contentlet) InodeFactory.getInode(req.getParameter("contentlet"), Contentlet.class);
445                 Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
446                 HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
447
448                 Identifier identifier = IdentifierCache.getIdentifierByInodeFromCache(contentlet);
449                 Logger.debug(DirectorAction.class, "Identifier of Contentlet to be removed=" + identifier.getInode());
450
451                 String JavaDoc condition = "language_id = " + contentlet.getLanguageId();
452                 Contentlet contentletWorking = (Contentlet) IdentifierFactory.getWorkingChildOfClassByCondition(identifier,Contentlet.class,condition);
453                 Contentlet liveContentlet = (Contentlet) IdentifierFactory.getLiveChildOfClassByCondition(identifier,Contentlet.class,condition);
454                 Logger.debug(DirectorAction.class, "\n\nContentlet Working to be removed=" + contentletWorking.getInode());
455
456                 Identifier htmlPageIdentifier = IdentifierCache.getIdentifierByInodeFromCache(htmlPage);
457                 Identifier containerIdentifier = IdentifierCache.getIdentifierByInodeFromCache(container);
458                 MultiTree multiTree = MultiTreeFactory.getMultiTree(htmlPageIdentifier,containerIdentifier,identifier);
459                 Logger.debug(DirectorAction.class, "multiTree=" + multiTree);
460                 MultiTreeFactory.deleteMultiTree(multiTree);
461
462                 _sendToReferral(req, res, referer);
463                 return;
464
465             }
466
467             if (cmd!=null && cmd.equals("makeHomePage")) {
468
469                 Logger.debug(DirectorAction.class, "Director :: makeHomePage");
470
471                 if (UtilMethods.isSet(req.getParameter("htmlPage"))) {
472                     HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
473                     Folder folder = (Folder) InodeFactory.getParentOfClass(htmlPage,Folder.class);
474
475
476                     UserPreference up = UserPreferencesFactory.getUserPreferenceValue(user.getUserId(),WebKeys.USER_PREFERENCE_HOME_PAGE);
477
478                     if (up.getId()>0) {
479                         up.setValue(htmlPage.getURI(folder));
480
481                     }
482                     else {
483                         up.setUserId(user.getUserId());
484                         up.setPreference(WebKeys.USER_PREFERENCE_HOME_PAGE);
485                         up.setValue(htmlPage.getURI(folder));
486                     }
487                     UserPreferencesFactory.saveUserPreference(up);
488                 }
489                 else {
490                     //the user clicked on set with no page that means unsetting the page
491
UserPreferencesFactory.deleteUserPreference(user.getUserId(),WebKeys.USER_PREFERENCE_HOME_PAGE);
492                 }
493
494                 _sendToReferral(req, res, referer);
495                 return;
496             }
497
498             if (cmd!=null && cmd.equals("moveUp")) {
499
500                 Logger.debug(DirectorAction.class, "Director :: moveUp");
501
502                 Contentlet contentlet = (Contentlet) InodeFactory.getInode(req.getParameter("contentlet"), Contentlet.class);
503                 Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
504                 HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
505                 String JavaDoc staticContainer = req.getParameter("static");
506
507                 Logger.debug(DirectorAction.class, "staticContainer=" + staticContainer);
508
509                 java.util.List JavaDoc cletList = new ArrayList JavaDoc();
510                 String JavaDoc sort = (container.getSortContentletsBy() == null) ? "tree_order" : container.getSortContentletsBy();
511
512                 if (staticContainer!=null && staticContainer.equals("false")) {
513                     List JavaDoc categories = InodeFactory.getParentsOfClass(container,Category.class);
514                     String JavaDoc condition = "working=" + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " and deleted=" + com.dotmarketing.db.DbConnectionFactory.getDBFalse();
515
516                     //The containers have categories
517
Iterator JavaDoc catsIter = categories.iterator();
518                     Set JavaDoc contentletSet = new HashSet JavaDoc();
519                     while (catsIter.hasNext()) {
520                         Category category = (Category) catsIter.next();
521                         condition += " and language_id = " + contentlet.getLanguageId();
522                         List JavaDoc contentletsChildren = InodeFactory.getChildrenClassByConditionAndOrderBy(category,Contentlet.class,condition,sort);
523                         if (contentletsChildren!=null && contentletsChildren.size()>0){
524                             contentletSet.addAll(contentletsChildren);
525                         }
526                     }
527                     cletList.addAll(contentletSet);
528                     if (cletList.size()>0){
529                         cletList = ContentletServices.sortContentlets(cletList,sort);
530                     }
531                 }
532                 else {
533                     Identifier idenHtmlPage = IdentifierFactory.getIdentifierByWebAsset(htmlPage);
534                     Identifier idenContainer = IdentifierFactory.getIdentifierByWebAsset(container);
535                     cletList = ContentletFactory.getContentletsByOrderAndParents(idenHtmlPage.getInode(),idenContainer.getInode(), sort, true,contentlet.getLanguageId()+"");
536                     Logger.debug(DirectorAction.class, "Number of contentlets = " + cletList.size());
537                 }
538
539                 Iterator JavaDoc i = cletList.iterator();
540                 int x = 0;
541                 while (i.hasNext()) {
542
543                     Contentlet c = (Contentlet) i.next();
544
545                     Logger.debug(DirectorAction.class, "Contentlet inode = " + c.getInode());
546
547                     if (c.getInode() == contentlet.getInode()) {
548                         if (staticContainer!=null && staticContainer.equals("false")) {
549                             c.setSortOrder(x - 3);
550                             InodeFactory.saveInode(c);
551                         }
552                         else {
553                             Identifier iden = IdentifierFactory.getIdentifierByWebAsset(c);
554                             Identifier idenContainer = IdentifierFactory.getIdentifierByWebAsset(container);
555                             Identifier idenHtmlPage = IdentifierFactory.getIdentifierByWebAsset(htmlPage);
556                             MultiTree multiTree = MultiTreeFactory.getMultiTree(idenHtmlPage,idenContainer,iden);
557                             multiTree.setTreeOrder(x - 3);
558                             MultiTreeFactory.saveMultiTree(multiTree);
559                         }
560                     }
561                     else {
562                         if (staticContainer!=null && staticContainer.equals("false")) {
563                             c.setSortOrder(x);
564                             InodeFactory.saveInode(c);
565                         }
566                         else {
567                             Identifier iden = IdentifierFactory.getIdentifierByWebAsset(c);
568                             Identifier idenContainer = IdentifierFactory.getIdentifierByWebAsset(container);
569                             Identifier idenHtmlPage = IdentifierFactory.getIdentifierByWebAsset(htmlPage);
570                             MultiTree multiTree = MultiTreeFactory.getMultiTree(idenHtmlPage,idenContainer,iden);
571                             multiTree.setTreeOrder(x);
572                             MultiTreeFactory.saveMultiTree(multiTree);
573                         }
574                     }
575                     x = x + 2;
576
577                 }
578
579                 _sendToReferral(req, res, referer);
580                 return;
581             }
582
583             if (cmd!=null && cmd.equals("moveDown")) {
584
585                 Logger.debug(DirectorAction.class, "Director :: moveDown");
586
587                 Contentlet contentlet = (Contentlet) InodeFactory.getInode(req.getParameter("contentlet"), Contentlet.class);
588                 Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
589                 HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
590                 String JavaDoc staticContainer = req.getParameter("static");
591
592                 Logger.debug(DirectorAction.class, "staticContainer=" + staticContainer);
593
594                 java.util.List JavaDoc cletList = new ArrayList JavaDoc();
595                 String JavaDoc sort = (container.getSortContentletsBy() == null) ? "tree_order" : container.getSortContentletsBy();
596
597                 if (staticContainer!=null && staticContainer.equals("false")) {
598                     List JavaDoc categories = InodeFactory.getParentsOfClass(container,Category.class);
599                     String JavaDoc condition = "working=" + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " and deleted=" + com.dotmarketing.db.DbConnectionFactory.getDBFalse();
600
601                     //The containers have categories
602
Iterator JavaDoc catsIter = categories.iterator();
603                     Set JavaDoc contentletSet = new HashSet JavaDoc();
604                     while (catsIter.hasNext()) {
605                         Category category = (Category) catsIter.next();
606                         condition += " and language_id = " + contentlet.getLanguageId();
607
608                         List JavaDoc contentletsChildren = InodeFactory.getChildrenClassByConditionAndOrderBy(category,Contentlet.class,condition,sort);
609                         if (contentletsChildren!=null && contentletsChildren.size()>0){
610                             contentletSet.addAll(contentletsChildren);
611                         }
612                     }
613                     cletList.addAll(contentletSet);
614                     if (cletList.size()>0){
615                         cletList = ContentletServices.sortContentlets(cletList,sort);
616                     }
617                 }
618                 else {
619                     Identifier idenHtmlPage = IdentifierFactory.getIdentifierByWebAsset(htmlPage);
620                     Identifier idenContainer = IdentifierFactory.getIdentifierByWebAsset(container);
621                     cletList = ContentletFactory.getContentletsByOrderAndParents(idenHtmlPage.getInode(),idenContainer.getInode(), sort, true,contentlet.getLanguageId()+"");
622                     Logger.debug(DirectorAction.class, "Number of contentlets = " + cletList.size());
623                 }
624
625                 Iterator JavaDoc i = cletList.iterator();
626                 int x = 0;
627                 while (i.hasNext()) {
628
629                     Contentlet c = (Contentlet) i.next();
630
631                     Logger.debug(DirectorAction.class, "Contentlet inode = " + c.getInode());
632
633                     if (c.getInode() == contentlet.getInode()) {
634                         if (staticContainer!=null && staticContainer.equals("false")) {
635                             c.setSortOrder(x + 3);
636                             InodeFactory.saveInode(c);
637                         }
638                         else {
639                             Identifier iden = IdentifierFactory.getIdentifierByWebAsset(c);
640                             Identifier idenContainer = IdentifierFactory.getIdentifierByWebAsset(container);
641                             Identifier idenHtmlPage = IdentifierFactory.getIdentifierByWebAsset(htmlPage);
642                             MultiTree multiTree = MultiTreeFactory.getMultiTree(idenHtmlPage,idenContainer,iden);
643                             multiTree.setTreeOrder(x + 3);
644                             MultiTreeFactory.saveMultiTree(multiTree);
645                         }
646                     }
647                     else {
648                         if (staticContainer!=null && staticContainer.equals("false")) {
649                             c.setSortOrder(x);
650                             InodeFactory.saveInode(c);
651                         }
652                         else {
653                             Identifier iden = IdentifierFactory.getIdentifierByWebAsset(c);
654                             Identifier idenContainer = IdentifierFactory.getIdentifierByWebAsset(container);
655                             Identifier idenHtmlPage = IdentifierFactory.getIdentifierByWebAsset(htmlPage);
656                             MultiTree multiTree = MultiTreeFactory.getMultiTree(idenHtmlPage,idenContainer,iden);
657                             multiTree.setTreeOrder(x);
658                             MultiTreeFactory.saveMultiTree(multiTree);
659                         }
660                     }
661                     x = x + 2;
662
663                 }
664
665                 _sendToReferral(req, res, referer);
666                 return;
667
668             }
669
670             if (cmd!=null && cmd.equals("unlock")) {
671
672                 Logger.debug(DirectorAction.class, "Director :: unlock Contentlet");
673
674                 Contentlet contentlet = (Contentlet) InodeFactory.getInode(req.getParameter("contentlet"), Contentlet.class);
675                 WebAssetFactory.unLockAsset(contentlet);
676             }
677
678             Contentlet contentlet = (Contentlet) InodeFactory.getInode(req.getParameter("contentlet"), Contentlet.class);
679             Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
680             HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
681
682             Logger.debug(DirectorAction.class, "contentlet=" + contentlet.getInode());
683
684             long contentletInode = 0;
685             if (contentlet.getInode()>0) {
686
687                 Identifier identifier = IdentifierFactory.getParentIdentifier(contentlet);
688                 //gets the current working asset
689
String JavaDoc condition = "language_id = " + contentlet.getLanguageId();
690                 WebAsset workingContentlet = (WebAsset) IdentifierFactory.getWorkingChildOfClassByCondition(identifier,Contentlet.class,condition);
691
692                 Logger.debug(DirectorAction.class, "workingContentlet=" + workingContentlet.getInode());
693                 Logger.debug(DirectorAction.class, "workingContentlet.getModUser()=" + workingContentlet.getModUser());
694                 Logger.debug(DirectorAction.class, "workingContentlet.isLocked()=" + workingContentlet.isLocked());
695
696                 if (workingContentlet.isLocked() && !workingContentlet.getModUser().equals(user.getUserId())) {
697                     req.setAttribute(WebKeys.CONTENTLET_EDIT, workingContentlet);
698                     req.setAttribute(WebKeys.CONTAINER_INODE, String.valueOf(container.getInode()));
699                     req.setAttribute(WebKeys.HTMLPAGE_INODE, String.valueOf(htmlPage.getInode()));
700                     setForward(req,"portlet.ext.director.unlock_contentlet");
701
702                     Logger.debug(DirectorAction.class, "redirect to unlock contentlet page");
703                     return;
704                 }
705                 else if (workingContentlet.isLocked()) {
706                     //it's locked by the same user
707
WebAssetFactory.unLockAsset(workingContentlet);
708                 }
709
710                 contentletInode = workingContentlet.getInode();
711             }
712             else {
713                 contentletInode = contentlet.getInode();
714
715             }
716
717             Logger.debug(DirectorAction.class, "Director :: Edit Contentlet");
718
719             java.util.Map JavaDoc params = new java.util.HashMap JavaDoc();
720             params.put("struts_action",new String JavaDoc[] {"/ext/contentlet/edit_contentlet"});
721
722             String JavaDoc cmdAux = (cmd.equals("newedit") ? cmd : "edit");
723
724             params.put("cmd",new String JavaDoc[] { cmdAux });
725             params.put("htmlpage_inode",new String JavaDoc[] { htmlPage.getInode() + "" });
726             params.put("contentcontainer_inode",new String JavaDoc[] { container.getInode() + "" });
727             params.put("inode",new String JavaDoc[] { contentletInode + "" });
728             if(UtilMethods.isSet(req.getParameter("selectedStructure"))){
729                 params.put("selectedStructure",new String JavaDoc[] { req.getParameter("selectedStructure") + "" });
730             }
731             params.put("lang",new String JavaDoc[] { (req.getParameter("language")!=null) ? req.getParameter("language") : "" });
732             params.put("referer",new String JavaDoc[] { referer });
733
734             String JavaDoc af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
735
736             _sendToReferral(req, res, af);
737             return;
738
739
740     }
741
742 }
743
744
Popular Tags