Koha/koha-tmpl/intranet-tmpl/prog/js/vue/routes.js
Jonathan Druart 715ce3806d
Bug 32030: Redirect to the Koha home page when "Home" is clicked from the breadcrumb
Signed-off-by: Jonathan Field <jonathan.field@ptfs-europe.com>

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2022-11-08 09:44:13 -03:00

538 lines
22 KiB
JavaScript

import { h } from "vue";
import { RouterView } from "vue-router";
import ERMHome from "./components/ERM/ERMHome.vue";
import AgreementsList from "./components/ERM/AgreementsList.vue";
import AgreementsShow from "./components/ERM/AgreementsShow.vue";
import AgreementsFormAdd from "./components/ERM/AgreementsFormAdd.vue";
import AgreementsFormConfirmDelete from "./components/ERM/AgreementsFormConfirmDelete.vue";
import EHoldingsMain from "./components/ERM/EHoldingsMain.vue";
import EHoldingsLocalHome from "./components/ERM/EHoldingsLocalHome.vue";
import EHoldingsLocalPackagesFormAdd from "./components/ERM/EHoldingsLocalPackagesFormAdd.vue";
import EHoldingsLocalTitlesFormConfirmDelete from "./components/ERM/EHoldingsLocalTitlesFormConfirmDelete.vue";
import EHoldingsLocalTitlesFormAdd from "./components/ERM/EHoldingsLocalTitlesFormAdd.vue";
import EHoldingsLocalPackagesList from "./components/ERM/EHoldingsLocalPackagesList.vue";
import EHoldingsLocalPackagesShow from "./components/ERM/EHoldingsLocalPackagesShow.vue";
import EHoldingsLocalPackagesFormConfirmDelete from "./components/ERM/EHoldingsLocalPackagesFormConfirmDelete.vue";
import EHoldingsLocalResourcesShow from "./components/ERM/EHoldingsLocalResourcesShow.vue";
import EHoldingsLocalTitlesList from "./components/ERM/EHoldingsLocalTitlesList.vue";
import EHoldingsLocalTitlesShow from "./components/ERM/EHoldingsLocalTitlesShow.vue";
import EHoldingsEBSCOHome from "./components/ERM/EHoldingsEBSCOHome.vue";
import EHoldingsEBSCOPackagesList from "./components/ERM/EHoldingsEBSCOPackagesList.vue";
import EHoldingsEBSCOPackagesShow from "./components/ERM/EHoldingsEBSCOPackagesShow.vue";
import EHoldingsEBSCOResourcesShow from "./components/ERM/EHoldingsEBSCOResourcesShow.vue";
import EHoldingsEBSCOTitlesList from "./components/ERM/EHoldingsEBSCOTitlesList.vue";
import EHoldingsEBSCOTitlesShow from "./components/ERM/EHoldingsEBSCOTitlesShow.vue";
import LicensesList from "./components/ERM/LicensesList.vue";
import LicensesShow from "./components/ERM/LicensesShow.vue";
import LicensesFormAdd from "./components/ERM/LicensesFormAdd.vue";
import LicensesFormConfirmDelete from "./components/ERM/LicensesFormConfirmDelete.vue";
const breadcrumbs = {
home: {
text: "Home", // $t("Home")
path: "/cgi-bin/koha/mainpage.pl",
},
erm_home: {
text: "E-Resource management", // $t("E-Resource management")
path: "/cgi-bin/koha/erm/erm.pl",
},
agreements: {
text: "Agreements", // $t("Agreements")
path: "/cgi-bin/koha/erm/agreements",
},
eholdings: {
home: {
text: "eHoldings", // $t("eHoldings")
path: "/cgi-bin/koha/erm/eholdings",
},
local: {
home: {
text: "Local", // $t("Local")
path: "/cgi-bin/koha/erm/eholdings/local",
},
titles: {
text: "Titles", // $t("Titles")
path: "/cgi-bin/koha/erm/eholdings/local/titles",
},
packages: {
text: "Packages", // $t("Packages")
path: "/cgi-bin/koha/erm/eholdings/local/packages",
},
},
ebsco: {
home: {
text: "EBSCO", // $t("EBSCO")
path: "/cgi-bin/koha/erm/eholdings/ebsco",
},
titles: {
text: "Titles", // $t("Titles")
path: "/cgi-bin/koha/erm/eholdings/ebsco/titles",
},
packages: {
text: "Packages", // $t("Packages")
path: "/cgi-bin/koha/erm/eholdings/ebsco/packages",
},
},
},
licenses: {
text: "Licenses", // $t("Licenses")
path: "/cgi-bin/koha/erm/licenses",
},
};
const breadcrumb_paths = {
agreements: [
breadcrumbs.home,
breadcrumbs.erm_home,
breadcrumbs.agreements,
],
eholdings: [
breadcrumbs.home,
breadcrumbs.erm_home,
breadcrumbs.eholdings.home,
],
eholdings_local: [
breadcrumbs.home,
breadcrumbs.erm_home,
breadcrumbs.eholdings.home,
breadcrumbs.eholdings.local.home,
],
eholdings_ebsco: [
breadcrumbs.home,
breadcrumbs.erm_home,
breadcrumbs.eholdings.home,
breadcrumbs.eholdings.ebsco.home,
],
licenses: [breadcrumbs.home, breadcrumbs.erm_home, breadcrumbs.licenses],
};
function build_breadcrumb(parent_breadcrumb, current) {
let breadcrumb = parent_breadcrumb.flat(Infinity);
if (current) {
breadcrumb.push({
text: current,
});
}
return breadcrumb;
}
export const routes = [
{
path: "/cgi-bin/koha/mainpage.pl",
beforeEnter(to, from, next) {
window.location.href = "/cgi-bin/koha/mainpage.pl";
},
},
{
path: "/cgi-bin/koha/erm/erm.pl",
component: ERMHome,
meta: {
breadcrumb: () => [breadcrumbs.home, breadcrumbs.erm_home],
},
},
{
path: "/cgi-bin/koha/erm/agreements",
component: { render: () => h(RouterView) },
children: [
{
path: "",
component: AgreementsList,
meta: {
breadcrumb: () => breadcrumb_paths.agreements,
},
},
{
path: ":agreement_id",
component: AgreementsShow,
meta: {
breadcrumb: () =>
build_breadcrumb(
breadcrumb_paths.agreements,
"Show agreement" // $t("Show agreement")
),
},
},
{
path: "delete/:agreement_id",
component: AgreementsFormConfirmDelete,
meta: {
breadcrumb: () =>
build_breadcrumb(
breadcrumb_paths.agreements,
"Delete agreement" // $t("Delete agreement")
),
},
},
{
path: "add",
component: AgreementsFormAdd,
meta: {
breadcrumb: () =>
build_breadcrumb(
breadcrumb_paths.agreements,
"Add agreement" // $t("Add agreement")
),
},
},
{
path: "edit/:agreement_id",
component: AgreementsFormAdd,
meta: {
breadcrumb: () =>
build_breadcrumb(
breadcrumb_paths.agreements,
"Edit agreement" // $t("Edit agreement")
),
},
},
],
},
{
path: "/cgi-bin/koha/erm/eholdings",
component: { render: () => h(RouterView) },
meta: {
breadcrumb: () => breadcrumb_paths.eholdings,
},
children: [
{
path: "",
component: EHoldingsMain,
meta: {
breadcrumb: () => breadcrumb_paths.eholdings,
},
},
{
path: "local",
component: { render: () => h(RouterView) },
children: [
{
path: "",
component: EHoldingsLocalHome,
meta: {
breadcrumb: () => breadcrumb_paths.eholdings_local,
},
},
{
path: "packages",
component: { render: () => h(RouterView) },
children: [
{
path: "",
component: EHoldingsLocalPackagesList,
meta: {
breadcrumb: () =>
build_breadcrumb([
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.packages,
]),
},
},
{
path: ":package_id",
component: EHoldingsLocalPackagesShow,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.packages,
],
"Show package" // $t("Show package")
),
},
},
{
path: "delete/:package_id",
component:
EHoldingsLocalPackagesFormConfirmDelete,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.packages,
],
"Delete package" // $t("Delete package")
),
},
},
{
path: "add",
component: EHoldingsLocalPackagesFormAdd,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.packages,
],
"Add package" // $t("Add package")
),
},
},
{
path: "edit/:package_id",
component: EHoldingsLocalPackagesFormAdd,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.packages,
],
"Edit package" // $t("Edit package")
),
},
},
],
},
{
path: "titles",
component: { render: () => h(RouterView) },
children: [
{
path: "",
component: EHoldingsLocalTitlesList,
meta: {
breadcrumb: () =>
build_breadcrumb([
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local.titles,
]),
},
},
{
path: ":title_id",
component: EHoldingsLocalTitlesShow,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.titles,
],
"Show title" // $t("Show title")
),
},
},
{
path: "delete/:title_id",
component:
EHoldingsLocalTitlesFormConfirmDelete,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.titles,
],
"Delete title" // $t("Delete title")
),
},
},
{
path: "add",
component: EHoldingsLocalTitlesFormAdd,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.titles,
],
"Add title" // $t("Add title")
),
},
},
{
path: "edit/:title_id",
component: EHoldingsLocalTitlesFormAdd,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.titles,
],
"Edit title" // $t("Edit title")
),
},
},
],
},
{
path: "resources/:resource_id",
component: EHoldingsLocalResourcesShow,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local.titles,
],
"Resource" // $t("Resource")
),
},
},
],
},
{
path: "ebsco",
component: { render: () => h(RouterView) },
children: [
{
path: "",
component: EHoldingsEBSCOHome,
meta: {
breadcrumb: () => breadcrumb_paths.eholdings_ebsco,
},
},
{
path: "packages",
component: { render: () => h(RouterView) },
children: [
{
path: "",
component: EHoldingsEBSCOPackagesList,
meta: {
breadcrumb: () =>
build_breadcrumb([
breadcrumb_paths.eholdings_ebsco,
breadcrumbs.eholdings.ebsco
.packages,
]),
},
},
{
path: ":package_id",
component: EHoldingsEBSCOPackagesShow,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_ebsco,
breadcrumbs.eholdings.ebsco
.packages,
],
"Show package" // $t("Show package")
),
},
},
],
},
{
path: "titles",
component: { render: () => h(RouterView) },
children: [
{
path: "",
component: EHoldingsEBSCOTitlesList,
meta: {
breadcrumb: () =>
build_breadcrumb([
breadcrumb_paths.eholdings_ebsco,
breadcrumbs.eholdings.ebsco.titles,
]),
},
},
{
path: ":title_id",
component: EHoldingsEBSCOTitlesShow,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_ebsco,
breadcrumbs.eholdings.ebsco
.titles,
],
"Show title" // $t("Show title")
),
},
},
],
},
{
path: "resources/:resource_id",
component: EHoldingsEBSCOResourcesShow,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_ebsco,
breadcrumbs.eholdings.ebsco.titles,
],
"Resource" // $t("Resource")
),
},
},
],
},
],
},
{
path: "/cgi-bin/koha/erm/licenses",
component: { render: () => h(RouterView) },
children: [
{
path: "",
component: LicensesList,
meta: {
breadcrumb: () => breadcrumb_paths.licenses,
},
},
{
path: ":license_id",
component: LicensesShow,
meta: {
breadcrumb: () =>
build_breadcrumb(
breadcrumb_paths.licenses,
"Show license" // $t("Show license")
),
},
},
{
path: "delete/:license_id",
component: LicensesFormConfirmDelete,
meta: {
breadcrumb: () =>
build_breadcrumb(
breadcrumb_paths.licenses,
"Delete license" // $t("Delete license")
),
},
},
{
path: "add",
component: LicensesFormAdd,
meta: {
breadcrumb: () =>
build_breadcrumb(
breadcrumb_paths.licenses,
"Add license" // $t("Add license")
),
},
},
{
path: "edit/:license_id",
component: LicensesFormAdd,
meta: {
breadcrumb: () =>
build_breadcrumb(
breadcrumb_paths.licenses,
"Edit license" // $t("Edit license")
),
},
},
],
},
];