38 |
38 |
39 title = _('actions') |
39 title = _('actions') |
40 order = 2 |
40 order = 2 |
41 |
41 |
42 def call(self, view=None, **kwargs): |
42 def call(self, view=None, **kwargs): |
43 _ = self.req._ |
43 _ = self._cw._ |
44 title = _(self.title) |
44 title = _(self.title) |
45 if self.rset: |
45 if self.cw_rset: |
46 etypes = self.rset.column_types(0) |
46 etypes = self.cw_rset.column_types(0) |
47 if len(etypes) == 1: |
47 if len(etypes) == 1: |
48 plural = self.rset.rowcount > 1 and 'plural' or '' |
48 plural = self.cw_rset.rowcount > 1 and 'plural' or '' |
49 etypelabel = display_name(self.req, iter(etypes).next(), plural) |
49 etypelabel = display_name(self._cw, iter(etypes).next(), plural) |
50 title = u'%s - %s' % (title, etypelabel.lower()) |
50 title = u'%s - %s' % (title, etypelabel.lower()) |
51 box = BoxWidget(title, self.id, _class="greyBoxFrame") |
51 box = BoxWidget(title, self.__regid__, _class="greyBoxFrame") |
52 self._menus_in_order = [] |
52 self._menus_in_order = [] |
53 self._menus_by_id = {} |
53 self._menus_by_id = {} |
54 # build list of actions |
54 # build list of actions |
55 actions = self.vreg['actions'].possible_actions(self.req, self.rset, |
55 actions = self._cw.vreg['actions'].possible_actions(self._cw, self.cw_rset, |
56 view=view) |
56 view=view) |
57 other_menu = self._get_menu('moreactions', _('more actions')) |
57 other_menu = self._get_menu('moreactions', _('more actions')) |
58 for category, defaultmenu in (('mainactions', box), |
58 for category, defaultmenu in (('mainactions', box), |
59 ('moreactions', other_menu), |
59 ('moreactions', other_menu), |
60 ('addrelated', None)): |
60 ('addrelated', None)): |
83 def _get_menu(self, id, title=None, label_prefix=None): |
83 def _get_menu(self, id, title=None, label_prefix=None): |
84 try: |
84 try: |
85 return self._menus_by_id[id] |
85 return self._menus_by_id[id] |
86 except KeyError: |
86 except KeyError: |
87 if title is None: |
87 if title is None: |
88 title = self.req._(id) |
88 title = self._cw._(id) |
89 self._menus_by_id[id] = menu = BoxMenu(title) |
89 self._menus_by_id[id] = menu = BoxMenu(title) |
90 menu.label_prefix = label_prefix |
90 menu.label_prefix = label_prefix |
91 self._menus_in_order.append(menu) |
91 self._menus_in_order.append(menu) |
92 return menu |
92 return menu |
93 |
93 |
120 <input tabindex="%s" type="submit" id="rqlboxsubmit" class="rqlsubmit" value="" /> |
120 <input tabindex="%s" type="submit" id="rqlboxsubmit" class="rqlsubmit" value="" /> |
121 </td></tr></table> |
121 </td></tr></table> |
122 </form>""" |
122 </form>""" |
123 |
123 |
124 def call(self, view=None, **kwargs): |
124 def call(self, view=None, **kwargs): |
125 req = self.req |
125 req = self._cw |
126 if req.form.pop('__fromsearchbox', None): |
126 if req.form.pop('__fromsearchbox', None): |
127 rql = req.form.get('rql', '') |
127 rql = req.form.get('rql', '') |
128 else: |
128 else: |
129 rql = '' |
129 rql = '' |
130 form = self.formdef % (req.build_url('view'), req.next_tabindex(), |
130 form = self.formdef % (req.build_url('view'), req.next_tabindex(), |
131 xml_escape(rql), req.next_tabindex()) |
131 xml_escape(rql), req.next_tabindex()) |
132 title = u"""<span onclick="javascript: toggleVisibility('rqlinput')">%s</span>""" % req._(self.title) |
132 title = u"""<span onclick="javascript: toggleVisibility('rqlinput')">%s</span>""" % req._(self.title) |
133 box = BoxWidget(title, self.id, _class="searchBoxFrame", islist=False, escape=False) |
133 box = BoxWidget(title, self.__regid__, _class="searchBoxFrame", islist=False, escape=False) |
134 box.append(BoxHtml(form)) |
134 box.append(BoxHtml(form)) |
135 box.render(self.w) |
135 box.render(self.w) |
136 |
136 |
137 |
137 |
138 # boxes disabled by default ################################################### |
138 # boxes disabled by default ################################################### |
145 visible = False |
145 visible = False |
146 title = _('possible views') |
146 title = _('possible views') |
147 order = 10 |
147 order = 10 |
148 |
148 |
149 def call(self, **kwargs): |
149 def call(self, **kwargs): |
150 box = BoxWidget(self.req._(self.title), self.id) |
150 box = BoxWidget(self._cw._(self.title), self.__regid__) |
151 views = [v for v in self.vreg['views'].possible_views(self.req, |
151 views = [v for v in self._cw.vreg['views'].possible_views(self._cw, |
152 rset=self.rset) |
152 rset=self.cw_rset) |
153 if v.category != 'startupview'] |
153 if v.category != 'startupview'] |
154 for category, views in self.sort_actions(views): |
154 for category, views in self.sort_actions(views): |
155 menu = BoxMenu(category) |
155 menu = BoxMenu(category) |
156 for view in views: |
156 for view in views: |
157 menu.append(self.box_action(view)) |
157 menu.append(self.box_action(view)) |
166 visible = False # disabled by default |
166 visible = False # disabled by default |
167 title = _('startup views') |
167 title = _('startup views') |
168 order = 70 |
168 order = 70 |
169 |
169 |
170 def call(self, **kwargs): |
170 def call(self, **kwargs): |
171 box = BoxWidget(self.req._(self.title), self.id) |
171 box = BoxWidget(self._cw._(self.title), self.__regid__) |
172 for view in self.vreg['views'].possible_views(self.req, None): |
172 for view in self._cw.vreg['views'].possible_views(self._cw, None): |
173 if view.category == 'startupview': |
173 if view.category == 'startupview': |
174 box.append(self.box_action(view)) |
174 box.append(self.box_action(view)) |
175 |
175 |
176 if not box.is_empty(): |
176 if not box.is_empty(): |
177 box.render(self.w) |
177 box.render(self.w) |
187 """display a list of entities by calling their <item_vid> view""" |
187 """display a list of entities by calling their <item_vid> view""" |
188 if title: |
188 if title: |
189 self.w(u'<div class="sideBoxTitle"><span>%s</span></div>' % title) |
189 self.w(u'<div class="sideBoxTitle"><span>%s</span></div>' % title) |
190 self.w(u'<div class="%s"><div class="sideBoxBody">' % boxclass) |
190 self.w(u'<div class="%s"><div class="sideBoxBody">' % boxclass) |
191 # if not too much entities, show them all in a list |
191 # if not too much entities, show them all in a list |
192 maxrelated = self.req.property_value('navigation.related-limit') |
192 maxrelated = self._cw.property_value('navigation.related-limit') |
193 if self.rset.rowcount <= maxrelated: |
193 if self.cw_rset.rowcount <= maxrelated: |
194 if len(self.rset) == 1: |
194 if len(self.cw_rset) == 1: |
195 self.wview('incontext', self.rset, row=0) |
195 self.wview('incontext', self.cw_rset, row=0) |
196 elif 1 < len(self.rset) < 5: |
196 elif 1 < len(self.cw_rset) < 5: |
197 self.wview('csv', self.rset) |
197 self.wview('csv', self.cw_rset) |
198 else: |
198 else: |
199 self.wview('simplelist', self.rset) |
199 self.wview('simplelist', self.cw_rset) |
200 # else show links to display related entities |
200 # else show links to display related entities |
201 else: |
201 else: |
202 self.rset.limit(maxrelated) |
202 self.cw_rset.limit(maxrelated) |
203 rql = self.rset.printable_rql(encoded=False) |
203 rql = self.cw_rset.printable_rql(encoded=False) |
204 self.wview('simplelist', self.rset) |
204 self.wview('simplelist', self.cw_rset) |
205 self.w(u'[<a href="%s">%s</a>]' % (self.build_url(rql=rql), |
205 self.w(u'[<a href="%s">%s</a>]' % (self._cw.build_url(rql=rql), |
206 self.req._('see them all'))) |
206 self._cw._('see them all'))) |
207 self.w(u'</div>\n</div>\n') |
207 self.w(u'</div>\n</div>\n') |