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

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

Introduction

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

Prototype

int STATUS_ANY

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

Click Source Link

Usage

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

@Override
public List<KBArticle> getSectionsKBArticles(long groupId, String[] sections, int status, int start, int end,
        OrderByComparator<KBArticle> orderByComparator) {

    String[] array = AdminUtil.escapeSections(sections);

    for (int i = 0; i < array.length; i++) {
        array[i] = StringUtil.quote(array[i], StringPool.PERCENT);
    }//from w w w  . ja va2s  .  com

    if (status == WorkflowConstants.STATUS_ANY) {
        return kbArticlePersistence.findByG_P_S_L(groupId, KBFolderConstants.DEFAULT_PARENT_FOLDER_ID, array,
                true, start, end, orderByComparator);
    } else if (status == WorkflowConstants.STATUS_APPROVED) {
        return kbArticlePersistence.findByG_P_S_M(groupId, KBFolderConstants.DEFAULT_PARENT_FOLDER_ID, array,
                true, start, end, orderByComparator);
    }

    return kbArticlePersistence.findByG_P_S_S(groupId, KBFolderConstants.DEFAULT_PARENT_FOLDER_ID, array,
            status, start, end, orderByComparator);
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

@Override
public int getSectionsKBArticlesCount(long groupId, String[] sections, int status) {

    String[] array = AdminUtil.escapeSections(sections);

    for (int i = 0; i < array.length; i++) {
        array[i] = StringUtil.quote(array[i], StringPool.PERCENT);
    }/*w w w  .jav a 2  s  .c  om*/

    if (status == WorkflowConstants.STATUS_ANY) {
        return kbArticlePersistence.countByG_P_S_L(groupId, KBFolderConstants.DEFAULT_PARENT_FOLDER_ID, array,
                true);
    } else if (status == WorkflowConstants.STATUS_APPROVED) {
        return kbArticlePersistence.countByG_P_S_M(groupId, KBFolderConstants.DEFAULT_PARENT_FOLDER_ID, array,
                true);
    }

    return kbArticlePersistence.countByG_P_S_S(groupId, KBFolderConstants.DEFAULT_PARENT_FOLDER_ID, array,
            status);
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

@Override
public void moveKBArticle(long userId, long resourcePrimKey, long parentResourceClassNameId,
        long parentResourcePrimKey, double priority) throws PortalException {

    // KB article

    validate(priority);/*from w w  w .  j  a va2  s .com*/

    updatePermissionFields(resourcePrimKey, parentResourceClassNameId, parentResourcePrimKey);

    long kbFolderClassNameId = classNameLocalService.getClassNameId(KBFolderConstants.getClassName());

    long kbFolderId = KBFolderConstants.DEFAULT_PARENT_FOLDER_ID;

    if (parentResourceClassNameId == kbFolderClassNameId) {
        kbFolderId = parentResourcePrimKey;
    } else {
        KBArticle latestKBArticle = getLatestKBArticle(parentResourcePrimKey, WorkflowConstants.STATUS_ANY);

        kbFolderId = latestKBArticle.getKbFolderId();
    }

    List<KBArticle> kbArticles = getKBArticleVersions(resourcePrimKey, WorkflowConstants.STATUS_ANY,
            QueryUtil.ALL_POS, QueryUtil.ALL_POS, new KBArticleVersionComparator());

    for (KBArticle curKBArticle : kbArticles) {
        curKBArticle.setParentResourceClassNameId(parentResourceClassNameId);
        curKBArticle.setParentResourcePrimKey(parentResourcePrimKey);

        if (parentResourceClassNameId == kbFolderClassNameId) {
            curKBArticle.setKbFolderId(kbFolderId);
        }

        curKBArticle.setPriority(priority);

        kbArticlePersistence.update(curKBArticle);
    }

    KBArticle kbArticle = getLatestKBArticle(resourcePrimKey, WorkflowConstants.STATUS_ANY);

    if (kbArticle.getKbFolderId() != kbFolderId) {
        List<KBArticle> descendantKBArticles = getAllDescendantKBArticles(resourcePrimKey,
                WorkflowConstants.STATUS_ANY, null);

        for (KBArticle curKBArticle : descendantKBArticles) {
            List<KBArticle> kbArticleVersions = getKBArticleVersions(curKBArticle.getResourcePrimKey(),
                    WorkflowConstants.STATUS_ANY, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
                    new KBArticleVersionComparator());

            for (KBArticle kbArticleVersion : kbArticleVersions) {
                kbArticleVersion.setKbFolderId(kbFolderId);

                kbArticlePersistence.update(kbArticleVersion);
            }
        }
    }

    // Social

    KBArticle latestKBArticle = getLatestKBArticle(resourcePrimKey, WorkflowConstants.STATUS_ANY);

    JSONObject extraDataJSONObject = JSONFactoryUtil.createJSONObject();

    extraDataJSONObject.put("title", latestKBArticle.getTitle());

    if (latestKBArticle.isApproved() || !latestKBArticle.isFirstVersion()) {
        socialActivityLocalService.addActivity(userId, latestKBArticle.getGroupId(), KBArticle.class.getName(),
                resourcePrimKey, AdminActivityKeys.MOVE_KB_ARTICLE, extraDataJSONObject.toString(), 0);
    }
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

@Override
public KBArticle updateKBArticle(long userId, long resourcePrimKey, String title, String content,
        String description, String sourceURL, String[] sections, String[] selectedFileNames,
        long[] removeFileEntryIds, ServiceContext serviceContext) throws PortalException {

    // KB article

    User user = userPersistence.findByPrimaryKey(userId);

    validate(title, content, sourceURL);

    KBArticle oldKBArticle = getLatestKBArticle(resourcePrimKey, WorkflowConstants.STATUS_ANY);

    int oldVersion = oldKBArticle.getVersion();

    KBArticle kbArticle = null;/*from  w  w  w.j  a va2s . c o  m*/

    if (oldKBArticle.isApproved()) {
        long kbArticleId = counterLocalService.increment();

        kbArticle = kbArticlePersistence.create(kbArticleId);

        kbArticle.setUuid(serviceContext.getUuid());
        kbArticle.setResourcePrimKey(oldKBArticle.getResourcePrimKey());
        kbArticle.setGroupId(oldKBArticle.getGroupId());
        kbArticle.setCompanyId(user.getCompanyId());
        kbArticle.setUserId(user.getUserId());
        kbArticle.setUserName(user.getFullName());
        kbArticle.setCreateDate(oldKBArticle.getCreateDate());
        kbArticle.setRootResourcePrimKey(oldKBArticle.getRootResourcePrimKey());
        kbArticle.setParentResourceClassNameId(oldKBArticle.getParentResourceClassNameId());
        kbArticle.setParentResourcePrimKey(oldKBArticle.getParentResourcePrimKey());
        kbArticle.setKbFolderId(oldKBArticle.getKbFolderId());
        kbArticle.setVersion(oldVersion + 1);
        kbArticle.setUrlTitle(oldKBArticle.getUrlTitle());
        kbArticle.setPriority(oldKBArticle.getPriority());
        kbArticle.setViewCount(oldKBArticle.getViewCount());
    } else {
        kbArticle = oldKBArticle;
    }

    if (oldKBArticle.isPending()) {
        kbArticle.setStatus(WorkflowConstants.STATUS_PENDING);
    } else {
        kbArticle.setStatus(WorkflowConstants.STATUS_DRAFT);
    }

    kbArticle.setModifiedDate(serviceContext.getModifiedDate(null));
    kbArticle.setTitle(title);
    kbArticle.setContent(content);
    kbArticle.setDescription(description);
    kbArticle.setSourceURL(sourceURL);
    kbArticle.setSections(StringUtil.merge(AdminUtil.escapeSections(sections)));
    kbArticle.setLatest(true);
    kbArticle.setMain(false);

    kbArticlePersistence.update(kbArticle);

    if (oldKBArticle.isApproved()) {
        oldKBArticle.setLatest(false);

        kbArticlePersistence.update(oldKBArticle);
    }

    // Resources

    if ((serviceContext.getGroupPermissions() != null) || (serviceContext.getGuestPermissions() != null)) {

        updateKBArticleResources(kbArticle, serviceContext.getGroupPermissions(),
                serviceContext.getGuestPermissions());
    }

    // Asset

    updateKBArticleAsset(userId, kbArticle, serviceContext.getAssetCategoryIds(),
            serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds());

    // Attachments

    addKBArticleAttachments(userId, kbArticle, selectedFileNames);

    removeKBArticleAttachments(removeFileEntryIds);

    // Workflow

    WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), kbArticle.getGroupId(), userId,
            KBArticle.class.getName(), resourcePrimKey, kbArticle, serviceContext);

    return kbArticle;
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

@Override
public void updateKBArticlesPriorities(Map<Long, Double> resourcePrimKeyToPriorityMap) throws PortalException {

    for (double priority : resourcePrimKeyToPriorityMap.values()) {
        validate(priority);//from   w w w .  j a  v a  2s. com
    }

    long[] resourcePrimKeys = StringUtil.split(StringUtil.merge(resourcePrimKeyToPriorityMap.keySet()), 0L);

    List<KBArticle> kbArticles = getKBArticles(resourcePrimKeys, WorkflowConstants.STATUS_ANY, null);

    for (KBArticle kbArticle : kbArticles) {
        double priority = resourcePrimKeyToPriorityMap.get(kbArticle.getResourcePrimKey());

        updatePriority(kbArticle.getResourcePrimKey(), priority);
    }
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

@Override
public void updatePriority(long resourcePrimKey, double priority) {
    List<KBArticle> kbArticleVersions = getKBArticleVersions(resourcePrimKey, WorkflowConstants.STATUS_ANY,
            QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);

    for (KBArticle kbArticle : kbArticleVersions) {
        kbArticle.setPriority(priority);

        kbArticlePersistence.update(kbArticle);
    }// ww w.j  a  v a2 s . c  o m
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

@Override
public KBArticle updateStatus(long userId, long resourcePrimKey, int status, ServiceContext serviceContext)
        throws PortalException {

    // KB article

    User user = userPersistence.findByPrimaryKey(userId);
    boolean main = false;
    Date now = new Date();

    if (status == WorkflowConstants.STATUS_APPROVED) {
        main = true;//from   w  w  w .  j ava2  s.  c  om
    }

    KBArticle kbArticle = getLatestKBArticle(resourcePrimKey, WorkflowConstants.STATUS_ANY);

    kbArticle.setModifiedDate(serviceContext.getModifiedDate(now));
    kbArticle.setMain(main);
    kbArticle.setStatus(status);
    kbArticle.setStatusByUserId(user.getUserId());
    kbArticle.setStatusByUserName(user.getFullName());
    kbArticle.setStatusDate(serviceContext.getModifiedDate(now));

    kbArticlePersistence.update(kbArticle);

    if (status != WorkflowConstants.STATUS_APPROVED) {
        return kbArticle;
    }

    if (!kbArticle.isFirstVersion()) {
        KBArticle oldKBArticle = kbArticlePersistence.findByR_V(resourcePrimKey, kbArticle.getVersion() - 1);

        oldKBArticle.setMain(false);

        kbArticlePersistence.update(oldKBArticle);
    }

    // Asset

    AssetEntry assetEntry = assetEntryLocalService.getEntry(KBArticle.class.getName(),
            kbArticle.getKbArticleId());

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

    long[] assetLinkEntryIds = StringUtil.split(ListUtil.toString(assetLinks, AssetLink.ENTRY_ID2_ACCESSOR),
            0L);

    updateKBArticleAsset(userId, kbArticle, assetEntry.getCategoryIds(), assetEntry.getTagNames(),
            assetLinkEntryIds);

    SystemEventHierarchyEntryThreadLocal.push(KBArticle.class);

    try {
        assetEntryLocalService.deleteEntry(KBArticle.class.getName(), kbArticle.getKbArticleId());
    } finally {
        SystemEventHierarchyEntryThreadLocal.pop(KBArticle.class);
    }

    assetEntryLocalService.updateVisible(KBArticle.class.getName(), kbArticle.getResourcePrimKey(), true);

    // Social

    JSONObject extraDataJSONObject = JSONFactoryUtil.createJSONObject();

    extraDataJSONObject.put("title", kbArticle.getTitle());

    if (!kbArticle.isFirstVersion()) {
        socialActivityLocalService.addActivity(userId, kbArticle.getGroupId(), KBArticle.class.getName(),
                resourcePrimKey, AdminActivityKeys.UPDATE_KB_ARTICLE, extraDataJSONObject.toString(), 0);
    } else {
        socialActivityLocalService.addActivity(userId, kbArticle.getGroupId(), KBArticle.class.getName(),
                resourcePrimKey, AdminActivityKeys.ADD_KB_ARTICLE, extraDataJSONObject.toString(), 0);
    }

    // Indexer

    Indexer indexer = IndexerRegistryUtil.getIndexer(KBArticle.class);

    indexer.reindex(kbArticle);

    // Subscriptions

    notifySubscribers(kbArticle, serviceContext);

    return kbArticle;
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

@Override
public void updateViewCount(long userId, long resourcePrimKey, int viewCount) throws PortalException {

    KBArticle kbArticle = getLatestKBArticle(resourcePrimKey, WorkflowConstants.STATUS_ANY);

    kbArticle.setViewCount(viewCount);/*from www. j a  va 2  s . com*/

    kbArticlePersistence.update(kbArticle);

    if (kbArticle.isApproved() || kbArticle.isFirstVersion()) {
        return;
    }

    kbArticle = getLatestKBArticle(resourcePrimKey, WorkflowConstants.STATUS_APPROVED);

    kbArticle.setViewCount(viewCount);

    kbArticlePersistence.update(kbArticle);
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

protected void addAttachment(long userId, long resourcePrimKey, String fileName, InputStream inputStream,
        String mimeType) throws PortalException {

    KBArticle kbArticle = KBArticleLocalServiceUtil.getLatestKBArticle(resourcePrimKey,
            WorkflowConstants.STATUS_ANY);

    PortletFileRepositoryUtil.addPortletFileEntry(kbArticle.getGroupId(), userId, KBArticle.class.getName(),
            kbArticle.getClassPK(), PortletKeys.KNOWLEDGE_BASE_ARTICLE, kbArticle.getAttachmentsFolderId(),
            inputStream, fileName, mimeType, false);
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleLocalServiceImpl.java

License:Open Source License

protected DynamicQuery buildDynamicQuery(long groupId, String title, String content, int status, Date startDate,
        Date endDate, boolean andOperator) {

    Junction junction = null;//from  w  w w. j a  va  2 s  .co m

    if (andOperator) {
        junction = RestrictionsFactoryUtil.conjunction();
    } else {
        junction = RestrictionsFactoryUtil.disjunction();
    }

    Map<String, String> terms = new HashMap<String, String>();

    if (Validator.isNotNull(title)) {
        terms.put("title", title);
    }

    if (Validator.isNotNull(content)) {
        terms.put("content", content);
    }

    for (Map.Entry<String, String> entry : terms.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();

        Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

        for (String keyword : KnowledgeBaseUtil.splitKeywords(value)) {
            Criterion criterion = RestrictionsFactoryUtil.ilike(key,
                    StringUtil.quote(keyword, StringPool.PERCENT));

            disjunction.add(criterion);
        }

        junction.add(disjunction);
    }

    if (status != WorkflowConstants.STATUS_ANY) {
        Property property = PropertyFactoryUtil.forName("status");

        junction.add(property.eq(status));
    }

    if ((endDate != null) && (startDate != null)) {
        Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

        String[] propertyNames = { "createDate", "modifiedDate" };

        for (String propertyName : propertyNames) {
            Property property = PropertyFactoryUtil.forName(propertyName);

            Conjunction conjunction = RestrictionsFactoryUtil.conjunction();

            conjunction.add(property.gt(startDate));
            conjunction.add(property.lt(endDate));

            disjunction.add(conjunction);
        }

        junction.add(disjunction);
    }

    DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(KBArticle.class, getClassLoader());

    if (status == WorkflowConstants.STATUS_ANY) {
        Property property = PropertyFactoryUtil.forName("latest");

        dynamicQuery.add(property.eq(Boolean.TRUE));
    } else if (status == WorkflowConstants.STATUS_APPROVED) {
        Property property = PropertyFactoryUtil.forName("main");

        dynamicQuery.add(property.eq(Boolean.TRUE));
    }

    if (groupId > 0) {
        Property property = PropertyFactoryUtil.forName("groupId");

        dynamicQuery.add(property.eq(groupId));
    }

    return dynamicQuery.add(junction);
}