diff --git a/app/views/supplemental_claims/edit.html.erb b/app/views/supplemental_claims/edit.html.erb index bf8d611f463..833453bad1a 100644 --- a/app/views/supplemental_claims/edit.html.erb +++ b/app/views/supplemental_claims/edit.html.erb @@ -7,6 +7,7 @@ userCanEditIntakeIssues: current_user.can_edit_intake_issues?, userCanRequestIssueUpdates: current_user.can_request_for_issue_updates?, userIsVhaAdmin: current_user.vha_business_line_admin_user?, + isRemand: supplemental_claim.is_a?(Remand), dropdownUrls: dropdown_urls, applicationUrls: application_urls, feedbackUrl: feedback_url, diff --git a/client/COPY.json b/client/COPY.json index 5735eec2290..4f0b460e5eb 100644 --- a/client/COPY.json +++ b/client/COPY.json @@ -1,4 +1,3 @@ - { "CASE_SEARCH_HOME_PAGE_HEADING": "Veteran Case Search", "CASE_SEARCH_INPUT_PLACEHOLDER": "Enter a file number, SSN, or AMA docket number", @@ -1516,5 +1515,6 @@ } }, "VHA_BANNER_DISPOSITIONS_CANNOT_BE_UPDATED_NON_ADMIN": "Requests for issue modifications have been submitted for this case. Dispositions cannot be made until a VHA admin completes review of the requested changes.", - "VHA_BANNER_DISPOSITIONS_CANNOT_BE_UPDATED_ADMIN": "Requests for issue modifications have been submitted for this case. Dispositions cannot be made until a VHA admin completes review of the requested changes. Click the \"Edit issues\" button above to review the issue modification requests." + "VHA_BANNER_DISPOSITIONS_CANNOT_BE_UPDATED_ADMIN": "Requests for issue modifications have been submitted for this case. Dispositions cannot be made until a VHA admin completes review of the requested changes. Click the \"Edit issues\" button above to review the issue modification requests.", + "REMANDS_NOT_EDITABLE": "Remands can not be edited." } diff --git a/client/app/intake/pages/addIssues/addIssues.jsx b/client/app/intake/pages/addIssues/addIssues.jsx index 39e7d267d44..3ac7d848f5e 100644 --- a/client/app/intake/pages/addIssues/addIssues.jsx +++ b/client/app/intake/pages/addIssues/addIssues.jsx @@ -328,6 +328,7 @@ class AddIssuesPage extends React.Component { userIsVhaAdmin, userCanSplitAppeal, userCanRequestIssueUpdates, + isRemand, isLegacy, pendingIssueModificationRequests, } = this.props; @@ -423,6 +424,7 @@ class AddIssuesPage extends React.Component { const showRequestIssueUpdateOptions = editPage && userCanRequestIssueUpdates && !originalIssuesHaveNoDecisionDate() && + !isRemand && intakeData.benefitType === 'vha'; const disableIssueActions = editPage && @@ -854,6 +856,8 @@ class AddIssuesPage extends React.Component { {editPage && this.establishmentCredits()} + {editPage && isRemand ? : null} + {!_.isEmpty(issuesPendingWithdrawal) && ( @@ -957,6 +961,7 @@ export const EditAddIssuesPage = connect( userIsVhaAdmin: state.userIsVhaAdmin, userCanSplitAppeal: state.userCanSplitAppeal, userCanRequestIssueUpdates: state.userCanRequestIssueUpdates, + isRemand: state.isRemand, isLegacy: state.isLegacy, }), (dispatch) => diff --git a/client/app/intakeEdit/components/EditButtons.jsx b/client/app/intakeEdit/components/EditButtons.jsx index a624f79f56b..f97d0c5cac6 100644 --- a/client/app/intakeEdit/components/EditButtons.jsx +++ b/client/app/intakeEdit/components/EditButtons.jsx @@ -164,6 +164,7 @@ class SaveButtonUnconnected extends React.Component { benefitType, pendingIssueModificationRequests, originalPendingIssueModificationRequests, + isRemand, openIssueModificationRequests } = this.props; @@ -190,7 +191,7 @@ class SaveButtonUnconnected extends React.Component { const saveDisabled = (_.isEqual(addedIssues, originalIssues) && _.isEqual(pendingIssueModificationRequests, originalPendingIssueModificationRequests)) || invalidVeteran || - !withdrawDateValid || hasPendingAdditionRequests; + !withdrawDateValid || hasPendingAdditionRequests || isRemand; let saveButtonText; @@ -301,6 +302,7 @@ SaveButtonUnconnected.propTypes = { specialtyCaseTeamDistribution: PropTypes.bool, pendingIssueModificationRequests: PropTypes.array, originalPendingIssueModificationRequests: PropTypes.array, + isRemand: PropTypes.bool, openIssueModificationRequests: PropTypes.array, state: PropTypes.shape({ addedIssues: PropTypes.array @@ -325,6 +327,7 @@ const SaveButton = connect( specialtyCaseTeamDistribution: state.featureToggles.specialtyCaseTeamDistribution, pendingIssueModificationRequests: state.pendingIssueModificationRequests, openIssueModificationRequests: getOpenPendingIssueModificationRequests(state), + isRemand: state.isRemand, originalPendingIssueModificationRequests: state.originalPendingIssueModificationRequests, state }), diff --git a/client/app/intakeEdit/reducers/index.js b/client/app/intakeEdit/reducers/index.js index 2da15ad303d..d8efbe63be8 100644 --- a/client/app/intakeEdit/reducers/index.js +++ b/client/app/intakeEdit/reducers/index.js @@ -17,6 +17,7 @@ export const mapDataToInitialState = function(props = {}) { userIsVhaAdmin, userCanSplitAppeal, userCanRequestIssueUpdates, + isRemand, userFullName, userCssId, isLegacy, @@ -47,6 +48,7 @@ export const mapDataToInitialState = function(props = {}) { userIsVhaAdmin, userCanSplitAppeal, userCanRequestIssueUpdates, + isRemand, userCssId, userFullName, isLegacy, diff --git a/client/app/nonComp/components/Disposition.jsx b/client/app/nonComp/components/Disposition.jsx index 4bb4e015ff2..6ad77dbdbd9 100644 --- a/client/app/nonComp/components/Disposition.jsx +++ b/client/app/nonComp/components/Disposition.jsx @@ -177,6 +177,8 @@ class NonCompDispositions extends React.PureComponent { } let editIssuesLink = null; + const editIssuesDisabled = task.type === 'Remand'; + const editIssuesButtonType = editIssuesDisabled ? 'disabled' : 'secondary'; const displayPOAComponent = task.business_line === 'vha'; const displayRequestIssueModification = (!displayPOAComponent || isBusinessLineAdmin); @@ -194,9 +196,17 @@ class NonCompDispositions extends React.PureComponent { ; editIssuesLink = (displayRequestIssueModification) ? - Edit Issues + + Edit Issues + : - Request issue modification + + Request issue modification + ; } @@ -237,6 +247,11 @@ class NonCompDispositions extends React.PureComponent { {isBusinessLineAdmin && decisionHasPendingRequestIssues ? null :
{decisionHeaderText}
} + {editIssuesDisabled ? +
+ + +
: null} {decisionHasPendingRequestIssues ?
diff --git a/spec/feature/intake/supplemental_claim/edit_spec.rb b/spec/feature/intake/supplemental_claim/edit_spec.rb index 3f2df22e705..1aa698d7434 100644 --- a/spec/feature/intake/supplemental_claim/edit_spec.rb +++ b/spec/feature/intake/supplemental_claim/edit_spec.rb @@ -930,5 +930,25 @@ def click_cancel(visit_page) safe_click "#decision-date" expect(page).to have_button("Add this issue", disabled: true) end + + context "with a remand" do + let(:remand) { create(:remand_vha_task, assigned_at: 1.minute.ago) } + + before do + remand.appeal.establish! + end + + let(:edit_url) do + "/supplemental_claims/#{remand.appeal.uuid}/edit" + end + + it "should not allow editing" do + visit edit_url + + expect(page).to have_content(COPY::REMANDS_NOT_EDITABLE) + expect(page).not_to have_css(".cf-select__control") + expect(page).to have_button("Establish", disabled: true) + end + end end end diff --git a/spec/feature/non_comp/dispositions_spec.rb b/spec/feature/non_comp/dispositions_spec.rb index 36fb413bc45..7d270821654 100644 --- a/spec/feature/non_comp/dispositions_spec.rb +++ b/spec/feature/non_comp/dispositions_spec.rb @@ -502,6 +502,28 @@ def find_disabled_disposition(disposition, description = nil) end end end + + context "viewing a remand" do + let(:in_progress_remand_task) do + create(:remand_vha_task, assigned_at: 1.minute.ago) + end + + let(:dispositions_url) { "#{business_line_url}/tasks/#{in_progress_remand_task.id}" } + + it "should disable the request issue modification button" do + visit dispositions_url + + expect(page).to have_css(".usa-button-disabled", text: "Request issue modification") + expect(page).to have_content(COPY::REMANDS_NOT_EDITABLE) + end + + it "should disable the edit issues button" do + User.authenticate!(user: admin_user) + visit dispositions_url + + expect(page).to have_css(".usa-button-disabled", text: "Edit Issues") + end + end end def enable_feature_flag_and_redirect_to_disposition