From 6acfec47f4b044c47a58b6aa929c00d25e0482fa Mon Sep 17 00:00:00 2001 From: helmutm Date: Sun, 8 Feb 2009 16:30:12 +0000 Subject: [PATCH] provide quicksearch input field as top action git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3217 fd906abe-77d9-0310-91a1-e0d9ade77398 --- browser/concept_macros.pt | 4 +- browser/loops.css | 16 +++++++ browser/node.py | 4 ++ expert/browser/configure.zcml | 6 +++ expert/browser/search.pt | 80 +++++++++++++++++++++++++++++++++++ expert/browser/search.py | 58 +++++++++++++++++++++++++ i18n/i18n_macros.pt | 11 ++--- search/browser.py | 3 +- 8 files changed, 173 insertions(+), 9 deletions(-) create mode 100644 expert/browser/search.pt create mode 100644 expert/browser/search.py diff --git a/browser/concept_macros.pt b/browser/concept_macros.pt index 222fa28..efdfece 100644 --- a/browser/concept_macros.pt +++ b/browser/concept_macros.pt @@ -27,9 +27,9 @@ Title -

- Description

+ Description

diff --git a/browser/loops.css b/browser/loops.css index cf8d3ad..2afc2fd 100644 --- a/browser/loops.css +++ b/browser/loops.css @@ -160,6 +160,22 @@ fieldset.box td { top: 1em; } +.quicksearch { + position: absolute; + right: 2em; + top: 1em; +} + +.quicksearch input { + font-size: 80%; +} + +.language-switch { + position: absolute; + right: 2em; + top: 3em; +} + .top image { margin-top: -1px; } diff --git a/browser/node.py b/browser/node.py index 1fb04b5..c9ad267 100644 --- a/browser/node.py +++ b/browser/node.py @@ -104,6 +104,10 @@ class NodeView(BaseView): cm.register('js', 'loops.js', resourceName='loops.js', priority=60) cm.register('top_actions', 'top_actions', name='multi_actions', subMacros=[i18n_macros.macros['language_switch']]) + if self.globalOptions('expert.quicksearch'): + from loops.expert.browser.search import search_macros + cm.register('top_actions', 'top_quicksearch', name='multi_actions', + subMacros=[search_macros.macros['quicksearch']], priority=20) cm.register('portlet_left', 'navigation', title='Navigation', subMacro=node_macros.macros['menu']) if canWrite(self.context, 'title') or ( diff --git a/expert/browser/configure.zcml b/expert/browser/configure.zcml index 9ab9c6c..e6fb535 100644 --- a/expert/browser/configure.zcml +++ b/expert/browser/configure.zcml @@ -13,4 +13,10 @@ factory="loops.expert.browser.base.BaseQueryView" permission="zope.View" /> + + diff --git a/expert/browser/search.pt b/expert/browser/search.pt new file mode 100644 index 0000000..0099b29 --- /dev/null +++ b/expert/browser/search.pt @@ -0,0 +1,80 @@ + + + + +
+
+ +
+
+ + +
+
+ +

Search results

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TitleTypeVSizeModification DateAuthor(s)Info
+ + +
+
Type + 1.1 + + Size + modifiedJohn +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/expert/browser/search.py b/expert/browser/search.py new file mode 100644 index 0000000..dd2712e --- /dev/null +++ b/expert/browser/search.py @@ -0,0 +1,58 @@ +# +# Copyright (c) 2009 Helmut Merz helmutm@cy55.de +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +""" +Definition of basic view classes and other browser related stuff for the +loops.expert package. + +$Id$ +""" + +from zope import interface, component +from zope.app.pagetemplate import ViewPageTemplateFile +from zope.cachedescriptors.property import Lazy +from zope.traversing.api import getName, getParent + +from loops.browser.node import NodeView +from loops.expert.concept import ConceptQuery, FullQuery +from loops import util +from loops.util import _ + + +search_macros = ViewPageTemplateFile('search.pt') + + +class SearchResults(NodeView): + """ Provides results listing """ + + @Lazy + def macro(self): + return search_macros.macros['search_results'] + + @Lazy + def item(self): + return self + + @Lazy + def results(self): + form = self.request.form + text = form.get('search.text') + type = self.globalOptions('expert.quicksearch')[0] + result = FullQuery(self).query(text=text, type=type, + useTitle=True, useFull=True,) + return self.viewIterator(result) diff --git a/i18n/i18n_macros.pt b/i18n/i18n_macros.pt index 8ea7a8f..da7ab96 100644 --- a/i18n/i18n_macros.pt +++ b/i18n/i18n_macros.pt @@ -1,9 +1,10 @@ - +
- +
diff --git a/search/browser.py b/search/browser.py index 43996c6..8af88c1 100644 --- a/search/browser.py +++ b/search/browser.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2008 Helmut Merz helmutm@cy55.de +# Copyright (c) 2009 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -36,7 +36,6 @@ from cybertools.typology.interfaces import ITypeManager from loops.browser.common import BaseView from loops.browser.node import NodeView from loops.common import adapted -#from loops.query import ConceptQuery, FullQuery from loops.expert.concept import ConceptQuery, FullQuery from loops import util from loops.util import _