You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/02/27 17:08:02 UTC
[airavata-django-portal] 02/03: AIRAVATA-2698 Add icon class name
to apps to dislay in app switcher
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit f30a4bbfcd60bc6e433dbd1d7903c1ae0e590515
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Tue Feb 27 11:47:08 2018 -0500
AIRAVATA-2698 Add icon class name to apps to dislay in app switcher
---
django_airavata/app_config.py | 6 ++++
django_airavata/apps/groups/apps.py | 1 +
django_airavata/apps/workspace/apps.py | 1 +
django_airavata/context_processors.py | 8 +++++-
django_airavata/settings.py | 2 +-
django_airavata/templates/base.html | 52 ++++++++++++++++++++--------------
6 files changed, 46 insertions(+), 24 deletions(-)
diff --git a/django_airavata/app_config.py b/django_airavata/app_config.py
index 540c29e..f4dfb34 100644
--- a/django_airavata/app_config.py
+++ b/django_airavata/app_config.py
@@ -24,3 +24,9 @@ class AiravataAppConfig(AppConfig, ABC):
def url_home(self):
"""Named route of home page for this application."""
pass
+
+ @property
+ @abstractmethod
+ def fa_icon_class(self):
+ """Font Awesome icon class name."""
+ pass
diff --git a/django_airavata/apps/groups/apps.py b/django_airavata/apps/groups/apps.py
index 30cd9f7..1680810 100755
--- a/django_airavata/apps/groups/apps.py
+++ b/django_airavata/apps/groups/apps.py
@@ -8,3 +8,4 @@ class GroupsConfig(AiravataAppConfig):
url_app_name = label
app_order = 10
url_home = url_app_name + ':manage'
+ fa_icon_class = 'fa-users'
diff --git a/django_airavata/apps/workspace/apps.py b/django_airavata/apps/workspace/apps.py
index 79c4a20..2692ec1 100644
--- a/django_airavata/apps/workspace/apps.py
+++ b/django_airavata/apps/workspace/apps.py
@@ -8,3 +8,4 @@ class WorkspaceConfig(AiravataAppConfig):
url_app_name = label
app_order = 0
url_home = 'django_airavata_workspace:dashboard'
+ fa_icon_class = 'fa-flask'
diff --git a/django_airavata/context_processors.py b/django_airavata/context_processors.py
index 8bd45ef..5989a83 100644
--- a/django_airavata/context_processors.py
+++ b/django_airavata/context_processors.py
@@ -11,7 +11,13 @@ def airavata_app_registry(request):
airavata_apps.sort(
key=lambda app: "{:09}-{}".format(app.app_order,
app.verbose_name.lower()))
- return {'airavata_apps': airavata_apps}
+ current_airavata_app = [app for app in airavata_apps if app.url_app_name == request.resolver_match.app_name]
+ current_airavata_app = current_airavata_app[0]\
+ if len(current_airavata_app) > 0 else None
+ return {
+ 'airavata_apps': airavata_apps,
+ 'current_airavata_app': current_airavata_app,
+ }
def resolver_match(request):
diff --git a/django_airavata/settings.py b/django_airavata/settings.py
index 14a20ab..e857e8e 100644
--- a/django_airavata/settings.py
+++ b/django_airavata/settings.py
@@ -73,7 +73,7 @@ TEMPLATES = [
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django_airavata.context_processors.airavata_app_registry',
- 'django_airavata.context_processors.resolver_match',
+ # 'django_airavata.context_processors.resolver_match',
],
},
},
diff --git a/django_airavata/templates/base.html b/django_airavata/templates/base.html
index afba8ad..aa9a3c2 100644
--- a/django_airavata/templates/base.html
+++ b/django_airavata/templates/base.html
@@ -39,32 +39,40 @@
<div class=dropdown>
<a href=#0 class="dropdown-toggle text-dark" id=appDropdownMenuButton data-toggle=dropdown
aria-haspopup=true aria-expanded=false>
- {% for app in airavata_apps %}
- {% if app.url_app_name == resolver_match.app_name %}
- {{ app.verbose_name }}
- {% endif %}
- {% endfor %}
+ {% if current_airavata_app %}
+ <i class="fa {{ current_airavata_app.fa_icon_class }} mr-2"></i>
+ {{ current_airavata_app.verbose_name }}
+ {% else %}
+ Menu
+ {% endif %}
</a>
- <div class=dropdown-menu aria-labelledby=appDropdownMenuButton>
- {% for app in airavata_apps %}
- {% if app.url_app_name == resolver_match.app_name %}
- <a class="dropdown-item active" href="{% url app.url_home %}">{{ app.verbose_name }}</a>
- {% else %}
- <a class="dropdown-item" href="{% url app.url_home %}">{{ app.verbose_name }}</a>
- {% endif %}
- {% endfor %}
- </div>
+ <div class=dropdown-menu aria-labelledby=appDropdownMenuButton>
+ {% for app in airavata_apps %}
+ {% if app == current_airavata_app %}
+ <a class="dropdown-item active" href="{% url app.url_home %}">
+ <i class="fa {{ app.fa_icon_class }} mr-2"></i>{{ app.verbose_name }}
+ </a>
+ {% else %}
+ <a class="dropdown-item" href="{% url app.url_home %}">
+ <i class="fa {{ app.fa_icon_class }} mr-2"></i>{{ app.verbose_name }}
+ </a>
+ {% endif %}
+ {% endfor %}
+ </div>
</div>
</div>
<div class="btn-group ml-3">
- <div class=dropdown><a href=#0 class="dropdown-toggle text-dark" id=dropdownMenuButton data-toggle=dropdown
- aria-haspopup=true aria-expanded=false><i
- class="fa fa-user mr-2"></i> {{ request.session.USERINFO.given_name }} {{ request.session.USERINFO.family_name }}
- </a>
- <div class=dropdown-menu aria-labelledby=dropdownMenuButton><a class=dropdown-item href=#>User
- settings</a> <a
- class=dropdown-item href="{% url 'django_airavata_auth:logout' %}">Logout <i
- class="fa fa-sign-out"></i></a></div>
+ <div class=dropdown>
+ <a href=#0 class="dropdown-toggle text-dark" id=dropdownMenuButton data-toggle=dropdown
+ aria-haspopup=true aria-expanded=false>
+ <i class="fa fa-user mr-2"></i> {{ request.session.USERINFO.given_name }} {{ request.session.USERINFO.family_name }}
+ </a>
+ <div class=dropdown-menu aria-labelledby=dropdownMenuButton>
+ <a class=dropdown-item href=#>User settings</a>
+ <a class=dropdown-item href="{% url 'django_airavata_auth:logout' %}">
+ Logout <i class="fa fa-sign-out"></i>
+ </a>
+ </div>
</div>
</div>
</div>
--
To stop receiving notification emails like this one, please contact
machristie@apache.org.