[#3944] Added account preferences menu to subscriptions page
Signed-off-by: Cory Johns <johnsca@geek.net>
diff --git a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
index 5320fc9..a65f31c 100644
--- a/Allura/allura/controllers/auth.py
+++ b/Allura/allura/controllers/auth.py
@@ -318,10 +318,13 @@
frequency=mb.frequency.unit,
artifact=mb.artifact_index_id))
api_token = M.ApiToken.query.get(user_id=c.user._id)
+ provider = plugin.AuthenticationProvider.get(request)
+ menu = provider.account_navigation()
return dict(
subscriptions=subscriptions,
api_token=api_token,
- authorized_applications=M.OAuthAccessToken.for_user(c.user))
+ authorized_applications=M.OAuthAccessToken.for_user(c.user),
+ menu=menu)
@h.vardec
@expose()
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index 9c2c3e2..5342068 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -129,6 +129,16 @@
'''
raise NotImplemented, 'upload_sshkey'
+ def account_navigation(self):
+ return [
+ {
+ 'tabid': 'account_sfnet_beta_index',
+ 'title': 'Subscriptions',
+ 'target': "/auth/prefs",
+ 'alt': 'Manage Subscription Preferences',
+ },
+ ]
+
class LocalAuthenticationProvider(AuthenticationProvider):
'''
Stores user passwords on the User model, in mongo. Uses per-user salt and
diff --git a/Allura/allura/templates/user_preferences.html b/Allura/allura/templates/user_preferences.html
index bed3c8d..874ab16 100644
--- a/Allura/allura/templates/user_preferences.html
+++ b/Allura/allura/templates/user_preferences.html
@@ -6,6 +6,17 @@
{% block header %}User Preferences for {{c.user.username}}{% endblock %}
{% block content %}
+ <ul id="account-nav-menu" class="b-hornav droppy">
+ {% for item in menu -%}
+ <li id="{{ item.tabid }}">
+ <a href="{{ item.target }}">
+ {{ item.title }}
+ <div class="marker{% if item.target.rstrip('/') == request.path.rstrip('/') %} current{% endif %}"></div>
+ </a>
+ </li>
+ {%- endfor %}
+ </ul>
+
{% if g.theme.password_change_form %}
<div class="grid-20">
<h2>Change Password</h2>