Example usage for com.liferay.portal.kernel.workflow WorkflowConstants STATUS_IN_TRASH

List of usage examples for com.liferay.portal.kernel.workflow WorkflowConstants STATUS_IN_TRASH

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.workflow WorkflowConstants STATUS_IN_TRASH.

Prototype

int STATUS_IN_TRASH

To view the source code for com.liferay.portal.kernel.workflow WorkflowConstants STATUS_IN_TRASH.

Click Source Link

Usage

From source file:com.liferay.wiki.search.WikiNodeIndexer.java

License:Open Source License

protected void reindexEntries(long companyId) throws PortalException {
    final IndexableActionableDynamicQuery indexableActionableDynamicQuery = _wikiNodeLocalService
            .getIndexableActionableDynamicQuery();

    indexableActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() {

        @Override/*  w  w  w.  j  a  v a 2 s .  c  o m*/
        public void addCriteria(DynamicQuery dynamicQuery) {
            Property property = PropertyFactoryUtil.forName("status");

            dynamicQuery.add(property.eq(WorkflowConstants.STATUS_IN_TRASH));
        }

    });
    indexableActionableDynamicQuery.setCompanyId(companyId);
    indexableActionableDynamicQuery
            .setPerformActionMethod(new ActionableDynamicQuery.PerformActionMethod<WikiNode>() {

                @Override
                public void performAction(WikiNode node) {
                    try {
                        Document document = getDocument(node);

                        indexableActionableDynamicQuery.addDocuments(document);
                    } catch (PortalException pe) {
                        if (_log.isWarnEnabled()) {
                            _log.warn("Unable to index wiki node " + node.getNodeId(), pe);
                        }
                    }
                }

            });
    indexableActionableDynamicQuery.setSearchEngineId(getSearchEngineId());

    indexableActionableDynamicQuery.performActions();
}

From source file:com.liferay.wiki.service.base.WikiNodeLocalServiceBaseImpl.java

License:Open Source License

@Override
public ExportActionableDynamicQuery getExportActionableDynamicQuery(
        final PortletDataContext portletDataContext) {
    final ExportActionableDynamicQuery exportActionableDynamicQuery = new ExportActionableDynamicQuery() {
        @Override//from ww w  .j a v a2s  .c  o  m
        public long performCount() throws PortalException {
            ManifestSummary manifestSummary = portletDataContext.getManifestSummary();

            StagedModelType stagedModelType = getStagedModelType();

            long modelAdditionCount = super.performCount();

            manifestSummary.addModelAdditionCount(stagedModelType, modelAdditionCount);

            long modelDeletionCount = ExportImportHelperUtil.getModelDeletionCount(portletDataContext,
                    stagedModelType);

            manifestSummary.addModelDeletionCount(stagedModelType, modelDeletionCount);

            return modelAdditionCount;
        }
    };

    initActionableDynamicQuery(exportActionableDynamicQuery);

    exportActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() {
        @Override
        public void addCriteria(DynamicQuery dynamicQuery) {
            Criterion modifiedDateCriterion = portletDataContext.getDateRangeCriteria("modifiedDate");
            Criterion statusDateCriterion = portletDataContext.getDateRangeCriteria("statusDate");

            if ((modifiedDateCriterion != null) && (statusDateCriterion != null)) {
                Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

                disjunction.add(modifiedDateCriterion);
                disjunction.add(statusDateCriterion);

                dynamicQuery.add(disjunction);
            }

            Property workflowStatusProperty = PropertyFactoryUtil.forName("status");

            if (portletDataContext.isInitialPublication()) {
                dynamicQuery.add(workflowStatusProperty.ne(WorkflowConstants.STATUS_IN_TRASH));
            } else {
                StagedModelDataHandler<?> stagedModelDataHandler = StagedModelDataHandlerRegistryUtil
                        .getStagedModelDataHandler(WikiNode.class.getName());

                dynamicQuery.add(workflowStatusProperty.in(stagedModelDataHandler.getExportableStatuses()));
            }
        }
    });

    exportActionableDynamicQuery.setCompanyId(portletDataContext.getCompanyId());

    exportActionableDynamicQuery.setGroupId(portletDataContext.getScopeGroupId());

    exportActionableDynamicQuery
            .setPerformActionMethod(new ActionableDynamicQuery.PerformActionMethod<WikiNode>() {
                @Override
                public void performAction(WikiNode wikiNode) throws PortalException {
                    StagedModelDataHandlerUtil.exportStagedModel(portletDataContext, wikiNode);
                }
            });
    exportActionableDynamicQuery
            .setStagedModelType(new StagedModelType(PortalUtil.getClassNameId(WikiNode.class.getName())));

    return exportActionableDynamicQuery;
}

From source file:com.liferay.wiki.service.base.WikiPageLocalServiceBaseImpl.java

License:Open Source License

@Override
public ExportActionableDynamicQuery getExportActionableDynamicQuery(
        final PortletDataContext portletDataContext) {
    final ExportActionableDynamicQuery exportActionableDynamicQuery = new ExportActionableDynamicQuery() {
        @Override/*  ww w  .j a  v  a 2 s  .c  o  m*/
        public long performCount() throws PortalException {
            ManifestSummary manifestSummary = portletDataContext.getManifestSummary();

            StagedModelType stagedModelType = getStagedModelType();

            long modelAdditionCount = super.performCount();

            manifestSummary.addModelAdditionCount(stagedModelType, modelAdditionCount);

            long modelDeletionCount = ExportImportHelperUtil.getModelDeletionCount(portletDataContext,
                    stagedModelType);

            manifestSummary.addModelDeletionCount(stagedModelType, modelDeletionCount);

            return modelAdditionCount;
        }

        @Override
        protected Projection getCountProjection() {
            return ProjectionFactoryUtil.countDistinct("resourcePrimKey");
        }
    };

    initActionableDynamicQuery(exportActionableDynamicQuery);

    exportActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() {
        @Override
        public void addCriteria(DynamicQuery dynamicQuery) {
            Criterion modifiedDateCriterion = portletDataContext.getDateRangeCriteria("modifiedDate");
            Criterion statusDateCriterion = portletDataContext.getDateRangeCriteria("statusDate");

            if ((modifiedDateCriterion != null) && (statusDateCriterion != null)) {
                Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

                disjunction.add(modifiedDateCriterion);
                disjunction.add(statusDateCriterion);

                dynamicQuery.add(disjunction);
            }

            Property workflowStatusProperty = PropertyFactoryUtil.forName("status");

            if (portletDataContext.isInitialPublication()) {
                dynamicQuery.add(workflowStatusProperty.ne(WorkflowConstants.STATUS_IN_TRASH));
            } else {
                StagedModelDataHandler<?> stagedModelDataHandler = StagedModelDataHandlerRegistryUtil
                        .getStagedModelDataHandler(WikiPage.class.getName());

                dynamicQuery.add(workflowStatusProperty.in(stagedModelDataHandler.getExportableStatuses()));
            }
        }
    });

    exportActionableDynamicQuery.setCompanyId(portletDataContext.getCompanyId());

    exportActionableDynamicQuery.setGroupId(portletDataContext.getScopeGroupId());

    exportActionableDynamicQuery
            .setPerformActionMethod(new ActionableDynamicQuery.PerformActionMethod<WikiPage>() {
                @Override
                public void performAction(WikiPage wikiPage) throws PortalException {
                    StagedModelDataHandlerUtil.exportStagedModel(portletDataContext, wikiPage);
                }
            });
    exportActionableDynamicQuery
            .setStagedModelType(new StagedModelType(PortalUtil.getClassNameId(WikiPage.class.getName())));

    return exportActionableDynamicQuery;
}

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

License:Open Source License

@Override
public WikiNode moveNodeToTrash(long userId, WikiNode node) throws PortalException {

    // Node/*from   ww  w .  j  a  va2s .  c  om*/

    if (node.isInTrash()) {
        throw new TrashEntryException();
    }

    int oldStatus = node.getStatus();

    node = updateStatus(userId, node, WorkflowConstants.STATUS_IN_TRASH, new ServiceContext());

    // Trash

    UnicodeProperties typeSettingsProperties = new UnicodeProperties();

    typeSettingsProperties.put("title", node.getName());

    TrashEntry trashEntry = trashEntryLocalService.addTrashEntry(userId, node.getGroupId(),
            WikiNode.class.getName(), node.getNodeId(), node.getUuid(), null, oldStatus, null,
            typeSettingsProperties);

    node.setName(TrashUtil.getTrashTitle(trashEntry.getEntryId()));

    wikiNodePersistence.update(node);

    // Pages

    moveDependentsToTrash(node.getNodeId(), trashEntry.getEntryId());

    return node;
}

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

License:Open Source License

@Override
public void deleteTrashPageAttachments(long nodeId, String title) throws PortalException {

    WikiPage page = getPage(nodeId, title);

    long folderId = page.getAttachmentsFolderId();

    if (folderId == DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
        return;/*  w ww  . jav a 2 s . c om*/
    }

    PortletFileRepositoryUtil.deletePortletFileEntries(page.getGroupId(), folderId,
            WorkflowConstants.STATUS_IN_TRASH);
}

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

License:Open Source License

@Override
public int getPagesCount(long nodeId, boolean head, int status) {
    if (status == WorkflowConstants.STATUS_ANY) {
        return wikiPagePersistence.countByN_H_NotS(nodeId, head, WorkflowConstants.STATUS_IN_TRASH);
    } else {//from   w w  w.  j a  v  a  2 s .  c  om
        return wikiPagePersistence.countByN_H_S(nodeId, head, status);
    }
}

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

License:Open Source License

@Override
public WikiPage movePageToTrash(long userId, WikiPage page) throws PortalException {

    if (page.isInTrash()) {
        throw new TrashEntryException();
    }/*  ww w . ja  v a  2 s . co  m*/

    // Page

    int oldStatus = page.getStatus();
    String oldTitle = page.getTitle();

    if (oldStatus == WorkflowConstants.STATUS_PENDING) {
        page.setStatus(WorkflowConstants.STATUS_DRAFT);

        wikiPagePersistence.update(page);
    }

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

    pageVersions = ListUtil.sort(pageVersions, new PageVersionComparator());

    List<ObjectValuePair<Long, Integer>> pageVersionStatusOVPs = new ArrayList<>();

    if ((pageVersions != null) && !pageVersions.isEmpty()) {
        pageVersionStatusOVPs = getPageVersionStatuses(pageVersions);
    }

    page = updateStatus(userId, page, WorkflowConstants.STATUS_IN_TRASH, new ServiceContext(),
            new HashMap<String, Serializable>());

    // Trash

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

    UnicodeProperties typeSettingsProperties = new UnicodeProperties();

    typeSettingsProperties.put("title", page.getTitle());

    TrashEntry trashEntry = trashEntryLocalService.addTrashEntry(userId, page.getGroupId(),
            WikiPage.class.getName(), page.getResourcePrimKey(), page.getUuid(), null, oldStatus,
            pageVersionStatusOVPs, typeSettingsProperties);

    String trashTitle = TrashUtil.getTrashTitle(trashEntry.getEntryId());

    for (WikiPage pageVersion : pageVersions) {
        pageVersion.setTitle(trashTitle);
        pageVersion.setStatus(WorkflowConstants.STATUS_IN_TRASH);

        wikiPagePersistence.update(pageVersion);
    }

    pageResource.setTitle(trashTitle);

    wikiPageResourcePersistence.update(pageResource);

    page.setTitle(trashTitle);

    wikiPagePersistence.update(page);

    // Child pages

    moveDependentChildPagesToTrash(page.getNodeId(), oldTitle, trashTitle, trashEntry.getEntryId(), true);

    // Redirect pages

    moveDependentRedirectorPagesToTrash(page.getNodeId(), oldTitle, trashTitle, trashEntry.getEntryId(), true);

    // Asset

    assetEntryLocalService.updateVisible(WikiPage.class.getName(), page.getResourcePrimKey(), false);

    // Attachments

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

    // Comment

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

    // Social

    JSONObject extraDataJSONObject = JSONFactoryUtil.createJSONObject();

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

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

    // Indexer

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

    indexer.reindex(page);

    // Workflow

    if (oldStatus == WorkflowConstants.STATUS_PENDING) {
        workflowInstanceLinkLocalService.deleteWorkflowInstanceLink(page.getCompanyId(), page.getGroupId(),
                WikiPage.class.getName(), page.getPageId());
    }

    return page;
}

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

License:Open Source License

@Override
public WikiPage updateStatus(long userId, WikiPage page, int status, ServiceContext serviceContext,
        Map<String, Serializable> workflowContext) throws PortalException {

    // Page/* www .  j  a v a  2s.  c  o  m*/

    User user = userPersistence.findByPrimaryKey(userId);

    int oldStatus = page.getStatus();

    page.setStatus(status);
    page.setStatusByUserId(userId);
    page.setStatusByUserName(user.getFullName());
    page.setStatusDate(new Date());

    wikiPagePersistence.update(page);

    if (status == WorkflowConstants.STATUS_APPROVED) {
        String cmd = GetterUtil.getString(workflowContext.get(WorkflowConstants.CONTEXT_COMMAND));

        if (cmd.equals(Constants.RENAME)) {
            long resourcePrimKey = page.getResourcePrimKey();

            WikiPage oldPage = getPage(resourcePrimKey, true);

            page = doRenamePage(userId, page.getNodeId(), oldPage.getTitle(), page.getTitle(), serviceContext);
        }

        // Asset

        if ((oldStatus != WorkflowConstants.STATUS_APPROVED)
                && (page.getVersion() != WikiPageConstants.VERSION_DEFAULT)) {

            AssetEntry draftAssetEntry = assetEntryLocalService.fetchEntry(WikiPage.class.getName(),
                    page.getPrimaryKey());

            if (draftAssetEntry != null) {
                long[] assetCategoryIds = draftAssetEntry.getCategoryIds();
                String[] assetTagNames = draftAssetEntry.getTagNames();

                List<AssetLink> assetLinks = assetLinkLocalService.getDirectLinks(draftAssetEntry.getEntryId(),
                        AssetLinkConstants.TYPE_RELATED, false);

                long[] assetLinkEntryIds = ListUtil.toLongArray(assetLinks, AssetLink.ENTRY_ID2_ACCESSOR);

                AssetEntry assetEntry = assetEntryLocalService.updateEntry(userId, page.getGroupId(),
                        page.getCreateDate(), page.getModifiedDate(), WikiPage.class.getName(),
                        page.getResourcePrimKey(), page.getUuid(), 0, assetCategoryIds, assetTagNames, true,
                        true, null, null, page.getCreateDate(), null, ContentTypes.TEXT_HTML, page.getTitle(),
                        null, null, null, null, 0, 0, null);

                // Asset Links

                assetLinkLocalService.updateLinks(userId, assetEntry.getEntryId(), assetLinkEntryIds,
                        AssetLinkConstants.TYPE_RELATED);

                SystemEventHierarchyEntryThreadLocal.push(WikiPage.class);

                try {
                    assetEntryLocalService.deleteEntry(draftAssetEntry.getEntryId());
                } finally {
                    SystemEventHierarchyEntryThreadLocal.pop(WikiPage.class);
                }
            }
        }

        assetEntryLocalService.updateVisible(WikiPage.class.getName(), page.getResourcePrimKey(), true);

        // Social

        WikiGroupServiceOverriddenConfiguration wikiGroupServiceOverriddenConfiguration = configurationProvider
                .getConfiguration(WikiGroupServiceOverriddenConfiguration.class,
                        new GroupServiceSettingsLocator(page.getGroupId(), WikiConstants.SERVICE_NAME));

        if ((oldStatus != WorkflowConstants.STATUS_IN_TRASH) && (!page.isMinorEdit()
                || wikiGroupServiceOverriddenConfiguration.pageMinorEditAddSocialActivity())) {

            JSONObject extraDataJSONObject = JSONFactoryUtil.createJSONObject();

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

            int type = WikiActivityKeys.UPDATE_PAGE;

            if (serviceContext.isCommandAdd()) {
                type = WikiActivityKeys.ADD_PAGE;
            }

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

        // Subscriptions

        if (NotificationThreadLocal.isEnabled()
                && (!page.isMinorEdit() || wikiGroupServiceOverriddenConfiguration.pageMinorEditSendEmail())) {

            notifySubscribers(userId, page, (String) workflowContext.get(WorkflowConstants.CONTEXT_URL),
                    serviceContext);
        }

        // Cache

        clearPageCache(page);
    }

    // Head

    if (status == WorkflowConstants.STATUS_APPROVED) {
        page.setHead(true);

        List<WikiPage> pages = wikiPagePersistence.findByN_T_H(page.getNodeId(), page.getTitle(), true);

        for (WikiPage curPage : pages) {
            if (!curPage.equals(page)) {
                curPage.setHead(false);

                wikiPagePersistence.update(curPage);
            }
        }
    } else if (status != WorkflowConstants.STATUS_IN_TRASH) {
        page.setHead(false);

        List<WikiPage> pages = wikiPagePersistence.findByN_T_S(page.getNodeId(), page.getTitle(),
                WorkflowConstants.STATUS_APPROVED);

        for (WikiPage curPage : pages) {
            if (!curPage.equals(page)) {
                curPage.setHead(true);

                wikiPagePersistence.update(curPage);

                break;
            }
        }
    }

    // Indexer

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

    indexer.reindex(page);

    return wikiPagePersistence.update(page);
}

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

License:Open Source License

protected void moveDependentChildPagesFromTrash(WikiPage newParentPage, long oldParentPageNodeId,
        String oldParentPageTitle) throws PortalException {

    List<WikiPage> childPages = getChildren(oldParentPageNodeId, true, oldParentPageTitle,
            WorkflowConstants.STATUS_IN_TRASH);

    for (WikiPage childPage : childPages) {
        childPage = getPageByPageId(childPage.getPageId());

        childPage.setParentTitle(newParentPage.getTitle());

        wikiPagePersistence.update(childPage);

        if (childPage.isInTrashImplicitly()) {
            moveDependentFromTrash(childPage, newParentPage.getNodeId(), newParentPage.getTitle());
        }//from   w ww  .  jav a2  s  .c  o m
    }
}

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

License:Open Source License

protected void moveDependentRedirectorPagesFromTrash(WikiPage newRedirectPage, long oldRedirectPageNodeId,
        String oldRedirectPageTrashTitle) throws PortalException {

    List<WikiPage> redirectorPages = getRedirectorPages(oldRedirectPageNodeId, true, oldRedirectPageTrashTitle,
            WorkflowConstants.STATUS_IN_TRASH);

    for (WikiPage redirectorPage : redirectorPages) {
        redirectorPage = getPageByPageId(redirectorPage.getPageId());

        redirectorPage.setRedirectTitle(newRedirectPage.getTitle());

        wikiPagePersistence.update(redirectorPage);

        if (redirectorPage.isInTrashImplicitly()) {
            moveDependentFromTrash(redirectorPage, newRedirectPage.getNodeId(),
                    redirectorPage.getParentTitle());
        }/*from w  ww. j ava  2s.  c o m*/
    }
}