Merge pull request #99 from dod-ccpo/ui/workspace-navigation

Ui/workspace navigation
This commit is contained in:
andrewdds 2018-07-27 10:45:05 -04:00 committed by GitHub
commit b21c997e09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 65 additions and 12 deletions

View File

@ -121,7 +121,7 @@ def make_app(config, deps, **kwargs):
url(r"/reports", Main, {"page": "reports"}, name="reports"), url(r"/reports", Main, {"page": "reports"}, name="reports"),
url(r"/calculator", Main, {"page": "calculator"}, name="calculator"), url(r"/calculator", Main, {"page": "calculator"}, name="calculator"),
url(r"/workspaces/(\S+)/members", WorkspaceMembers, {}, name="workspace_members"), url(r"/workspaces/(\S+)/members", WorkspaceMembers, {}, name="workspace_members"),
url(r"/workspaces/(\S+)", Workspace, {}, name="workspace"), url(r"/workspaces/(\S+)/projects", Workspace, {}, name="workspace_projects"),
] ]
if not ENV == "production": if not ENV == "production":

View File

@ -12,4 +12,4 @@ class Workspace(BaseHandler):
@tornado.gen.coroutine @tornado.gen.coroutine
def get(self, workspace_id): def get(self, workspace_id):
projects = self.projects_repo.get_many(workspace_id) projects = self.projects_repo.get_many(workspace_id)
self.render("workspace.html.to", projects=projects) self.render("workspace_projects.html.to", workspace_id=workspace_id, projects=projects)

View File

@ -12,4 +12,4 @@ class WorkspaceMembers(BaseHandler):
@tornado.gen.coroutine @tornado.gen.coroutine
def get(self, workspace_id): def get(self, workspace_id):
members = self.members_repo.get_many(workspace_id) members = self.members_repo.get_many(workspace_id)
self.render("workspace_members.html.to", members=members) self.render("workspace_members.html.to", workspace_id=workspace_id, members=members)

View File

@ -8,7 +8,7 @@ def dev(self):
return os.getenv("TORNADO_ENV", "dev") == "dev" return os.getenv("TORNADO_ENV", "dev") == "dev"
def matchesPath(self, href): def matchesPath(self, href):
return self.request.uri.startswith(href) return re.match('^'+href, self.request.uri)
def modal(self, body): def modal(self, body):
return self.render_string( return self.render_string(

View File

@ -16,9 +16,10 @@
@import 'elements/labels'; @import 'elements/labels';
@import 'elements/diff'; @import 'elements/diff';
@import 'components/layout';
@import 'components/topbar'; @import 'components/topbar';
@import 'components/global_layout';
@import 'components/global_navigation'; @import 'components/global_navigation';
@import 'components/workspace_layout';
@import 'components/site_action'; @import 'components/site_action';
@import 'components/empty_state'; @import 'components/empty_state';
@import 'components/alerts'; @import 'components/alerts';

View File

@ -0,0 +1,26 @@
.workspace-panel-container {
@include media($large-screen) {
@include grid-row;
}
}
.workspace-navigation {
@include panel-margin;
ul {
display: flex;
flex-wrap: wrap;
li {
flex-grow: 1;
}
}
@include media($large-screen) {
width: 20rem;
margin-right: $gap * 2;
ul {
display: block;
}
}
}

View File

@ -2,8 +2,14 @@
{% block content %} {% block content %}
{% include 'navigation/workspace_navigation.html.to' %} <div class='workspace-panel-container'>
<div class='col'>
{% include 'navigation/workspace_navigation.html.to' %}
</div>
{% block workspace_content %}{% end %} <div class='col col--grow'>
{% block workspace_content %}{% end %}
</div>
</div>
{% end %} {% end %}

View File

@ -6,7 +6,7 @@
<div class="topbar__context topbar__context--{{context}}"> <div class="topbar__context topbar__context--{{context}}">
<a href="/" class="topbar__link"> <a href="/" class="topbar__link">
<span class="topbar__link-label">{{ "Workspace Name" if context == 'workspace' else "JEDI" }}</span> <span class="topbar__link-label">{{ "Workspace "+workspace_id if context == 'workspace' else "JEDI" }}</span>
{% module Icon('caret_down', classes='topbar__link-icon icon--tiny') %} {% module Icon('caret_down', classes='topbar__link-icon icon--tiny') %}
</a> </a>

View File

@ -1 +1,21 @@
nav <nav class='sidenav workspace-navigation'>
<ul>
{% module SidenavItem(
"Projects",
href=reverse_url('workspace_projects', workspace_id),
active=matchesPath('\/workspaces\/[A-Za-z0-9]*\/projects'))
%}
{% module SidenavItem(
"Members",
href=reverse_url('workspace_members', workspace_id),
active=matchesPath('\/workspaces\/[A-Za-z0-9]*\/members'))
%}
{% module SidenavItem(
"Funding & Reports",
href=reverse_url('workspace_projects', workspace_id),
active=matchesPath('\/workspaces\/[A-Za-z0-9]*\/reports'))
%}
</ul>
</nav>

View File

@ -1,6 +1,6 @@
{% extends "base.html.to" %} {% extends "base_workspace.html.to" %}
{% block content %} {% block workspace_content %}
<div class="panel"> <div class="panel">
<div class='responsive-table-wrapper'> <div class='responsive-table-wrapper'>

View File

@ -14,7 +14,7 @@
{% for w in workspaces %} {% for w in workspaces %}
<tr> <tr>
<td scope="row"> <td scope="row">
<a href="/workspaces/{{w['task_order']['number']}}">{{ w['name'] }}</a><br> <a href="/workspaces/{{w['task_order']['number']}}/projects">{{ w['name'] }}</a><br>
Task Order: #{{ w['task_order']['number'] }} Task Order: #{{ w['task_order']['number'] }}
</td> </td>
<td> <td>