From: <pb...@fe...> - 2012-12-16 18:13:22
|
Author: pboy Date: 2012-12-16 18:13:14 +0000 (Sun, 16 Dec 2012) New Revision: 2380 Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchPage.java trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchWidget.java Log: Enhanced ItemSearchCreatePane UI: window either closes or redirects to edit page (configurable) (on behalt of JensP). Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java 2012-12-16 18:04:05 UTC (rev 2379) +++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java 2012-12-16 18:13:14 UTC (rev 2380) @@ -62,11 +62,13 @@ private final SingleSelectionModel m_model; private final FolderSelectionModel m_folderSel; // To support legacy UI code private String defaultFolder; + private boolean editAfterCreate = true; private final CreationSelector m_creator; private final ContentItemRequestLocal m_contentItem = new ContentItemRequestLocal() { }; - private final Link m_selectCloseLink; - private final Link m_selectEditLink; + //private final Link m_selectCloseLink; + //private final Link m_selectEditLink; + private final Link m_fallBackLink; private final SegmentedPanel m_segPanel; private final Segment m_creationSeg; private final Segment m_newItemSeg; @@ -119,8 +121,8 @@ m_segPanel.add(m_creationSeg); add(m_segPanel); - m_selectCloseLink = new Link( - (String) GlobalizationUtil.globalize("cms.ui.search.create.select_close").localize(), + m_fallBackLink = new Link( + (String) GlobalizationUtil.globalize("cms.ui.search.create.fallback").localize(), new PrintListener() { public void prepare(final PrintEvent event) { @@ -139,26 +141,119 @@ final String searchWidget = (String) state.getValue(new StringParameter(SEARCHWIDGET_PARAM)); final String publishWidget = (String) state.getValue(new StringParameter(PUBLISHWIDGET_PARAM)); + final String scriptAction; + if (editAfterCreate) { + ((Label) target.getChild()).setLabel((String) GlobalizationUtil.globalize( + "cms.ui.search.create.select_edit").localize()); + + final ContentSection section = item.getContentSection(); + final String nodeURL = section.getPath() + "/"; + final String linkTarget = ContentItemPage.getItemURL(nodeURL, item.getID(), + ContentItemPage.AUTHORING_TAB, true); + target.setTarget(linkTarget); + scriptAction = ""; + } else { + ((Label) target.getChild()).setLabel((String) GlobalizationUtil.globalize( + "cms.ui.search.create.select_close").localize()); + scriptAction = "self.close();\n" + + "return false;"; + } + target.setOnClick(String.format("window.opener.document.%s.value=\"%s\";" + "window.opener.document.%s.value=\"%s\";" + "window.opener.document.%s.value=\"%s\";" - + "self.close();" - + "return false;", + + "%s", widget, item.getID().toString(), searchWidget, title, publishWidget, - Boolean.TRUE.toString())); + Boolean.TRUE.toString(), + scriptAction)); } }); - m_selectEditLink = new Link((String) GlobalizationUtil.globalize("cms.ui.search.create.select_edit").localize(), - new PrintListener() { +// m_selectCloseLink = new Link( +// (String) GlobalizationUtil.globalize("cms.ui.search.create.select_close").localize(), +// new PrintListener() { +// +// public void prepare(final PrintEvent event) { +// final Link target = (Link) event.getTarget(); +// final PageState state = event.getPageState(); +// +// final ContentItem item = m_contentItem.getContentItem(state); +// final String title; +// if (item instanceof ContentPage) { +// title = ((ContentPage) item).getTitle(); +// } else { +// title = item.getName(); +// } +// +// final String widget = (String) state.getValue(new StringParameter(WIDGET_PARAM)); +// final String searchWidget = (String) state.getValue(new StringParameter(SEARCHWIDGET_PARAM)); +// final String publishWidget = (String) state.getValue(new StringParameter(PUBLISHWIDGET_PARAM)); +// +// target.setOnClick(String.format("window.opener.document.%s.value=\"%s\";" +// + "window.opener.document.%s.value=\"%s\";" +// + "window.opener.document.%s.value=\"%s\";" +// + "self.close();" +// + "return false;", +// widget, +// item.getID().toString(), +// searchWidget, +// title, +// publishWidget, +// Boolean.TRUE.toString())); +// } +// +// }); +// +// m_selectEditLink = new Link((String) GlobalizationUtil.globalize("cms.ui.search.create.select_edit").localize(), +// new PrintListener() { +// +// public void prepare(final PrintEvent event) { +// final Link target = (Link) event.getTarget(); +// final PageState state = event.getPageState(); +// +// final ContentItem item = m_contentItem.getContentItem(state); +// final String title; +// if (item instanceof ContentPage) { +// title = ((ContentPage) item).getTitle(); +// } else { +// title = item.getName(); +// } +// +// +// final String widget = (String) state.getValue(new StringParameter(WIDGET_PARAM)); +// final String searchWidget = (String) state.getValue(new StringParameter(SEARCHWIDGET_PARAM)); +// final String publishWidget = (String) state.getValue(new StringParameter(PUBLISHWIDGET_PARAM)); +// +// final ContentSection section = item.getContentSection(); +// final String nodeURL = section.getPath() + "/"; +// final String linkTarget = ContentItemPage.getItemURL(nodeURL, item.getID(), +// ContentItemPage.AUTHORING_TAB, true); +// target.setTarget(linkTarget); +// target.setOnClick(String.format("window.opener.document.%s.value=\"%s\";" +// + "window.opener.document.%s.value=\"%s\";" +// + "window.opener.document.%s.value=\"%s\";", +// widget, +// item.getID().toString(), +// searchWidget, +// title, +// publishWidget, +// Boolean.TRUE.toString())); +// +// } +// +// }); + final BoxPanel linkPanel = new BoxPanel(BoxPanel.VERTICAL); + final Label jsLabel = new Label("", false); + jsLabel.addPrintListener(new PrintListener() { + public void prepare(final PrintEvent event) { - final Link target = (Link) event.getTarget(); + final Label target = (Label) event.getTarget(); final PageState state = event.getPageState(); final ContentItem item = m_contentItem.getContentItem(state); @@ -169,33 +264,44 @@ title = item.getName(); } - final String widget = (String) state.getValue(new StringParameter(WIDGET_PARAM)); final String searchWidget = (String) state.getValue(new StringParameter(SEARCHWIDGET_PARAM)); final String publishWidget = (String) state.getValue(new StringParameter(PUBLISHWIDGET_PARAM)); - final ContentSection section = item.getContentSection(); - final String nodeURL = section.getPath() + "/"; - final String linkTarget = ContentItemPage.getItemURL(nodeURL, item.getID(), - ContentItemPage.AUTHORING_TAB, true); - target.setTarget(linkTarget); - target.setOnClick(String.format("window.opener.document.%s.value=\"%s\";" - + "window.opener.document.%s.value=\"%s\";" - + "window.opener.document.%s.value=\"%s\";", - widget, - item.getID().toString(), - searchWidget, - title, - publishWidget, - Boolean.TRUE.toString())); + final String scriptAction; + if (editAfterCreate) { + final ContentSection section = item.getContentSection(); + final String nodeURL = section.getPath() + "/"; + final String linkTarget = ContentItemPage.getItemURL(nodeURL, item.getID(), + ContentItemPage.AUTHORING_TAB, true); + scriptAction = String.format("window.location.href = \"/ccm/%s\";", linkTarget); + } else { + scriptAction = "self.close();"; + } + target.setLabel(String.format("<script type=\"text/javascript\">" + + "<!--\n" + + "window.opener.document.%s.value=\"%s\";\n" + + "window.opener.document.%s.value=\"%s\";\n" + + "window.opener.document.%s.value=\"%s\";\n" + + "%s\n" + + "-->\n" + + "</script>", + widget, + item.getID().toString(), + searchWidget, + title, + publishWidget, + Boolean.TRUE.toString(), + scriptAction)); + } }); - - final BoxPanel linkPanel = new BoxPanel(BoxPanel.VERTICAL); - linkPanel.add(m_selectCloseLink); - linkPanel.add(m_selectEditLink); + linkPanel.add(jsLabel); + //linkPanel.add(m_selectCloseLink); + //linkPanel.add(m_selectEditLink); + linkPanel.add(m_fallBackLink); m_linkSeg.add(linkPanel); m_segPanel.add(m_linkSeg); @@ -260,4 +366,12 @@ this.defaultFolder = defaultFolder; } + protected boolean getEditAfterCreate() { + return editAfterCreate; + } + + protected void setEditAfterCreate(final boolean editAfterCreate) { + this.editAfterCreate = editAfterCreate; + } + } Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchPage.java =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchPage.java 2012-12-16 18:04:05 UTC (rev 2379) +++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchPage.java 2012-12-16 18:13:14 UTC (rev 2380) @@ -87,6 +87,7 @@ addGlobalStateParam(new StringParameter("defaultCreationFolder")); addGlobalStateParam(new IntegerParameter("lastTab")); addGlobalStateParam(new BooleanParameter("disableCreatePane")); + addGlobalStateParam(new BooleanParameter("editAfterCreate")); m_sectionId = new BigDecimalParameter(CONTENT_SECTION); addGlobalStateParam(m_sectionId); @@ -134,6 +135,10 @@ if (state.getValue(new StringParameter("defaultCreationFolder")) != null) { m_create.setDefaultFolder((String) state.getValue(new StringParameter("defaultCreationFolder"))); } + + if (state.getValue(new BooleanParameter("editAfterCreate")) != null) { + m_create.setEditAfterCreate((Boolean) state.getValue(new BooleanParameter("editAfterCreate"))); + } // if (m_lastTab != m_tabbedPane.getSelectedIndex(state)) { // m_lastTab = m_tabbedPane.getSelectedIndex(state); @@ -339,5 +344,9 @@ protected void setDefaultCreationFolder(final Folder folder) { m_create.setDefaultFolder(folder.getOID().toString()); } + + protected void setEditAfterCreate(final boolean editAfterCreate) { + m_create.setEditAfterCreate(editAfterCreate); + } } Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchWidget.java =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchWidget.java 2012-12-16 18:04:05 UTC (rev 2379) +++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchWidget.java 2012-12-16 18:13:14 UTC (rev 2380) @@ -81,6 +81,7 @@ private ParameterModel m_model; private ParameterModel m_searchModel; private boolean disableCreatePane = false; + private boolean editAfterCreate = true; private String searchLabelText = (String) GlobalizationUtil.globalize("cms.ui.item_search.search").localize(); private String selectedLabelText = (String) GlobalizationUtil.globalize("cms.ui.item_search.selected").localize(); public static final String BEBOP_ITEM_SEARCH = "bebop:itemSearch"; @@ -277,6 +278,7 @@ } params.setParameter("publishWidget", formName + ".elements['" + m_publish.getName() + "']"); params.setParameter("disableCreatePane", Boolean.toString(disableCreatePane)); + params.setParameter("editAfterCreate", Boolean.toString(editAfterCreate)); if (m_defaultCreationFolder != null) { params.setParameter("defaultCreationFolder", m_defaultCreationFolder.getOID().toString()); @@ -533,4 +535,8 @@ public void setDisableCreatePane(final boolean disableCreatePane) { this.disableCreatePane = disableCreatePane; } + + public void setEditAfterCreate(final boolean editAfterCreate) { + this.editAfterCreate = editAfterCreate; + } } \ No newline at end of file |