diff --git a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/AccordionView/index.jsx b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/AccordionView/index.jsx
index 140ee20f19..1434e31b9a 100644
--- a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/AccordionView/index.jsx
+++ b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/AccordionView/index.jsx
@@ -4,10 +4,7 @@ import React, { useContext } from "react";
import styled from "styled-components";
import { AppContext } from "../../../../../core/context";
-import {
- degreeDataPropResolverService,
- parseMajorInfoLink,
-} from "../../../../../core/services";
+import { degreeDataPropResolverService } from "../../../../../core/services";
import { accellerateDegreeLink } from "../../../../../core/services/degree-http-service";
import { toTitleCase } from "../../../../../core/utils";
import { degreeListPropTypes } from "../programs-prop-types";
@@ -96,7 +93,7 @@ const AccordionView = ({ programs, actionUrls }) => {
Major:
-
+
${resolver.getMajorDesc()}
diff --git a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/GridView/index.jsx b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/GridView/index.jsx
index 7cc5a3d573..d6d828f997 100644
--- a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/GridView/index.jsx
+++ b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/GridView/index.jsx
@@ -5,10 +5,7 @@ import React, { useContext } from "react";
import { AppContext } from "../../../../../core/context";
import { GRID_PROGRAMS_ID } from "../../../../../core/models";
import { degreeDataPropResolverService } from "../../../../../core/services";
-import {
- parseMajorInfoLink,
- requestInfoLink,
-} from "../../../../../core/services/degree-http-service";
+import { requestInfoLink } from "../../../../../core/services/degree-http-service";
import { degreeListPropTypes } from "../programs-prop-types";
import { SectionCard } from "./index.style";
/**
@@ -42,7 +39,7 @@ function GridView({ programs, loading, actionUrls }) {
imageAltText="An example image"
title={resolver.getMajorDesc()}
linkLabel="View Program Details"
- linkUrl={parseMajorInfoLink(resolver, actionUrls.majorInfoUrl)}
+ linkUrl={resolver.getDegreeSearchUrl()}
buttons={[
{
color: "maroon",
diff --git a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/ListView/index.colums.config.jsx b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/ListView/index.colums.config.jsx
index 9d10ad93b6..49581f75cc 100644
--- a/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/ListView/index.colums.config.jsx
+++ b/packages/app-degree-pages/src/components/ListingPage/components/ProgramList/ListView/index.colums.config.jsx
@@ -10,7 +10,6 @@ import {
} from "../../../../../core/components/icons";
import { getFullCampusLocalText } from "../../../../../core/models";
import {
- parseMajorInfoLink,
accellerateDegreeTooltipLink, // TODO: this link needs a double check
mapTooltipLink,
accellerateDegreeLink,
@@ -29,7 +28,7 @@ const columns = [
sortable: true,
contentTemplate: ({ resolver, rowIndex, actionUrls, onClick }) => (
-
+
{resolver.getMajorDesc()}
+
+ {breadcrumbs.map(bread =>
+ bread?.isActive ? (
+ -
+
+ trackGAEvent({
+ event: "link",
+ action: "click",
+ name: "onclick",
+ type: "internal link",
+ region: "main content",
+ section,
+ text: bread.text,
+ })
+ }
+ >
+ {bread.text}
+
+
+ ) : (
+ -
+
+ trackGAEvent({
+ event: "link",
+ action: "click",
+ name: "onclick",
+ type: "internal link",
+ region: "main content",
+ section,
+ text: bread.text,
+ })
+ }
+ >
+ {bread.text}
+
+
+ )
+ )}
+
+
+ )
+ );
+}
+
+Breadcrumbs.propTypes = {
+ breadcrumbs: PropTypes.arrayOf(linkPropShape),
+ section: PropTypes.string,
+};
+
+export { Breadcrumbs };
diff --git a/packages/app-degree-pages/src/core/components/index.js b/packages/app-degree-pages/src/core/components/index.js
index eb58c78372..54ec08507f 100644
--- a/packages/app-degree-pages/src/core/components/index.js
+++ b/packages/app-degree-pages/src/core/components/index.js
@@ -7,3 +7,4 @@ export * from "./OverlapContentImage";
export * from "./ParagrapList";
export * from "./Styles";
export * from "./icons";
+export * from "./Breadcrumbs";
diff --git a/packages/app-degree-pages/src/core/services/degree-data-prop-resolver-service.jsx b/packages/app-degree-pages/src/core/services/degree-data-prop-resolver-service.jsx
index b8b66f5d45..90b0102707 100644
--- a/packages/app-degree-pages/src/core/services/degree-data-prop-resolver-service.jsx
+++ b/packages/app-degree-pages/src/core/services/degree-data-prop-resolver-service.jsx
@@ -85,6 +85,24 @@ function degreeDataPropResolverService(row = {}) {
getInstitution: () => "ASU00",
getAcadPlan: () => row["acadPlanCode"],
/** @returns {string} */
+ getDegreeSearchUrl: () => {
+ const degreeType = row["degreeType"];
+ const planCode = row["acadPlanCode"];
+
+ if (!planCode || !degreeType) return "";
+
+ const programTypeMap = {
+ UG: "bachelors",
+ GR: "masters-phd",
+ UGCM: "minors",
+ };
+
+ const programTypePath = programTypeMap[degreeType];
+
+ if (!programTypePath) return "";
+
+ return `https://degrees.apps.asu.edu/${programTypePath}/major/ASU00/${planCode}`;
+ },
getDegree: () => {
// Minors
let degree =
diff --git a/packages/app-degree-pages/src/index.js b/packages/app-degree-pages/src/index.js
index c939ea2d95..f0935db386 100644
--- a/packages/app-degree-pages/src/index.js
+++ b/packages/app-degree-pages/src/index.js
@@ -3,5 +3,4 @@
export * from "./components";
export {
initListingPage,
- initProgramDetailPage,
} from "./core/utils/init-page-degree";