web/views/boxes.py
branchtls-sprint
changeset 663 482d39578366
parent 635 305da8d6aa2d
child 742 99115e029dca
equal deleted inserted replaced
662:6f867ab70e3d 663:482d39578366
    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"""