1 22 23 package com.dotmarketing.portlets.director.action; 24 25 import java.net.URLDecoder ; 26 import java.util.ArrayList ; 27 import java.util.HashSet ; 28 import java.util.Iterator ; 29 import java.util.List ; 30 import java.util.Set ; 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 ; 37 import javax.servlet.http.HttpSession ; 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 { 77 78 String cmd = req.getParameter("cmd"); 79 String subcmd = ParamUtil.getString(req,"subcmd"); 80 String referer = (req.getParameter("referer") != null) ? URLDecoder.decode(req.getParameter("referer"), "UTF-8"): "/c"; 81 82 Logger.debug(DirectorAction.class, "DirectorAction :: referer=" + referer); 83 84 ActionRequestImpl reqImpl = (ActionRequestImpl)req; 86 HttpServletRequest httpReq = reqImpl.getHttpServletRequest(); 87 HttpSession 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 User user = _getUser(req); 96 97 if (cmd!=null && cmd.equals("orderMenu")) { 99 100 Logger.debug(DirectorAction.class, "Director :: orderMenu"); 101 102 java.util.Map params = new java.util.HashMap (); 103 params.put("struts_action",new String [] {"/ext/folders/order_menu"}); 104 params.put("path",new String [] { req.getParameter("path")}); 105 params.put("pagePath",new String [] { req.getParameter("pagePath")}); 106 if (req.getParameter("openAll")!=null) { 107 params.put("openAll",new String [] { req.getParameter("openAll")}); 108 } 109 params.put("hostId",new String [] { req.getParameter("hostId")}); 110 params.put("referer",new String [] { referer }); 111 112 String 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 WebAsset workingHTMLPage = (WebAsset) IdentifierFactory.getWorkingChildOfClass(identifier,HTMLPage.class); 127 128 java.util.Map params = new java.util.HashMap (); 129 params.put("struts_action",new String [] {"/ext/workflows/edit_workflow_task"}); 130 params.put("cmd",new String [] { "add" }); 131 params.put("webasset",new String [] { workingHTMLPage.getInode() + "" }); 132 params.put("referer",new String [] { referer }); 133 134 String 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 taskInode = req.getParameter("taskInode"); 144 145 java.util.Map params = new java.util.HashMap (); 146 params.put("struts_action",new String [] {"/ext/workflows/edit_workflow_task"}); 147 params.put("cmd",new String [] { "view" }); 148 params.put("inode",new String [] { taskInode }); 149 params.put("referer",new String [] { referer }); 150 151 String 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 params = new java.util.HashMap (); 162 params.put("struts_action",new String [] {"/ext/htmlpages/edit_htmlpage"}); 163 params.put("cmd",new String [] { "edit" }); 164 params.put("inode",new String [] { "0" }); 165 166 String 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 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 WebAssetFactory.unLockAsset(workingHTMLPage); 194 } 195 196 java.util.Map params = new java.util.HashMap (); 197 params.put("struts_action",new String [] {"/ext/htmlpages/edit_htmlpage"}); 198 params.put("cmd",new String [] { "edit" }); 199 params.put("inode",new String [] { workingHTMLPage.getInode() + "" }); 200 params.put("referer",new String [] { referer }); 201 202 String 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 params = new java.util.HashMap (); 215 params.put("struts_action",new String [] {"/ext/htmlpageviews/view_htmlpage_views"}); 216 params.put("htmlpage",new String [] { htmlPage.getInode() + "" }); 217 params.put("referer",new String [] { referer }); 218 219 String 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 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 WebAssetFactory.unLockAsset(workingFile); 247 } 248 249 java.util.Map params = new java.util.HashMap (); 250 params.put("struts_action",new String [] {"/ext/files/edit_file"}); 251 params.put("cmd",new String [] { "edit" }); 252 params.put("inode",new String [] { workingFile.getInode() + "" }); 253 params.put("referer",new String [] { referer }); 254 255 String 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 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 WebAssetFactory.unLockAsset(workingTemplate); 294 } 295 296 java.util.Map params = new java.util.HashMap (); 297 params.put("struts_action",new String [] {"/ext/templates/edit_template"}); 298 params.put("cmd",new String [] { "edit" }); 299 params.put("inode",new String [] { workingTemplate.getInode() + "" }); 300 params.put("referer",new String [] { referer }); 301 302 String 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 params = new java.util.HashMap (); 315 params.put("struts_action",new String [] {"/ext/htmlpages/publish_htmlpages"}); 316 params.put("cmd",new String [] { "prepublish" }); 317 params.put("publishInode",new String [] { htmlPage.getInode() + "" }); 318 params.put("referer",new String [] { referer }); 319 320 String 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 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 WebAssetFactory.unLockAsset(workingContainer); 348 } 349 java.util.Map params = new java.util.HashMap (); 350 params.put("struts_action",new String [] {"/ext/containers/edit_container"}); 351 params.put("cmd",new String [] { "edit" }); 352 params.put("inode",new String [] { workingContainer.getInode() + "" }); 353 params.put("referer",new String [] { referer }); 354 355 String 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 popup = req.getParameter("popup"); 366 Link link = (Link) InodeFactory.getInode(req.getParameter("link"), Link.class); 367 368 Identifier identifier = IdentifierFactory.getParentIdentifier(link); 369 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 WebAssetFactory.unLockAsset(workingLink); 391 } 392 String popURL = ""; 393 if (UtilMethods.isSet(popup)){ 394 popURL = "_popup"; 395 } 396 java.util.Map params = new java.util.HashMap (); 397 params.put("struts_action",new String [] {"/ext/links/edit_link"}); 398 params.put("cmd",new String [] { "edit" }); 399 params.put("inode",new String [] { workingLink.getInode() + "" }); 400 params.put("popup",new String [] { popup }); 401 params.put("referer",new String [] { referer }); 402 params.put("child", new String [] { (req.getParameter("child")!=null) ? req.getParameter("child") : "" }); 403 params.put("page_width", new String [] { (req.getParameter("page_width")!=null) ? req.getParameter("page_width") : ""}); 404 params.put("browse", new String [] { (req.getParameter("browse")!=null) ? req.getParameter("browse") : "" }); 405 406 String 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 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 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 staticContainer = req.getParameter("static"); 506 507 Logger.debug(DirectorAction.class, "staticContainer=" + staticContainer); 508 509 java.util.List cletList = new ArrayList (); 510 String sort = (container.getSortContentletsBy() == null) ? "tree_order" : container.getSortContentletsBy(); 511 512 if (staticContainer!=null && staticContainer.equals("false")) { 513 List categories = InodeFactory.getParentsOfClass(container,Category.class); 514 String condition = "working=" + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " and deleted=" + com.dotmarketing.db.DbConnectionFactory.getDBFalse(); 515 516 Iterator catsIter = categories.iterator(); 518 Set contentletSet = new HashSet (); 519 while (catsIter.hasNext()) { 520 Category category = (Category) catsIter.next(); 521 condition += " and language_id = " + contentlet.getLanguageId(); 522 List 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 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 staticContainer = req.getParameter("static"); 591 592 Logger.debug(DirectorAction.class, "staticContainer=" + staticContainer); 593 594 java.util.List cletList = new ArrayList (); 595 String sort = (container.getSortContentletsBy() == null) ? "tree_order" : container.getSortContentletsBy(); 596 597 if (staticContainer!=null && staticContainer.equals("false")) { 598 List categories = InodeFactory.getParentsOfClass(container,Category.class); 599 String condition = "working=" + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " and deleted=" + com.dotmarketing.db.DbConnectionFactory.getDBFalse(); 600 601 Iterator catsIter = categories.iterator(); 603 Set contentletSet = new HashSet (); 604 while (catsIter.hasNext()) { 605 Category category = (Category) catsIter.next(); 606 condition += " and language_id = " + contentlet.getLanguageId(); 607 608 List 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 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 String 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 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 params = new java.util.HashMap (); 720 params.put("struts_action",new String [] {"/ext/contentlet/edit_contentlet"}); 721 722 String cmdAux = (cmd.equals("newedit") ? cmd : "edit"); 723 724 params.put("cmd",new String [] { cmdAux }); 725 params.put("htmlpage_inode",new String [] { htmlPage.getInode() + "" }); 726 params.put("contentcontainer_inode",new String [] { container.getInode() + "" }); 727 params.put("inode",new String [] { contentletInode + "" }); 728 if(UtilMethods.isSet(req.getParameter("selectedStructure"))){ 729 params.put("selectedStructure",new String [] { req.getParameter("selectedStructure") + "" }); 730 } 731 params.put("lang",new String [] { (req.getParameter("language")!=null) ? req.getParameter("language") : "" }); 732 params.put("referer",new String [] { referer }); 733 734 String 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 |