From e14fb94d1f1b0360293c84087a5075867495b9dc Mon Sep 17 00:00:00 2001 From: Jeff Peterson <1045033+gpeterso@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:55:44 -0600 Subject: [PATCH] Disable Rapido 'not found' links (#6) Conditionally hide the Rapido search results banner so that it does not display links to the resource sharing request form. --- cypress/e2e/search-results.cy.ts | 17 +++++++++++++- .../search/full-view/full-view.module.ts | 3 ++- .../components/search/full-view/ngrs/index.ts | 1 + .../search/full-view/ngrs/ngrs.module.ts | 8 +++++++ ...prm-ngrs-results-button-after.component.ts | 22 +++++++++++++++++++ 5 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 src/shared/components/search/full-view/ngrs/index.ts create mode 100644 src/shared/components/search/full-view/ngrs/ngrs.module.ts create mode 100644 src/shared/components/search/full-view/ngrs/prm-ngrs-results-button-after.component.ts diff --git a/cypress/e2e/search-results.cy.ts b/cypress/e2e/search-results.cy.ts index 273cf96..d2eb9ed 100644 --- a/cypress/e2e/search-results.cy.ts +++ b/cypress/e2e/search-results.cy.ts @@ -1,5 +1,5 @@ import { SearchPage } from "../pages"; -import { inViews } from "../support/e2e"; +import { inViews, inAllViews } from "../support/e2e"; import { View } from "@src/view-code"; // TODO: ArchivesSpace availability? @@ -7,6 +7,21 @@ import { View } from "@src/view-code"; describe("Search Results", () => { let page: SearchPage; + inAllViews((view) => { + before(() => { + page = new SearchPage(view); + page.visit(); + }); + + it("does not display the Rapido 'still not found' link", () => { + page.searchFor("baseball"); + cy.get("prm-search-result-list").should("be.visible"); + cy.get("prm-ngrs-results-button button#ill-request-link").should( + "not.exist" + ); + }); + }); + inViews([View.TWINCITIES, View.DULUTH, View.MORRIS], (view) => { before(() => { page = new SearchPage(view); diff --git a/src/shared/components/search/full-view/full-view.module.ts b/src/shared/components/search/full-view/full-view.module.ts index e584d56..ef23007 100644 --- a/src/shared/components/search/full-view/full-view.module.ts +++ b/src/shared/components/search/full-view/full-view.module.ts @@ -2,8 +2,9 @@ import "./full-view.scss"; import "./recommendations.scss"; import { GetItModule } from "./get-it"; +import { NgrsModule } from "./ngrs"; import { PrmServiceDetailsAfterComponent } from "./prm-service-details-after.component"; export const FullViewModule = angular - .module("fullView", [GetItModule]) + .module("fullView", [GetItModule, NgrsModule]) .component("prmServiceDetailsAfter", PrmServiceDetailsAfterComponent).name; diff --git a/src/shared/components/search/full-view/ngrs/index.ts b/src/shared/components/search/full-view/ngrs/index.ts new file mode 100644 index 0000000..6d9d46c --- /dev/null +++ b/src/shared/components/search/full-view/ngrs/index.ts @@ -0,0 +1 @@ +export * from "./ngrs.module"; diff --git a/src/shared/components/search/full-view/ngrs/ngrs.module.ts b/src/shared/components/search/full-view/ngrs/ngrs.module.ts new file mode 100644 index 0000000..475cf81 --- /dev/null +++ b/src/shared/components/search/full-view/ngrs/ngrs.module.ts @@ -0,0 +1,8 @@ +import { PrmNgrsResultsButtonAfterComponent } from "./prm-ngrs-results-button-after.component"; + +export const NgrsModule = angular + .module("ngrs", []) + .component( + "prmNgrsResultsButtonAfter", + PrmNgrsResultsButtonAfterComponent + ).name; diff --git a/src/shared/components/search/full-view/ngrs/prm-ngrs-results-button-after.component.ts b/src/shared/components/search/full-view/ngrs/prm-ngrs-results-button-after.component.ts new file mode 100644 index 0000000..8ea48c3 --- /dev/null +++ b/src/shared/components/search/full-view/ngrs/prm-ngrs-results-button-after.component.ts @@ -0,0 +1,22 @@ +class PrmNgrsResultsButtonAfterController implements ng.IController { + private parentCtrl: ng.IController; + + $onInit(): void { + this.disableStillNotFoundLink(); + } + + /** + * By default, Rapido will display a link to a blank resource sharing + * request form. This disables the link. + */ + private disableStillNotFoundLink(): void { + if (this.parentCtrl.isStillNotFoundRequired()) { + this.parentCtrl.isRapidoLinksTileRequired = () => false; + } + } +} + +export const PrmNgrsResultsButtonAfterComponent: ng.IComponentOptions = { + controller: PrmNgrsResultsButtonAfterController, + bindings: { parentCtrl: "<" }, +};