{% extends "portfolios/applications/base.html" %} {% from "components/alert.html" import Alert %} {% from "components/delete_confirmation.html" import DeleteConfirmation %} {% from "components/icon.html" import Icon %} {% import "fragments/applications/new_member_modal_content.html" as member_steps %} {% from "fragments/applications/member_perms_form_fields.html" import MemberPermsFields %} {% from "components/modal.html" import Modal %} {% from "components/multi_step_modal_form.html" import MultiStepModalForm %} {% from "components/pagination.html" import Pagination %} {% from "components/save_button.html" import SaveButton %} {% from "components/text_input.html" import TextInput %} {% from "components/toggle_list.html" import ToggleButton, ToggleSection %} {% from "components/icon.html" import Icon %} {% from "components/text_input.html" import TextInput %} {% from "components/checkbox_input.html" import CheckboxInput %} {% from "components/phone_input.html" import PhoneInput %} {% set secondary_breadcrumb = 'portfolios.applications.existing_application_title' | translate({ "application_name": application.name }) %} {% block application_content %}
{{ 'portfolios.applications.settings.name_description' | translate }}
{% if user_can(permissions.EDIT_APPLICATION) %}
{{ application_form.csrf_token }}
{{ TextInput(application_form.name, optional=False) }} {{ TextInput(application_form.description, paragraph=True, optional=False) }}
{% else %}

{{ "fragments.edit_application_form.explain" | translate }}

{{ application_form.name.label() }}

{{ application_form.name.data }}

{{ application_form.description.label() }}

{{ application_form.description.data }}

{% endif %} {% if not application.members %} {% set user_can_invite = user_can(permissions.CREATE_APPLICATION_MEMBER) %}

{{ ("portfolios.applications.team_settings.blank_slate.title" | translate) }}

{{ Icon('avatar') }} {% if not user_can_invite %}

{{ ("portfolios.applications.team_settings.blank_slate.sub_message" | translate) }}

{% endif %} {% if user_can_invite %} {% set new_member_modal_name = "add-app-mem" %} {{ "portfolios.applications.team_settings.blank_slate.action_label" | translate }} {{ MultiStepModalForm( name=new_member_modal_name, form=new_member_form, form_action=url_for("applications.create_member", application_id=application.id), steps=[ member_steps.MemberStepOne(new_member_form), member_steps.MemberStepTwo(new_member_form, application) ], ) }} {% endif %}
{% else %}
{{ 'portfolios.applications.settings.team_members' | translate }} {% set new_member_modal_name = "add-app-mem" %} {% if user_can(permissions.CREATE_APPLICATION_MEMBER) %} {{ Icon("plus") }} {{ "portfolios.applications.add_member" | translate }} {% endif %}
{% if g.matchesPath("application-members") %} {% include "fragments/flash.html" %} {% endif %} {% for member in members %} {% set modal_name = "edit_member-{}".format(loop.index) %} {% call Modal(modal_name) %} {% endcall %} {% endfor %} {% for member in members %} {% set modal_name = "edit_member-{}".format(loop.index) %} {% endfor %}
Member Project Permissions Environment Access
{{ member.user_name }} {{ Icon('edit') }}
{% if member.role_status == 'pending' %} INVITE PENDING {% 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 }}{% if not env == member.environment_roles[-1]%},{% endif %} {% endfor %} {% if member.role_status == 'pending' %} Resend Invite
Revoke Invite {% endif %}
{% if user_can(permissions.CREATE_APPLICATION_MEMBER) %} {% import "fragments/applications/new_member_modal_content.html" as member_steps %} {{ MultiStepModalForm( name=new_member_modal_name, form=new_member_form, form_action=url_for("applications.create_member", application_id=application.id), steps=[ member_steps.MemberStepOne(new_member_form), member_steps.MemberStepTwo(new_member_form, application) ], ) }} {% endif %}
{% endif %}
{{ 'common.resource_names.environments' | translate }} {% if user_can(permissions.CREATE_ENVIRONMENT) %} {% include "fragments/applications/add_new_environment.html" %} {% endif %}
{% if g.matchesPath("application-environments") %} {% include "fragments/flash.html" %} {% endif %}
    {% for env in environments_obj %} {% set edit_form = env['edit_form'] %} {% set testing_env_name = 'qa' %}
  • {{ env['name'] }} {% if env['name'].lower() == testing_env_name %} PROCESSING {% endif %} {% if env['name'].lower() != testing_env_name %} {% set edit_environment_button %} {{ Icon('edit') }} {% endset %} {{ ToggleButton( open_html=edit_environment_button, close_html=edit_environment_button, section_name="edit" ) }} {% endif %} {% set members_button = "portfolios.applications.member_count" | translate({'count': env['member_count']}) %} {{ ToggleButton( open_html=members_button, close_html=members_button, section_name="members" ) }}
    {% if env['name'].lower() == testing_env_name %} Cloud service provider link unavailable {% else %} {{ "portfolios.applications.csp_link" | translate }} {{ Icon('link', classes="icon--tiny") }} {% endif %}
    {% call ToggleSection(section_name="members") %}
      {% for member in env['members'] %}
    • {{ member }}
    • {% endfor %}
    {% endcall %} {% call ToggleSection(section_name="edit") %}
    • {{ edit_form.csrf_token }} {{ TextInput(edit_form.name, validation='requiredField') }} {{ SaveButton( text=("common.save" | translate) ) }}
    {% endcall %}
  • {% endfor %}

{% if user_can(permissions.DELETE_APPLICATION) %} {% set env_count = application.environments | length %} {% if env_count == 1 %} {% set pluralized_env = "environment" %} {% else %} {% set pluralized_env = "environments" %} {% endif %}
{{ "portfolios.applications.delete.subheading" | translate }}
{{ "portfolios.applications.delete.panel_text" | translate({"name": application.name, "env_count": env_count , "pluralized_env": pluralized_env}) | safe }}
{% call Modal(name="delete-application") %}

{{ "portfolios.applications.delete.header" | translate }}

{{ Alert( title=("components.modal.destructive_title" | translate), message=("portfolios.applications.delete.alert.message" | translate), level="warning" ) }} {{ DeleteConfirmation( modal_id="delete_application", delete_text=('portfolios.applications.delete.button' | translate), delete_action= url_for('applications.delete', application_id=application.id), form=application_form ) }} {% endcall %} {% endif %} {% if user_can(permissions.VIEW_APPLICATION_ACTIVITY_LOG) %} {% include "fragments/audit_events_log.html" %} {{ Pagination(audit_events, url=url_for('applications.settings', application_id=application.id)) }} {% endif %} {% endblock %}