17 |
17 |
18 from logilab.mtconverter import html_escape |
18 from logilab.mtconverter import html_escape |
19 |
19 |
20 from cubicweb.selectors import any_rset, appobject_selectable, match_user_groups |
20 from cubicweb.selectors import any_rset, appobject_selectable, match_user_groups |
21 from cubicweb.web.htmlwidgets import BoxWidget, BoxMenu, BoxHtml, RawBoxItem |
21 from cubicweb.web.htmlwidgets import BoxWidget, BoxMenu, BoxHtml, RawBoxItem |
22 from cubicweb.web.box import BoxTemplate, ExtResourcesBoxTemplate |
22 from cubicweb.web.box import BoxTemplate |
23 |
23 |
24 _ = unicode |
24 _ = unicode |
25 |
25 |
26 |
26 |
27 class EditBox(BoxTemplate): |
27 class EditBox(BoxTemplate): |
134 """display a box with a simple search form""" |
134 """display a box with a simple search form""" |
135 id = 'search_box' |
135 id = 'search_box' |
136 visible = True # enabled by default |
136 visible = True # enabled by default |
137 title = _('search') |
137 title = _('search') |
138 order = 0 |
138 order = 0 |
139 need_resources = 'SEARCH_GO' |
|
140 formdef = u"""<form action="%s"> |
139 formdef = u"""<form action="%s"> |
141 <table id="tsearch"><tr><td> |
140 <table id="tsearch"><tr><td> |
142 <input id="norql" type="text" accesskey="q" tabindex="%s" title="search text" value="%s" name="rql" /> |
141 <input id="norql" type="text" accesskey="q" tabindex="%s" title="search text" value="%s" name="rql" /> |
143 <input type="hidden" name="__fromsearchbox" value="1" /> |
142 <input type="hidden" name="__fromsearchbox" value="1" /> |
144 <input type="hidden" name="subvid" value="tsearch" /> |
143 <input type="hidden" name="subvid" value="tsearch" /> |
184 box.append(menu) |
183 box.append(menu) |
185 if not box.is_empty(): |
184 if not box.is_empty(): |
186 box.render(self.w) |
185 box.render(self.w) |
187 |
186 |
188 |
187 |
189 class RSSIconBox(ExtResourcesBoxTemplate): |
188 class RSSIconBox(BoxTemplate): |
190 """just display the RSS icon on uniform result set""" |
189 """just display the RSS icon on uniform result set""" |
191 __selectors__ = ExtResourcesBoxTemplate.__selectors__ + (appobject_selectable('components', 'rss_feed_url'),) |
190 id = 'rss' |
|
191 __selectors__ = BoxTemplate.__selectors__ + (appobject_selectable('components', 'rss_feed_url'),) |
192 |
192 |
193 id = 'rss' |
|
194 order = 999 |
193 order = 999 |
195 need_resources = 'RSS_LOGO', |
|
196 visible = False |
194 visible = False |
197 |
195 |
198 def call(self, **kwargs): |
196 def call(self, **kwargs): |
|
197 try: |
|
198 rss = self.req.external_resource('RSS_LOGO') |
|
199 except KeyError: |
|
200 self.error('missing RSS_LOGO external resource') |
|
201 return |
199 urlgetter = self.vreg.select_component('rss_feed_url', self.req, self.rset) |
202 urlgetter = self.vreg.select_component('rss_feed_url', self.req, self.rset) |
200 url = urlgetter.feed_url() |
203 url = urlgetter.feed_url() |
201 rss = self.req.external_resource('RSS_LOGO') |
|
202 self.w(u'<a href="%s"><img src="%s" alt="rss"/></a>\n' % (html_escape(url), rss)) |
204 self.w(u'<a href="%s"><img src="%s" alt="rss"/></a>\n' % (html_escape(url), rss)) |
203 |
205 |
204 |
206 |
205 class StartupViewsBox(BoxTemplate): |
207 class StartupViewsBox(BoxTemplate): |
206 """display a box containing links to all startup views""" |
208 """display a box containing links to all startup views""" |