93 lines
4.0 KiB
HTML
93 lines
4.0 KiB
HTML
{% from "components/icon.html" import Icon %}
|
||
{% from "components/empty_state.html" import EmptyState %}
|
||
|
||
{% extends "portfolios/base.html" %}
|
||
|
||
{% set can_create_applications = user_can(permissions.ADD_APPLICATION_IN_PORTFOLIO) %}
|
||
|
||
{% block portfolio_content %}
|
||
|
||
<div class='portfolio-applications'>
|
||
<div class='portfolio-applications__header row'>
|
||
<div class='portfolio-applications__header--title col col--grow'>Applications</div>
|
||
<div class='portfolio-applications__header--actions col'>
|
||
{% if can_create_applications %}
|
||
<a class='icon-link' href='{{ url_for('portfolios.new_application', portfolio_id=portfolio.id) }}'>
|
||
{{ 'portfolios.applications.add_application_text' | translate }}
|
||
{{ Icon("plus", classes="sidenav__link-icon icon--circle") }}
|
||
</a>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
|
||
{% if not portfolio.applications %}
|
||
|
||
{{ EmptyState(
|
||
'This portfolio doesn’t have any applications yet.',
|
||
action_label='Add a New Application' if can_create_applications else None,
|
||
action_href=url_for('portfolios.new_application', portfolio_id=portfolio.id) if can_create_applications else None,
|
||
icon='cloud',
|
||
sub_message=None if can_create_applications else 'Please contact your JEDI Cloud portfolio administrator to set up a new application.'
|
||
) }}
|
||
|
||
{% else %}
|
||
|
||
<div class='application-list'>
|
||
{% for application in portfolio.applications|sort(attribute='name') %}
|
||
<div is='toggler' v-cloak class='accordian application-list-item'>
|
||
<template slot-scope='props'>
|
||
<header class='accordian__header row'>
|
||
<div class='col col-grow'>
|
||
<h3 class='icon-link accordian__title' v-on:click="props.toggle">{{ application.name }}</h3>
|
||
<span class='accordian__description'>{{ application.description }}</span>
|
||
<div class='accordian__actions'>
|
||
{% if user_can(permissions.RENAME_APPLICATION_IN_PORTFOLIO) %}
|
||
<a class='icon-link' href='{{ url_for("portfolios.edit_application", portfolio_id=portfolio.id, application_id=application.id) }}'>
|
||
<span>{{ "portfolios.applications.app_settings_text" | translate }}</span>
|
||
</a>
|
||
<div class='separator'></div>
|
||
{% endif %}
|
||
{% if user_can(permissions.VIEW_PORTFOLIO_MEMBERS) %}
|
||
<a class='icon-link' href='{{ url_for("portfolios.application_members", portfolio_id=portfolio.id, application_id=application.id) }}'>
|
||
<span>{{ "portfolios.applications.team_text" | translate }}</span>
|
||
<span class='counter'>{{ application.num_users }}</span>
|
||
</a>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
<div class='col'>
|
||
<span v-on:click="props.toggle" class='icon-link toggle-link'>
|
||
<template v-if="props.isVisible">
|
||
{{ Icon('minus') }}
|
||
</template>
|
||
<template v-else>
|
||
{{ Icon('plus') }}
|
||
</template>
|
||
</span>
|
||
</div>
|
||
</header>
|
||
<ul v-if="props.isVisible">
|
||
{% for environment in application.environments %}
|
||
<li class='accordian__item application-list-item__environment'>
|
||
<div class='application-list-item__environment__name'>
|
||
<span>{{ environment.name }}</span>
|
||
</div>
|
||
|
||
<a href='{{ url_for("portfolios.access_environment", portfolio_id=portfolio.id, environment_id=environment.id)}}' target='_blank' rel='noopener noreferrer' class='application-list-item__environment__csp_link icon-link'>
|
||
<span>{{ "portfolios.applications.csp_console_text" | translate }}</span>
|
||
</a>
|
||
|
||
</li>
|
||
{% endfor %}
|
||
</ul>
|
||
</template>
|
||
</div>
|
||
{% endfor %}
|
||
</div>
|
||
|
||
{% endif %}
|
||
|
||
</div>
|
||
|
||
{% endblock %}
|