CCM NG: First part of getting the ItemLifecycleItemPane working
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5030 8810af33-2d31-482b-a856-94f89814c4df
parent
bea101b4a7
commit
b910b14008
|
|
@ -18,11 +18,17 @@
|
|||
*/
|
||||
package com.arsdigita.cms.ui.lifecycle;
|
||||
|
||||
import org.hibernate.boot.archive.scan.spi.ClassDescriptor;
|
||||
import org.libreccm.categorization.Categorization;
|
||||
import org.libreccm.categorization.Category;
|
||||
import org.librecms.contentsection.ContentItem;
|
||||
import org.librecms.contentsection.ContentItemRepository;
|
||||
import org.librecms.contentsection.ContentSection;
|
||||
import org.librecms.contentsection.ContentSectionRepository;
|
||||
import org.librecms.lifecycle.LifecycleDefinition;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.inject.Inject;
|
||||
|
|
@ -38,6 +44,9 @@ public class ItemLifecycleAdminController {
|
|||
@Inject
|
||||
private ContentItemRepository itemRepo;
|
||||
|
||||
@Inject
|
||||
private ContentSectionRepository sectionRepo;
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public boolean isAssignedToAbstractCategory(final ContentItem item) {
|
||||
|
||||
|
|
@ -57,4 +66,32 @@ public class ItemLifecycleAdminController {
|
|||
return count > 0;
|
||||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public List<LifecycleDefinition> getLifecycleDefinitions(
|
||||
final ContentSection section) {
|
||||
|
||||
final ContentSection contentSection = sectionRepo
|
||||
.findById(section.getObjectId())
|
||||
.orElseThrow(() -> new IllegalArgumentException(String
|
||||
.format("No ContentSection with ID %d in the database.",
|
||||
section.getObjectId())));
|
||||
|
||||
return contentSection
|
||||
.getLifecycleDefinitions()
|
||||
.stream()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public LifecycleDefinition getDefaultLifecycle(final ContentItem item) {
|
||||
|
||||
final ContentItem contentItem = itemRepo
|
||||
.findById(item.getObjectId())
|
||||
.orElseThrow(() -> new IllegalArgumentException(String
|
||||
.format("No ContentItem with ID %d in the database.",
|
||||
item.getObjectId())));
|
||||
|
||||
return contentItem.getContentType().getDefaultLifecycle();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -257,25 +257,28 @@ class ItemLifecycleSelectForm extends BaseForm {
|
|||
addAction(new Submit("finish", gz("cms.ui.item.lifecycle.publish")));
|
||||
|
||||
// Form listeners
|
||||
addValidationListener(new ValidationListener());
|
||||
addSecurityListener(ItemPrivileges.PUBLISH, item);
|
||||
addInitListener(new InitListener());
|
||||
addProcessListener(new ProcessListener());
|
||||
super.addValidationListener(new ValidationListener());
|
||||
super.addSecurityListener(ItemPrivileges.PUBLISH, item);
|
||||
super.addInitListener(new InitListener());
|
||||
super.addProcessListener(new ProcessListener());
|
||||
}
|
||||
|
||||
private class OptionPrinter implements PrintListener {
|
||||
|
||||
@Override
|
||||
public final void prepare(final PrintEvent e) {
|
||||
public final void prepare(final PrintEvent event) {
|
||||
final ContentSection section = CMS.getContext().getContentSection();
|
||||
|
||||
final List<LifecycleDefinition> definitions = section
|
||||
.getLifecycleDefinitions();
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final ItemLifecycleAdminController controller = cdiUtil
|
||||
.findBean(ItemLifecycleAdminController.class);
|
||||
|
||||
final SingleSelect target = (SingleSelect) e.getTarget();
|
||||
final List<LifecycleDefinition> definitions = controller
|
||||
.getLifecycleDefinitions(section);
|
||||
|
||||
final SingleSelect target = (SingleSelect) event.getTarget();
|
||||
target.clearOptions();
|
||||
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final GlobalizationHelper globalizationHelper = cdiUtil.findBean(
|
||||
GlobalizationHelper.class);
|
||||
final Locale locale = globalizationHelper.getNegotiatedLocale();
|
||||
|
|
@ -305,6 +308,8 @@ class ItemLifecycleSelectForm extends BaseForm {
|
|||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final ContentItemManager itemManager = cdiUtil.findBean(
|
||||
ContentItemManager.class);
|
||||
final ItemLifecycleAdminController controller = cdiUtil
|
||||
.findBean(ItemLifecycleAdminController.class);
|
||||
|
||||
if (itemManager.isLive(item)) {
|
||||
// If the item is published, select the currently
|
||||
|
|
@ -315,11 +320,8 @@ class ItemLifecycleSelectForm extends BaseForm {
|
|||
cycleSelect.setValue(state, definition.getDefinitionId());
|
||||
} else {
|
||||
// Set the default lifecycle (if it exists).
|
||||
|
||||
final ContentSection section = CMS.getContext()
|
||||
.getContentSection();
|
||||
final LifecycleDefinition definition = item.getContentType()
|
||||
.getDefaultLifecycle();
|
||||
final LifecycleDefinition definition = controller
|
||||
.getDefaultLifecycle(item);
|
||||
|
||||
if (definition != null) {
|
||||
cycleSelect.setValue(state, definition.getDefinitionId());
|
||||
|
|
|
|||
Loading…
Reference in New Issue