backoffice: limit menu to main items, add more items with small blocks (#6726)
Main items are determined as having an attributed icon, it's not that good as a reference but will do for now.
This commit is contained in:
parent
259e40870a
commit
22aa4baf66
|
@ -275,27 +275,73 @@ class RootDirectory(BackofficeRootDirectory):
|
|||
def get_intro_text(self):
|
||||
return _('''Welcome.''')
|
||||
|
||||
def generate_header_menu(self, selected=None):
|
||||
s = ['<ul id="menu">\n']
|
||||
base_url = get_publisher().get_root_url() + 'backoffice'
|
||||
for item in self.get_menu_items():
|
||||
if len(item) == 2:
|
||||
k, v = item
|
||||
display_function = None
|
||||
elif len(item) == 3:
|
||||
k, v, display_function = item
|
||||
if k is None: # heading
|
||||
s.append('<li><strong>%s</strong></li>' % v)
|
||||
continue
|
||||
if k.strip('/') not in ('home', 'forms', 'workflows', 'users', 'roles',
|
||||
'categories', 'settings', 'management'):
|
||||
# skip items that do not have icons, they will have to be
|
||||
# accessed via the backoffice main page
|
||||
continue
|
||||
if k == '/':
|
||||
continue # skip root
|
||||
if display_function and not display_function(k):
|
||||
continue
|
||||
if k.rstrip('/') == selected:
|
||||
s.append('<li class="active">')
|
||||
else:
|
||||
s.append('<li>')
|
||||
s.append('<a href="%s/%s">%s</a></li>\n' % (base_url, k, _(v)))
|
||||
s.append('</ul>\n')
|
||||
return ''.join(s)
|
||||
|
||||
def _q_index(self):
|
||||
html_top('/')
|
||||
r = TemplateIO(html=True)
|
||||
r += htmltext('<div class="bo-block"><p>%s</p></div>') % self.get_intro_text()
|
||||
r += htmltext('<ul class="apps">')
|
||||
|
||||
main_items = []
|
||||
more_items = []
|
||||
for item in self.get_menu_items():
|
||||
if len(item) == 2:
|
||||
item = list(item) + [None]
|
||||
k, v, display_function = item
|
||||
if k.strip('/') not in ('home', 'forms', 'workflows', 'users', 'roles',
|
||||
'categories', 'settings', 'management'):
|
||||
# limit this space to menu entries that have icons.
|
||||
if not k.strip('/'):
|
||||
continue
|
||||
if k.strip('/') in ('home', 'forms', 'workflows', 'users', 'roles',
|
||||
'categories', 'settings', 'management'):
|
||||
# menu entries that have icons.
|
||||
main_items.append((k, v))
|
||||
else:
|
||||
more_items.append((k, v))
|
||||
|
||||
r += htmltext('<ul class="apps">')
|
||||
for k, v in main_items:
|
||||
r += htmltext('<li class="zone-%s"><a href="%s">') % (k.strip('/'), k)
|
||||
if callable(v):
|
||||
r += v()
|
||||
else:
|
||||
r += _(v)
|
||||
r += htmltext('</a></li>')
|
||||
for k, v in more_items:
|
||||
r += htmltext('<li class="zone-no-icon"><a href="%s">') % k
|
||||
if callable(v):
|
||||
r += v()
|
||||
else:
|
||||
r += _(v)
|
||||
r += htmltext('</a></li>')
|
||||
r += htmltext('</ul>')
|
||||
r += htmltext('<br class="clear">')
|
||||
|
||||
r += htmltext('<p id="for-more-info"></p>')
|
||||
|
||||
get_response().filter['sidebar'] = str(self.get_sidebar())
|
||||
|
|
|
@ -137,27 +137,3 @@ class BackofficeRootDirectory(AccessControlled, Directory):
|
|||
|
||||
def get_menu_items(self):
|
||||
return self.menu_items
|
||||
|
||||
def generate_header_menu(self, selected=None):
|
||||
s = ['<ul id="menu">\n']
|
||||
base_url = get_publisher().get_root_url() + 'backoffice'
|
||||
for item in self.get_menu_items():
|
||||
if len(item) == 2:
|
||||
k, v = item
|
||||
display_function = None
|
||||
elif len(item) == 3:
|
||||
k, v, display_function = item
|
||||
if k is None: # heading
|
||||
s.append('<li><strong>%s</strong></li>' % v)
|
||||
continue
|
||||
if k == '/':
|
||||
continue # skip root
|
||||
if display_function and not display_function(k):
|
||||
continue
|
||||
if k.rstrip('/') == selected:
|
||||
s.append('<li class="active">')
|
||||
else:
|
||||
s.append('<li>')
|
||||
s.append('<a href="%s/%s">%s</a></li>\n' % (base_url, k, _(v)))
|
||||
s.append('</ul>\n')
|
||||
return ''.join(s)
|
||||
|
|
|
@ -768,6 +768,11 @@ li.zone-management a:hover { background-image: url(icon-management-hover.png); }
|
|||
li.zone-home a { background-image: url(icon-home.png); }
|
||||
li.zone-home a:hover { background-image: url(icon-home-hover.png); }
|
||||
|
||||
ul.apps li.zone-no-icon a {
|
||||
height: 29px;
|
||||
padding-top: 24px;
|
||||
}
|
||||
|
||||
.ui-dialog div.SubmitWidget input {
|
||||
margin-top: 0;
|
||||
border: 1px solid #ccc;
|
||||
|
|
Loading…
Reference in New Issue