diff --git a/atst/routes/portfolios/task_orders.py b/atst/routes/portfolios/task_orders.py index 7726fd6c..792d085a 100644 --- a/atst/routes/portfolios/task_orders.py +++ b/atst/routes/portfolios/task_orders.py @@ -109,8 +109,7 @@ def ko_review(portfolio_id, task_order_id): methods=["POST"], ) def resend_invite(portfolio_id, task_order_id, form=None): - form_data = {**http_request.form} - invite_type = form_data["invite_type"][0] + invite_type = http_request.args.get("invite_type") if invite_type not in OFFICER_INVITATIONS: raise NotFoundError("invite_type") diff --git a/js/components/confirmation_popover.js b/js/components/confirmation_popover.js index f58386ce..f771a516 100644 --- a/js/components/confirmation_popover.js +++ b/js/components/confirmation_popover.js @@ -4,10 +4,13 @@ export default { props: { action: String, btn_text: String, + btn_icon: String, + btn_class: String, cancel_btn_text: String, confirm_btn_text: String, confirm_msg: String, csrf_token: String, + name: String, }, template: ` @@ -26,7 +29,10 @@ export default { - + `, } diff --git a/js/components/forms/edit_officer_form.js b/js/components/forms/edit_officer_form.js index 016187bc..dccf4327 100644 --- a/js/components/forms/edit_officer_form.js +++ b/js/components/forms/edit_officer_form.js @@ -1,6 +1,7 @@ import FormMixin from '../../mixins/form' import checkboxinput from '../checkbox_input' import textinput from '../text_input' +import ConfirmationPopover from '../confirmation_popover' export default { name: 'edit-officer-form', @@ -10,6 +11,7 @@ export default { components: { checkboxinput, textinput, + ConfirmationPopover, }, props: { diff --git a/styles/components/_forms.scss b/styles/components/_forms.scss index fd0563d3..f78f2dc3 100644 --- a/styles/components/_forms.scss +++ b/styles/components/_forms.scss @@ -171,6 +171,3 @@ } } -.inline-form { - display: inline-block; -} diff --git a/styles/sections/_task_order.scss b/styles/sections/_task_order.scss index 7a982261..a9d08b69 100644 --- a/styles/sections/_task_order.scss +++ b/styles/sections/_task_order.scss @@ -510,6 +510,10 @@ margin: 0 $gap; } + .v-popover { + display: inline-block; + } + .remove { color: $color-red; .icon { diff --git a/templates/components/confirmation_button.html b/templates/components/confirmation_button.html index 31db3355..dc74ba2c 100644 --- a/templates/components/confirmation_button.html +++ b/templates/components/confirmation_button.html @@ -1,6 +1,16 @@ -{% macro ConfirmationButton(btn_text, action, confirm_msg="Are you sure?", confirm_btn="Confirm", cancel_btn="Cancel") -%} +{% macro ConfirmationButton( + btn_text, + action, + btn_icon=None, + btn_class=None, + confirm_msg="Are you sure?", + confirm_btn="Confirm", + cancel_btn="Cancel") +-%}
{{ Link("Update", "edit", onClick="edit") }} + {% set invite_type = [prefix + "_invite"] %} -
- {{ form.csrf_token }} - - -
+ {{ + ConfirmationButton( + btn_text="Resend Invitation", + action=url_for( + "portfolios.resend_invite", + portfolio_id=portfolio.id, + task_order_id=task_order.id, + invite_type=invite_type, + ), + btn_icon=Icon('avatar'), + btn_class="icon-link", + ) + }} {{ Link("Remove", "trash", classes="remove") }}
diff --git a/tests/routes/portfolios/test_task_orders.py b/tests/routes/portfolios/test_task_orders.py index f90206af..ad93242a 100644 --- a/tests/routes/portfolios/test_task_orders.py +++ b/tests/routes/portfolios/test_task_orders.py @@ -627,9 +627,9 @@ def test_resend_invite_when_ko(app, client, user_session, portfolio, user): "portfolios.resend_invite", portfolio_id=portfolio.id, task_order_id=task_order.id, + invite_type="ko_invite", _external=True, - ), - data={"invite_type": "ko_invite"}, + ) ) assert original_invitation.status == InvitationStatus.REVOKED