Package com.dotmarketing.portlets.folders.model

Examples of com.dotmarketing.portlets.folders.model.Folder



       if(UtilMethods.isSet(fatty.getIdentifier())){
          IdentifierAPI identifierAPI = APILocator.getIdentifierAPI();
          Identifier identifier = identifierAPI.find(fatty.getIdentifier());
          Folder folder = null;
          if(identifier.getParentPath().length()>1){
              folder = APILocator.getFolderAPI().findFolderByPath(identifier.getParentPath(), identifier.getHostId(), APILocator.getUserAPI().getSystemUser(),false);
          }else{
              folder = APILocator.getFolderAPI().findSystemFolder();
          }
          con.setHost(identifier.getHostId());
          con.setFolder(folder.getInode());

          // lets check if we have publish/expire fields to set
          Structure st=con.getStructure();
          if(UtilMethods.isSet(st.getPublishDateVar()))
              con.setDateProperty(st.getPublishDateVar(), identifier.getSysPublishDate());
View Full Code Here


      return;
    }

    path = (path.endsWith("/")) ? path : path + "/";

    Folder folder = new Folder();
    try {
      folder = APILocator.getFolderAPI().findFolderByPath(path, host, APILocator.getUserAPI().getSystemUser(),false);
    } catch (Exception e1) {
      Logger.error(this,e1.getMessage(), e1);
    }
View Full Code Here

          output.close();
          input.close();

          for(Host host : hostList){

            Folder folder = APILocator.getFolderAPI().findFolderByPath(pluginFolderPath + "/" + filePath,host,APILocator.getUserAPI().getSystemUser(),false);
            if( !InodeUtils.isSet(folder.getInode())){     
              folder = APILocator.getFolderAPI().createFolders(pluginFolderPath + "/" + filePath, host,APILocator.getUserAPI().getSystemUser(),false);
            }
            //GetPrevious version if exists
            IFileAsset currentFile = null;
            Identifier currentId = APILocator.getIdentifierAPI().find(host, pluginFolderPath+"/"+filePathAndName);
            if(currentId!=null && InodeUtils.isSet(currentId.getId()) && currentId.getAssetType().equals("contentlet")){
              Contentlet cont = APILocator.getContentletAPI().findContentletByIdentifier(currentId.getId(), true, APILocator.getLanguageAPI().getDefaultLanguage().getId(), APILocator.getUserAPI().getSystemUser(),false);
              if(cont!=null && InodeUtils.isSet(cont.getInode())){
                currentFile = APILocator.getFileAssetAPI().fromContentlet(cont);
                cont.setStringProperty(FileAssetAPI.TITLE_FIELD, UtilMethods.getFileName(fileName));
                cont.setFolder(folder.getInode());
                cont.setHost(host.getIdentifier());
                cont.setBinary(FileAssetAPI.BINARY_FIELD, temporaryFile);
                APILocator.getContentletAPI().checkin(cont, APILocator.getUserAPI().getSystemUser(),false);
                APILocator.getVersionableAPI().setWorking(cont);
                APILocator.getVersionableAPI().setLive(cont);
                if (cont.isLive()){
                  LiveCache.removeAssetFromCache(cont);
                  LiveCache.addToLiveAssetToCache(cont);
                }else{
                  LiveCache.removeAssetFromCache(cont);
                  LiveCache.addToLiveAssetToCache(cont);
                }
                WorkingCache.removeAssetFromCache(cont);
                WorkingCache.addToWorkingAssetToCache(cont);
              }
            }else if(currentId!=null && InodeUtils.isSet(currentId.getId())){
              currentFile = APILocator.getFileAPI().getFileByURI(pluginFolderPath+"/"+filePathAndName, host, true, APILocator.getUserAPI().getSystemUser(),false);
              com.dotmarketing.portlets.files.model.File file = new com.dotmarketing.portlets.files.model.File();
              file.setFileName(fileName);
              file.setFriendlyName(UtilMethods.getFileName(fileName));
              file.setTitle(UtilMethods.getFileName(fileName));
              file.setMimeType(APILocator.getFileAPI().getMimeType(fileName));
              file.setOwner(systemUser.getUserId());
              file.setModUser(systemUser.getUserId());
              file.setModDate(new Date());
              file.setParent(folder.getIdentifier());
              file.setSize((int)temporaryFile.length());
             
              HibernateUtil.saveOrUpdate(file);
              APILocator.getFileAPI().invalidateCache(file);
              // get the file Identifier
              Identifier ident = null;
              if (InodeUtils.isSet(currentFile.getInode())){
                ident = APILocator.getIdentifierAPI().find((com.dotmarketing.portlets.files.model.File)currentFile);
                APILocator.getFileAPI().invalidateCache((com.dotmarketing.portlets.files.model.File)currentFile);
              }else{
                ident = new Identifier();
              }
              //Saving the file, this creates the new version and save the new data
              com.dotmarketing.portlets.files.model.File workingFile = null;
              workingFile = APILocator.getFileAPI().saveFile(file, temporaryFile, folder, systemUser, false);
             
              APILocator.getVersionableAPI().setWorking(workingFile);
              APILocator.getVersionableAPI().setLive(workingFile);

              APILocator.getFileAPI().invalidateCache(workingFile);
              ident = APILocator.getIdentifierAPI().find(workingFile);

              //updating caches
              if (workingFile.isLive()){
                LiveCache.removeAssetFromCache(workingFile);
                LiveCache.addToLiveAssetToCache(workingFile);
              }else{
                LiveCache.removeAssetFromCache(file);
                LiveCache.addToLiveAssetToCache(file);
              }
              WorkingCache.removeAssetFromCache(workingFile);
              WorkingCache.addToWorkingAssetToCache(workingFile);
             
              //Publish the File
              PublishFactory.publishAsset(workingFile, systemUser, false);

            }else{
              Contentlet cont = new Contentlet();
              cont.setStructureInode(folder.getDefaultFileType());
              cont.setStringProperty(FileAssetAPI.TITLE_FIELD, UtilMethods.getFileName(fileName));
              cont.setFolder(folder.getInode());
              cont.setHost(host.getIdentifier());
              cont.setBinary(FileAssetAPI.BINARY_FIELD, temporaryFile);
              APILocator.getContentletAPI().checkin(cont, APILocator.getUserAPI().getSystemUser(),false);
              APILocator.getVersionableAPI().setWorking(cont);
              APILocator.getVersionableAPI().setLive(cont);
View Full Code Here

                        if(assetType == null){
                            assetType = InodeUtils.getAssetTypeFromDB(_assetId);
                        }

                        if(assetType != null && assetType.equals(Identifier.ASSET_TYPE_FOLDER)){
                            Folder folder = null;

                            try {
                                folder = APILocator.getFolderAPI().find( _assetId, getUser(), false );
                            } catch ( DotSecurityException e ) {
                                Logger.error( getClass(), "User: " + getUser() + " does not have permission to access folder. Folder identifier: " + _assetId );
                            } catch ( DotDataException e ) {
                                Logger.info( getClass(), "FolderAPI.find(): Identifier is null" );
                            }

                            if ( folder != null && UtilMethods.isSet( folder.getInode() ) ) {
                                if (!isAssetInBundle(_assetId, bundleId)) {
                                    ids.add(_assetId);
                                }
                            }
View Full Code Here

         * mark all the existing sitemaps generated in the XMLSitemap
         * folder for the host specified to be removed upon creating new ones
         */
        List<Object> oldSiteMapsToDel = new ArrayList<Object>();

        Folder folder = folderAPI.findFolderByPath(XML_SITEMAPS_FOLDER, host, systemUser, false);

        if (InodeUtils.isSet(folder.getIdentifier())) {
          oldSiteMapsToDel.addAll(fileAPI.getFolderFiles(folder, false, systemUser, true));
          oldSiteMapsToDel.addAll(conAPI.findContentletsByFolder(folder, systemUser, false));
        }

        hostFilesCounter.put(host.getHostname(), sitemapCounter);

        /* adding host url */
        stringbuf = "<url><loc>"
            + XMLUtils.xmlEscape("http://" + host.getHostname()
                + "/") + "</loc><lastmod>"
            + modifiedDateStringValue
            + "</lastmod><changefreq>daily</changefreq></url>\n";

        writeFile(stringbuf);

        addRegistryProcessed();

        List<String> ignorableStructureIds = getIgnorableStrcutureIdsForHost(host);
        /**
         * This part generate the detail pages sitemap links per
         * structure
         */
        for (String stVelocityVarName : structureVelocityVarNames) {

          if (ignorableStructureIds.contains(stVelocityVarName
              .toLowerCase()))
            continue;

          Structure st = StructureFactory
              .getStructureByVelocityVarName(stVelocityVarName);

          if (!InodeUtils.isSet(st.getPagedetail()))
            continue;

          HTMLPage page = htmlAPI.loadLivePageById(
              st.getPagedetail(), systemUser, true);

          Logger.debug(this, " Creating Site Map for Structure "
              + stVelocityVarName);
          Identifier pageIdentifier = identAPI.find(page
              .getIdentifier());

          Logger.debug(this,
              " Performing Host Parameter validation Page Identifider Host ["
                  + pageIdentifier.getHostId()
                  + "], Host Identifider ["
                  + host.getIdentifier() + "], Deleted ["
                  + page.isDeleted() + "], Live ["
                  + page.isLive() + "]");

          if (!(host.getIdentifier().equals(
              pageIdentifier.getHostId()) && (!page.isDeleted() && page
              .isLive()))) {
            Logger.debug(this,
                "Host Parameter validation failed for structure ["
                    + stVelocityVarName + "]");
            continue;
          }

          String query = "+structureName:" + st.getVelocityVarName()
              + " +deleted:false +live:true";

          List<Contentlet> hits = conAPI.search(query, -1, 0, "",
              systemUser, true);

          String structureURLMap = st.getUrlMapPattern();

          List<RegExMatch> matches = null;

          if (useStructureURLMap
              && UtilMethods.isSet(structureURLMap)) {
            matches = RegEX.find(st.getUrlMapPattern(),
                "({[^{}]+})");
          }
          for (Contentlet contenlet : hits) {
            try {
              if (usePermalinks) {
                stringbuf = "<url><loc>"
                    + XMLUtils.xmlEscape("http://"
                        + host.getHostname()
                        + "/permalink/"
                        + contenlet.getIdentifier()
                        + "/" + st.getPagedetail()
                        + "/")
                    + "</loc><lastmod>"
                    + modifiedDateStringValue
                    + "</lastmod><changefreq>daily</changefreq></url>\n";
              } else if (useStructureURLMap
                  && UtilMethods.isSet(structureURLMap)
                  && (matches != null)) {
                String uri = structureURLMap;
                Logger.debug(this,
                    " Found the URL String for validation ["
                        + uri + "]");
                for (RegExMatch match : matches) {
                  String urlMapField = match.getMatch();
                  String urlMapFieldValue = contenlet
                      .getStringProperty(urlMapField
                          .substring(1, (urlMapField
                              .length() - 1)));
                  urlMapField = urlMapField.replaceFirst(
                      "\\{", "\\\\{");
                  urlMapField = urlMapField.replaceFirst(
                      "\\}", "\\\\}");

                  if (urlMapFieldValue != null) {
                    uri = uri.replaceAll(urlMapField,
                        urlMapFieldValue);
                  }
                  Logger.debug(this,
                      "Performing Variable replacement - urlMapField ["
                          + match.getMatch()
                          + "], urlMapField [ "
                          + urlMapField
                          + "], urlMapFieldValue ["
                          + urlMapFieldValue
                          + "], uri [" + uri + "]");
                }

                if (uri == null
                    && UtilMethods
                        .isSet(st.getDetailPage())) {
                  if (page != null
                      && UtilMethods.isSet(page
                          .getIdentifier())) {
                    uri = page.getURI() + "?id="
                        + contenlet.getInode();
                  }
                }
                String urlRelacementText = getUrlPatternReplacementText(
                    host, stVelocityVarName);

                uri = uri.replaceAll(urlRelacementText, "");

                Logger.debug(this,
                    "Performing URL replacement - urlRelacementText ["
                        + urlRelacementText
                        + "], uri [" + uri + "]");

                stringbuf = "<url><loc>"
                    + XMLUtils.xmlEscape("http://"
                        + host.getHostname() + uri)
                    + "</loc><lastmod>"
                    + modifiedDateStringValue
                    + "</lastmod><changefreq>daily</changefreq></url>\n";
              } else {
                stringbuf = "<url><loc>"
                    + XMLUtils.xmlEscape("http://"
                        + host.getHostname()
                        + pageIdentifier.getURI()
                        + "?id="
                        + contenlet.getIdentifier())
                    + "</loc><lastmod>"
                    + modifiedDateStringValue
                    + "</lastmod><changefreq>daily</changefreq></url>\n";
              }
              writeFile(stringbuf);
              addRegistryProcessed();

            } catch (Exception e) {
              Logger.error(this, e.getMessage(), e);
            }
          }
        }
        /**
         * This part add the show on menu pages. similar as we do in
         * navigationwebapi to generate sitemap
         * */
        java.util.List<Folder> itemsList = new ArrayList<Folder>();

        itemsList = folderAPI.findSubFolders(host, true);

        //Logger.warn(this, "Finding Subfolders for referebce [" + itemsList.size() + "]");

        Comparator<Folder> comparator = new AssetsComparator(
            orderDirection);
        Collections.sort(itemsList, comparator);

        List<Inode> itemsList2 = new ArrayList<Inode>();

        for (Folder f : itemsList) {
          if (f instanceof Folder) {
            //Logger.warn(this, "Folder Iteration in progress Name [" + f.getName() + "], show on Menu Indicator [" + f.isShowOnMenu() + "]");
            itemsList2.addAll(folderAPI.findMenuItems(f,
                systemUser, true));
          }
        }

        //Logger.warn(this, "List Size [" + itemsList2 + "]");

        if (itemsList2.size() > 0) {

          // /FIRST LEVEL MENU ITEMS!!!!
          for (Permissionable itemChild : itemsList) {

            if (itemChild instanceof Folder) {

              Folder folderChild = (Folder) itemChild;

              Logger.debug(this, "Folder Iteration in progress Name [" + folderChild.getName() + "], show on Menu Indicator [" + folderChild.isShowOnMenu() + "]");

              // recursive method here
              buildSubFolderSiteMapMenu(folderChild, 100, 1, 1);

            } else if (itemChild instanceof Link) {
View Full Code Here

    if (currentLevel < numberOfLevels) {

      for (Permissionable childChild2 : itemsChildrenList2) {
        if (childChild2 instanceof Folder) {
          Folder folderChildChild2 = (Folder) childChild2;
          Identifier childChild2Ident = identAPI
              .find(folderChildChild2.getIdentifier());

          if (currentLevel <= numberOfLevels) {
            buildSubFolderSiteMapMenu(folderChildChild2,
                numberOfLevels, currentLevel + 1,
                orderDirection);
View Full Code Here

   
    @Test
    public void renameFolder() throws Exception {
        User user = APILocator.getUserAPI().getSystemUser();
        Host demo = APILocator.getHostAPI().findByName("demo.dotcms.com", user, false);
        Folder ftest = APILocator.getFolderAPI().createFolders("/folderTest"+System.currentTimeMillis(), demo, user, false);
        Folder ftest1 = APILocator.getFolderAPI().createFolders(ftest.getPath()+"/ff1", demo, user, false);
        Folder ftest2 = APILocator.getFolderAPI().createFolders(ftest.getPath()+"/ff1/ff2", demo, user, false);
        Folder ftest3 = APILocator.getFolderAPI().createFolders(ftest.getPath()+"/ff1/ff2/ff3", demo, user, false);
       
        // get identifiers to cache
        APILocator.getIdentifierAPI().find(ftest);
        APILocator.getIdentifierAPI().find(ftest1);
        APILocator.getIdentifierAPI().find(ftest2);
        APILocator.getIdentifierAPI().find(ftest3);
       
        Assert.assertTrue(APILocator.getFolderAPI().renameFolder(ftest, "folderTestXX"+System.currentTimeMillis(), user, false));
       
        // those should be cleared from cache
        Assert.assertNull(APILocator.getIdentifierAPI().loadFromCache(ftest1.getIdentifier()));
        Assert.assertNull(APILocator.getIdentifierAPI().loadFromCache(ftest2.getIdentifier()));
        Assert.assertNull(APILocator.getIdentifierAPI().loadFromCache(ftest3.getIdentifier()));
       
        // make sure the rename is properly propagated on children (that's done in a db trigger)
        Identifier ident=APILocator.getIdentifierAPI().find(ftest),ident1=APILocator.getIdentifierAPI().find(ftest1),
                ident2=APILocator.getIdentifierAPI().find(ftest2),ident3=APILocator.getIdentifierAPI().find(ftest3);
        Assert.assertTrue(ident.getAssetName().startsWith("folderTestXX"));
View Full Code Here

    try {
      HostAPI hostAPI = APILocator.getHostAPI();
      User systemUser = APILocator.getUserAPI().getSystemUser();
      if (request.getParameter("cmd") != null && request.getParameter("cmd").equals(Constants.ADD)) {
        String inode = request.getParameter("parent");
        Folder parentFolder = APILocator.getFolderAPI().find(inode, systemUser, false);
        if (!InodeUtils.isSet(parentFolder.getInode())) {
          Host host;
          host = (Host) hostAPI.find(inode, systemUser, false);
          if (host != null) {
            ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.folder.ishostfolder"));
          }
View Full Code Here

              String newFolderInode = (String) result.get("remote_inode");
              String oldFolderIdentifier = (String) result.get("local_identifier");
              String newFolderIdentifier = (String) result.get("remote_identifier");

              try {
                Folder folder = APILocator.getFolderAPI().find(oldFolderInode, APILocator.getUserAPI().getSystemUser(), false);

                List<Contentlet> contents = APILocator.getContentletAPI().findContentletsByFolder(folder, APILocator.getUserAPI().getSystemUser(), false);
                for (Contentlet contentlet : contents) {
                  APILocator.getContentletIndexAPI().removeContentFromIndex(contentlet);
                  CacheLocator.getContentletCache().remove(contentlet.getInode());
                }

                Identifier folderIdentifier = APILocator.getIdentifierAPI().find(folder.getIdentifier());
                CacheLocator.getFolderCache().removeFolder(folder, folderIdentifier);

                CacheLocator.getIdentifierCache().removeFromCacheByIdentifier(folderIdentifier.getId());


                // THIS IS THE NEW CODE

                    // 1.1) Insert dummy temp row on INODE table
                    if ( DbConnectionFactory.isOracle() ) {
                        dc.executeStatement( "insert into inode values ('TEMP_INODE', 'DUMMY_OWNER', to_date('1900-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'DUMMY_TYPE') " );
                    } else {
                        dc.executeStatement( "insert into inode values ('TEMP_INODE', 'DUMMY_OWNER', '1900-01-01 00:00:00.00', 'DUMMY_TYPE') " );
                    }

                Structure fileAssetSt = StructureCache.getStructureByVelocityVarName("FileAsset");

                // lets see if we have structures referencing the folder, if so, let's use its host for the dummy identifier
                List<Structure> referencedStructures = APILocator.getFolderAPI().getStructures(folder, APILocator.getUserAPI().getSystemUser(), false);
                String hostForDummyFolder = "SYSTEM_HOST";

                if (referencedStructures!=null && !referencedStructures.isEmpty()) {
            Structure st = referencedStructures.get(0);
            hostForDummyFolder = st.getHost();
          }

                // 1.2) Insert dummy temp row on IDENTIFIER table

                dc.executeStatement("insert into identifier values ('TEMP_IDENTIFIER', '/System folder', 'DUMMY_ASSET_NAME', '"+hostForDummyFolder+"', "
                    + "'folder', NULL, NULL) ");

                // 1.3) Insert dummy temp row on FOLDER table

                    if ( DbConnectionFactory.isOracle() ) {
                        dc.executeStatement("insert into folder values ('TEMP_INODE', 'DUMMY_NAME', 'DUMMY_TITLE', '"+DbConnectionFactory.getDBFalse()+"', '0', '', 'TEMP_IDENTIFIER', '"+ fileAssetSt.getInode()+ "', to_date('1900-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'))");
                    } else if(DbConnectionFactory.isPostgres()) {
                        dc.executeStatement("insert into folder values ('TEMP_INODE', 'DUMMY_NAME', 'DUMMY_TITLE', "+DbConnectionFactory.getDBFalse()+", '0', '', 'TEMP_IDENTIFIER', '"+ fileAssetSt.getInode()+ "', '1900-01-01 00:00:00.00')");
                    } else {
                        dc.executeStatement("insert into folder values ('TEMP_INODE', 'DUMMY_NAME', 'DUMMY_TITLE', '"+DbConnectionFactory.getDBFalse()+"', '0', '', 'TEMP_IDENTIFIER', '"+ fileAssetSt.getInode()+ "', '1900-01-01 00:00:00.00')");
                    }

                    // 2) Update references to the new dummies temps

                // update foreign tables references to TEMP
                dc.executeStatement("update structure set folder = 'TEMP_INODE' where folder = '"+oldFolderInode+"'");
                dc.executeStatement("update permission set inode_id = 'TEMP_INODE' where inode_id = '"+oldFolderInode+"'");
                dc.executeStatement("update permission_reference set asset_id = 'TEMP_INODE' where asset_id = '"+oldFolderInode+"'");

                // 3.1) delete old FOLDER row
                // lets save old folder columns values first
                dc.setSQL("select * from folder where inode = ?");
                dc.addParam(oldFolderInode);
                Map<String, Object> oldFolderRow = dc.loadObjectResults().get(0);
                String name = (String) oldFolderRow.get("name");
                String title = (String) oldFolderRow.get("title");
                Boolean showOnMenu = DbConnectionFactory.isDBTrue(oldFolderRow.get("show_on_menu").toString());

                    Integer sortOrder = 0;
                    if ( oldFolderRow.get( "sort_order" ) != null ) {
                        sortOrder = Integer.valueOf( oldFolderRow.get( "sort_order" ).toString() );
                    }

                    String filesMasks = (String) oldFolderRow.get("files_masks");
                String defaultFileType = (String) oldFolderRow.get("default_file_type");
                Date modDate = (Date) oldFolderRow.get("mod_date");

                // lets save old identifier columns values first
                dc.setSQL("select * from identifier where id = ?");
                dc.addParam(oldFolderIdentifier);
                Map<String, Object> oldIdentifierRow = dc.loadObjectResults().get(0);
                String parentPath = (String) oldIdentifierRow.get("parent_path");
                String assetName = (String) oldIdentifierRow.get("asset_name");
                String hostId = (String) oldIdentifierRow.get("host_inode");
                String assetType = (String) oldIdentifierRow.get("asset_type");
                Date syspublishDate = (Date) oldIdentifierRow.get("syspublish_date");
                Date sysexpireDate = (Date) oldIdentifierRow.get("sysexpire_date");

                // now we can safely delete the old folder row. It will also delete the old Identifier
                // lets alter the asset_name to avoid errors in validation when deleting the folder
                dc.executeStatement("update identifier set asset_name = '_TO_BE_DELETED_' where id = '" + oldFolderIdentifier + "'");

                dc.executeStatement("delete from folder where inode = '" + oldFolderInode + "'");

                // 3.2) delete old INODE row

                dc.setSQL("select * from inode where inode = ?");
                dc.addParam(oldFolderInode);
                Map<String, Object> oldInodeRow = dc.loadObjectResults().get(0);
                String owner = (String) oldInodeRow.get("owner");
                Date idate = (Date) oldInodeRow.get("idate");
                String type = (String) oldInodeRow.get("type");

                dc.executeStatement("delete from inode where inode = '" + oldFolderInode + "'");



                // 4.1) insert real new INODE row
                dc.setSQL("insert into inode values (?, ?, ?, ?) ");
                dc.addParam(newFolderInode);
                dc.addParam(owner);
                dc.addParam(idate);
                dc.addParam(type);
                dc.loadResult();

                // 4.2) insert real new IDENTIFIER row
                dc.setSQL("insert into identifier values (?, ?, ?, ?, ?, ?, ?) ");
                dc.addParam(newFolderIdentifier);
                dc.addParam(parentPath);
                dc.addParam(assetName);
                dc.addParam(hostId);
                dc.addParam(assetType);
                dc.addParam(syspublishDate);
                dc.addParam(sysexpireDate);
                dc.loadResult();

                // 4.3) insert real new FOLDER row
                dc.setSQL("insert into folder values (?, ?, ?, ?, ?, ?, ?, ?, ?) ");
                dc.addParam(newFolderInode);
                dc.addParam(name);
                dc.addParam(title);
                dc.addParam(showOnMenu);
                dc.addParam(sortOrder);
                dc.addParam(filesMasks);
                dc.addParam(newFolderIdentifier);
                dc.addParam(defaultFileType);
                dc.addParam(modDate);
                dc.loadResult();

                // 5) update foreign tables references to the new real row
                dc.executeStatement("update structure set folder = '"+newFolderInode+"' where folder = 'TEMP_INODE'");
                dc.executeStatement("update permission set inode_id = '"+newFolderInode+"' where inode_id = 'TEMP_INODE'");
                dc.executeStatement("update permission_reference set asset_id = '"+newFolderInode+"' where asset_id = 'TEMP_INODE'");

                // 6) delete dummy temp
                dc.executeStatement("delete from folder where inode = 'TEMP_INODE'");
                dc.executeStatement("delete from inode where inode = 'TEMP_INODE'");


              } catch (DotDataException e) {
                Logger.info(getClass(), "Folder not found. inode: " + oldFolderInode);
              }
      }

            // lets reindex all the content under each fixed folder

          dc.setSQL("select remote_inode from " + tableName + " where endpoint_id = ?");
            dc.addParam(serverId);
            results = dc.loadObjectResults();

            for (Map<String, Object> result : results) {
              final String newFolderInode = (String) result.get("remote_inode");
              try {


                HibernateUtil.addCommitListener(new Runnable() {
                  public void run() {
                    Folder folder = null;
              try {
                folder = APILocator.getFolderAPI().find(newFolderInode, APILocator.getUserAPI().getSystemUser(), false);
                      APILocator.getContentletAPI().refreshContentUnderFolder(folder);
                    } catch (DotStateException | DotDataException | DotSecurityException e) {
                      Logger.error(this,"Error while reindexing content under folder with inode: " + folder!=null?folder.getInode():"null",e);
                    }
                  }
                });

              } catch (DotDataException e) {
View Full Code Here

      gout.close();
      /************ End Generate compressed file **********************/

      /* Saving file in dotCMS */

      Folder folder = folderAPI.findFolderByPath(XML_SITEMAPS_FOLDER,
          currentHost, systemUser, true);

      if (!InodeUtils.isSet(folder.getIdentifier())) {
        folder = folderAPI.createFolders(XML_SITEMAPS_FOLDER,
            currentHost, systemUser, true);
      }

      java.io.File uploadedFile = new java.io.File(sitemapName);
      // Create the new file
      Contentlet file = new Contentlet();
      file.setStructureInode(folder.getDefaultFileType());
      file.setStringProperty(FileAssetAPI.TITLE_FIELD, UtilMethods.getFileName(sitemapName));
      file.setFolder(folder.getInode());
      file.setHost(currentHost.getIdentifier());
      file.setBinary(FileAssetAPI.BINARY_FIELD, uploadedFile);
      if(StructureCache.getStructureByInode(file.getStructureInode()).getStructureType() == Structure.STRUCTURE_TYPE_FILEASSET)
        file.setStringProperty("fileName", sitemapName);
      file = APILocator.getContentletAPI().checkin(file, systemUser,false);
View Full Code Here

TOP

Related Classes of com.dotmarketing.portlets.folders.model.Folder

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.