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

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

Introduction

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

Prototype

int STATUS_DRAFT

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

Click Source Link

Usage

From source file:com.liferay.dynamic.data.lists.service.impl.DDLRecordLocalServiceImpl.java

License:Open Source License

/**
 * Updates the record, replacing its display index and values.
 *
 * @param  userId the primary key of the user updating the record
 * @param  recordId the primary key of the record
 * @param  majorVersion whether this update is a major change. A major
 *         change increments the record's major version number.
 * @param  displayIndex the index position in which the record is displayed
 *         in the spreadsheet view//w  w  w.j  a v  a  2  s. c  o  m
 * @param  ddmFormValues the record values. See <code>DDMFormValues</code>
 *         in the <code>dynamic.data.mapping.api</code> module.
 * @param  serviceContext the service context to be applied. This can set
 *         the record modified date.
 * @return the record
 * @throws PortalException if a portal exception occurred
 */
@Indexable(type = IndexableType.REINDEX)
@Override
public DDLRecord updateRecord(long userId, long recordId, boolean majorVersion, int displayIndex,
        DDMFormValues ddmFormValues, ServiceContext serviceContext) throws PortalException {

    // Record

    User user = userLocalService.getUser(userId);

    DDLRecord record = ddlRecordPersistence.findByPrimaryKey(recordId);

    record.setModifiedDate(serviceContext.getModifiedDate(null));

    ddlRecordPersistence.update(record);

    // Record version

    DDLRecordVersion recordVersion = record.getLatestRecordVersion();

    if (recordVersion.isApproved()) {
        DDLRecordSet recordSet = record.getRecordSet();

        long ddmStorageId = storageEngine.create(recordSet.getCompanyId(), recordSet.getDDMStructureId(),
                ddmFormValues, serviceContext);

        String version = getNextVersion(recordVersion.getVersion(), majorVersion,
                serviceContext.getWorkflowAction());

        recordVersion = addRecordVersion(user, record, ddmStorageId, version, displayIndex,
                WorkflowConstants.STATUS_DRAFT);
    } else {
        storageEngine.update(recordVersion.getDDMStorageId(), ddmFormValues, serviceContext);

        String version = recordVersion.getVersion();

        updateRecordVersion(user, recordVersion, version, displayIndex, recordVersion.getStatus(),
                serviceContext);
    }

    if (isKeepRecordVersionLabel(record.getRecordVersion(), recordVersion, serviceContext)) {

        ddlRecordVersionPersistence.remove(recordVersion);

        // Dynamic data mapping storage

        storageEngine.deleteByClass(recordVersion.getDDMStorageId());

        return record;
    }

    // Workflow

    WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), record.getGroupId(), userId,
            DDLRecord.class.getName(), recordVersion.getRecordVersionId(), recordVersion, serviceContext);

    return record;
}

From source file:com.liferay.dynamic.data.lists.service.test.DDLRecordServiceTest.java

License:Open Source License

@Test
public void testPublishRecordDraftWithoutChanges() throws Exception {
    DDMForm ddmForm = createDDMForm();// w  w  w.  j  a va  2s.  c  om

    ddmForm.addDDMFormField(createTextDDMFormField("Name", true, false));

    DDLRecordSet recordSet = addRecordSet(ddmForm);

    DDLRecordTestHelper recordTestHelper = new DDLRecordTestHelper(_group, recordSet);

    DDMFormValues ddmFormValues = createDDMFormValues(ddmForm);

    ddmFormValues.addDDMFormFieldValue(createLocalizedDDMFormFieldValue("Name", "Joe Bloggs"));

    DDLRecord record = recordTestHelper.addRecord(ddmFormValues, WorkflowConstants.ACTION_SAVE_DRAFT);

    Assert.assertEquals(WorkflowConstants.STATUS_DRAFT, record.getStatus());

    DDLRecordVersion recordVersion = record.getRecordVersion();

    Assert.assertTrue(recordVersion.isDraft());

    record = updateRecord(record.getRecordId(), record.getDDMFormValues(), WorkflowConstants.ACTION_PUBLISH);

    Assert.assertEquals(WorkflowConstants.STATUS_APPROVED, record.getStatus());

    recordVersion = record.getRecordVersion();

    Assert.assertTrue(recordVersion.isApproved());
}

From source file:com.liferay.dynamic.data.mapping.form.web.internal.display.context.DDMFormDisplayContext.java

License:Open Source License

public String getDDMFormHTML() throws PortalException {
    DDMFormInstance ddmFormInstance = getFormInstance();

    if (ddmFormInstance == null) {
        return StringPool.BLANK;
    }/*from w w w  .  jav a  2 s  .  c o  m*/

    DDMStructure ddmStructure = ddmFormInstance.getStructure();
    boolean requireCaptcha = isCaptchaRequired(ddmFormInstance);

    DDMForm ddmForm = getDDMForm(ddmStructure, requireCaptcha);

    DDMFormLayout ddmFormLayout = getDDMFormLayout(ddmStructure, requireCaptcha);

    DDMFormRenderingContext ddmFormRenderingContext = createDDMFormRenderingContext(ddmForm);

    ddmFormRenderingContext.setGroupId(ddmFormInstance.getGroupId());

    DDMFormInstanceRecordVersion ddmFormInstanceRecordVersion = _ddmFormInstanceRecordVersionLocalService
            .fetchLatestFormInstanceRecordVersion(getUserId(), getFormInstanceId(), getFormInstanceVersion(),
                    WorkflowConstants.STATUS_DRAFT);

    if (ddmFormInstanceRecordVersion != null) {
        DDMFormValues mergedDDMFormValues = _ddmFormValuesMerger.merge(
                ddmFormInstanceRecordVersion.getDDMFormValues(), ddmFormRenderingContext.getDDMFormValues());

        ddmFormRenderingContext.setDDMFormValues(mergedDDMFormValues);
    }

    boolean showSubmitButton = isShowSubmitButton();

    ddmFormRenderingContext.setShowSubmitButton(showSubmitButton);

    String submitLabel = getSubmitLabel(ddmFormInstance);

    ddmFormRenderingContext.setSubmitLabel(submitLabel);

    return _ddmFormRenderer.render(ddmForm, ddmFormLayout, ddmFormRenderingContext);
}

From source file:com.liferay.dynamic.data.mapping.form.web.internal.portlet.action.AddFormInstanceRecordMVCActionCommand.java

License:Open Source License

@Override
protected void doProcessAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {

    PortletSession portletSession = actionRequest.getPortletSession();

    long groupId = ParamUtil.getLong(actionRequest, "groupId");

    if (groupId == 0) {
        groupId = GetterUtil.getLong(portletSession.getAttribute(DDMFormWebKeys.GROUP_ID));
    }//w  w w . jav  a2  s.  c  om

    long formInstanceId = ParamUtil.getLong(actionRequest, "formInstanceId");

    if (formInstanceId == 0) {
        formInstanceId = GetterUtil
                .getLong(portletSession.getAttribute(DDMFormWebKeys.DYNAMIC_DATA_MAPPING_FORM_INSTANCE_ID));
    }

    DDMFormInstance ddmFormInstance = _ddmFormInstanceService.getFormInstance(formInstanceId);

    validateCaptcha(actionRequest, ddmFormInstance);

    DDMForm ddmForm = getDDMForm(ddmFormInstance);

    DDMFormValues ddmFormValues = _ddmFormValuesFactory.create(actionRequest, ddmForm);

    ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

    _addFormInstanceMVCCommandHelper.updateRequiredFieldsAccordingToVisibility(actionRequest, ddmForm,
            ddmFormValues, themeDisplay.getLocale());

    ServiceContext serviceContext = ServiceContextFactory.getInstance(DDMFormInstanceRecord.class.getName(),
            actionRequest);

    DDMFormInstanceRecordVersion ddmFormInstanceRecordVersion = _ddmFormInstanceRecordVersionLocalService
            .fetchLatestFormInstanceRecordVersion(themeDisplay.getUserId(), formInstanceId,
                    ddmFormInstance.getVersion(), WorkflowConstants.STATUS_DRAFT);

    DDMFormInstanceRecord ddmFormInstanceRecord;

    if (ddmFormInstanceRecordVersion == null) {
        ddmFormInstanceRecord = _ddmFormInstanceRecordService.addFormInstanceRecord(groupId, formInstanceId,
                ddmFormValues, serviceContext);
    } else {
        ddmFormInstanceRecord = _ddmFormInstanceRecordService.updateFormInstanceRecord(
                ddmFormInstanceRecordVersion.getFormInstanceRecordId(), false, ddmFormValues, serviceContext);
    }

    if (isEmailNotificationEnabled(ddmFormInstance)) {
        _ddmFormEmailNotificationSender.sendEmailNotification(actionRequest, ddmFormInstanceRecord);
    }

    if (SessionErrors.isEmpty(actionRequest)) {
        DDMFormInstanceSettings formInstanceSettings = ddmFormInstance.getSettingsModel();

        String redirectURL = formInstanceSettings.redirectURL();

        if (Validator.isNotNull(redirectURL)) {
            portletSession.setAttribute(DDMFormWebKeys.DYNAMIC_DATA_MAPPING_FORM_INSTANCE_ID, formInstanceId);
            portletSession.setAttribute(DDMFormWebKeys.GROUP_ID, groupId);

            sendRedirect(actionRequest, actionResponse, redirectURL);
        } else {
            DDMFormSuccessPageSettings ddmFormSuccessPageSettings = ddmForm.getDDMFormSuccessPageSettings();

            if (ddmFormSuccessPageSettings.isEnabled()) {
                String portletId = _portal.getPortletId(actionRequest);

                SessionMessages.add(actionRequest,
                        portletId.concat(SessionMessages.KEY_SUFFIX_HIDE_DEFAULT_SUCCESS_MESSAGE));
            }
        }
    }
}

From source file:com.liferay.dynamic.data.mapping.form.web.internal.portlet.action.AddFormInstanceRecordMVCResourceCommand.java

License:Open Source License

protected ServiceContext createServiceContext(ResourceRequest resourceRequest) throws PortalException {

    ServiceContext serviceContext = ServiceContextFactory.getInstance(DDMFormInstanceRecord.class.getName(),
            resourceRequest);/*from   w  w w.  j a  va2s  . c om*/

    serviceContext.setAttribute("status", WorkflowConstants.STATUS_DRAFT);
    serviceContext.setAttribute("validateDDMFormValues", Boolean.FALSE);
    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);

    return serviceContext;
}

From source file:com.liferay.dynamic.data.mapping.form.web.internal.portlet.action.AddFormInstanceRecordMVCResourceCommand.java

License:Open Source License

@Override
protected void doServeResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse)
        throws Exception {

    boolean preview = ParamUtil.getBoolean(resourceRequest, "preview");

    if (preview) {
        return;/*  w  w  w .ja  va  2s .  c  o m*/
    }

    ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);

    long formInstanceId = ParamUtil.getLong(resourceRequest, "formInstanceId");

    DDMFormInstance ddmFormInstance = _ddmFormInstanceService.getFormInstance(formInstanceId);

    DDMFormValues ddmFormValues = createDDMFormValues(ddmFormInstance, resourceRequest);

    if (ddmFormValues == null) {
        return;
    }

    DDMFormInstanceRecordVersion ddmFormInstanceRecordVersion = _ddmFormInstanceRecordVersionLocalService
            .fetchLatestFormInstanceRecordVersion(themeDisplay.getUserId(), formInstanceId,
                    ddmFormInstance.getVersion(), WorkflowConstants.STATUS_DRAFT);

    ServiceContext serviceContext = createServiceContext(resourceRequest);

    if (ddmFormInstanceRecordVersion == null) {
        _ddmFormInstanceRecordService.addFormInstanceRecord(ddmFormInstance.getGroupId(), formInstanceId,
                ddmFormValues, serviceContext);
    } else {
        _ddmFormInstanceRecordService.updateFormInstanceRecord(
                ddmFormInstanceRecordVersion.getFormInstanceRecordId(), false, ddmFormValues, serviceContext);
    }
}

From source file:com.liferay.dynamic.data.mapping.form.web.internal.portlet.action.SaveFormInstanceMVCCommandHelper.java

License:Open Source License

protected DDMFormInstance addFormInstance(PortletRequest portletRequest, long ddmStructureId,
        Map<Locale, String> nameMap, Map<Locale, String> descriptionMap, DDMFormValues settingsDDMFormValues)
        throws Exception {

    long groupId = ParamUtil.getLong(portletRequest, "groupId");

    ServiceContext serviceContext = ServiceContextFactory.getInstance(DDMFormInstance.class.getName(),
            portletRequest);/*from   ww w .  ja va 2s  .co  m*/

    if (ParamUtil.getBoolean(portletRequest, "autoSave")) {
        serviceContext.setAttribute("status", WorkflowConstants.STATUS_DRAFT);
    }

    validateRedirectURL(settingsDDMFormValues);

    return formInstanceService.addFormInstance(groupId, ddmStructureId, nameMap, descriptionMap,
            settingsDDMFormValues, serviceContext);
}

From source file:com.liferay.dynamic.data.mapping.service.impl.DDMFormInstanceLocalServiceImpl.java

License:Open Source License

protected DDMFormInstance doUpdateFormInstance(long userId, long ddmStructureId, Map<Locale, String> nameMap,
        Map<Locale, String> descriptionMap, DDMFormValues settingsDDMFormValues, ServiceContext serviceContext,
        DDMFormInstance ddmFormInstance) throws PortalException {

    Locale defaultLocale = getDDMFormDefaultLocale(ddmStructureId);

    validate(ddmStructureId, nameMap, settingsDDMFormValues, defaultLocale);

    User user = userLocalService.getUser(userId);

    long oldDDMStructureId = ddmFormInstance.getStructureId();

    ddmFormInstance.setStructureId(ddmStructureId);

    DDMFormInstanceVersion latestDDMFormInstanceVersion = ddmFormInstanceVersionLocalService
            .getLatestFormInstanceVersion(ddmFormInstance.getFormInstanceId());

    int status = GetterUtil.getInteger(serviceContext.getAttribute("status"),
            WorkflowConstants.STATUS_APPROVED);

    boolean updateVersion = false;

    if ((latestDDMFormInstanceVersion.getStatus() == WorkflowConstants.STATUS_DRAFT)
            && (status == WorkflowConstants.STATUS_DRAFT)) {

        updateVersion = true;//  www .j a va2  s  . c  o m
    }

    boolean majorVersion = GetterUtil.getBoolean(serviceContext.getAttribute("majorVersion"));

    String version = getNextVersion(latestDDMFormInstanceVersion.getVersion(), majorVersion);

    if (!updateVersion) {
        ddmFormInstance.setVersion(version);

        ddmFormInstance.setVersionUserId(user.getUserId());
        ddmFormInstance.setVersionUserName(user.getFullName());
    }

    ddmFormInstance.setNameMap(nameMap, defaultLocale);
    ddmFormInstance.setDescriptionMap(descriptionMap, defaultLocale);
    ddmFormInstance.setSettings(ddmFormValuesJSONSerializer.serialize(settingsDDMFormValues));

    DDMFormInstance updatedDDMFormInstance = ddmFormInstancePersistence.update(ddmFormInstance);

    updateWorkflowDefinitionLink(ddmFormInstance, settingsDDMFormValues, serviceContext);

    long ddmStructureVersionId = getStructureVersionId(ddmStructureId);

    if (updateVersion) {
        updateFormInstanceVersion(ddmStructureVersionId, user, ddmFormInstance);
    } else {
        addFormInstanceVersion(ddmStructureVersionId, user, ddmFormInstance, version, serviceContext);
    }

    if (oldDDMStructureId != ddmStructureId) {
        ddmFormInstanceRecordLocalService.deleteFormInstanceRecords(ddmFormInstance.getFormInstanceId());
    }

    return updatedDDMFormInstance;
}

From source file:com.liferay.dynamic.data.mapping.service.impl.DDMFormInstanceRecordLocalServiceImpl.java

License:Open Source License

@Indexable(type = IndexableType.REINDEX)
@Override/*w w w.j  ava2  s  . co m*/
public DDMFormInstanceRecord addFormInstanceRecord(long userId, long groupId, long ddmFormInstanceId,
        DDMFormValues ddmFormValues, ServiceContext serviceContext) throws PortalException {

    User user = userLocalService.getUser(userId);

    DDMFormInstance ddmFormInstance = ddmFormInstancePersistence.findByPrimaryKey(ddmFormInstanceId);

    validate(groupId, ddmFormInstance);

    long recordId = counterLocalService.increment();

    DDMFormInstanceRecord ddmFormInstanceRecord = ddmFormInstanceRecordPersistence.create(recordId);

    ddmFormInstanceRecord.setUuid(serviceContext.getUuid());
    ddmFormInstanceRecord.setGroupId(groupId);
    ddmFormInstanceRecord.setCompanyId(user.getCompanyId());
    ddmFormInstanceRecord.setUserId(user.getUserId());
    ddmFormInstanceRecord.setUserName(user.getFullName());
    ddmFormInstanceRecord.setVersionUserId(user.getUserId());
    ddmFormInstanceRecord.setVersionUserName(user.getFullName());

    StorageEngine storageEngine = storageEngineAccessor.getStorageEngine();

    long ddmStorageId = storageEngine.create(ddmFormInstance.getCompanyId(), ddmFormInstance.getStructureId(),
            ddmFormValues, serviceContext);

    ddmFormInstanceRecord.setStorageId(ddmStorageId);

    ddmFormInstanceRecord.setFormInstanceId(ddmFormInstanceId);
    ddmFormInstanceRecord.setFormInstanceVersion(ddmFormInstance.getVersion());
    ddmFormInstanceRecord.setVersion(_VERSION_DEFAULT);

    ddmFormInstanceRecordPersistence.update(ddmFormInstanceRecord);

    int status = GetterUtil.getInteger(serviceContext.getAttribute("status"), WorkflowConstants.STATUS_DRAFT);

    DDMFormInstanceRecordVersion ddmFormInstanceRecordVersion = addFormInstanceRecordVersion(user,
            ddmFormInstanceRecord, ddmStorageId, status, _VERSION_DEFAULT);

    // Asset

    Locale locale = serviceContext.getLocale();

    updateAsset(userId, ddmFormInstanceRecord, ddmFormInstanceRecordVersion,
            serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), locale,
            serviceContext.getAssetPriority());

    if (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_PUBLISH) {

        WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), groupId, userId,
                DDMFormInstanceRecord.class.getName(),
                ddmFormInstanceRecordVersion.getFormInstanceRecordVersionId(), ddmFormInstanceRecordVersion,
                serviceContext);
    }

    return ddmFormInstanceRecord;
}

From source file:com.liferay.dynamic.data.mapping.service.impl.DDMFormInstanceRecordLocalServiceImpl.java

License:Open Source License

@Indexable(type = IndexableType.REINDEX)
@Override//  w  w  w  . j  av a2  s .c o m
public DDMFormInstanceRecord updateFormInstanceRecord(long userId, long ddmFormInstanceRecordId,
        boolean majorVersion, DDMFormValues ddmFormValues, ServiceContext serviceContext)
        throws PortalException {

    User user = userLocalService.getUser(userId);

    DDMFormInstanceRecord ddmFormInstanceRecord = ddmFormInstanceRecordPersistence
            .findByPrimaryKey(ddmFormInstanceRecordId);

    ddmFormInstanceRecord.setModifiedDate(serviceContext.getModifiedDate(null));

    ddmFormInstanceRecord = ddmFormInstanceRecordPersistence.update(ddmFormInstanceRecord);

    StorageEngine storageEngine = storageEngineAccessor.getStorageEngine();

    DDMFormInstanceRecordVersion ddmFormInstanceRecordVersion = ddmFormInstanceRecord
            .getLatestFormInstanceRecordVersion();

    if (ddmFormInstanceRecordVersion.isApproved()) {
        DDMFormInstance ddmFormInstance = ddmFormInstanceRecord.getFormInstance();

        long ddmStorageId = storageEngine.create(ddmFormInstance.getCompanyId(),
                ddmFormInstance.getStructureId(), ddmFormValues, serviceContext);

        String version = getNextVersion(ddmFormInstanceRecordVersion.getVersion(), majorVersion,
                serviceContext.getWorkflowAction());

        ddmFormInstanceRecordVersion = addFormInstanceRecordVersion(user, ddmFormInstanceRecord, ddmStorageId,
                WorkflowConstants.STATUS_DRAFT, version);
    } else {
        storageEngine.update(ddmFormInstanceRecordVersion.getStorageId(), ddmFormValues, serviceContext);

        String version = ddmFormInstanceRecordVersion.getVersion();

        updateFormInstanceRecordVersion(user, ddmFormInstanceRecordVersion,
                ddmFormInstanceRecordVersion.getStatus(), version, serviceContext);
    }

    if (isKeepFormInstanceRecordVersionLabel(ddmFormInstanceRecord.getFormInstanceRecordVersion(),
            ddmFormInstanceRecordVersion, serviceContext)) {

        ddmFormInstanceRecordVersionPersistence.remove(ddmFormInstanceRecordVersion);

        storageEngine.deleteByClass(ddmFormInstanceRecordVersion.getStorageId());

        return ddmFormInstanceRecord;
    }

    if (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_PUBLISH) {

        WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(),
                ddmFormInstanceRecord.getGroupId(), userId, DDMFormInstanceRecord.class.getName(),
                ddmFormInstanceRecordVersion.getFormInstanceRecordVersionId(), ddmFormInstanceRecordVersion,
                serviceContext);
    }

    return ddmFormInstanceRecord;
}