Example usage for com.liferay.portal.kernel.portletfilerepository PortletFileRepositoryUtil restorePortletFileEntryFromTrash

List of usage examples for com.liferay.portal.kernel.portletfilerepository PortletFileRepositoryUtil restorePortletFileEntryFromTrash

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.portletfilerepository PortletFileRepositoryUtil restorePortletFileEntryFromTrash.

Prototype

public static void restorePortletFileEntryFromTrash(long userId, long fileEntryId) throws PortalException 

Source Link

Usage

From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java

License:Open Source License

/**
 * Moves the web content article from the Recycle Bin to a new folder.
 *
 * @param  userId the primary key of the user updating the web content
 *         article/*from   w  w w. j  ava2s. c  om*/
 * @param  groupId the primary key of the web content article's group
 * @param  article the web content article
 * @param  newFolderId the primary key of the web content article's new
 *         folder
 * @param  serviceContext the service context to be applied. Can set the
 *         modification date, portlet preferences, and can set whether to
 *         add the default command update for the web content article. With
 *         respect to social activities, by setting the service context's
 *         command to {@link Constants#UPDATE}, the invocation is considered
 *         a web content update activity; otherwise it is considered a web
 *         content add activity.
 * @return the updated web content article, which was moved from the Recycle
 *         Bin to a new folder
 */
@Indexable(type = IndexableType.REINDEX)
@Override
public JournalArticle moveArticleFromTrash(long userId, long groupId, JournalArticle article, long newFolderId,
        ServiceContext serviceContext) throws PortalException {

    if (!article.isInTrash()) {
        throw new RestoreEntryException(RestoreEntryException.INVALID_STATUS);
    }

    if (article.isInTrashExplicitly()) {
        restoreArticleFromTrash(userId, article);
    } else {

        // Article

        TrashVersion trashVersion = trashVersionLocalService.fetchVersion(JournalArticle.class.getName(),
                article.getResourcePrimKey());

        int status = WorkflowConstants.STATUS_APPROVED;

        if (trashVersion != null) {
            status = trashVersion.getStatus();
        }

        updateStatus(userId, article, status, null, serviceContext, new HashMap<String, Serializable>());

        // Attachments

        for (FileEntry fileEntry : article.getImagesFileEntries()) {
            PortletFileRepositoryUtil.restorePortletFileEntryFromTrash(userId, fileEntry.getFileEntryId());
        }

        // Trash

        if (trashVersion != null) {
            trashVersionLocalService.deleteTrashVersion(trashVersion);
        }
    }

    return moveArticle(groupId, article.getArticleId(), newFolderId, serviceContext);
}

From source file:com.liferay.wiki.service.impl.WikiPageLocalServiceImpl.java

License:Open Source License

@Override
public void restorePageAttachmentFromTrash(long userId, long nodeId, String title, String fileName)
        throws PortalException {

    WikiPage page = getPage(nodeId, title);

    FileEntry fileEntry = PortletFileRepositoryUtil.getPortletFileEntry(page.getGroupId(),
            page.getAttachmentsFolderId(), fileName);

    JSONObject extraDataJSONObject = JSONFactoryUtil.createJSONObject();

    extraDataJSONObject.put("fileEntryId", fileEntry.getFileEntryId());
    extraDataJSONObject.put("fileEntryTitle", TrashUtil.getOriginalTitle(fileEntry.getTitle()));
    extraDataJSONObject.put("title", page.getTitle());
    extraDataJSONObject.put("version", page.getVersion());

    PortletFileRepositoryUtil.restorePortletFileEntryFromTrash(userId, fileEntry.getFileEntryId());

    SocialActivityManagerUtil.addActivity(userId, page,
            SocialActivityConstants.TYPE_RESTORE_ATTACHMENT_FROM_TRASH, extraDataJSONObject.toString(), 0);
}

From source file:com.liferay.wiki.service.impl.WikiPageLocalServiceImpl.java

License:Open Source License

protected void moveDependentFromTrash(WikiPage page, long newNodeId, String newParentTitle)
        throws PortalException {

    // Page//from   w ww.j  a va2s  . co m

    String trashTitle = page.getTitle();

    TrashVersion trashVersion = trashVersionLocalService.fetchVersion(WikiPage.class.getName(),
            page.getPageId());

    long oldNodeId = page.getNodeId();

    if (newNodeId == 0) {
        newNodeId = oldNodeId;
    }

    page.setNodeId(newNodeId);

    WikiPageResource pageResource = wikiPageResourcePersistence.findByPrimaryKey(page.getResourcePrimKey());

    pageResource.setNodeId(newNodeId);

    if (trashVersion != null) {
        String originalTitle = TrashUtil.getOriginalTitle(page.getTitle());

        pageResource.setTitle(originalTitle);

        page.setTitle(originalTitle);
    }

    wikiPageResourcePersistence.update(pageResource);

    page.setParentTitle(newParentTitle);

    wikiPagePersistence.update(page);

    int oldStatus = WorkflowConstants.STATUS_APPROVED;

    if (trashVersion != null) {
        oldStatus = trashVersion.getStatus();
    }

    // Version pages

    List<WikiPage> versionPages = wikiPagePersistence.findByR_N(page.getResourcePrimKey(), page.getNodeId());

    for (WikiPage versionPage : versionPages) {

        // Version page

        versionPage.setParentTitle(newParentTitle);
        versionPage.setNodeId(newNodeId);
        versionPage.setTitle(page.getTitle());

        trashVersion = trashVersionLocalService.fetchVersion(WikiPage.class.getName(), versionPage.getPageId());

        int versionPageOldStatus = WorkflowConstants.STATUS_APPROVED;

        if (trashVersion != null) {
            versionPageOldStatus = trashVersion.getStatus();
        }

        versionPage.setStatus(versionPageOldStatus);

        wikiPagePersistence.update(versionPage);

        // Trash

        if (trashVersion != null) {
            trashVersionLocalService.deleteTrashVersion(trashVersion);
        }
    }

    // Asset

    if (oldStatus == WorkflowConstants.STATUS_APPROVED) {
        assetEntryLocalService.updateVisible(WikiPage.class.getName(), page.getResourcePrimKey(), true);
    }

    // Attachments

    WikiNode node = page.getNode();

    for (FileEntry fileEntry : page.getAttachmentsFileEntries()) {
        PortletFileRepositoryUtil.restorePortletFileEntryFromTrash(node.getStatusByUserId(),
                fileEntry.getFileEntryId());
    }

    // Indexer

    Indexer<WikiPage> indexer = IndexerRegistryUtil.nullSafeGetIndexer(WikiPage.class);

    indexer.reindex(page);

    // Child pages

    moveDependentChildPagesFromTrash(page, oldNodeId, trashTitle);

    // Redirect pages

    moveDependentRedirectorPagesFromTrash(page, oldNodeId, trashTitle);
}

From source file:com.liferay.wiki.service.impl.WikiPageLocalServiceImpl.java

License:Open Source License

protected void movePageFromTrash(long userId, WikiPage page, long newNodeId, String newParentTitle)
        throws PortalException {

    // Page/*from   w w w.j a  v  a  2 s  . com*/

    String trashTitle = page.getTitle();

    String originalTitle = TrashUtil.getOriginalTitle(trashTitle);

    long oldNodeId = page.getNodeId();

    if (newNodeId == 0) {
        newNodeId = oldNodeId;
    }

    List<WikiPage> pageVersions = wikiPagePersistence.findByR_N_H(page.getResourcePrimKey(), oldNodeId, false);

    for (WikiPage pageVersion : pageVersions) {
        pageVersion.setParentTitle(newParentTitle);
        pageVersion.setNodeId(newNodeId);
        pageVersion.setTitle(originalTitle);

        wikiPagePersistence.update(pageVersion);
    }

    WikiPageResource pageResource = wikiPageResourcePersistence.fetchByPrimaryKey(page.getResourcePrimKey());

    pageResource.setNodeId(newNodeId);
    pageResource.setTitle(originalTitle);

    wikiPageResourcePersistence.update(pageResource);

    page.setNodeId(newNodeId);
    page.setTitle(originalTitle);

    WikiPage parentPage = page.getParentPage();

    if ((parentPage != null) && parentPage.isInTrash()) {
        page.setParentTitle(StringPool.BLANK);
    }

    if (Validator.isNotNull(newParentTitle)) {
        WikiPage newParentPage = getPage(newNodeId, newParentTitle);

        if (!newParentPage.isInTrash()) {
            page.setParentTitle(newParentTitle);
        }
    }

    WikiPage redirectPage = page.getRedirectPage();

    if ((redirectPage != null) && redirectPage.isInTrash()) {
        page.setRedirectTitle(StringPool.BLANK);
    }

    wikiPagePersistence.update(page);

    TrashEntry trashEntry = trashEntryLocalService.getEntry(WikiPage.class.getName(),
            page.getResourcePrimKey());

    updateStatus(userId, page, trashEntry.getStatus(), new ServiceContext(),
            new HashMap<String, Serializable>());

    // Attachments

    for (FileEntry fileEntry : page.getAttachmentsFileEntries()) {
        PortletFileRepositoryUtil.restorePortletFileEntryFromTrash(userId, fileEntry.getFileEntryId());
    }

    // Child pages

    moveDependentChildPagesFromTrash(page, oldNodeId, trashTitle);

    // Redirect pages

    moveDependentRedirectorPagesFromTrash(page, oldNodeId, trashTitle);

    // Trash

    List<TrashVersion> trashVersions = trashVersionLocalService.getVersions(trashEntry.getEntryId());

    for (TrashVersion trashVersion : trashVersions) {
        WikiPage trashArticleVersion = wikiPagePersistence.findByPrimaryKey(trashVersion.getClassPK());

        trashArticleVersion.setStatus(trashVersion.getStatus());

        wikiPagePersistence.update(trashArticleVersion);
    }

    trashEntryLocalService.deleteEntry(WikiPage.class.getName(), page.getResourcePrimKey());

    // Comment

    CommentManagerUtil.restoreDiscussionFromTrash(WikiPage.class.getName(), page.getResourcePrimKey());

    // Social

    JSONObject extraDataJSONObject = JSONFactoryUtil.createJSONObject();

    extraDataJSONObject.put("title", page.getTitle());
    extraDataJSONObject.put("version", page.getVersion());

    SocialActivityManagerUtil.addActivity(userId, page, SocialActivityConstants.TYPE_RESTORE_FROM_TRASH,
            extraDataJSONObject.toString(), 0);

    Indexer<WikiPage> indexer = IndexerRegistryUtil.nullSafeGetIndexer(WikiPage.class);

    indexer.reindex(page);
}