Package com.dotmarketing.portlets.containers.model

Examples of com.dotmarketing.portlets.containers.model.Container


      }
      if (cmd!=null && cmd.equals("orderContentlets")) {

        Logger.debug(DirectorAction.class, "Director :: orderContentlet");

        Container container = (Container) InodeFactory.getInode(req.getParameter("containerId"), Container.class);
        HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("pageId"), HTMLPage.class);
        boolean hasReadPermissionOnContainer = perAPI.doesUserHavePermission(container, PERMISSION_READ, user, false);
        boolean hasWritePermissionOnPage = perAPI.doesUserHavePermission(htmlPage, PERMISSION_WRITE, user, false);
       
        if(!hasReadPermissionOnContainer || !hasWritePermissionOnPage) {
          throw new DotSecurityException("User has no permission to reorder content on container = " + req.getParameter("container") + " on page = " + req.getParameter("htmlPage"));
        }

        java.util.Map params = new java.util.HashMap();
        params.put("struts_action",new String[] {"/ext/contentlet/order_contentlets"});
        params.put("containerId",new String[] { req.getParameter("containerId")});
        params.put("pageId",new String[] { req.getParameter("pageId")});
        params.put("referer",new String[] { referer });
       


        String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);

        _sendToReferral(req, res, af);

        return;
      }


            if (cmd!=null && cmd.equals("newHTMLPage")) {

        Logger.debug(DirectorAction.class, "Director :: editHTMLPage");

        java.util.Map params = new java.util.HashMap();
        params.put("struts_action",new String[] {"/ext/htmlpages/edit_htmlpage"});
        params.put("cmd",new String[] { "edit" });
        params.put("inode",new String[] { "0" });

        String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);

        _sendToReferral(req, res, af);
        return;
      }
           
      if (cmd!=null && cmd.equals("editHTMLPage")) {

        Logger.debug(DirectorAction.class, "Director :: editHTMLPage");

        HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);

        Identifier identifier = APILocator.getIdentifierAPI().find(htmlPage);
        //gets the current working asset
        WebAsset workingHTMLPage = (WebAsset) APILocator.getVersionableAPI().findWorkingVersion(identifier,APILocator.getUserAPI().getSystemUser(),false);

        if ("unlockHTMLPage".equals(subcmd)) {
          WebAssetFactory.unLockAsset(workingHTMLPage);
        }

        if (workingHTMLPage.isLocked() && !workingHTMLPage.getModUser().equals(user.getUserId())) {
          req.setAttribute(WebKeys.HTMLPAGE_EDIT, workingHTMLPage);
          setForward(req,"portlet.ext.director.unlock_htmlpage");
          return;
        }
        else if (workingHTMLPage.isLocked()) {
          //it's locked by the same user
          WebAssetFactory.unLockAsset(workingHTMLPage);
        }

        java.util.Map params = new java.util.HashMap();
        params.put("struts_action",new String[] {"/ext/htmlpages/edit_htmlpage"});
        params.put("cmd",new String[] { "edit" });
        params.put("inode",new String[] { workingHTMLPage.getInode() + "" });
        params.put("referer",new String[] {UtilMethods.encodeURL(referer)});

        String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);

        _sendToReferral(req, res, af);
        return;
      }
      if (cmd!=null && cmd.equals("viewStatistics")) {

        Logger.debug(DirectorAction.class, "Director :: editHTMLPage");

        HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);


        java.util.Map params = new java.util.HashMap();
        params.put("struts_action",new String[] {"/ext/htmlpageviews/view_htmlpage_views"});
        params.put("htmlpage",new String[] { htmlPage.getInode() + "" });
        params.put("referer",new String[] { referer });

        String af = com.dotmarketing.util.PortletURLUtil.getRenderURL(httpReq,WindowState.MAXIMIZED.toString(),params);

        _sendToReferral(req, res, af);
        return;
      }

      if (cmd!=null && cmd.equals("editFile")) {

        Logger.debug(DirectorAction.class, "Director :: editFile");
       
        String fileAssetInode = "";
       
        if(UtilMethods.isSet(req.getParameter("file")))
          fileAssetInode = req.getParameter("file");
        else
          return;
       
        Identifier identifier = APILocator.getIdentifierAPI().findFromInode(fileAssetInode);
       
        if(identifier.getAssetType().equals("contentlet")){
          try {
            Contentlet cont = APILocator.getContentletAPI().find(fileAssetInode, user, false);
           
           
            java.util.Map params = new java.util.HashMap();
            params.put("struts_action",new String[] {"/ext/contentlet/edit_contentlet"});
            params.put("cmd",new String[] { "edit" });
            params.put("inode",new String[] { cont.getInode() + "" });
            params.put("referer",new String[] { referer });
           
            String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
           
            _sendToReferral(req, res, af);
          } catch (DotSecurityException e) {
            Logger.error(this, e.getMessage());
            return;
          }
        }else{
          try {
            //gets the current working asset
            WebAsset workingFile = (WebAsset) APILocator.getVersionableAPI().findWorkingVersion(identifier,APILocator.getUserAPI().getSystemUser(),false);

            if ("unlockFile".equals(subcmd)) {
              WebAssetFactory.unLockAsset(workingFile);
            }

            if (workingFile.isLocked() && !workingFile.getModUser().equals(user.getUserId())) {
              req.setAttribute(WebKeys.FILE_EDIT, workingFile);
              setForward(req,"portlet.ext.director.unlock_file");
              return;
            }
            else if (workingFile.isLocked()) {
              //it's locked by the same user
              WebAssetFactory.unLockAsset(workingFile);
            }

            java.util.Map params = new java.util.HashMap();
            params.put("struts_action",new String[] {"/ext/files/edit_file"});
            params.put("cmd",new String[] { "edit" });
            params.put("inode",new String[] { workingFile.getInode() + "" });
            params.put("referer",new String[] { referer });
           
            String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);
           
            _sendToReferral(req, res, af);
          } catch (DotStateException e) {
            Logger.error(this, e.getMessage());
            return;
          } catch (DotSecurityException e) {
            Logger.error(this, e.getMessage());
            return;
          }
        }
       
        return;
      }

      if (cmd!=null && cmd.equals("editTemplate")) {

        Logger.debug(DirectorAction.class, "Director :: editTemplate");

        HTMLPage htmlPage = new HTMLPage();
        WebAsset workingTemplate = new Template();
        if (req.getParameter("htmlPage")!=null) {
          htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
          workingTemplate = HTMLPageFactory.getHTMLPageTemplate(htmlPage, true);
        } else if (req.getParameter("template")!=null) {
          workingTemplate = (Template) InodeFactory.getInode(req.getParameter("template"), Template.class);
        }

        if ("unlockTemplate".equals(subcmd)) {
          WebAssetFactory.unLockAsset(workingTemplate);
        }

        if (workingTemplate.isLocked() && !workingTemplate.getModUser().equals(user.getUserId())) {
          req.setAttribute(WebKeys.HTMLPAGE_EDIT, htmlPage);
          req.setAttribute(WebKeys.TEMPLATE_EDIT, workingTemplate);
          setForward(req,"portlet.ext.director.unlock_template");
          return;
        }
        else if (workingTemplate.isLocked()) {
          //it's locked by the same user
          WebAssetFactory.unLockAsset(workingTemplate);
        }

        java.util.Map params = new java.util.HashMap();
        params.put("struts_action",new String[] {"/ext/templates/edit_template"});
        params.put("cmd",new String[] { "edit" });
        params.put("inode",new String[] { workingTemplate.getInode() + "" });
        params.put("referer",new String[] { referer });

        String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);

        _sendToReferral(req, res, af);
        return;
      }

      if (cmd!=null && cmd.equals("publishHTMLPage")) {

        Logger.debug(DirectorAction.class, "Director :: publishHTMLPage");

        HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);

        java.util.Map params = new java.util.HashMap();
        params.put("struts_action",new String[] {"/ext/htmlpages/publish_htmlpages"});
        params.put("cmd",new String[] { "prepublish" });
        params.put("publishInode",new String[] { htmlPage.getInode() + "" });
        params.put("referer",new String[] { referer });

        String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);

        _sendToReferral(req, res, af);
        return;
      }


      if (cmd!=null && cmd.equals("editContainer")) {

        Logger.debug(DirectorAction.class, "Director :: editContainer" + subcmd);

        Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);

        Identifier identifier = APILocator.getIdentifierAPI().find(container);
        //gets the current working asset
        WebAsset workingContainer = (WebAsset) APILocator.getVersionableAPI().findWorkingVersion(identifier,APILocator.getUserAPI().getSystemUser(),false);

        if ("unlockContainer".equals(subcmd)) {
          WebAssetFactory.unLockAsset(workingContainer);
        }
        if (workingContainer.isLocked() && !workingContainer.getModUser().equals(user.getUserId())) {
          req.setAttribute(WebKeys.CONTAINER_EDIT, workingContainer);
          setForward(req,"portlet.ext.director.unlock_container");
          return;
        }
        else if (workingContainer.isLocked()) {
          //it's locked by the same user
          WebAssetFactory.unLockAsset(workingContainer);
        }
        java.util.Map params = new java.util.HashMap();
        params.put("struts_action",new String[] {"/ext/containers/edit_container"});
        params.put("cmd",new String[] { "edit" });
        params.put("inode",new String[] { workingContainer.getInode() + "" });
        params.put("referer",new String[] { referer });

        String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);

        _sendToReferral(req, res, af);
        return;
      }

      if (cmd!=null && cmd.equals("editLink")) {

        Logger.debug(DirectorAction.class, "Director :: editLink");

        String popup = req.getParameter("popup");
        Link link = (Link) InodeFactory.getInode(req.getParameter("link"), Link.class);

        Identifier identifier = APILocator.getIdentifierAPI().find(link);
        //gets the current working asset
        WebAsset workingLink = (WebAsset) APILocator.getVersionableAPI().findWorkingVersion(identifier,APILocator.getUserAPI().getSystemUser(),false);

        if ("unlockLink".equals(subcmd)) {
          WebAssetFactory.unLockAsset(workingLink);
        }
        if (workingLink.isLocked() && !workingLink.getModUser().equals(user.getUserId())) {
          req.setAttribute(WebKeys.LINK_EDIT, workingLink);
          if (UtilMethods.isSet(popup)) {
            Logger.debug(DirectorAction.class, "Going to SIX I have popup!!!!!!!!!!!!!!!!");
            setForward(req,"portlet.ext.director.unlock_popup_link");
            return;
          }
          else {
            Logger.debug(DirectorAction.class, "Going to FIVE I dont have popup!!!!!!!!!!!!!!!!");
            setForward(req,"portlet.ext.director.unlock_link");
            return;
          }
        }
        else if (workingLink.isLocked()) {
          //it's locked by the same user
          WebAssetFactory.unLockAsset(workingLink);
        }
        String popURL = "";
        if (UtilMethods.isSet(popup)){
          popURL = "_popup";
        }
        java.util.Map params = new java.util.HashMap();
        params.put("struts_action",new String[] {"/ext/links/edit_link"});
        params.put("cmd",new String[] { "edit" });
        params.put("inode",new String[] { workingLink.getInode() + "" });
        params.put("popup",new String[] { popup });
        params.put("referer",new String[] { referer });
                params.put("child", new String[] { (req.getParameter("child")!=null) ? req.getParameter("child") : "" });
                params.put("page_width", new String[] { (req.getParameter("page_width")!=null) ? req.getParameter("page_width") : ""});
                params.put("browse", new String[] { (req.getParameter("browse")!=null) ? req.getParameter("browse") : "" });

        String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);

        _sendToReferral(req, res, af);
        return;
      }

      if (cmd!=null && cmd.equals("addChild")) {

        try {
          Logger.debug(DirectorAction.class, "Director :: addChild");
         
          HibernateUtil.startTransaction();
         
          Contentlet contentlet = new Contentlet();
          String cInode = req.getParameter("contentlet");
          if(InodeUtils.isSet(cInode)){
            contentlet = conAPI.find(cInode, user, true)
          }
          Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
          HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
 
          boolean hasPermissionOnContainer = perAPI.doesUserHavePermission(container, PERMISSION_READ, user, false);
          if(Config.getBooleanProperty("SIMPLE_PAGE_CONTENT_PERMISSIONING", true))
            hasPermissionOnContainer = true;
         
          boolean hasPermissionsOnPage = perAPI.doesUserHavePermission(htmlPage, PERMISSION_CAN_ADD_CHILDREN, user, false);
          boolean duplicateContentCheck  = false;
         
          if(!hasPermissionOnContainer || !hasPermissionsOnPage) {
            throw new DotSecurityException("User has no permission to add content on container = " + req.getParameter("container") + " on page = " + req.getParameter("htmlPage"));
          }
 
          Identifier identifier = APILocator.getIdentifierAPI().find(contentlet);
 
          Identifier htmlPageIdentifier = APILocator.getIdentifierAPI().find(htmlPage);
          Identifier containerIdentifier = APILocator.getIdentifierAPI().find(container);
 
                  if (InodeUtils.isSet(identifier.getInode()) && InodeUtils.isSet(htmlPageIdentifier.getInode()) && InodeUtils.isSet(containerIdentifier.getInode())) {
                      MultiTree mTree = new MultiTree(htmlPageIdentifier.getInode(),containerIdentifier.getInode(),identifier.getInode());
                      java.util.List<MultiTree> treeList=  MultiTreeFactory.getMultiTree(htmlPage, container);
                      for (int i = 0; i < treeList.size(); i++) {
                        if(treeList.get(i).getChild().equals(identifier.getInode())){
                        duplicateContentCheck = true;
                        session.setAttribute("duplicatedErrorMessage","Content already exists in the same container on the page");
                        }
                       
                      }
                      if(!duplicateContentCheck){
                        MultiTreeFactory.saveMultiTree(mTree);
                     
                        //Updating the last mod user and last mod date of the page
                        htmlPage.setModDate(new Date());
                        htmlPage.setModUser(user.getUserId());
                        HibernateUtil.saveOrUpdate(htmlPage);
                      }
 
                  } else {
                      Logger.error(this, "Error found trying to associate the contentlet inode: " + contentlet.getInode() + "(iden: " + identifier.getInode() + ") " +
                              "to the container: " + container.getInode() + "(iden: " + containerIdentifier.getInode() + ") " +
                                      "of the page: " + htmlPage.getInode() + "(iden: " + htmlPageIdentifier.getInode() + ") " +
                                              "the system was unable to find some the identifiers (tree error?)!");
                  }

        } catch (DotRuntimeException e) {
          Logger.error(this, "Unable to add content to page", e);
        } finally {
          try {
                        HibernateUtil.commitTransaction();
          }catch(Exception e){
            session.setAttribute("duplicatedErrorMessage","Content already exists in the same container on the page");
            //res.sendRedirect(referer);
          }       
        }
        _sendToReferral(req, res, referer);
        return;

      }

      if (cmd!=null && cmd.equals("removeChild")) {

        try {

          Logger.debug(DirectorAction.class, "Director :: removeChild");
 
          HibernateUtil.startTransaction();
 
          Contentlet contentlet = new Contentlet();
          String cInode = req.getParameter("contentlet");
          if(InodeUtils.isSet(cInode)){
            contentlet = conAPI.find(cInode, user, true)
          }
          Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
          HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
 
          boolean hasPermissionOnPage = perAPI.doesUserHavePermission(htmlPage, PERMISSION_CAN_ADD_CHILDREN, user, false);
          boolean hasPermissionOnContainer = perAPI.doesUserHavePermission(container, PERMISSION_READ, user, false);
          if(Config.getBooleanProperty("SIMPLE_PAGE_CONTENT_PERMISSIONING", true))
            hasPermissionOnContainer = true;
         
          if(!hasPermissionOnContainer || !hasPermissionOnPage) {
            throw new DotSecurityException("User has no permission to remove content from container = " + req.getParameter("container") + " on page = " + req.getParameter("htmlPage"));
          }
 
          Identifier identifier = APILocator.getIdentifierAPI().find(contentlet);
          Logger.debug(DirectorAction.class, "Identifier of Contentlet to be removed=" + identifier.getInode());
 
          Contentlet contentletWorking = conAPI.findContentletByIdentifier(identifier.getInode(), false, contentlet.getLanguageId(), user, true);
          Contentlet liveContentlet = conAPI.findContentletByIdentifier(identifier.getInode(), false, contentlet.getLanguageId(), user, true);
          Logger.debug(DirectorAction.class, "\n\nContentlet Working to be removed=" + contentletWorking.getInode());
 
          Identifier htmlPageIdentifier = APILocator.getIdentifierAPI().find(htmlPage);
          Identifier containerIdentifier = APILocator.getIdentifierAPI().find(container);
          MultiTree multiTree = MultiTreeFactory.getMultiTree(htmlPageIdentifier,containerIdentifier,identifier);
          Logger.debug(DirectorAction.class, "multiTree=" + multiTree);
          MultiTreeFactory.deleteMultiTree(multiTree);
 
          //Updating the last mod user and last mod date of the page
                  htmlPage.setModDate(new Date());
                  htmlPage.setModUser(user.getUserId());
          HibernateUtil.saveOrUpdate(htmlPage);
        } catch (DotRuntimeException e) {
          Logger.error(this, "Unable to remove content from page", e);
        } finally {
          HibernateUtil.commitTransaction();
        }
        _sendToReferral(req, res, referer);
        return;

      }

      if (cmd!=null && cmd.equals("makeHomePage")) {

        Logger.debug(DirectorAction.class, "Director :: makeHomePage");

        if (InodeUtils.isSet(req.getParameter("htmlPage"))) {
          HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
          Folder folder = APILocator.getFolderAPI().findParentFolder(htmlPage, user, false);

          UserPreference up = UserPreferencesFactory.getUserPreferenceValue(user.getUserId(),WebKeys.USER_PREFERENCE_HOME_PAGE);

          if (up.getId()>0) {
            up.setValue(htmlPage.getURI(folder));

          }
          else {
            up.setUserId(user.getUserId());
            up.setPreference(WebKeys.USER_PREFERENCE_HOME_PAGE);
            up.setValue(htmlPage.getURI(folder));
          }
          UserPreferencesFactory.saveUserPreference(up);
        }
        else {
          //the user clicked on set with no page that means unsetting the page
          UserPreferencesFactory.deleteUserPreference(user.getUserId(),WebKeys.USER_PREFERENCE_HOME_PAGE);
        }

        _sendToReferral(req, res, referer);
        return;
      }

      if (cmd!=null && cmd.equals("moveUp")) {

        Logger.debug(DirectorAction.class, "Director :: moveUp");
        Contentlet contentlet = new Contentlet();
        String cInode = req.getParameter("contentlet");
        if(InodeUtils.isSet(cInode)){
          contentlet = conAPI.find(cInode, user, true)
        }
        Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
        HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
       
        boolean hasPermissionOnPage = perAPI.doesUserHavePermission(htmlPage, PERMISSION_CAN_ADD_CHILDREN, user, false);
        boolean hasPermissionOnContainer = perAPI.doesUserHavePermission(container, PERMISSION_READ, user, false);
        if(Config.getBooleanProperty("SIMPLE_PAGE_CONTENT_PERMISSIONING", true))
          hasPermissionOnContainer = true;
       
        if(!hasPermissionOnContainer || !hasPermissionOnPage) {
          throw new DotSecurityException("User has no permission to reorder content on container = " + req.getParameter("container") + " on page = " + req.getParameter("htmlPage"));
        }
       
        String staticContainer = req.getParameter("static");

        Logger.debug(DirectorAction.class, "staticContainer=" + staticContainer);

        java.util.List cletList = new ArrayList();
        String sort = (container.getSortContentletsBy() == null) ? "tree_order" : container.getSortContentletsBy();

        Identifier idenHtmlPage = APILocator.getIdentifierAPI().find(htmlPage);
        Identifier idenContainer = APILocator.getIdentifierAPI().find(container);
        cletList = conAPI.findPageContentlets(idenHtmlPage.getInode(),idenContainer.getInode(), sort, true,contentlet.getLanguageId(), user, false);
        Logger.debug(DirectorAction.class, "Number of contentlets = " + cletList.size());

        int newPosition = cletList.indexOf(contentlet) -1;

        if( newPosition >= 0 ) { 

          idenContainer = APILocator.getIdentifierAPI().find(container);
          idenHtmlPage = APILocator.getIdentifierAPI().find(htmlPage);
          int x = 0;
          Iterator i = cletList.iterator();
 
          while (i.hasNext()) {
 
            Identifier iden;
            MultiTree multiTree;
            Contentlet c = (Contentlet) i.next();
           
            Logger.debug(DirectorAction.class, "Contentlet inode = " + c.getInode());
 
            if( newPosition == x ) {
              iden = APILocator.getIdentifierAPI().find(contentlet);
              multiTree = MultiTreeFactory.getMultiTree(idenHtmlPage,idenContainer,iden);
              multiTree.setTreeOrder(x);
              MultiTreeFactory.saveMultiTree(multiTree);
              x++;
            }
 
            if (!c.getInode().equalsIgnoreCase(contentlet.getInode())) {
              iden = APILocator.getIdentifierAPI().find(c);
              multiTree = MultiTreeFactory.getMultiTree(idenHtmlPage,idenContainer,iden);
              multiTree.setTreeOrder(x);
              MultiTreeFactory.saveMultiTree(multiTree);
              x++;
            }
 
          }
        }
        _sendToReferral(req, res, referer);
        return;
      }

      if (cmd!=null && cmd.equals("moveDown")) {

        Logger.debug(DirectorAction.class, "Director :: moveDown");
        Contentlet contentlet = new Contentlet();
        String cInode = req.getParameter("contentlet");
        if(InodeUtils.isSet(cInode)){
          contentlet = conAPI.find(cInode, user, true)
        }
        Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
        HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);
        String staticContainer = req.getParameter("static");

        boolean hasPermissionOnPage = perAPI.doesUserHavePermission(htmlPage, PERMISSION_CAN_ADD_CHILDREN, user, false);
        boolean hasPermissionOnContainer = perAPI.doesUserHavePermission(container, PERMISSION_READ, user, false);
        if(Config.getBooleanProperty("SIMPLE_PAGE_CONTENT_PERMISSIONING", true))
          hasPermissionOnContainer = true;
       
        if(!hasPermissionOnContainer || !hasPermissionOnPage) {
          throw new DotSecurityException("User has no permission to reorder content on container = " + req.getParameter("container") + " on page = " + req.getParameter("htmlPage"));
        }       
        Logger.debug(DirectorAction.class, "staticContainer=" + staticContainer);

        java.util.List cletList = new ArrayList();
        String sort = (container.getSortContentletsBy() == null) ? "tree_order" : container.getSortContentletsBy();

                Identifier idenHtmlPage = APILocator.getIdentifierAPI().find(htmlPage);
                Identifier idenContainer = APILocator.getIdentifierAPI().find(container);
        cletList = conAPI.findPageContentlets(idenHtmlPage.getInode(),idenContainer.getInode(), sort, true,contentlet.getLanguageId(),user,false);
        Logger.debug(DirectorAction.class, "Number of contentlets = " + cletList.size());

        int newPosition = cletList.indexOf(contentlet) + 1;

        if( newPosition < cletList.size() ) { 

          idenContainer = APILocator.getIdentifierAPI().find(container);
          idenHtmlPage = APILocator.getIdentifierAPI().find(htmlPage);
          int x = 0;
          Iterator i = cletList.iterator();
 
          while (i.hasNext()) {
 
            Identifier iden;
            MultiTree multiTree;
            Contentlet c = (Contentlet) i.next();
           
            Logger.debug(DirectorAction.class, "Contentlet inode = " + c.getInode());
 
            if (!c.getInode().equalsIgnoreCase(contentlet.getInode())) {
              iden = APILocator.getIdentifierAPI().find(c);
              multiTree = MultiTreeFactory.getMultiTree(idenHtmlPage,idenContainer,iden);
              multiTree.setTreeOrder(x);
              MultiTreeFactory.saveMultiTree(multiTree);
              x++;
            }
            if( newPosition == x ) {
              iden = APILocator.getIdentifierAPI().find(contentlet);
              multiTree = MultiTreeFactory.getMultiTree(idenHtmlPage,idenContainer,iden);
              multiTree.setTreeOrder(x);
              MultiTreeFactory.saveMultiTree(multiTree);
              x++;
            }
 
          }
        }

        _sendToReferral(req, res, referer);
        return;

      }

      if (cmd!=null && cmd.equals("unlock")) {

        Logger.debug(DirectorAction.class, "Director :: unlock Contentlet");

        Contentlet contentlet = new Contentlet();
        String cInode = req.getParameter("contentlet");
        if(InodeUtils.isSet(cInode)){
          contentlet = conAPI.find(cInode, user, true)
        }
        conAPI.unlock(contentlet, user,true);
      }
     
      if (cmd!=null && cmd.equals("createForm")) {

        Logger.debug(DirectorAction.class, "Director :: createForrm");
        java.util.Map params = new java.util.HashMap();
        params.put("struts_action",new String[] {"/ext/structure/edit_structure"});
        params.put("structureType",new String[] {Integer.toString(Structure.STRUCTURE_TYPE_FORM)});
        params.put("cmd",new String[] {"null"});
 
        String af = com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq,WindowState.MAXIMIZED.toString(),params);

        _sendToReferral(req, res, af);
        return;
      }
     

      Contentlet contentlet = new Contentlet();
      String cInode = req.getParameter("contentlet");
      if(InodeUtils.isSet(cInode)){
        contentlet = conAPI.find(cInode, user, true)
      }
      if(contentlet == null){
        throw new DotStateException("Trying to edit an invalid contentlet - inode:" + cInode);
      }
      Container container = (Container) InodeFactory.getInode(req.getParameter("container"), Container.class);
      HTMLPage htmlPage = (HTMLPage) InodeFactory.getInode(req.getParameter("htmlPage"), HTMLPage.class);

      Logger.debug(DirectorAction.class, "contentlet=" + contentlet.getInode());

      String contentletInode = "";
      if (InodeUtils.isSet(contentlet.getInode())) {

        Identifier identifier = APILocator.getIdentifierAPI().find(contentlet);
        //gets the current working asset
        Contentlet workingContentlet = conAPI.findContentletByIdentifier(identifier.getInode(), false, contentlet.getLanguageId(), user, false);

        Logger.debug(DirectorAction.class, "workingContentlet=" + workingContentlet.getInode());
        Logger.debug(DirectorAction.class, "workingContentlet.getModUser()=" + workingContentlet.getModUser());
        Logger.debug(DirectorAction.class, "workingContentlet.isLocked()=" + workingContentlet.isLocked());

        contentletInode = workingContentlet.getInode();
      }
      else {
        contentletInode = contentlet.getInode();

      }

      Logger.debug(DirectorAction.class, "Director :: Edit Contentlet");

      java.util.Map params = new java.util.HashMap();
      params.put("struts_action",new String[] {"/ext/contentlet/edit_contentlet"});

      String cmdAux = (cmd.equals("newedit") ? cmd : "edit");

      params.put("cmd",new String[] { cmdAux });
      params.put("htmlpage_inode",new String[] { htmlPage.getInode() + "" });
      params.put("contentcontainer_inode",new String[] { container.getInode() + "" });
      params.put("inode",new String[] { contentletInode + "" });
      if(InodeUtils.isSet(req.getParameter("selectedStructure"))){
        params.put("selectedStructure",new String[] { req.getParameter("selectedStructure") + "" });
      }
      params.put("lang",new String[] { (req.getParameter("language")!=null) ? req.getParameter("language") : "" });
View Full Code Here


    }
    return true;
  }

  public List<Map<String, String>> getContainerStructures(String containerInode) throws Exception{
    Container cont = (Container) InodeFactory.getInode(containerInode, Container.class);

    List<Map<String,String>> resultList = new ArrayList<Map<String,String>>();
    List<ContainerStructure> csList;

    try {
View Full Code Here

    return resultList;
  }
 
  public List<Map<String, String>> getContainerStructuresForUser(String containerInode) throws Exception{
    Container cont = (Container) InodeFactory.getInode(containerInode, Container.class);

    List<Map<String,String>> resultList = new ArrayList<Map<String,String>>();
    List<ContainerStructure> csList;

    HttpServletRequest req = WebContextFactory.get().getHttpServletRequest();
View Full Code Here

    User user = userWebAPI.getLoggedInUser(req);
    boolean respectFrontendRoles = userWebAPI.isLoggedToFrontend(req);
    String[] inodesArray = containerInode.split(",");
    String result= null;
    for(String contInode : inodesArray){
      Container cont = (Container) InodeFactory.getInode(contInode, Container.class);
      TemplateAPI templateAPI = APILocator.getTemplateAPI();
      List<Template> templates = templateAPI.findTemplates(user, true, null, null, null, null, null, 0, -1, null);
      result = checkTemplatesUsedByContainer(templates,cont,user, respectFrontendRoles);     
      if(result.length()>0){
        StringBuilder dialogMessage=new StringBuilder();
        dialogMessage.append(LanguageUtil.get(user,"container-used-templates")).append("<br> <br>");
        dialogMessage.append(LanguageUtil.get(user,"Container") + " : ").append(cont.getTitle()).append("<br>");
        dialogMessage.append(LanguageUtil.get(user,"templates") + " : ").append(result);
        return dialogMessage.length()>0?dialogMessage.toString():null;
      }
       
    }
View Full Code Here

  }

  private void _getMenuItems(ActionRequest req, ActionResponse res,PortletConfig config,ActionForm form)
  throws Exception {

    Container container = (Container) InodeFactory.getInode(req.getParameter("containerId"),Container.class);
    HTMLPage page= (HTMLPage) InodeFactory.getInode(req.getParameter("pageId"),HTMLPage.class);   
    String languaje_id = (String) ((ActionRequestImpl) req).getHttpServletRequest().getSession().getAttribute(com.dotmarketing.util.WebKeys.HTMLPAGE_LANGUAGE);

    Identifier containerIdentifier = APILocator.getIdentifierAPI().find(container);
    Identifier pageIdentifier = APILocator.getIdentifierAPI().find(page);
View Full Code Here

  private void _orderMenuItemsDragAndDrop(ActionRequest req, ActionResponse res,PortletConfig config,ActionForm form)
  throws Exception {
    try
    {
      Container container = (Container) InodeFactory.getInode(req.getParameter("containerId"),Container.class);
      HTMLPage page= (HTMLPage) InodeFactory.getInode(req.getParameter("pageId"),HTMLPage.class);

      Enumeration parameterNames = req.getParameterNames();
      HashMap<String,HashMap<Integer, String>> hashMap = new HashMap<String,HashMap<Integer, String>>();
      while(parameterNames.hasMoreElements())
View Full Code Here

      Identifier htmlParentId = identifierAPI.findFromInode(htmlpage_inode);
      HTMLPage htmlParent = (HTMLPage) versionableAPI.findWorkingVersion(htmlParentId, user, false);
      Logger.debug(this, "Added Contentlet to parent=" + htmlParent.getInode());

      Identifier containerParentId = null;
      Container containerParent = null;
      try{
        containerParentId =  identifierAPI.findFromInode(contentcontainer_inode);
        containerParent = (Container) versionableAPI.findWorkingVersion(containerParentId, user, false);
      }
      catch(Exception e){
        if(e instanceof DotSecurityException){
          SessionMessages.add(req, "message", "User needs 'View' Permissions on container");
          throw new DotSecurityException("User have no View Permissions on container");
        }else{
          throw e;
        }
      }

      if(containerParent != null){
        Logger.debug(this, "Added Contentlet to parent=" + containerParent.getInode());


        if (InodeUtils.isSet(htmlParent.getInode()) && InodeUtils.isSet(containerParent.getInode()) && InodeUtils.isSet(contentlet.getInode())) {
          Identifier htmlPageIdentifier = identifierAPI.find(htmlParent);
          Identifier containerIdentifier = identifierAPI.find(containerParent);
          Identifier contenletIdentifier = identifierAPI.find(contentlet);
          MultiTree multiTree = MultiTreeFactory.getMultiTree(htmlPageIdentifier, containerIdentifier,
              contenletIdentifier);
          Logger.debug(this, "Getting multitree for=" + htmlParent.getInode() + " ," + containerParent.getInode()
              + " ," + contentlet.getIdentifier());
          Logger.debug(this, "Coming from multitree parent1=" + multiTree.getParent1() + " parent2="
              + multiTree.getParent2());

          int contentletCount = MultiTreeFactory.getMultiTree(htmlParentId).size();
View Full Code Here

              _handleException(ae, req);
              return;
            }
          }

          Container cont=(Container)req.getAttribute(WebKeys.CONTAINER_EDIT);
          if(cont.isLocked())
              APILocator.getVersionableAPI().setLocked(cont, false, user);

          try{

View Full Code Here

  private void _setupEditContainerPage(ActionRequest req, ActionResponse res, PortletConfig config, ActionForm form,
      User user) throws Exception {

    //Getting the host that can be assigned to the container
    PermissionAPI perAPI = APILocator.getPermissionAPI();
    Container container = (Container) req.getAttribute(WebKeys.CONTAINER_EDIT);

        Host host = hostAPI.findParentHost(container, user, false);

    List<Host> hosts = APILocator.getHostAPI().findAll(user, false);
    hosts.remove(APILocator.getHostAPI().findSystemHost(user, false));
View Full Code Here

          if(crumbHost != null && permissionAPI.doesUserHavePermission(crumbHost, PermissionAPI.PERMISSION_CAN_ADD_CHILDREN, user, false))
            cf.setHostId(hostId);
        }

    // This can't be done on the WebAsset so it needs to be done here.
    Container container = (Container) req
        .getAttribute(WebKeys.CONTAINER_EDIT);

        if (UtilMethods.isSet(container.getLuceneQuery())) {
            cf.setDynamic(true);
        }

        //gets the container host
        Host host = hostAPI.findParentHost(container, user, false);
View Full Code Here

TOP

Related Classes of com.dotmarketing.portlets.containers.model.Container

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.