CCM NG: Tab Veröffentlichen wirft Exception wenn keine Standard Lifecycle vorhanden ist. (#2797)

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5299 8810af33-2d31-482b-a856-94f89814c4df

Former-commit-id: 5d1a33e6af
pull/2/head
jensp 2018-02-19 12:41:29 +00:00
parent 59be6c3389
commit f0e3f25b0b
5 changed files with 24 additions and 27 deletions

View File

@ -144,7 +144,8 @@ class ItemLifecycleAdminController implements Serializable {
}
@Transactional(Transactional.TxType.REQUIRED)
public LifecycleDefinition getDefaultLifecycle(final ContentItem item) {
public Optional<LifecycleDefinition> getDefaultLifecycle(
final ContentItem item) {
final ContentItem contentItem = itemRepo
.findById(item.getObjectId())
@ -156,9 +157,14 @@ class ItemLifecycleAdminController implements Serializable {
.getContentType()
.getDefaultLifecycle();
return lifecycleDefRepo
.findById(definition.getDefinitionId())
.get();
if (definition == null) {
return Optional.empty();
} else {
return Optional
.of(lifecycleDefRepo
.findById(definition.getDefinitionId())
.get());
}
}
@Transactional(Transactional.TxType.REQUIRED)

View File

@ -41,7 +41,6 @@ import com.arsdigita.bebop.parameters.IntegerParameter;
import com.arsdigita.bebop.parameters.NumberInRangeValidationListener;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ui.BaseForm;
import com.arsdigita.cms.ui.ContentItemPage;
import com.arsdigita.cms.ui.item.ContentItemRequestLocal;
import com.arsdigita.cms.ui.item.ItemWorkflowRequestLocal;
import com.arsdigita.cms.ui.workflow.WorkflowRequestLocal;
@ -67,16 +66,9 @@ import org.libreccm.workflow.WorkflowRepository;
import org.librecms.CmsConstants;
import org.librecms.contentsection.ContentItem;
import org.librecms.contentsection.ContentItemManager;
import org.librecms.contentsection.ContentItemRepository;
import org.librecms.contentsection.ContentSection;
import org.librecms.contentsection.privileges.ItemPrivileges;
import org.librecms.lifecycle.Lifecycle;
import org.librecms.lifecycle.LifecycleDefinition;
import org.librecms.lifecycle.LifecycleDefinitionRepository;
import org.librecms.lifecycle.LifecycleManager;
import org.librecms.lifecycle.Phase;
import org.librecms.lifecycle.PhaseDefinition;
import org.librecms.lifecycle.PhaseRepository;
import org.librecms.workflow.CmsTask;
import org.librecms.workflow.CmsTaskManager;
import org.librecms.workflow.CmsTaskType;
@ -88,6 +80,7 @@ import java.math.BigDecimal;
import java.util.Calendar;
import java.util.List;
import java.util.Locale;
import java.util.Optional;
import java.util.TimeZone;
import java.util.TooManyListenersException;
@ -320,19 +313,17 @@ class ItemLifecycleSelectForm extends BaseForm {
// associated lifecycle.
final LifecycleDefinition definition = controller
.getDefinitionOfLifecycle(item);
.getDefinitionOfLifecycle(item);
// final LifecycleDefinition definition = item
// .getLifecycle()
// .getDefinition();
cycleSelect.setValue(state, definition.getDefinitionId());
} else {
// Set the default lifecycle (if it exists).
final LifecycleDefinition definition = controller
.getDefaultLifecycle(item);
if (definition != null) {
cycleSelect.setValue(state, definition.getDefinitionId());
}
controller
.getDefaultLifecycle(item)
.ifPresent(definition -> cycleSelect.setValue(state,
definition));
}
// Set the default start date.
@ -390,8 +381,8 @@ class ItemLifecycleSelectForm extends BaseForm {
final ContentItem item = itemRequestLocal.getContentItem(state);
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final ItemLifecycleAdminController controller = cdiUtil
.findBean(ItemLifecycleAdminController.class);
.findBean(ItemLifecycleAdminController.class);
final Publisher publisher = new Publisher(state);
if (CMSConfig.getConfig().isThreadPublishing()) {
final Runnable threadAction = new Runnable() {
@ -730,10 +721,10 @@ class ItemLifecycleSelectForm extends BaseForm {
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final ItemLifecycleAdminController controller = cdiUtil
.findBean(ItemLifecycleAdminController.class);
.findBean(ItemLifecycleAdminController.class);
controller.publish(itemUuid, defID, endDate, workflowUuid, user);
// final ContentItemRepository itemRepo = cdiUtil.findBean(
// ContentItemRepository.class);
// final ContentItemManager itemManager = cdiUtil.findBean(

View File

@ -452,7 +452,7 @@ cms.ui.item.lifecycle=Lifecycle
cms.ui.item.lifecycle.start_date=Start date
cms.ui.item.lifecycle.end_date=End date
cms.ui.item.lifecycle.start_time=Start time
cms.ui.item.lifecycle.end_time\ =End time
cms.ui.item.lifecycle.end_time=End time
cms.ui.item.notification_period=Notify in advance
cms.ui.item.days=days
cms.ui.item.hours=hours

View File

@ -449,7 +449,7 @@ cms.ui.item.lifecycle=Ver\u00f6ffentlichungszyklus
cms.ui.item.lifecycle.start_date=Beginnt am
cms.ui.item.lifecycle.end_date=Endet am
cms.ui.item.lifecycle.start_time=Beginnt um
cms.ui.item.lifecycle.end_time\ =Endet um
cms.ui.item.lifecycle.end_time=Endet um
cms.ui.item.notification_period=Vorab Benachrichtigung
cms.ui.item.days=Tage
cms.ui.item.hours=Stunden

View File

@ -408,7 +408,7 @@ cms.ui.item.lifecycle=Lifecycle
cms.ui.item.lifecycle.start_date=Start date
cms.ui.item.lifecycle.end_date=End date
cms.ui.item.lifecycle.start_time=Start time
cms.ui.item.lifecycle.end_time\ =End time
cms.ui.item.lifecycle.end_time=End time
cms.ui.item.notification_period=Notify in advance
cms.ui.item.days=days
cms.ui.item.hours=hours