|
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
|