From: Denys M. <svn...@pl...> - 2010-03-16 17:26:54
|
Author: spliter Date: Tue Mar 16 17:26:47 2010 New Revision: 34995 Modified: plone.app.search/trunk/docs/HISTORY.txt plone.app.search/trunk/plone/app/search/browser.py plone.app.search/trunk/plone/app/search/search.pt plone.app.search/trunk/plone/app/search/tests/test_search_performance.py Log: Advanced search form a.k.a. Search filter is being merged into search result with JS hide/show. Modified: plone.app.search/trunk/docs/HISTORY.txt ============================================================================== --- plone.app.search/trunk/docs/HISTORY.txt (original) +++ plone.app.search/trunk/docs/HISTORY.txt Tue Mar 16 17:26:47 2010 @@ -4,10 +4,16 @@ 1.0 (unreleased) ---------------- -- Added truncating the search result's location url, in case it's too long. +- Advanced search form a.k.a. Search filter is being merged into + search result with JS hide/show. + [spliter] + +- Added truncating the search result's location url, in case it's too + long. [zupo] -- Added condition to only display modification date if it is different than publication date. +- Added condition to only display modification date if it is + different than publication date. [zupo] - Merge the advanced and basic searches into one. @@ -16,17 +22,19 @@ - Added publication date to a search result. [zupo] -- Styling the author and modification date of a search result to look like it was proposed in PLIP #9352. +- Styling the author and modification date of a search result to + look like it was proposed in PLIP #9352. [zupo] - Add RSS icon to the search feed results and clarify associated text. [dukebody] -- Display a short modification date using toLocalizedTime with long_format parameter set to false. +- Display a short modification date using toLocalizedTime with + long_format parameter set to false. [zupo] -- Hide documentbyline when user is anonymous and the allow anonymous view about - setting is set to false. +- Hide documentbyline when user is anonymous and the allow anonymous + view about setting is set to false. [robgietema] - Fixed author url. Modified: plone.app.search/trunk/plone/app/search/browser.py ============================================================================== --- plone.app.search/trunk/plone/app/search/browser.py (original) +++ plone.app.search/trunk/plone/app/search/browser.py Tue Mar 16 17:26:47 2010 @@ -58,6 +58,15 @@ sortoption(self.request, 'aphabetically', 'sortable_title'), ) + def showAdvancedSearch(self): + """Whether we need to show advanced search options a.k.a. filters?""" + if not self.request.get('advanced_search', None): + return False + elif self.request.get('advanced_search', None) == 'False': + return False + elif self.request.get('advanced_search', None) == 'True': + return True + @staticmethod def truncate_url(url, url_threshold=80, filename_threshold=20): """ Returns a cropped url. @@ -85,4 +94,4 @@ if len(filename) > filename_threshold: filename = filename[:filename_threshold] + '…' - return "%s://%s/…/%s" %(surl.scheme, surl.netloc, filename) + return "%s://%s/…/%s" %(surl.scheme, surl.netloc, filename) \ No newline at end of file Modified: plone.app.search/trunk/plone/app/search/search.pt ============================================================================== --- plone.app.search/trunk/plone/app/search/search.pt (original) +++ plone.app.search/trunk/plone/app/search/search.pt Tue Mar 16 17:26:47 2010 @@ -31,7 +31,12 @@ <form name="searchform" action="@@search" - class="searchPage enableAutoFocus"> + class="searchPage enableAutoFocus" + tal:define="DateTime python:modules['DateTime'].DateTime; + portal context/@@plone_portal_state/portal; + options context/@@searchform-options; + field_collapsible_class python:'field'+(options.collapse() and ' collapsible' or ''); + first_call not:request/advanced_search|nothing"> <input class="searchPage" name="SearchableText" @@ -46,48 +51,44 @@ value="Search" i18n:attributes="value label_search;"/> - <div class="search-advanced"> - <div id="hide-form" style="display:none;"> - <p class="moreSearchOptions"> - <a href="" - tal:attributes="href string:${context/@@plone_portal_state/navigation_root_url}/search_form?${request/QUERY_STRING}"> - More search options - </a> - </p> - <!-- <metal:use use-macro="context/search_form/macros/form" /> --> - </div> - <div id="show-form"> - <p class="moreSearchOptions"> - <a href="" - tal:attributes="href string:${context/@@plone_portal_state/navigation_root_url}/search_form?${request/QUERY_STRING}"> - More search options - </a> - </p> - </div> - + <tal:searchfilter define="advanced_search view/showAdvancedSearch"> + <tal:filter_hidden> + <p class="moreSearchOptions" id="show-filter"> + <a href="" i18n:translate="label_hide_search_filter" + tal:attributes="href string:${context/@@plone_portal_state/navigation_root_url}/@@search?advanced_search=True&${request/QUERY_STRING}"> + Show search filter + </a> + </p> + </tal:filter_hidden> + <tal:filter_shown> + <p class="moreSearchOptions" id="hide-filter" style="display:none"> + <a href="" i18n:translate="label_show_search_filter" + tal:attributes="href string:${context/@@plone_portal_state/navigation_root_url}/@@search?${request/QUERY_STRING}"> + Hide search filter + </a> + </p> + <div id="search-filter" style="display:none"> + <metal:use use-macro="context/search_form/macros/formcontent" /> + <span class="visualClear"><!-- --></span> + </div> + </tal:filter_shown> + </tal:searchfilter> <script type="text/javascript"> - search_form_filter = '#content-core'; - function noformerrorshow(el, noform) { - var o = jq(el); - var emsg = o.find('dl.portalMessage.error'); - if (emsg.length) { - o.children().replaceWith(emsg); - return false; - } else { - return noform; - } - } - jq('#show-form a').prepOverlay( - { - subtype: 'ajax', - filter: search_form_filter, - formselector: '#content-core', - noform: function(el) {return noformerrorshow(el, 'reload');}, - closeselector: '[name=form.button.Cancel]' - } - ); + jq('#show-filter a').click(function(event){ + event.preventDefault(); + jq('#search-filter').slideDown('fast', function(){ + jq('#show-filter').hide(); + jq('#hide-filter').show(); + }); + }); + jq('#hide-filter a').click(function(event){ + event.preventDefault(); + jq('#search-filter').slideUp('fast', function(){ + jq('#show-filter').show(); + jq('#hide-filter').hide(); + }); + }); </script> - </form> <h1 class="documentFirstHeading"> @@ -121,12 +122,12 @@ <p><strong i18n:translate="description_no_results_found">No results were found.</strong></p> </div> - <p tal:condition="results"> + <!-- <p tal:condition="results"> <span i18n:translate="sort_by">Sort by</span><span tal:repeat="item view/getSortOptions"> <a tal:condition="not:item/selected" tal:content="item/title" tal:attributes="href item/url"></a> <strong tal:condition="item/selected" tal:content="item/title"></strong> <span tal:condition="not:repeat/item/end">·</span> </span> - </p> + </p> --> <div tal:condition="results" tal:define="batch python:Batch(results, b_size, int(b_start), orphan=1)"> <dl class="searchResults" tal:define="toLocalizedTime nocall: context/@@plone/toLocalizedTime"> @@ -135,7 +136,7 @@ <dt tal:attributes="class item/ContentTypeClass"> <img tal:replace="structure item/getIcon" /> <a href="#" - tal:attributes="href string:${item/getURL}${item/appendViewAction}; + tal:attributes="href item/getURL; class string:state-${item/review_state}" tal:content="item/Title" /> </dt> Modified: plone.app.search/trunk/plone/app/search/tests/test_search_performance.py ============================================================================== --- plone.app.search/trunk/plone/app/search/tests/test_search_performance.py (original) +++ plone.app.search/trunk/plone/app/search/tests/test_search_performance.py Tue Mar 16 17:26:47 2010 @@ -159,8 +159,7 @@ print str(old_time) + " vs " + str(new_time) print "*" * 20 print str((new_time/old_time)*100) + "% time usage" - self.failUnless((old_time*1.1) > new_time, "the new search results page is slower than the old search results page") - + self.failUnless((old_time*1.1) > new_time, "the new search results page is slower than the old search results page") # Having tests in multiple files makes |