From ca7cc4db35843ac28ca66d019265dd52d3ff7709 Mon Sep 17 00:00:00 2001 From: jensp Date: Tue, 2 Apr 2013 05:29:13 +0000 Subject: [PATCH] The ItemSearchWidget failed to work (selecting an item did not work) if the title of the item contains quotes (Ticket #1605). git-svn-id: https://svn.libreccm.org/ccm/trunk@2108 8810af33-2d31-482b-a856-94f89814c4df --- .../cms/ui/ItemSearchCreateItemPane.java | 2 +- .../cms/ui/ItemSearchFlatBrowsePane.java | 2 +- .../cms/ui/ItemSearchFolderBrowser.java | 63 ++++++++++--------- .../com/arsdigita/cms/ui/ItemSearchPopup.java | 11 ++-- 4 files changed, 39 insertions(+), 39 deletions(-) diff --git a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java index ae1b8eeb4..e047a8284 100644 --- a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java +++ b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchCreateItemPane.java @@ -228,7 +228,7 @@ class ItemSearchCreateItemPane extends CMSContainer widget, item.getID().toString(), searchWidget, - title, + title.replace("\"", "\\\""), publishWidget, Boolean.TRUE.toString(), scriptAction)); diff --git a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java index 20065c158..b21238210 100644 --- a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java +++ b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java @@ -320,7 +320,7 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener, widget, key.toString(), searchWidget, - page.getTitle())); + page.getTitle().replace("\"", "\\\""))); return link; } diff --git a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFolderBrowser.java b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFolderBrowser.java index 1e960fc2d..748a07538 100755 --- a/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFolderBrowser.java +++ b/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFolderBrowser.java @@ -119,12 +119,12 @@ public class ItemSearchFolderBrowser extends Table { p.addComponentStateParam(this, m_currentFolder.getStateParameter()); p.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent event) { // MP: This action listener should only be called when the // folder browser is visible. showHideFolderActions(event.getPageState()); } + }); } @@ -146,7 +146,6 @@ public class ItemSearchFolderBrowser extends Table { extends AbstractTableModelBuilder implements PaginationModelBuilder { private RequestLocal m_size = new RequestLocal() { - @Override protected Object initialValue(PageState state) { Folder.ItemCollection itemColl = getItemCollection(state); @@ -156,9 +155,9 @@ public class ItemSearchFolderBrowser extends Table { } return new Integer((int) itemColl.size()); } + }; private RequestLocal m_itemColl = new RequestLocal() { - @Override protected Object initialValue(PageState state) { Folder.ItemCollection itemColl = getItemCollection(state); @@ -169,6 +168,7 @@ public class ItemSearchFolderBrowser extends Table { return itemColl; } + }; public TableModel makeModel(Table t, PageState s) { @@ -228,24 +228,24 @@ public class ItemSearchFolderBrowser extends Table { */ createSiblingFilter(or, ff, singleTypeID); /*try { - ContentType ct = new ContentType(singleTypeID); + ContentType ct = new ContentType(singleTypeID); - StringTokenizer strTok = new StringTokenizer(ct. - getDescendants(), "/"); - while (strTok.hasMoreElements()) { - or.addFilter(ff.equals(ContentItem.CONTENT_TYPE + "." - + ContentType.ID, - (String) strTok.nextElement())); - } - } catch (Exception ex) { - // WTF? The selected content type does not exist in the table??? - s_log.error(String.format( - "Something is very wrong here, the ContentType '%s' " - + "seems not to exist. Ignoring for now, but please " - + "make your checks.", - singleTypeID.toString()), - ex); - }*/ + StringTokenizer strTok = new StringTokenizer(ct. + getDescendants(), "/"); + while (strTok.hasMoreElements()) { + or.addFilter(ff.equals(ContentItem.CONTENT_TYPE + "." + + ContentType.ID, + (String) strTok.nextElement())); + } + } catch (Exception ex) { + // WTF? The selected content type does not exist in the table??? + s_log.error(String.format( + "Something is very wrong here, the ContentType '%s' " + + "seems not to exist. Ignoring for now, but please " + + "make your checks.", + singleTypeID.toString()), + ex); + }*/ itemColl.addFilter(or); @@ -309,6 +309,7 @@ public class ItemSearchFolderBrowser extends Table { && (size > ContentSection.getConfig().getFolderBrowseListSize()); } + } /** @@ -354,12 +355,9 @@ public class ItemSearchFolderBrowser extends Table { ItemSearchPopup.URL_PARAM))); String fillString = useURL - ? ItemSearchPopup.getItemURL(state. - getRequest(), - coll. - getDomainObject().getOID()) - : id - + " (" + name + ")"; + ? ItemSearchPopup.getItemURL( + state.getRequest(), + coll.getDomainObject().getOID()) : id + " (" + name + ")"; String title = ((ContentPage) coll.getDomainObject()).getTitle(); Label js = new Label(generateJSLabel(id, widget, searchWidget, fillString, title), @@ -382,10 +380,11 @@ public class ItemSearchFolderBrowser extends Table { private String generateJSLabel(BigDecimal id, String widget, String searchWidget, String fill, String title) { StringBuilder buffer = new StringBuilder(); buffer.append("