admin: use backoffice (now unified) menu items in header (#6726)

This commit is contained in:
Frédéric Péters 2015-04-22 10:09:38 +02:00
parent ef37406330
commit 259e40870a
16 changed files with 43 additions and 104 deletions

View File

@ -24,7 +24,8 @@ from quixote.html import htmltext, TemplateIO
from qommon import errors
from qommon import misc
from qommon.bounces import Bounce
from qommon.admin.menu import html_top, command_icon
from qommon.backoffice.menu import html_top
from qommon.admin.menu import command_icon
from qommon.form import *

View File

@ -20,7 +20,7 @@ from quixote.html import TemplateIO, htmltext
from wcs.categories import Category
from qommon.form import *
from qommon.admin.menu import html_top
from qommon.backoffice.menu import html_top
from wcs.formdef import FormDef

View File

@ -20,7 +20,8 @@ from quixote.html import TemplateIO, htmltext
from qommon.form import *
from qommon import errors, misc
from qommon.admin.menu import html_top, command_icon
from qommon.backoffice.menu import html_top
from qommon.admin.menu import command_icon
from wcs import fields
from wcs.formdef import FormDef

View File

@ -29,7 +29,7 @@ from quixote.html import TemplateIO, htmltext
from qommon import misc
from qommon.errors import *
from qommon.form import *
from qommon.admin.menu import html_top
from qommon.backoffice.menu import html_top
from qommon import get_logger
from qommon import tokens

View File

@ -14,4 +14,5 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
from qommon.admin.menu import html_top, command_icon, error_page, get_vc_version
from qommon.backoffice.menu import html_top
from qommon.admin.menu import command_icon, error_page, get_vc_version

View File

@ -20,7 +20,7 @@ from quixote.html import TemplateIO, htmltext
from qommon.form import *
from qommon.admin.menu import html_top
from qommon.backoffice.menu import html_top
from wcs.roles import Role
from wcs.formdef import FormDef

View File

@ -38,7 +38,8 @@ from qommon import errors
from qommon.form import *
from qommon.sms import SMS
from qommon.admin.menu import html_top, error_page
from qommon.backoffice.menu import html_top
from qommon.admin.menu import error_page
from qommon.admin.cfg import cfg_submit
from qommon.admin.emails import EmailsDirectory
from qommon.admin.texts import TextsDirectory

View File

@ -27,7 +27,8 @@ from wcs.roles import Role
import qommon.ident
from qommon.form import *
from qommon.admin.emails import EmailsDirectory
from qommon.admin.menu import html_top, error_page
from qommon.backoffice.menu import html_top
from qommon.admin.menu import error_page
class UserUI(object):
def __init__(self, user):

View File

@ -29,7 +29,8 @@ from quixote.html import TemplateIO, htmltext
from qommon import errors
from qommon import misc
from qommon.form import *
from qommon.admin.menu import html_top, command_icon
from qommon.backoffice.menu import html_top
from qommon.admin.menu import command_icon
from qommon import get_logger
from wcs.workflows import *

View File

@ -20,7 +20,7 @@ from quixote.html import htmltext, TemplateIO
from qommon.form import *
from qommon import misc, get_cfg
from qommon.admin.menu import html_top
from qommon.backoffice.menu import html_top
from qommon.admin.cfg import cfg_submit
class EmailsDirectory(Directory):

View File

@ -22,7 +22,8 @@ from quixote.html import htmltext, TemplateIO
from quixote.directory import Directory
from qommon import logger, errors
from qommon.admin.menu import html_top, error_page
from qommon.backoffice.menu import html_top
from qommon.admin.menu import error_page
class ByUserDirectory(Directory):
def _q_lookup(self, component):

View File

@ -122,65 +122,6 @@ vc_version = _find_vc_version()
def get_vc_version():
return vc_version
def generate_header_menu(selected = None):
return get_publisher().get_admin_root().generate_header_menu(selected=selected)
def generate_user_info():
if not get_request().user:
return ''
try:
username = get_session().get_user_object().display_name
except:
username = None
raise
r = TemplateIO(html=True)
logout_url = get_publisher().get_root_url() + 'logout'
r += htmltext('<ul class="user-info">')
if username:
r += htmltext('<li class="ui-name">%s</li>') % username
if get_publisher().backoffice_directory_class:
backoffice_url = get_publisher().get_root_url() + 'backoffice/'
r += htmltext('<li><a href="%s">%s</a></li>') % (backoffice_url, _('backoffice'))
r += htmltext('<li class="ui-logout"><a href="%s">%s</a></li>') % (logout_url, _('logout'))
if get_publisher().admin_help_url and get_request().language in get_publisher().admin_help_url:
help_url = get_publisher().admin_help_url[get_request().language]
get_response().add_javascript(['jquery.js', 'jquery-ui.js', 'qommon.admin.js'])
get_response().add_css_include('../js/smoothness/jquery-ui-1.10.0.custom.min.css')
r += htmltext('<li class="ui-help"><a href="%s">%s</a></li>') % (help_url, _('help'))
r += htmltext('</ul>')
return r.getvalue()
def html_top(section, title = None, scripts = None):
header_menu = generate_header_menu(section)
user_info = generate_user_info()
subtitle = ''
for s in get_publisher().get_admin_root().menu_items:
if s[0] == section or s[0] == '%s/' % section:
subtitle = _(s[1])
if not title:
title = ''
if not scripts:
script = ''
else:
script = '\n'.join(['<script src="%s" type="text/javascript"></script>' % x for x in scripts])
org_name = get_cfg('sp', {}).get('organization_name', get_publisher().APP_NAME)
site_name = get_cfg('misc', {}).get('sitename', org_name)
if site_name:
sitetitle = _('Administration of %s') % site_name
else:
sitetitle = _('Administration')
if title:
sitetitle += ' - '
admin_ezt = True
get_response().filter.update(locals())
def command_icon(url, type, label = None, icon = None, popup = False):
icons = {
'edit': 'stock_edit_16.png',

View File

@ -20,7 +20,7 @@ from quixote.html import TemplateIO, htmltext
from qommon.form import *
from qommon.admin.cfg import cfg_submit
from qommon.admin.menu import html_top
from qommon.backoffice.menu import html_top
class SettingsDirectory(AccessControlled, Directory):
def _q_access(self):

View File

@ -23,7 +23,8 @@ from quixote.directory import Directory
from qommon.form import *
from qommon import misc, get_cfg, ezt
from qommon.admin.menu import html_top, is_accessible
from qommon.backoffice.menu import html_top
from qommon.admin.menu import is_accessible
class TextsDirectory(Directory):

View File

@ -38,7 +38,7 @@ from qommon import emails
from qommon import template
from qommon import errors
from qommon.admin.menu import html_top as admin_html_top
from qommon.backoffice.menu import html_top
from qommon.admin.menu import command_icon
from base import AuthMethod
@ -226,7 +226,7 @@ class AdminIDPDir(Directory):
return Directory._q_traverse(self, path)
def _q_index(self):
admin_html_top('settings', title = _(self.title))
html_top('settings', title = _(self.title))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Identity Providers')
r += htmltext('<ul id="nav-idp-admin">\n')
@ -319,7 +319,7 @@ class AdminIDPDir(Directory):
form = self.get_form()
if not ('submit' in get_request().form and form.is_submitted()) or form.has_errors():
admin_html_top('settings', title = _('New Identity Provider'))
html_top('settings', title = _('New Identity Provider'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('New Identity Provider')
r += form.render()
@ -497,7 +497,7 @@ class AdminIDPDir(Directory):
os.unlink(metadata_pathname)
get_response().breadcrumb.append(('new_remote', _('New')))
admin_html_top('settings', title = _('New Identity Provider'))
html_top('settings', title = _('New Identity Provider'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('New Identity Provider')
r += form.render()
@ -582,7 +582,7 @@ class AdminIDPUI(Directory):
misc.get_abs_path(self.idp['metadata']),
misc.get_abs_path(self.idp.get('publickey')),
misc.get_abs_path(self.idp.get('cacertchain', None)))
admin_html_top('settings', title = _('Identity Provider'))
html_top('settings', title = _('Identity Provider'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s - %s</h2>') % (_('Identity Provider'), p.providerId)
r += htmltext('<div class="form">')
@ -608,7 +608,7 @@ class AdminIDPUI(Directory):
form = AdminIDPDir.get_form(self.idp)
if not ('submit' in get_request().form and form.is_submitted()) or form.has_errors():
admin_html_top('settings', title = _('Edit Identity Provider'))
html_top('settings', title = _('Edit Identity Provider'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Edit Identity Provider')
r += form.render()
@ -635,7 +635,7 @@ class AdminIDPUI(Directory):
if form.get_widget('cancel').parse():
return redirect('..')
if not form.is_submitted() or form.has_errors():
admin_html_top('settings', title = _('Identity Provider'))
html_top('settings', title = _('Identity Provider'))
r = TemplateIO(html=True)
if p:
r += htmltext('<h2>%s %s</h2>') % (_('Deleting'), p.providerId)
@ -779,7 +779,7 @@ class MethodAdminDirectory(Directory):
return Directory._q_traverse(self, path)
def _q_index(self):
admin_html_top('settings', title = _(self.title))
html_top('settings', title = _(self.title))
r = TemplateIO(html=True)
r += htmltext('<h2>SAML 2.0</h2>')
r += htmltext('<dl> <dt><a href="sp">%s</a></dt> <dd>%s</dd>') % (
@ -879,7 +879,7 @@ class MethodAdminDirectory(Directory):
else:
return redirect('.')
admin_html_top('settings', title = _('Service Provider Configuration'))
html_top('settings', title = _('Service Provider Configuration'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Service Provider Configuration')
r += form.render()
@ -1030,7 +1030,7 @@ class MethodAdminDirectory(Directory):
return redirect('.')
get_response().breadcrumb.append(('identities', _('Identities Interface')))
admin_html_top('settings', title = _('Identities Interface'))
html_top('settings', title = _('Identities Interface'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Identities Interface')
r += form.render()
@ -1059,7 +1059,7 @@ class MethodUserDirectory(Directory):
if request.form.has_key('cancel') or request.form.has_key('done'):
return redirect('..')
admin_html_top('users', title = _('Email with Identification Token'))
html_top('users', title = _('Email with Identification Token'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Email with Identification Token')

View File

@ -33,10 +33,9 @@ from qommon import template
from qommon import tokens
from qommon import errors
from qommon.admin.menu import html_top as admin_html_top
from qommon.admin.menu import command_icon
from qommon.backoffice.menu import html_top as backoffice_html_top
from qommon.backoffice.menu import html_top
from qommon.admin.emails import EmailsDirectory
from qommon.admin.texts import TextsDirectory
@ -684,7 +683,7 @@ class MethodAdminDirectory(Directory):
_q_exports = ['', 'passwords', 'identities', ('import', 'p_import')]
def _q_index(self):
admin_html_top('settings', title = _(ADMIN_TITLE))
html_top('settings', title = _(ADMIN_TITLE))
get_response().breadcrumb.append( ('password/', _(self.title)))
r = TemplateIO(html=True)
@ -751,7 +750,7 @@ class MethodAdminDirectory(Directory):
self.passwords_submit(form)
return redirect('.')
admin_html_top('settings', title = _('Passwords'))
html_top('settings', title = _('Passwords'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Passwords')
r += form.render()
@ -801,7 +800,7 @@ class MethodAdminDirectory(Directory):
self.identities_submit(form)
return redirect('.')
admin_html_top('settings', title = _('Identities Interface'))
html_top('settings', title = _('Identities Interface'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Identities Interface')
r += form.render()
@ -850,7 +849,7 @@ class MethodAdminDirectory(Directory):
return t
return redirect('.')
admin_html_top('settings', title = _('Bulk Import'))
html_top('settings', title = _('Bulk Import'))
r = TemplateIO(html=True)
identities_cfg = get_cfg('identities', {})
users_cfg = get_cfg('users', {})
@ -1010,7 +1009,7 @@ class MethodAdminDirectory(Directory):
job = AfterJob.get(get_request().form.get('job'))
except KeyError:
return redirect('..')
admin_html_top('settings', title=_('Notifications'))
html_top('settings', title=_('Notifications'))
r = TemplateIO(html=True)
r += get_session().display_message()
get_response().add_javascript(['jquery.js', 'afterjob.js'])
@ -1083,7 +1082,7 @@ class MethodUserDirectory(Directory):
return actions
def email(self):
admin_html_top('users', title=_(ADMIN_TITLE))
html_top('users', title=_(ADMIN_TITLE))
r = TemplateIO(html=True)
get_response().breadcrumb.append(('email', 'Email Password'))
r += htmltext('<h2>%s</h2>') % _('Email Password')
@ -1215,17 +1214,13 @@ class AccountDirectory(Directory):
def _q_traverse(self, path):
get_response().breadcrumb.append(('%s/' % self.account.id, self.account.id))
if get_publisher().get_backoffice_root():
self.html_top = backoffice_html_top
else:
self.html_top = admin_html_top
return Directory._q_traverse(self, path)
def _q_index(self):
identities_cfg = get_cfg('identities', {})
users_cfg = get_cfg('users', {})
self.html_top('accounts', _('Account - %s') % self.account.id)
html_top('accounts', _('Account - %s') % self.account.id)
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Moderation of account')
@ -1309,7 +1304,7 @@ class AccountDirectory(Directory):
if not form.is_submitted():
get_response().breadcrumb.append(('reject', _('Rejection')))
self.html_top('accounts', _('Rejection'))
html_top('accounts', _('Rejection'))
return form.render()
else:
self.account.user.remove_self()
@ -1335,7 +1330,7 @@ class AccountDirectory(Directory):
if not form.is_submitted():
get_response().breadcrumb.append(('email', _('Reply by email')))
self.html_top('accounts', _('Reply by email'))
html_top('accounts', _('Reply by email'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Reply by email')
r += form.render()
@ -1363,13 +1358,8 @@ class AccountsDirectory(AccessControlled, Directory):
get_response().breadcrumb.append(('accounts/', _('Accounts Management')))
if get_publisher().get_backoffice_root():
self.html_top = backoffice_html_top
else:
self.html_top = admin_html_top
def _q_index(self):
self.html_top('accounts', _('Accounts Management'))
html_top('accounts', _('Accounts Management'))
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('New accounts waiting for moderation')