15 """ |
15 """ |
16 __docformat__ = "restructuredtext en" |
16 __docformat__ = "restructuredtext en" |
17 |
17 |
18 from logilab.mtconverter import html_escape |
18 from logilab.mtconverter import html_escape |
19 |
19 |
20 from cubicweb.common.selectors import rset_selector, nfentity_selector, onelinerset_selector |
20 from cubicweb.common.selectors import (rset_selector, appobject_selectable) |
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, ExtResourcesBoxTemplate |
23 |
23 |
24 _ = unicode |
24 _ = unicode |
25 |
25 |
163 |
163 |
164 class PossibleViewsBox(BoxTemplate): |
164 class PossibleViewsBox(BoxTemplate): |
165 """display a box containing links to all possible views""" |
165 """display a box containing links to all possible views""" |
166 id = 'possible_views_box' |
166 id = 'possible_views_box' |
167 |
167 |
168 |
|
169 title = _('possible views') |
168 title = _('possible views') |
170 order = 10 |
169 order = 10 |
171 require_groups = ('users', 'managers') |
170 require_groups = ('users', 'managers') |
172 visible = False |
171 visible = False |
173 |
172 |
184 box.render(self.w) |
183 box.render(self.w) |
185 |
184 |
186 |
185 |
187 class RSSIconBox(ExtResourcesBoxTemplate): |
186 class RSSIconBox(ExtResourcesBoxTemplate): |
188 """just display the RSS icon on uniform result set""" |
187 """just display the RSS icon on uniform result set""" |
189 __selectors__ = ExtResourcesBoxTemplate.__selectors__ + (nfentity_selector,) |
188 __selectors__ = ExtResourcesBoxTemplate.__selectors__ + (appobject_selectable('components', 'rss_feed_url'),) |
190 |
189 |
191 id = 'rss' |
190 id = 'rss' |
192 order = 999 |
191 order = 999 |
193 need_resources = 'RSS_LOGO', |
192 need_resources = 'RSS_LOGO', |
194 visible = False |
193 visible = False |
195 |
194 |
196 def call(self, **kwargs): |
195 def call(self, **kwargs): |
197 url = html_escape(self.build_url(rql=self.limited_rql(), vid='rss')) |
196 urlgetter = self.vreg.select_component('rss_feed_url', self.req, self.rset) |
|
197 url = urlgetter.feed_url() |
198 rss = self.req.external_resource('RSS_LOGO') |
198 rss = self.req.external_resource('RSS_LOGO') |
199 self.w(u'<a href="%s"><img src="%s" border="0" /></a>\n' % (url, rss)) |
199 self.w(u'<a href="%s"><img src="%s" border="0" /></a>\n' % (html_escape(url), rss)) |
200 |
200 |
201 class EntityRSSIconBox(RSSIconBox): |
201 class EntityRSSIconBox(RSSIconBox): |
202 """just display the RSS icon on uniform result set for a single entity""" |
202 """just display the RSS icon on uniform result set for a single entity""" |
203 __selectors__ = RSSIconBox.__selectors__ + (onelinerset_selector,) |
203 __selectors__ = RSSIconBox.__selectors__ + (onelinerset_selector,) |
204 |
204 |