Rewrite navigation as a class

Because we have multiple navigations, which will share the same methods
(by subclassing) but different mappings of navigation items to endpoints
by overriding the `.mapping` and `.exclude` attributes.
This commit is contained in:
Chris Hill-Scott
2018-04-25 10:24:32 +01:00
parent 1fba5d186d
commit e1fd63e184
4 changed files with 263 additions and 246 deletions

View File

@@ -43,19 +43,19 @@
{% else %}
<nav class="navigation">
<ul>
<li><a href="{{ url_for('.service_dashboard', service_id=current_service.id) }}" {{ nav_selected('dashboard') }}>Dashboard</a></li>
<li><a href="{{ url_for('.service_dashboard', service_id=current_service.id) }}" {{ main_navigation.is_selected('dashboard') }}>Dashboard</a></li>
{% if current_user.has_permissions('view_activity') %}
<li><a href="{{ url_for('.choose_template', service_id=current_service.id) }}" {{ nav_selected('templates') }}>Templates</a></li>
<li><a href="{{ url_for('.choose_template', service_id=current_service.id) }}" {{ main_navigation.is_selected('templates') }}>Templates</a></li>
{% endif %}
<li><a href="{{ url_for('.manage_users', service_id=current_service.id) }}" {{ nav_selected('team-members') }}>Team members</a></li>
<li><a href="{{ url_for('.manage_users', service_id=current_service.id) }}" {{ main_navigation.is_selected('team-members') }}>Team members</a></li>
{% if current_user.has_permissions('manage_service') %}
<li><a href="{{ url_for('.usage', service_id=current_service.id) }}" {{ nav_selected('usage') }}>Usage</a></li>
<li><a href="{{ url_for('.usage', service_id=current_service.id) }}" {{ main_navigation.is_selected('usage') }}>Usage</a></li>
{% endif %}
{% if current_user.has_permissions('manage_api_keys', 'manage_service') %}
<li><a href="{{ url_for('.service_settings', service_id=current_service.id) }}" {{ nav_selected('settings') }}>Settings</a></li>
<li><a href="{{ url_for('.service_settings', service_id=current_service.id) }}" {{ main_navigation.is_selected('settings') }}>Settings</a></li>
{% endif %}
{% if current_user.has_permissions('manage_api_keys') %}
<li><a href="{{ url_for('.api_integration', service_id=current_service.id) }}" {{ nav_selected('api-integration') }}>API integration</a></li>
<li><a href="{{ url_for('.api_integration', service_id=current_service.id) }}" {{ main_navigation.is_selected('api-integration') }}>API integration</a></li>
{% endif %}
</ul>
</nav>