161 lines
6.4 KiB
HTML
161 lines
6.4 KiB
HTML
{% extends "portfolios/base.html" %}
|
|
|
|
{% set secondary_breadcrumb = "navigation.portfolio_navigation.breadcrumbs.funding" | translate %}
|
|
|
|
{% from "components/checkbox_input.html" import CheckboxInput %}
|
|
{% from "components/icon.html" import Icon %}
|
|
{% from "components/text_input.html" import TextInput %}
|
|
|
|
{% macro Link(text, icon_name, onClick=None, url='#', classes='') %}
|
|
<a href="{{ url }}" {% if onClick %}v-on:click="{{ onClick }}"{% endif %} class="icon-link {{ classes }}">
|
|
{{ Icon(icon_name) }}
|
|
<span>{{ text }}</span>
|
|
</a>
|
|
{% endmacro %}
|
|
|
|
{% macro EditOfficerInfo(form, officer_type, invited) -%}
|
|
<template v-if="editing">
|
|
<div class='officer__form'>
|
|
<div class="edit-officer">
|
|
<h4>{{ ("task_orders.invitations." + officer_type + ".edit_title") | translate}}</h4>
|
|
</div>
|
|
<div class='form-row'>
|
|
<div class='form-col form-col--half'>
|
|
{{ TextInput(form.first_name) }}
|
|
</div>
|
|
|
|
<div class='form-col form-col--half'>
|
|
{{ TextInput(form.last_name) }}
|
|
</div>
|
|
</div>
|
|
|
|
<div class='form-row'>
|
|
<div class='form-col form-col--half'>
|
|
{{ TextInput(form.email, placeholder='name@mail.mil', validation='email') }}
|
|
</div>
|
|
|
|
<div class='form-col form-col--half'>
|
|
{{ TextInput(form.phone_number, placeholder='(123) 456-7890', validation='usPhone') }}
|
|
</div>
|
|
</div>
|
|
<div class='form-row officer__form--dodId'>
|
|
<div class="form-col">
|
|
{% if not invited %}
|
|
<div class='form-row'>
|
|
{{ CheckboxInput(form.invite, label=(("forms.officers." + officer_type + "_invite") | translate)) }}
|
|
</div>
|
|
{% endif %}
|
|
<div class='form-row'>
|
|
{{ TextInput(form.dod_id, tooltip="task_orders.new.oversight.dod_id_tooltip" | translate, tooltip_title='Why', validation='dodId', disabled=invited)}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class='alert__actions officer__form--actions'>
|
|
<a href="#{{ officer_type }}" v-on:click="cancel" class="icon-link">
|
|
{{ Icon("x") }}
|
|
<span>Cancel</span>
|
|
</a>
|
|
<input type='submit' class='usa-button usa-button-primary' value='Save Changes' />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
{% endmacro %}
|
|
|
|
{% macro OfficerInfo(task_order, officer_type, form) %}
|
|
<div class="panel__content officer" id="{{ officer_type }}">
|
|
<h2 class="officer__title">{{ ("task_orders.invitations." + officer_type + ".title") | translate }}</h2>
|
|
<p class="officer__description">{{ ("task_orders.invitations." + officer_type + ".description") | translate }}</p>
|
|
|
|
<edit-officer-form v-bind:has-errors='{{ ((form.errors|length) > 0)|tojson }}' v-bind:has-changes='{{ form.has_changes() | tojson }}' inline-template>
|
|
<div>
|
|
|
|
{% set prefix = { "contracting_officer": "ko", "contracting_officer_representative": "cor", "security_officer": "so" }[officer_type] %}
|
|
{% set first_name = task_order[prefix + "_first_name"] %}
|
|
{% set last_name = task_order[prefix + "_last_name"] %}
|
|
{% set email = task_order[prefix + "_email"] %}
|
|
{% set phone_number = task_order[prefix + "_phone_number"] %}
|
|
{% set dod_id = task_order[prefix + "_dod_id"] %}
|
|
{% set invited = False %}
|
|
|
|
|
|
{% if task_order[officer_type] %}
|
|
{% set invited = True %}
|
|
<div class="officer__info">
|
|
<div class="row">
|
|
<div class="officer__info--name">{{ first_name }} {{ last_name }}</div>
|
|
<div class="officer__info--status invited">
|
|
<span>{{ Icon("ok", classes="invited") }}</span>
|
|
<span class="status-text">Invited</span>
|
|
</div>
|
|
</div>
|
|
<p class="officer__info--email">{{ email }}</p>
|
|
<p class="officer__info--phone">{{ phone_number | usPhone }}</p>
|
|
<p class="officer__info--dod_id">{{ "task_orders.invitations.dod_id_label" | translate}}: {{ dod_id }}</p>
|
|
</div>
|
|
<div class="officer__actions">
|
|
{{ Link("Update", "edit", onClick="edit") }}
|
|
{{ Link("Resend Invitation", "avatar") }}
|
|
{{ Link("Remove", "trash", classes="remove") }}
|
|
</div>
|
|
{% elif first_name and last_name %}
|
|
<div class="officer__info">
|
|
<div class="row">
|
|
<div class="officer__info--name">{{ first_name }} {{ last_name }}</div>
|
|
<div class="officer__info--status uninvited">
|
|
<span>{{ Icon("alert", classes="uninvited") }}</span>
|
|
<span class="status-text">Not Invited</span>
|
|
</div>
|
|
</div>
|
|
<p class="officer__info--email">{{ email }}</p>
|
|
<p class="officer__info--phone">{{ phone_number | usPhone }}</p>
|
|
</div>
|
|
<div class="officer__actions">
|
|
{{ Link("Update", "edit", onClick="edit") }}
|
|
{{ Link("Remove", "trash", classes="remove") }}
|
|
<button v-if="!editing" type='button' class='usa-button usa-button-primary' v-on:click="edit">
|
|
{{ ("task_orders.invitations." + officer_type + ".invite_button_text") | translate }}
|
|
</button>
|
|
</div>
|
|
{% else %}
|
|
<div class="officer__info">
|
|
<div class="officer__info--status uninvited">
|
|
<span>{{ Icon("alert", classes="uninvited") }}</span>
|
|
Not specified
|
|
</div>
|
|
</div>
|
|
<div class="officer__actions">
|
|
<button v-if="!editing" type='button' class='usa-button usa-button-primary' v-on:click="edit">
|
|
{{ ("task_orders.invitations." + officer_type + ".add_button_text") | translate }}
|
|
</button>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{{ EditOfficerInfo(form, officer_type, invited) }}
|
|
</div>
|
|
</edit-officer-form>
|
|
</div>
|
|
{% endmacro %}
|
|
|
|
{% block portfolio_content %}
|
|
<div class="task-order-invitations">
|
|
{% include "fragments/flash.html" %}
|
|
|
|
<form method='POST' action="{{ url_for("portfolios.edit_task_order_invitations", portfolio_id=portfolio.id, task_order_id=task_order.id) }}" autocomplete="off">
|
|
{{ form.csrf_token }}
|
|
|
|
<div class="panel">
|
|
<div class="panel__heading">
|
|
<h1 class="task-order-invitations__heading subheading">
|
|
<div class="h2">Edit Task Order</div>
|
|
Oversight
|
|
</h1>
|
|
</div>
|
|
|
|
{% for officer in ["contracting_officer", "contracting_officer_representative", "security_officer"] %}
|
|
{{ OfficerInfo(task_order, officer, form[officer]) }}
|
|
{% endfor %}
|
|
</div>
|
|
</form>
|
|
</div>
|
|
{% endblock %}
|