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.