aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/scss/main.scss1
-rw-r--r--app/scss/nav.scss75
-rw-r--r--app/scss/page.scss41
-rw-r--r--app/templates/base.html20
-rw-r--r--app/views/admin.py2
5 files changed, 94 insertions, 45 deletions
diff --git a/app/scss/main.scss b/app/scss/main.scss
index 160d180..d853758 100644
--- a/app/scss/main.scss
+++ b/app/scss/main.scss
@@ -1,4 +1,5 @@
@import "page.scss";
@import "components.scss";
+@import "nav.scss";
@import "packages.scss";
@import "packagegrid.scss";
diff --git a/app/scss/nav.scss b/app/scss/nav.scss
new file mode 100644
index 0000000..9cfaeae
--- /dev/null
+++ b/app/scss/nav.scss
@@ -0,0 +1,75 @@
+nav {
+ margin: 0 auto 0 auto;
+ list-style: none;
+ background: #333;
+}
+
+nav .navbar-nav {
+ float: left;
+}
+
+nav .navbar-right {
+ float: right;
+}
+
+nav ul {
+ margin: 0 auto 0 auto;
+ padding: 0;
+ list-style: none;
+}
+
+nav li {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ display: inline-block;
+}
+
+nav li a {
+ color: #ddd;
+ margin: 0;
+ padding: 1em 1em;
+ display: block;
+ border-left: 1px solid #444;
+}
+
+nav a:hover {
+ color: #eee;
+ background: #444;
+ text-decoration: none;
+}
+
+li.dropdown {
+ position: relative;
+ display: inline-block;
+}
+
+.dropdown-menu {
+ display: none;
+ position: absolute;
+ margin: 0;
+ padding: 0;
+ min-width:160px;
+ background: #333;
+ z-index: 1;
+ right: 0;
+ box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.4);
+ // display: none;
+}
+
+.dropdown:hover ul {
+ display: block;
+}
+
+.dropdown li {
+ display: block;
+}
+
+.dropdown li a {
+ border: none;
+ border-top: 1px solid #444;
+}
+
+.dropdown li:last-child a {
+ border-bottom: 1px solid #444;
+}
diff --git a/app/scss/page.scss b/app/scss/page.scss
index ae00dc4..ab6d3c4 100644
--- a/app/scss/page.scss
+++ b/app/scss/page.scss
@@ -14,47 +14,6 @@ nav, main, #alerts {
display: block;
}
-nav {
- margin: 0 auto 0 auto;
- list-style: none;
- background: #333;
-}
-
-nav .navbar-nav {
- float: left;
-}
-
-nav .navbar-right {
- float: right;
-}
-
-nav ul {
- margin: 0 auto 0 auto;
- padding: 0;
- list-style: none;
-}
-
-nav li {
- margin: 0;
- padding: 0;
- list-style: none;
- display: inline-block;
-}
-
-nav li a {
- color: #ddd;
- margin: 0;
- padding: 1em 1em;
- display: block;
- border-left: 1px solid #444;
-}
-
-nav a:hover {
- color: #eee;
- background: #444;
- text-decoration: none;
-}
-
header {
padding: 20px;
background: #258;
diff --git a/app/templates/base.html b/app/templates/base.html
index 0211b97..9589cc0 100644
--- a/app/templates/base.html
+++ b/app/templates/base.html
@@ -41,8 +41,24 @@
<ul class="nav navbar-nav navbar-right">
{% if current_user.is_authenticated %}
<li><a href="{{ url_for('notifications_page') }}">({{ current_user.notifications | length }})</a></li>
- <li><a href="{{ url_for('user_profile_page', username=current_user.username) }}">{{ current_user.display_name }}</a></li>
- <li><a href="{{ url_for('user.logout') }}">Sign out</a></li>
+ <li class="dropdown">
+ <a href="{{ url_for('user_profile_page', username=current_user.username) }}"
+ class="dropdown-toggle"
+ data-toggle="dropdown"
+ role="button"
+ aria-expanded="false">{{ current_user.display_name }}
+ <span class="caret"></span></a>
+
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="{{ url_for('user_profile_page', username=current_user.username) }}">Profile</a>
+ </li>
+ {% if current_user.rank == current_user.rank.ADMIN %}
+ <li><a href="{{ url_for('admin_page') }}">Admin</a></li>
+ {% endif %}
+ <li><a href="{{ url_for('user.logout') }}">Sign out</a></li>
+ </ul>
+ </li>
{% else %}
<li><a href="{{ url_for('user.login') }}">Sign in</a></li>
{% endif %}
diff --git a/app/views/admin.py b/app/views/admin.py
index 8a74f85..d0dcf73 100644
--- a/app/views/admin.py
+++ b/app/views/admin.py
@@ -26,8 +26,6 @@ from flask_wtf import FlaskForm
from wtforms import *
from app.utils import loginUser, rank_required
-@menu.register_menu(app, ".admin", "Admin", order=30,
- visible_when=lambda: current_user.rank.atLeast(UserRank.ADMIN))
@app.route("/admin/", methods=["GET", "POST"])
@rank_required(UserRank.ADMIN)
def admin_page():