Bug 32452: Link basket group on basket summary to basket groups page
[koha.git] / koha-tmpl / intranet-tmpl / prog / js / vue / routes.js
1 import { h } from "vue";
2 import ERMHome from "./components/ERM/ERMHome.vue";
3 import AgreementsList from "./components/ERM/AgreementsList.vue";
4 import AgreementsShow from "./components/ERM/AgreementsShow.vue";
5 import AgreementsFormAdd from "./components/ERM/AgreementsFormAdd.vue";
6 import AgreementsFormConfirmDelete from "./components/ERM/AgreementsFormConfirmDelete.vue";
7 import EHoldingsLocalPackagesFormAdd from "./components/ERM/EHoldingsLocalPackagesFormAdd.vue";
8 import EHoldingsLocalTitlesFormConfirmDelete from "./components/ERM/EHoldingsLocalTitlesFormConfirmDelete.vue";
9 import EHoldingsLocalTitlesFormAdd from "./components/ERM/EHoldingsLocalTitlesFormAdd.vue";
10 import EHoldingsLocalTitlesFormImport from "./components/ERM/EHoldingsLocalTitlesFormImport.vue";
11 import EHoldingsLocalPackagesList from "./components/ERM/EHoldingsLocalPackagesList.vue";
12 import EHoldingsLocalPackagesShow from "./components/ERM/EHoldingsLocalPackagesShow.vue";
13 import EHoldingsLocalPackagesFormConfirmDelete from "./components/ERM/EHoldingsLocalPackagesFormConfirmDelete.vue";
14 import EHoldingsLocalResourcesShow from "./components/ERM/EHoldingsLocalResourcesShow.vue";
15 import EHoldingsLocalTitlesList from "./components/ERM/EHoldingsLocalTitlesList.vue";
16 import EHoldingsLocalTitlesShow from "./components/ERM/EHoldingsLocalTitlesShow.vue";
17 import EHoldingsEBSCOPackagesList from "./components/ERM/EHoldingsEBSCOPackagesList.vue";
18 import EHoldingsEBSCOPackagesShow from "./components/ERM/EHoldingsEBSCOPackagesShow.vue";
19 import EHoldingsEBSCOResourcesShow from "./components/ERM/EHoldingsEBSCOResourcesShow.vue";
20 import EHoldingsEBSCOTitlesList from "./components/ERM/EHoldingsEBSCOTitlesList.vue";
21 import EHoldingsEBSCOTitlesShow from "./components/ERM/EHoldingsEBSCOTitlesShow.vue";
22 import LicensesList from "./components/ERM/LicensesList.vue";
23 import LicensesShow from "./components/ERM/LicensesShow.vue";
24 import LicensesFormAdd from "./components/ERM/LicensesFormAdd.vue";
25 import LicensesFormConfirmDelete from "./components/ERM/LicensesFormConfirmDelete.vue";
26
27 const breadcrumbs = {
28     home: {
29         text: "Home", // $t("Home")
30         path: "/cgi-bin/koha/mainpage.pl",
31     },
32     erm_home: {
33         text: "E-resource management", // $t("E-resource management")
34         path: "/cgi-bin/koha/erm/erm.pl",
35     },
36     agreements: {
37         text: "Agreements", // $t("Agreements")
38         path: "/cgi-bin/koha/erm/agreements",
39     },
40     eholdings: {
41         home: {
42             text: "eHoldings", // $t("eHoldings")
43         },
44         local: {
45             home: {
46                 text: "Local", // $t("Local")
47             },
48             titles: {
49                 text: "Titles", // $t("Titles")
50                 path: "/cgi-bin/koha/erm/eholdings/local/titles",
51             },
52             packages: {
53                 text: "Packages", // $t("Packages")
54                 path: "/cgi-bin/koha/erm/eholdings/local/packages",
55             },
56         },
57         ebsco: {
58             home: {
59                 text: "EBSCO", // $t("EBSCO")
60             },
61             titles: {
62                 text: "Titles", // $t("Titles")
63                 path: "/cgi-bin/koha/erm/eholdings/ebsco/titles",
64             },
65             packages: {
66                 text: "Packages", // $t("Packages")
67                 path: "/cgi-bin/koha/erm/eholdings/ebsco/packages",
68             },
69         },
70     },
71     licenses: {
72         text: "Licenses", // $t("Licenses")
73         path: "/cgi-bin/koha/erm/licenses",
74     },
75 };
76 const breadcrumb_paths = {
77     agreements: [
78         breadcrumbs.home,
79         breadcrumbs.erm_home,
80         breadcrumbs.agreements,
81     ],
82     eholdings: [
83         breadcrumbs.home,
84         breadcrumbs.erm_home,
85         breadcrumbs.eholdings.home,
86     ],
87     eholdings_local: [
88         breadcrumbs.home,
89         breadcrumbs.erm_home,
90         breadcrumbs.eholdings.home,
91         breadcrumbs.eholdings.local.home,
92     ],
93     eholdings_ebsco: [
94         breadcrumbs.home,
95         breadcrumbs.erm_home,
96         breadcrumbs.eholdings.home,
97         breadcrumbs.eholdings.ebsco.home,
98     ],
99     licenses: [breadcrumbs.home, breadcrumbs.erm_home, breadcrumbs.licenses],
100 };
101
102 function build_breadcrumb(parent_breadcrumb, current) {
103     let breadcrumb = parent_breadcrumb.flat(Infinity);
104     if (current) {
105         breadcrumb.push({
106             text: current,
107         });
108     }
109     return breadcrumb;
110 }
111
112 export const routes = [
113     {
114         path: "/cgi-bin/koha/mainpage.pl",
115         beforeEnter(to, from, next) {
116             window.location.href = "/cgi-bin/koha/mainpage.pl";
117         },
118     },
119     {
120         path: "/cgi-bin/koha/admin/background_jobs/:id",
121         beforeEnter(to, from, next) {
122             window.location.href =
123                 "/cgi-bin/koha/admin/background_jobs.pl?op=view&id=" +
124                 to.params.id;
125         },
126     },
127     {
128         path: "/cgi-bin/koha/erm/erm.pl",
129         component: ERMHome,
130         meta: {
131             breadcrumb: () => [breadcrumbs.home, breadcrumbs.erm_home],
132         },
133     },
134     {
135         path: "/cgi-bin/koha/erm/agreements",
136         children: [
137             {
138                 path: "",
139                 component: AgreementsList,
140                 meta: {
141                     breadcrumb: () => breadcrumb_paths.agreements,
142                 },
143             },
144             {
145                 path: ":agreement_id",
146                 component: AgreementsShow,
147                 meta: {
148                     breadcrumb: () =>
149                         build_breadcrumb(
150                             breadcrumb_paths.agreements,
151                             "Show agreement" // $t("Show agreement")
152                         ),
153                 },
154             },
155             {
156                 path: "delete/:agreement_id",
157                 component: AgreementsFormConfirmDelete,
158                 meta: {
159                     breadcrumb: () =>
160                         build_breadcrumb(
161                             breadcrumb_paths.agreements,
162                             "Delete agreement" // $t("Delete agreement")
163                         ),
164                 },
165             },
166             {
167                 path: "add",
168                 component: AgreementsFormAdd,
169                 meta: {
170                     breadcrumb: () =>
171                         build_breadcrumb(
172                             breadcrumb_paths.agreements,
173                             "Add agreement" // $t("Add agreement")
174                         ),
175                 },
176             },
177             {
178                 path: "edit/:agreement_id",
179                 component: AgreementsFormAdd,
180                 meta: {
181                     breadcrumb: () =>
182                         build_breadcrumb(
183                             breadcrumb_paths.agreements,
184                             "Edit agreement" // $t("Edit agreement")
185                         ),
186                 },
187             },
188         ],
189     },
190     {
191         path: "/cgi-bin/koha/erm/eholdings",
192         meta: {
193             breadcrumb: () => breadcrumb_paths.eholdings,
194         },
195         children: [
196             {
197                 path: "",
198                 meta: {
199                     breadcrumb: () => breadcrumb_paths.eholdings,
200                 },
201             },
202             {
203                 path: "local",
204                 children: [
205                     {
206                         path: "",
207                         meta: {
208                             breadcrumb: () => breadcrumb_paths.eholdings_local,
209                         },
210                     },
211                     {
212                         path: "packages",
213                         children: [
214                             {
215                                 path: "",
216                                 component: EHoldingsLocalPackagesList,
217                                 meta: {
218                                     breadcrumb: () =>
219                                         build_breadcrumb([
220                                             breadcrumb_paths.eholdings_local,
221                                             breadcrumbs.eholdings.local
222                                                 .packages,
223                                         ]),
224                                 },
225                             },
226                             {
227                                 path: ":package_id",
228                                 component: EHoldingsLocalPackagesShow,
229                                 meta: {
230                                     breadcrumb: () =>
231                                         build_breadcrumb(
232                                             [
233                                                 breadcrumb_paths.eholdings_local,
234                                                 breadcrumbs.eholdings.local
235                                                     .packages,
236                                             ],
237                                             "Show package" // $t("Show package")
238                                         ),
239                                 },
240                             },
241                             {
242                                 path: "delete/:package_id",
243                                 component:
244                                     EHoldingsLocalPackagesFormConfirmDelete,
245                                 meta: {
246                                     breadcrumb: () =>
247                                         build_breadcrumb(
248                                             [
249                                                 breadcrumb_paths.eholdings_local,
250                                                 breadcrumbs.eholdings.local
251                                                     .packages,
252                                             ],
253                                             "Delete package" // $t("Delete package")
254                                         ),
255                                 },
256                             },
257                             {
258                                 path: "add",
259                                 component: EHoldingsLocalPackagesFormAdd,
260                                 meta: {
261                                     breadcrumb: () =>
262                                         build_breadcrumb(
263                                             [
264                                                 breadcrumb_paths.eholdings_local,
265                                                 breadcrumbs.eholdings.local
266                                                     .packages,
267                                             ],
268                                             "Add package" // $t("Add package")
269                                         ),
270                                 },
271                             },
272                             {
273                                 path: "edit/:package_id",
274                                 component: EHoldingsLocalPackagesFormAdd,
275                                 meta: {
276                                     breadcrumb: () =>
277                                         build_breadcrumb(
278                                             [
279                                                 breadcrumb_paths.eholdings_local,
280                                                 breadcrumbs.eholdings.local
281                                                     .packages,
282                                             ],
283                                             "Edit package" // $t("Edit package")
284                                         ),
285                                 },
286                             },
287                         ],
288                     },
289                     {
290                         path: "titles",
291                         children: [
292                             {
293                                 path: "",
294                                 component: EHoldingsLocalTitlesList,
295                                 meta: {
296                                     breadcrumb: () =>
297                                         build_breadcrumb([
298                                             breadcrumb_paths.eholdings_local,
299                                             breadcrumbs.eholdings.local.titles,
300                                         ]),
301                                 },
302                             },
303                             {
304                                 path: ":title_id",
305                                 component: EHoldingsLocalTitlesShow,
306                                 meta: {
307                                     breadcrumb: () =>
308                                         build_breadcrumb(
309                                             [
310                                                 breadcrumb_paths.eholdings_local,
311                                                 breadcrumbs.eholdings.local
312                                                     .titles,
313                                             ],
314                                             "Show title" // $t("Show title")
315                                         ),
316                                 },
317                             },
318                             {
319                                 path: "delete/:title_id",
320                                 component:
321                                     EHoldingsLocalTitlesFormConfirmDelete,
322                                 meta: {
323                                     breadcrumb: () =>
324                                         build_breadcrumb(
325                                             [
326                                                 breadcrumb_paths.eholdings_local,
327                                                 breadcrumbs.eholdings.local
328                                                     .titles,
329                                             ],
330                                             "Delete title" // $t("Delete title")
331                                         ),
332                                 },
333                             },
334                             {
335                                 path: "add",
336                                 component: EHoldingsLocalTitlesFormAdd,
337                                 meta: {
338                                     breadcrumb: () =>
339                                         build_breadcrumb(
340                                             [
341                                                 breadcrumb_paths.eholdings_local,
342                                                 breadcrumbs.eholdings.local
343                                                     .titles,
344                                             ],
345                                             "Add title" // $t("Add title")
346                                         ),
347                                 },
348                             },
349                             {
350                                 path: "edit/:title_id",
351                                 component: EHoldingsLocalTitlesFormAdd,
352                                 meta: {
353                                     breadcrumb: () =>
354                                         build_breadcrumb(
355                                             [
356                                                 breadcrumb_paths.eholdings_local,
357                                                 breadcrumbs.eholdings.local
358                                                     .titles,
359                                             ],
360                                             "Edit title" // $t("Edit title")
361                                         ),
362                                 },
363                             },
364                             {
365                                 path: "import",
366                                 component: EHoldingsLocalTitlesFormImport,
367                                 meta: {
368                                     breadcrumb: () =>
369                                         build_breadcrumb(
370                                             [
371                                                 breadcrumb_paths.eholdings_local,
372                                                 breadcrumbs.eholdings.local
373                                                     .titles,
374                                             ],
375                                             "Import from a list" // $t("Import from a list")
376                                         ),
377                                 },
378                             },
379                         ],
380                     },
381                     {
382                         path: "resources/:resource_id",
383                         component: EHoldingsLocalResourcesShow,
384                         meta: {
385                             breadcrumb: () =>
386                                 build_breadcrumb(
387                                     [
388                                         breadcrumb_paths.eholdings_local,
389                                         breadcrumbs.eholdings.local.titles,
390                                     ],
391                                     "Resource" // $t("Resource")
392                                 ),
393                         },
394                     },
395                 ],
396             },
397             {
398                 path: "ebsco",
399                 children: [
400                     {
401                         path: "",
402                         meta: {
403                             breadcrumb: () => breadcrumb_paths.eholdings_ebsco,
404                         },
405                     },
406                     {
407                         path: "packages",
408                         children: [
409                             {
410                                 path: "",
411                                 component: EHoldingsEBSCOPackagesList,
412                                 meta: {
413                                     breadcrumb: () =>
414                                         build_breadcrumb([
415                                             breadcrumb_paths.eholdings_ebsco,
416                                             breadcrumbs.eholdings.ebsco
417                                                 .packages,
418                                         ]),
419                                 },
420                             },
421                             {
422                                 path: ":package_id",
423                                 component: EHoldingsEBSCOPackagesShow,
424                                 meta: {
425                                     breadcrumb: () =>
426                                         build_breadcrumb(
427                                             [
428                                                 breadcrumb_paths.eholdings_ebsco,
429                                                 breadcrumbs.eholdings.ebsco
430                                                     .packages,
431                                             ],
432                                             "Show package" // $t("Show package")
433                                         ),
434                                 },
435                             },
436                         ],
437                     },
438                     {
439                         path: "titles",
440                         children: [
441                             {
442                                 path: "",
443                                 component: EHoldingsEBSCOTitlesList,
444                                 meta: {
445                                     breadcrumb: () =>
446                                         build_breadcrumb([
447                                             breadcrumb_paths.eholdings_ebsco,
448                                             breadcrumbs.eholdings.ebsco.titles,
449                                         ]),
450                                 },
451                             },
452                             {
453                                 path: ":title_id",
454                                 component: EHoldingsEBSCOTitlesShow,
455                                 meta: {
456                                     breadcrumb: () =>
457                                         build_breadcrumb(
458                                             [
459                                                 breadcrumb_paths.eholdings_ebsco,
460                                                 breadcrumbs.eholdings.ebsco
461                                                     .titles,
462                                             ],
463                                             "Show title" // $t("Show title")
464                                         ),
465                                 },
466                             },
467                         ],
468                     },
469                     {
470                         path: "resources/:resource_id",
471                         component: EHoldingsEBSCOResourcesShow,
472                         meta: {
473                             breadcrumb: () =>
474                                 build_breadcrumb(
475                                     [
476                                         breadcrumb_paths.eholdings_ebsco,
477                                         breadcrumbs.eholdings.ebsco.titles,
478                                     ],
479                                     "Resource" // $t("Resource")
480                                 ),
481                         },
482                     },
483                 ],
484             },
485         ],
486     },
487     {
488         path: "/cgi-bin/koha/erm/licenses",
489         children: [
490             {
491                 path: "",
492                 component: LicensesList,
493                 meta: {
494                     breadcrumb: () => breadcrumb_paths.licenses,
495                 },
496             },
497             {
498                 path: ":license_id",
499                 component: LicensesShow,
500                 meta: {
501                     breadcrumb: () =>
502                         build_breadcrumb(
503                             breadcrumb_paths.licenses,
504                             "Show license" // $t("Show license")
505                         ),
506                 },
507             },
508             {
509                 path: "delete/:license_id",
510                 component: LicensesFormConfirmDelete,
511                 meta: {
512                     breadcrumb: () =>
513                         build_breadcrumb(
514                             breadcrumb_paths.licenses,
515                             "Delete license" // $t("Delete license")
516                         ),
517                 },
518             },
519             {
520                 path: "add",
521                 component: LicensesFormAdd,
522                 meta: {
523                     breadcrumb: () =>
524                         build_breadcrumb(
525                             breadcrumb_paths.licenses,
526                             "Add license" // $t("Add license")
527                         ),
528                 },
529             },
530             {
531                 path: "edit/:license_id",
532                 component: LicensesFormAdd,
533                 meta: {
534                     breadcrumb: () =>
535                         build_breadcrumb(
536                             breadcrumb_paths.licenses,
537                             "Edit license" // $t("Edit license")
538                         ),
539                 },
540             },
541         ],
542     },
543 ];