diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/pages/PageModelAdminPageController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/pages/PageModelAdminPageController.java new file mode 100644 index 000000000..ca58c393e --- /dev/null +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/pages/PageModelAdminPageController.java @@ -0,0 +1,51 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.arsdigita.cms.ui.pages; + +import org.libreccm.l10n.GlobalizationHelper; +import org.libreccm.pagemodel.PageModel; +import org.libreccm.pagemodel.PageModelRepository; +import org.librecms.pages.Pages; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.transaction.Transactional; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +public class PageModelAdminPageController { + + @Inject + private GlobalizationHelper globalizationHelper; + + @Inject + private PageModelRepository pageModelRepository; + + @Transactional(Transactional.TxType.REQUIRED) + public Map findDraftPageModelsByApplication( + final Pages pages + ) { + final List pageModels = pageModelRepository + .findDraftByApplication(pages); + final Map result = new HashMap<>(); + for (final PageModel pageModel : pageModels) { + result.put("pageModelId", pageModel.getPageModelId()); + final String title = globalizationHelper + .getValueFromLocalizedString(pageModel.getTitle()); + result.put("title", title); + } + + return result; + } + +} diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/pages/PagesAdminPage.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/pages/PagesAdminPage.java index 68de2aa86..2bccfc5c0 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/pages/PagesAdminPage.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/pages/PagesAdminPage.java @@ -50,7 +50,6 @@ import org.libreccm.categorization.Category; import org.libreccm.categorization.CategoryRepository; import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.core.UnexpectedErrorException; -import org.libreccm.l10n.GlobalizationHelper; import org.libreccm.pagemodel.PageModel; import org.libreccm.pagemodel.PageModelRepository; import org.librecms.CmsConstants; @@ -58,7 +57,7 @@ import org.librecms.pages.PageManager; import org.librecms.pages.PageRepository; import org.librecms.pages.Pages; -import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.TooManyListenersException; @@ -163,7 +162,7 @@ public class PagesAdminPage extends CMSApplicationPage { pagesContextBar = new PagesContextBar(); super.add(pagesContextBar); - + final TabbedPane tabbedPane = new TabbedPane(); tabbedPane.addTab(new Label(new GlobalizedMessage( "cms.ui.pages.tab.pages", CmsConstants.CMS_BUNDLE)), @@ -261,22 +260,31 @@ public class PagesAdminPage extends CMSApplicationPage { "cms.ui.pages.assigned_page_model.inherit", CmsConstants.CMS_BUNDLE)))); - final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); - final PageModelRepository pageModelRepo = cdiUtil - .findBean(PageModelRepository.class); - final List pageModels = pageModelRepo - .findDraftByApplication(pagesInstance); - final GlobalizationHelper globalizationHelper = cdiUtil - .findBean(GlobalizationHelper.class); - - for (final PageModel pageModel : pageModels) { - target.addOption(new Option( - Long.toString(pageModel.getPageModelId()), - new Text(globalizationHelper.getValueFromLocalizedString( - pageModel - .getTitle())))); - } - +// final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); +// final PageModelRepository pageModelRepo = cdiUtil.findBean( +// PageModelRepository.class +// ); +// final List pageModels = pageModelRepo +// .findDraftByApplication(pagesInstance); +// final GlobalizationHelper globalizationHelper = cdiUtil +// .findBean(GlobalizationHelper.class); +// for (final PageModel pageModel : pageModels) { +// target.addOption( +// new Option( +// Long.toString(pageModel.getPageModelId()), +// new Text( +// globalizationHelper.getValueFromLocalizedString( +// pageModel.getTitle() +// ) +// ) +// ) +// ); +// } + final PageModelAdminPageController controller = CdiUtil.createCdiUtil() + .findBean(PageModelAdminPageController.class); + final Map options = controller + .findDraftPageModelsByApplication(pagesInstance); + for (final Map.Entry container = new HashMap<>(); container.put("key", containerModel.getKey()); - container.put("styles", containerModel.getStyles().toCss()); + if (containerModel.getStyles() != null) { + container.put("styles", containerModel.getStyles().toCss()); + } for (final ComponentModel componentModel : containerModel .getComponents()) {