Bug 30708: Rebase - Use name instead of url for router-links
[koha.git] / koha-tmpl / intranet-tmpl / prog / js / vue / routes / preservation.js
1 import Home from "../components/Preservation/Home.vue";
2 import TrainsList from "../components/Preservation/TrainsList.vue";
3 import TrainsShow from "../components/Preservation/TrainsShow.vue";
4 import TrainsFormAdd from "../components/Preservation/TrainsFormAdd.vue";
5 import TrainsFormAddItem from "../components/Preservation/TrainsFormAddItem.vue";
6 import TrainsFormAddItems from "../components/Preservation/TrainsFormAddItems.vue";
7 import WaitingList from "../components/Preservation/WaitingList.vue";
8 import Settings from "../components/Preservation/Settings.vue";
9 import SettingsProcessingsShow from "../components/Preservation/SettingsProcessingsShow.vue";
10 import SettingsProcessingsFormAdd from "../components/Preservation/SettingsProcessingsFormAdd.vue";
11
12 const breadcrumbs = {
13     home: {
14         text: "Home", // $t("Home")
15         path: "/cgi-bin/koha/mainpage.pl",
16     },
17     preservation_home: {
18         text: "Preservation", //$t("Preservation")
19         path: "/cgi-bin/koha/preservation/home.pl",
20     },
21     trains: {
22         text: "Trains", // $t("Trains")
23         path: "/cgi-bin/koha/preservation/trains",
24     },
25     waiting_list: {
26         text: "Waiting list", // $t("Waiting list")
27         path: "/cgi-bin/koha/preservation/waiting-list",
28     },
29     settings: {
30         home: {
31             text: "Settings", // $t("Settings")
32             path: "/cgi-bin/koha/preservation/settings",
33         },
34         processings: {
35             home: {
36                 text: "Processings", //$t("Processings")
37             },
38         },
39     },
40 };
41 const breadcrumb_paths = {
42     trains: [
43         breadcrumbs.home,
44         breadcrumbs.preservation_home,
45         breadcrumbs.trains,
46     ],
47     settings: [
48         breadcrumbs.home,
49         breadcrumbs.preservation_home,
50         breadcrumbs.settings.home,
51     ],
52     settings_processings: [
53         breadcrumbs.home,
54         breadcrumbs.preservation_home,
55         breadcrumbs.settings.home,
56     ],
57 };
58
59 function build_breadcrumb(parent_breadcrumb, current) {
60     let breadcrumb = parent_breadcrumb.flat(Infinity);
61     if (current) {
62         breadcrumb.push({
63             text: current,
64         });
65     }
66     return breadcrumb;
67 }
68
69 export const routes = [
70     {
71         path: "/cgi-bin/koha/mainpage.pl",
72         beforeEnter(to, from, next) {
73             window.location.href = "/cgi-bin/koha/mainpage.pl";
74         },
75     },
76     {
77         path: "/cgi-bin/koha/preservation/home.pl",
78         name: "Home",
79         component: Home,
80         meta: {
81             breadcrumb: () => [breadcrumbs.home, breadcrumbs.preservation_home],
82         },
83     },
84     {
85         path: "/cgi-bin/koha/preservation/trains",
86         children: [
87             {
88                 path: "",
89                 name: "TrainsList",
90                 component: TrainsList,
91                 meta: {
92                     breadcrumb: () => breadcrumb_paths.trains,
93                 },
94             },
95             {
96                 path: ":train_id",
97                 children: [
98                     {
99                         path: "",
100                         name: "TrainsShow",
101                         component: TrainsShow,
102                         meta: {
103                             breadcrumb: () =>
104                                 build_breadcrumb(
105                                     breadcrumb_paths.trains,
106                                     "Show train" // $t("Show train")
107                                 ),
108                         },
109                     },
110                     {
111                         path: "items",
112                         children: [
113                             {
114                                 path: "add",
115                                 name: "TrainsFormAddItem",
116                                 component: TrainsFormAddItem,
117                                 meta: {
118                                     breadcrumb: () =>
119                                         build_breadcrumb(
120                                             breadcrumb_paths.trains,
121                                             "Add item to train" // $t("Add item to train")
122                                         ),
123                                 },
124                             },
125                             {
126                                 path: "add/:item_ids",
127                                 name: "TrainsFormAddItems",
128                                 component: TrainsFormAddItems,
129                                 meta: {
130                                     breadcrumb: () =>
131                                         build_breadcrumb(
132                                             breadcrumb_paths.trains,
133                                             "Add items to train" // $t("Add items to train")
134                                         ),
135                                 },
136                             },
137                             {
138                                 path: "edit/:train_item_id",
139                                 name: "TrainsFormEditItem",
140                                 component: TrainsFormAddItem,
141                                 meta: {
142                                     breadcrumb: () =>
143                                         build_breadcrumb(
144                                             breadcrumb_paths.trains,
145                                             "Edit item in train" // $t("Edit item in train")
146                                         ),
147                                 },
148                             },
149                         ],
150                     },
151                 ],
152             },
153             {
154                 path: "add",
155                 name: "TrainsFormAdd",
156                 component: TrainsFormAdd,
157                 meta: {
158                     breadcrumb: () =>
159                         build_breadcrumb(
160                             breadcrumb_paths.trains,
161                             "Add train" // $t("Add train")
162                         ),
163                 },
164             },
165             {
166                 path: "edit/:train_id",
167                 name: "TrainsFormEdit",
168                 component: TrainsFormAdd,
169                 meta: {
170                     breadcrumb: () =>
171                         build_breadcrumb(
172                             breadcrumb_paths.trains,
173                             "Edit train" // $t("Edit train")
174                         ),
175                 },
176             },
177         ],
178     },
179     {
180         path: "/cgi-bin/koha/preservation/waiting-list",
181         name: "WaitingList",
182         component: WaitingList,
183         meta: {
184             breadcrumb: () => [
185                 breadcrumbs.home,
186                 breadcrumbs.preservation_home,
187                 breadcrumbs.waiting_list,
188             ],
189         },
190     },
191     {
192         path: "/cgi-bin/koha/preservation/settings",
193         children: [
194             {
195                 path: "",
196                 name: "Settings",
197                 component: Settings,
198                 meta: {
199                     breadcrumb: () => breadcrumb_paths.settings,
200                 },
201             },
202             {
203                 path: "processings",
204                 children: [
205                     {
206                         path: ":processing_id",
207                         name: "SettingsProcessingsShow",
208                         component: SettingsProcessingsShow,
209                         meta: {
210                             breadcrumb: () =>
211                                 build_breadcrumb(
212                                     breadcrumb_paths.settings_processings,
213                                     "Show processing" // $t("Show processing")
214                                 ),
215                         },
216                     },
217                     {
218                         path: "add",
219                         name: "SettingsProcessingsFormAdd",
220                         component: SettingsProcessingsFormAdd,
221                         meta: {
222                             breadcrumb: () =>
223                                 build_breadcrumb(
224                                     breadcrumb_paths.settings_processings,
225                                     "Add processing" // $t("Add processing")
226                                 ),
227                         },
228                     },
229                     {
230                         path: "edit/:processing_id",
231                         name: "SettingsProcessingsFormEdit",
232                         component: SettingsProcessingsFormAdd,
233                         meta: {
234                             breadcrumb: () =>
235                                 build_breadcrumb(
236                                     breadcrumb_paths.settings_processings,
237                                     "Edit processing" // $t("Edit processing")
238                                 ),
239                         },
240                     },
241                 ],
242             },
243         ],
244     },
245 ];