List of usage examples for com.liferay.portal.kernel.workflow WorkflowConstants STATUS_DRAFT
int STATUS_DRAFT
To view the source code for com.liferay.portal.kernel.workflow WorkflowConstants STATUS_DRAFT.
Click Source Link
From source file:com.liferay.portlet.messageboards.service.impl.MBMessageLocalServiceImpl.java
License:Open Source License
public MBMessage addMessage(long userId, String userName, long groupId, long categoryId, long threadId, long parentMessageId, String subject, String body, String format, List<ObjectValuePair<String, InputStream>> inputStreamOVPs, boolean anonymous, double priority, boolean allowPingbacks, ServiceContext serviceContext) throws PortalException, SystemException { // Message/*from w ww. j a va 2s . co m*/ User user = userPersistence.findByPrimaryKey(userId); userName = user.isDefaultUser() ? userName : user.getFullName(); subject = ModelHintsUtil.trimString(MBMessage.class.getName(), "subject", subject); PortletPreferences preferences = ServiceContextUtil.getPortletPreferences(serviceContext); if (preferences != null) { if (!MBUtil.isAllowAnonymousPosting(preferences)) { if (anonymous || user.isDefaultUser()) { throw new PrincipalException(); } } } if (user.isDefaultUser()) { anonymous = true; } Date now = new Date(); long messageId = counterLocalService.increment(); body = SanitizerUtil.sanitize(user.getCompanyId(), groupId, userId, MBMessage.class.getName(), messageId, "text/" + format, body); validate(subject, body); subject = getSubject(subject, body); body = getBody(subject, body); MBMessage message = mbMessagePersistence.create(messageId); message.setUuid(serviceContext.getUuid()); message.setGroupId(groupId); message.setCompanyId(user.getCompanyId()); message.setUserId(user.getUserId()); message.setUserName(userName); message.setCreateDate(serviceContext.getCreateDate(now)); message.setModifiedDate(serviceContext.getModifiedDate(now)); if (threadId > 0) { message.setThreadId(threadId); } if (priority != MBThreadConstants.PRIORITY_NOT_GIVEN) { message.setPriority(priority); } message.setAllowPingbacks(allowPingbacks); message.setStatus(WorkflowConstants.STATUS_DRAFT); message.setStatusByUserId(user.getUserId()); message.setStatusByUserName(userName); message.setStatusDate(serviceContext.getModifiedDate(now)); // Thread if (parentMessageId != MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID) { MBMessage parentMessage = mbMessagePersistence.fetchByPrimaryKey(parentMessageId); if (parentMessage == null) { parentMessageId = MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID; } } MBThread thread = null; if (threadId > 0) { thread = mbThreadPersistence.fetchByPrimaryKey(threadId); } if ((thread == null) || (parentMessageId == MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID)) { thread = mbThreadLocalService.addThread(categoryId, message); } if ((priority != MBThreadConstants.PRIORITY_NOT_GIVEN) && (thread.getPriority() != priority)) { thread.setPriority(priority); mbThreadPersistence.update(thread, false); updatePriorities(thread.getThreadId(), priority); } // Message message.setCategoryId(categoryId); message.setThreadId(thread.getThreadId()); message.setRootMessageId(thread.getRootMessageId()); message.setParentMessageId(parentMessageId); message.setSubject(subject); message.setBody(body); message.setFormat(format); message.setAttachments(!inputStreamOVPs.isEmpty()); message.setAnonymous(anonymous); if (message.isDiscussion()) { long classNameId = PortalUtil.getClassNameId((String) serviceContext.getAttribute("className")); long classPK = GetterUtil.getLong((String) serviceContext.getAttribute("classPK")); message.setClassNameId(classNameId); message.setClassPK(classPK); } mbMessagePersistence.update(message, false); // Attachments if (!inputStreamOVPs.isEmpty()) { long companyId = message.getCompanyId(); long repositoryId = CompanyConstants.SYSTEM; String dirName = message.getAttachmentsDir(); try { DLStoreUtil.deleteDirectory(companyId, repositoryId, dirName); } catch (NoSuchDirectoryException nsde) { if (_log.isDebugEnabled()) { _log.debug(nsde.getMessage()); } } DLStoreUtil.addDirectory(companyId, repositoryId, dirName); for (int i = 0; i < inputStreamOVPs.size(); i++) { ObjectValuePair<String, InputStream> inputStreamOVP = inputStreamOVPs.get(i); String fileName = inputStreamOVP.getKey(); InputStream inputStream = inputStreamOVP.getValue(); try { DLStoreUtil.addFile(companyId, repositoryId, dirName + "/" + fileName, inputStream); } catch (DuplicateFileException dfe) { if (_log.isDebugEnabled()) { _log.debug(dfe.getMessage()); } } } } // Resources if (!message.isDiscussion()) { if (user.isDefaultUser()) { addMessageResources(message, true, true); } else if (serviceContext.isAddGroupPermissions() || serviceContext.isAddGuestPermissions()) { addMessageResources(message, serviceContext.isAddGroupPermissions(), serviceContext.isAddGuestPermissions()); } else { addMessageResources(message, serviceContext.getGroupPermissions(), serviceContext.getGuestPermissions()); } } // Asset updateAsset(userId, message, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds(), serviceContext.isAssetEntryVisible()); // Expando ExpandoBridge expandoBridge = message.getExpandoBridge(); expandoBridge.setAttributes(serviceContext); // Workflow WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), groupId, userId, message.getWorkflowClassName(), message.getMessageId(), message, serviceContext); // Testing roll back /*if (true) { throw new SystemException("Testing roll back"); }*/ return message; }
From source file:com.liferay.portlet.messageboards.service.impl.MBMessageLocalServiceImpl.java
License:Open Source License
public MBMessage updateMessage(long userId, long messageId, String subject, String body, List<ObjectValuePair<String, InputStream>> inputStreamOVPs, List<String> existingFiles, double priority, boolean allowPingbacks, ServiceContext serviceContext) throws PortalException, SystemException { // Message//from ww w .j a v a 2s . c o m MBMessage message = mbMessagePersistence.findByPrimaryKey(messageId); subject = ModelHintsUtil.trimString(MBMessage.class.getName(), "subject", subject); body = SanitizerUtil.sanitize(message.getCompanyId(), message.getGroupId(), userId, MBMessage.class.getName(), messageId, "text/" + message.getFormat(), body); Date now = new Date(); validate(subject, body); subject = getSubject(subject, body); body = getBody(subject, body); message.setModifiedDate(serviceContext.getModifiedDate(now)); message.setSubject(subject); message.setBody(body); message.setAttachments(!inputStreamOVPs.isEmpty() || !existingFiles.isEmpty()); message.setAllowPingbacks(allowPingbacks); if (priority != MBThreadConstants.PRIORITY_NOT_GIVEN) { message.setPriority(priority); } if (!message.isPending() && (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_SAVE_DRAFT)) { message.setStatus(WorkflowConstants.STATUS_DRAFT); } // Attachments long companyId = message.getCompanyId(); long repositoryId = CompanyConstants.SYSTEM; String dirName = message.getAttachmentsDir(); if (!inputStreamOVPs.isEmpty() || !existingFiles.isEmpty()) { try { DLStoreUtil.addDirectory(companyId, repositoryId, dirName); } catch (DuplicateDirectoryException dde) { } String[] fileNames = DLStoreUtil.getFileNames(companyId, repositoryId, dirName); for (String fileName : fileNames) { if (!existingFiles.contains(fileName)) { DLStoreUtil.deleteFile(companyId, repositoryId, fileName); } } for (int i = 0; i < inputStreamOVPs.size(); i++) { ObjectValuePair<String, InputStream> inputStreamOVP = inputStreamOVPs.get(i); String fileName = inputStreamOVP.getKey(); InputStream inputStream = inputStreamOVP.getValue(); try { DLStoreUtil.addFile(companyId, repositoryId, dirName + "/" + fileName, inputStream); } catch (DuplicateFileException dfe) { } } } else { try { DLStoreUtil.deleteDirectory(companyId, repositoryId, dirName); } catch (NoSuchDirectoryException nsde) { } } mbMessagePersistence.update(message, false); // Thread MBThread thread = mbThreadPersistence.findByPrimaryKey(message.getThreadId()); if ((priority != MBThreadConstants.PRIORITY_NOT_GIVEN) && (thread.getPriority() != priority)) { thread.setPriority(priority); mbThreadPersistence.update(thread, false); updatePriorities(thread.getThreadId(), priority); } // Asset updateAsset(userId, message, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds()); // Expando ExpandoBridge expandoBridge = message.getExpandoBridge(); expandoBridge.setAttributes(serviceContext); // Workflow serviceContext.setAttribute("update", Boolean.TRUE.toString()); WorkflowHandlerRegistryUtil.startWorkflowInstance(companyId, message.getGroupId(), userId, message.getWorkflowClassName(), message.getMessageId(), message, serviceContext); return message; }
From source file:com.liferay.portlet.messageboards.service.impl.MBMessageServiceImpl.java
License:Open Source License
public MBMessage addMessage(long groupId, long categoryId, long threadId, long parentMessageId, String subject, String body, String format, List<ObjectValuePair<String, InputStream>> inputStreamOVPs, boolean anonymous, double priority, boolean allowPingbacks, ServiceContext serviceContext) throws PortalException, SystemException { checkReplyToPermission(groupId, categoryId, parentMessageId); if (lockLocalService.isLocked(MBThread.class.getName(), threadId)) { throw new LockedThreadException(); }//from w w w . j a va 2s.com if (!MBCategoryPermission.contains(getPermissionChecker(), groupId, categoryId, ActionKeys.ADD_FILE)) { inputStreamOVPs = Collections.emptyList(); } boolean preview = GetterUtil.getBoolean(serviceContext.getAttribute("preview")); int workFlowAction = serviceContext.getWorkflowAction(); if ((workFlowAction == WorkflowConstants.STATUS_DRAFT) && !preview) { MBMessagePermission.check(getPermissionChecker(), parentMessageId, ActionKeys.UPDATE); } if (!MBCategoryPermission.contains(getPermissionChecker(), groupId, categoryId, ActionKeys.UPDATE_THREAD_PRIORITY)) { priority = MBThreadConstants.PRIORITY_NOT_GIVEN; } return mbMessageLocalService.addMessage(getGuestOrUserId(), null, groupId, categoryId, threadId, parentMessageId, subject, body, format, inputStreamOVPs, anonymous, priority, allowPingbacks, serviceContext); }
From source file:com.liferay.portlet.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
public WikiPage addPage(long userId, long nodeId, String title, double version, String content, String summary, boolean minorEdit, String format, boolean head, String parentTitle, String redirectTitle, ServiceContext serviceContext) throws PortalException, SystemException { // Page//from w w w. j ava 2 s . c om User user = userPersistence.findByPrimaryKey(userId); WikiNode node = wikiNodePersistence.findByPrimaryKey(nodeId); Date now = new Date(); long pageId = counterLocalService.increment(); content = SanitizerUtil.sanitize(user.getCompanyId(), node.getGroupId(), userId, WikiPage.class.getName(), pageId, "text/" + format, content); validate(title, nodeId, content, format); long resourcePrimKey = wikiPageResourceLocalService.getPageResourcePrimKey(nodeId, title); WikiPage page = wikiPagePersistence.create(pageId); page.setUuid(serviceContext.getUuid()); page.setResourcePrimKey(resourcePrimKey); page.setGroupId(node.getGroupId()); page.setCompanyId(user.getCompanyId()); page.setUserId(user.getUserId()); page.setUserName(user.getFullName()); page.setCreateDate(serviceContext.getCreateDate(now)); page.setModifiedDate(serviceContext.getModifiedDate(now)); page.setNodeId(nodeId); page.setTitle(title); page.setVersion(version); page.setMinorEdit(minorEdit); page.setContent(content); page.setStatus(WorkflowConstants.STATUS_DRAFT); page.setSummary(summary); page.setFormat(format); page.setHead(head); page.setParentTitle(parentTitle); page.setRedirectTitle(redirectTitle); wikiPagePersistence.update(page, false); // Resources if (serviceContext.isAddGroupPermissions() || serviceContext.isAddGuestPermissions()) { addPageResources(page, serviceContext.isAddGroupPermissions(), serviceContext.isAddGuestPermissions()); } else { addPageResources(page, serviceContext.getGroupPermissions(), serviceContext.getGuestPermissions()); } // Node node.setLastPostDate(serviceContext.getModifiedDate(now)); wikiNodePersistence.update(node, false); // Asset updateAsset(userId, page, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds()); // Expando ExpandoBridge expandoBridge = page.getExpandoBridge(); expandoBridge.setAttributes(serviceContext); // Message boards if (PropsValues.WIKI_PAGE_COMMENTS_ENABLED) { mbMessageLocalService.addDiscussionMessage(userId, page.getUserName(), page.getGroupId(), WikiPage.class.getName(), resourcePrimKey, WorkflowConstants.ACTION_PUBLISH); } // Workflow WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), page.getGroupId(), userId, WikiPage.class.getName(), page.getPageId(), page, serviceContext); return page; }
From source file:com.liferay.portlet.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
public WikiPage getDraftPage(long nodeId, String title) throws PortalException, SystemException { List<WikiPage> pages = wikiPagePersistence.findByN_T_S(nodeId, title, WorkflowConstants.STATUS_DRAFT, 0, 1); if (!pages.isEmpty()) { return pages.get(0); } else {/* w ww . ja v a 2s . co m*/ pages = wikiPagePersistence.findByN_T_S(nodeId, title, WorkflowConstants.STATUS_PENDING, 0, 1); if (!pages.isEmpty()) { return pages.get(0); } else { throw new NoSuchPageException(); } } }
From source file:com.liferay.portlet.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
public boolean hasDraftPage(long nodeId, String title) throws SystemException { int count = wikiPagePersistence.countByN_T_S(nodeId, title, WorkflowConstants.STATUS_DRAFT); if (count > 0) { return true; } else {/*from w ww . j a v a 2 s. c om*/ return false; } }
From source file:com.liferay.portlet.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
public WikiPage updatePage(long userId, long nodeId, String title, double version, String content, String summary, boolean minorEdit, String format, String parentTitle, String redirectTitle, ServiceContext serviceContext) throws PortalException, SystemException { // Page//from w w w. j a v a2 s. com User user = userPersistence.findByPrimaryKey(userId); Date now = new Date(); WikiPage oldPage = null; try { oldPage = wikiPagePersistence.findByN_T_First(nodeId, title, null); } catch (NoSuchPageException nspe) { return addPage(userId, nodeId, title, WikiPageConstants.VERSION_DEFAULT, content, summary, minorEdit, format, true, parentTitle, redirectTitle, serviceContext); } long pageId = 0; if (oldPage.isApproved()) { pageId = counterLocalService.increment(); } else { pageId = oldPage.getPageId(); } content = SanitizerUtil.sanitize(user.getCompanyId(), oldPage.getGroupId(), userId, WikiPage.class.getName(), pageId, "text/" + format, content); validate(nodeId, content, format); double oldVersion = oldPage.getVersion(); if ((version > 0) && (version != oldVersion)) { throw new PageVersionException(); } long resourcePrimKey = wikiPageResourceLocalService.getPageResourcePrimKey(nodeId, title); long groupId = oldPage.getGroupId(); WikiPage page = oldPage; double newVersion = oldVersion; if (oldPage.isApproved()) { newVersion = MathUtil.format(oldVersion + 0.1, 1, 1); page = wikiPagePersistence.create(pageId); } page.setResourcePrimKey(resourcePrimKey); page.setGroupId(groupId); page.setCompanyId(user.getCompanyId()); page.setUserId(user.getUserId()); page.setUserName(user.getFullName()); page.setCreateDate(serviceContext.getModifiedDate(now)); page.setModifiedDate(serviceContext.getModifiedDate(now)); page.setNodeId(nodeId); page.setTitle(title); page.setVersion(newVersion); page.setMinorEdit(minorEdit); page.setContent(content); if (oldPage.isPending()) { page.setStatus(oldPage.getStatus()); } else { page.setStatus(WorkflowConstants.STATUS_DRAFT); } page.setSummary(summary); page.setFormat(format); if (Validator.isNotNull(parentTitle)) { page.setParentTitle(parentTitle); } if (Validator.isNotNull(redirectTitle)) { page.setRedirectTitle(redirectTitle); } wikiPagePersistence.update(page, false); // Expando ExpandoBridge expandoBridge = page.getExpandoBridge(); expandoBridge.setAttributes(serviceContext); // Node WikiNode node = wikiNodePersistence.findByPrimaryKey(nodeId); node.setLastPostDate(serviceContext.getModifiedDate(now)); wikiNodePersistence.update(node, false); // Asset updateAsset(userId, page, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds()); // Workflow WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), page.getGroupId(), userId, WikiPage.class.getName(), page.getPageId(), page, serviceContext); return page; }
From source file:com.liferay.portlet.workflowinstances.action.EditWorkflowInstanceAction.java
License:Open Source License
protected void deleteInstance(ActionRequest actionRequest) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); long workflowInstanceId = ParamUtil.getLong(actionRequest, "workflowInstanceId"); WorkflowInstance workflowInstance = WorkflowInstanceManagerUtil .getWorkflowInstance(themeDisplay.getCompanyId(), workflowInstanceId); Map<String, Serializable> workflowContext = workflowInstance.getWorkflowContext(); long companyId = GetterUtil.getLong(workflowContext.get(WorkflowConstants.CONTEXT_COMPANY_ID)); long groupId = GetterUtil.getLong(workflowContext.get(WorkflowConstants.CONTEXT_GROUP_ID)); String className = GetterUtil.getString(workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_NAME)); long classPK = GetterUtil.getLong(workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_PK)); WorkflowHandler workflowHandler = WorkflowHandlerRegistryUtil.getWorkflowHandler(className); workflowHandler.updateStatus(WorkflowConstants.STATUS_DRAFT, workflowContext); WorkflowInstanceLinkLocalServiceUtil.deleteWorkflowInstanceLink(companyId, groupId, className, classPK); }
From source file:com.liferay.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
@Override public WikiPage addPage(long userId, long nodeId, String title, double version, String content, String summary, boolean minorEdit, String format, boolean head, String parentTitle, String redirectTitle, ServiceContext serviceContext) throws PortalException { // Page/*from w w w . j a v a 2 s. c o m*/ User user = userPersistence.findByPrimaryKey(userId); WikiNode node = wikiNodePersistence.findByPrimaryKey(nodeId); Date now = new Date(); long pageId = counterLocalService.increment(); content = SanitizerUtil.sanitize(user.getCompanyId(), node.getGroupId(), userId, WikiPage.class.getName(), pageId, "text/" + format, content); validate(title, nodeId, content, format); long resourcePrimKey = wikiPageResourceLocalService.getPageResourcePrimKey(node.getGroupId(), nodeId, title); WikiPage page = wikiPagePersistence.create(pageId); page.setUuid(serviceContext.getUuid()); page.setResourcePrimKey(resourcePrimKey); page.setGroupId(node.getGroupId()); page.setCompanyId(user.getCompanyId()); page.setUserId(user.getUserId()); page.setUserName(user.getFullName()); page.setNodeId(nodeId); page.setTitle(title); page.setVersion(version); page.setMinorEdit(minorEdit); page.setContent(content); page.setSummary(summary); page.setFormat(format); page.setHead(head); page.setParentTitle(parentTitle); page.setRedirectTitle(redirectTitle); page.setStatus(WorkflowConstants.STATUS_DRAFT); page.setStatusByUserId(userId); page.setStatusDate(serviceContext.getModifiedDate(now)); page.setExpandoBridgeAttributes(serviceContext); wikiPagePersistence.update(page); // Resources if (serviceContext.isAddGroupPermissions() || serviceContext.isAddGuestPermissions()) { addPageResources(page, serviceContext.isAddGroupPermissions(), serviceContext.isAddGuestPermissions()); } else { addPageResources(page, serviceContext.getGroupPermissions(), serviceContext.getGuestPermissions()); } // Node node.setLastPostDate(serviceContext.getModifiedDate(now)); wikiNodePersistence.update(node); // Asset updateAsset(userId, page, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds(), serviceContext.getAssetPriority()); // Message boards WikiGroupServiceOverriddenConfiguration wikiGroupServiceOverriddenConfiguration = configurationProvider .getConfiguration(WikiGroupServiceOverriddenConfiguration.class, new GroupServiceSettingsLocator(node.getGroupId(), WikiConstants.SERVICE_NAME)); if (wikiGroupServiceOverriddenConfiguration.pageCommentsEnabled()) { CommentManagerUtil.addDiscussion(userId, page.getGroupId(), WikiPage.class.getName(), resourcePrimKey, page.getUserName()); } // Workflow page = startWorkflowInstance(userId, page, serviceContext); return page; }
From source file:com.liferay.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
@Override public WikiPage getDraftPage(long nodeId, String title) throws PortalException { List<WikiPage> pages = wikiPagePersistence.findByN_T_S(nodeId, title, WorkflowConstants.STATUS_DRAFT, 0, 1); if (!pages.isEmpty()) { return pages.get(0); }// w w w. java 2 s . c o m pages = wikiPagePersistence.findByN_T_S(nodeId, title, WorkflowConstants.STATUS_PENDING, 0, 1); if (!pages.isEmpty()) { return pages.get(0); } else { StringBundler sb = new StringBundler(5); sb.append("{nodeId="); sb.append(nodeId); sb.append(", title="); sb.append(title); sb.append("}"); throw new NoSuchPageException(sb.toString()); } }