From 98298db5f276e59c6b15c2be42092a4399fba8bd Mon Sep 17 00:00:00 2001 From: leigh-mil Date: Fri, 1 Nov 2019 11:29:52 -0400 Subject: [PATCH] Add toggle drop down menu for app member edit --- static/icons/ellipsis.svg | 1 + styles/components/_accordion_table.scss | 4 + styles/components/_portfolio_layout.scss | 53 ++++++- styles/elements/_tables.scss | 4 +- templates/applications/fragments/members.html | 134 ++++++++++-------- templates/components/toggle_list.html | 8 +- 6 files changed, 135 insertions(+), 69 deletions(-) create mode 100644 static/icons/ellipsis.svg diff --git a/static/icons/ellipsis.svg b/static/icons/ellipsis.svg new file mode 100644 index 00000000..53c45a18 --- /dev/null +++ b/static/icons/ellipsis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/components/_accordion_table.scss b/styles/components/_accordion_table.scss index 5508bf43..9a32c009 100644 --- a/styles/components/_accordion_table.scss +++ b/styles/components/_accordion_table.scss @@ -94,6 +94,10 @@ border-right: 10px solid transparent; border-bottom: 10px solid $color-blue-light; } + + &--active { + background-color: $color-gray-lightest; + } } &-toggle-content { diff --git a/styles/components/_portfolio_layout.scss b/styles/components/_portfolio_layout.scss index 2102cc2e..4b2b3c65 100644 --- a/styles/components/_portfolio_layout.scss +++ b/styles/components/_portfolio_layout.scss @@ -149,6 +149,7 @@ .member-list { .responsive-table-wrapper { margin-bottom: 0; + overflow: visible; table.atat-table { table-layout: fixed; @@ -213,12 +214,13 @@ } .env_role { - width: 50%; - } + &--th { + width: 50%; + } - .form-col--two-thirds { - width: 66.66%; - flex-basis: unset; + &--td { + position: relative; + } } .row { @@ -236,6 +238,47 @@ .env-role__role { white-space: nowrap; display: inline-block; + margin-right: $gap * 6; + } + } + + .app-member-menu { + position: absolute; + top: $gap; + right: $gap * 2; + + .accordion-table__item__toggler { + padding: $gap / 3; + border: 1px solid $color-gray-lighter; + border-radius: 3px; + cursor: pointer; + + .icon { + margin: $gap / 2; + } + } + + &__toggle { + position: absolute; + right: 0; + top: 30px; + background-color: $color-white; + border: 1px solid $color-gray-light; + z-index: 1; + margin-top: 0; + + a { + display: block; + padding: $gap; + border-bottom: 1px solid $color-gray-lighter; + text-decoration: none; + color: $color-black; + cursor: pointer; + + &:last-child { + border-bottom: 0; + } + } } } } diff --git a/styles/elements/_tables.scss b/styles/elements/_tables.scss index 1086215b..f313756c 100644 --- a/styles/elements/_tables.scss +++ b/styles/elements/_tables.scss @@ -12,6 +12,8 @@ table.atat-table { border-collapse: separate; } + background: $color-white; + th, td { &.table-cell { @@ -46,7 +48,7 @@ table.atat-table { tr { th, td { - background-color: $color-white; + background: none; margin: 0; padding: $gap * 2; border: 1px solid $color-gray-lighter; diff --git a/templates/applications/fragments/members.html b/templates/applications/fragments/members.html index 496469d0..4cd411a5 100644 --- a/templates/applications/fragments/members.html +++ b/templates/applications/fragments/members.html @@ -6,6 +6,7 @@ {% from "components/modal.html" import Modal %} {% from "components/multi_step_modal_form.html" import MultiStepModalForm %} {% from "components/save_button.html" import SaveButton %} +{% from "components/toggle_list.html" import ToggleButton, ToggleSection %} {% macro MemberManagementTemplate( application, @@ -90,67 +91,82 @@
- - - - - - - - - - {% for member in members %} - {% set modal_name = "edit_member-{}".format(loop.index) %} + +
NameApplication PermissionsEnvironment Access
+ - - - - + + + - {% endfor %} - -
- {{ member.user_name }} - - {{ Icon('edit') }} - -
- {% if member.role_status == 'pending' %} - {{ Label('envelope', 'invite pending', 'success', classes='label--below') }} - {% endif %} - -
- {% for perm, value in member.permission_sets.items() %} -
- {{ ("portfolios.applications.members.{}.{}".format(perm, value)) | translate }} -
- {% endfor %} -
-
-
- {% for env in member.environment_roles %} -
- - {{ env.environment_name }} - - - : {{ env.role }} - -
- {% endfor %} -
-
- {% if member.role_status == 'pending' -%} - {% set revoke_invite_modal = "revoke_invite_{}".format(member.role_id) %} - {% set resend_invite_modal = "resend_invite-{}".format(member.role_id) %} - Resend Invite
- {% if user_can(permissions.DELETE_APPLICATION_MEMBER) -%} - {{ 'invites.revoke' | translate }} - {%- endif %} - {%- endif %} -
-
-
NameApplication PermissionsEnvironment Access
+ + + {% for member in members %} + {% set perms_modal = "edit_member-{}".format(loop.index) %} + + + {{ member.user_name }} + {% if member.role_status == 'pending' %} +
+ {{ Label('envelope', 'invite pending', 'success', classes='label--below') }} + {% endif %} + + + + + {% for perm, value in member.permission_sets.items() %} +
+ {{ ("portfolios.applications.members.{}.{}".format(perm, value)) | translate }} +
+ {% endfor %} + + + {% for env in member.environment_roles %} +
+ + {{ env.environment_name }} + + + : {{ env.role }} + +
+ {% endfor %} +
+ {% set toggle_button -%} + {{ Icon('ellipsis')}} + {%- endset %} + {% set section = "app_member_edit-{}".format(member.role_id) %} + + {{ + ToggleButton( + open_html=toggle_button, + close_html=toggle_button, + section_name=section, + active_style=True + ) + }} + {% call ToggleSection(section_name=section, classes="app-member-menu__toggle") %} + {% if user_can(permissions.EDIT_APPLICATION_MEMBER) -%} + + Edit Roles and Permissions + + {%- endif %} + {% if member.role_status == 'pending' -%} + {% set revoke_invite_modal = "revoke_invite_{}".format(member.role_id) %} + {% set resend_invite_modal = "resend_invite-{}".format(member.role_id) %} + Resend Invite + {% if user_can(permissions.DELETE_APPLICATION_MEMBER) -%} + {{ 'invites.revoke' | translate }} + {%- endif %} + {%- endif %} + {% endcall %} +
+ + + {% endfor %} + + +
{% endif %} diff --git a/templates/components/toggle_list.html b/templates/components/toggle_list.html index 16556720..eddd3e1d 100644 --- a/templates/components/toggle_list.html +++ b/templates/components/toggle_list.html @@ -1,9 +1,9 @@ -{% macro ToggleButton(action, open_html, close_html, section_name, classes="") %} - - +{% macro ToggleButton(action, open_html, close_html, section_name, classes="", active_style=False) %} + + {{ close_html }} - + {{ open_html }}