270 |
270 |
def get_intro_text(self):
|
271 |
271 |
return _('''Welcome.''')
|
272 |
272 |
|
|
273 |
def generate_header_menu(self, selected=None):
|
|
274 |
s = ['<ul id="menu">\n']
|
|
275 |
base_url = get_publisher().get_root_url() + 'backoffice'
|
|
276 |
for item in self.get_menu_items():
|
|
277 |
if len(item) == 2:
|
|
278 |
k, v = item
|
|
279 |
display_function = None
|
|
280 |
elif len(item) == 3:
|
|
281 |
k, v, display_function = item
|
|
282 |
if k is None: # heading
|
|
283 |
s.append('<li><strong>%s</strong></li>' % v)
|
|
284 |
continue
|
|
285 |
if k.strip('/') not in ('home', 'forms', 'workflows', 'users', 'roles',
|
|
286 |
'categories', 'settings', 'management'):
|
|
287 |
# skip items that do not have icons, they will have to be
|
|
288 |
# accessed via the backoffice main page
|
|
289 |
continue
|
|
290 |
if k == '/':
|
|
291 |
continue # skip root
|
|
292 |
if display_function and not display_function(k):
|
|
293 |
continue
|
|
294 |
if k.rstrip('/') == selected:
|
|
295 |
s.append('<li class="active">')
|
|
296 |
else:
|
|
297 |
s.append('<li>')
|
|
298 |
s.append('<a href="%s/%s">%s</a></li>\n' % (base_url, k, _(v)))
|
|
299 |
s.append('</ul>\n')
|
|
300 |
return ''.join(s)
|
|
301 |
|
273 |
302 |
def _q_index(self):
|
274 |
303 |
html_top('/')
|
275 |
304 |
r = TemplateIO(html=True)
|
276 |
305 |
r += htmltext('<div class="bo-block"><p>%s</p></div>') % self.get_intro_text()
|
277 |
|
r += htmltext('<ul class="apps">')
|
|
306 |
|
|
307 |
main_items = []
|
|
308 |
more_items = []
|
278 |
309 |
for item in self.get_menu_items():
|
279 |
310 |
if len(item) == 2:
|
280 |
311 |
item = list(item) + [None]
|
281 |
312 |
k, v, display_function = item
|
282 |
|
if k.strip('/') not in ('home', 'forms', 'workflows', 'users', 'roles',
|
283 |
|
'categories', 'settings', 'management'):
|
284 |
|
# limit this space to menu entries that have icons.
|
|
313 |
if not k.strip('/'):
|
285 |
314 |
continue
|
|
315 |
if k.strip('/') in ('home', 'forms', 'workflows', 'users', 'roles',
|
|
316 |
'categories', 'settings', 'management'):
|
|
317 |
# menu entries that have icons.
|
|
318 |
main_items.append((k, v))
|
|
319 |
else:
|
|
320 |
more_items.append((k, v))
|
|
321 |
|
|
322 |
r += htmltext('<ul class="apps">')
|
|
323 |
for k, v in main_items:
|
286 |
324 |
r += htmltext('<li class="zone-%s"><a href="%s">') % (k.strip('/'), k)
|
287 |
325 |
if callable(v):
|
288 |
326 |
r += v()
|
289 |
327 |
else:
|
290 |
328 |
r += _(v)
|
291 |
329 |
r += htmltext('</a></li>')
|
|
330 |
for k, v in more_items:
|
|
331 |
r += htmltext('<li class="zone-no-icon"><a href="%s">') % k
|
|
332 |
if callable(v):
|
|
333 |
r += v()
|
|
334 |
else:
|
|
335 |
r += _(v)
|
|
336 |
r += htmltext('</a></li>')
|
292 |
337 |
r += htmltext('</ul>')
|
293 |
338 |
r += htmltext('<br class="clear">')
|
|
339 |
|
294 |
340 |
r += htmltext('<p id="for-more-info"></p>')
|
295 |
341 |
|
296 |
342 |
get_response().filter['sidebar'] = str(self.get_sidebar())
|