Bug 32939: Use APIClient to fetch local eHoldings
[koha-ffzg.git] / koha-tmpl / intranet-tmpl / prog / js / vue / components / ERM / EHoldingsLocalResourcesShow.vue
1 <template>
2     <div v-if="!initialized">{{ $__("Loading") }}</div>
3     <div v-else-if="resource" id="eholdings_resources_show">
4         <h2>
5             {{ $__("Resource #%s").format(resource.resource_id) }}
6         </h2>
7         <div>
8             <fieldset class="rows">
9                 <legend>{{ $__("Resource information") }}</legend>
10                 <ol>
11                     <li v-if="resource.resource_id">
12                         <label>{{ $__("Resource identifier") }}:</label>
13                         <span>
14                             {{ resource.resource_id }}
15                         </span>
16                     </li>
17                     <li>
18                         <label>{{ $__("Publication title") }}:</label>
19                         <span
20                             ><router-link
21                                 :to="`/cgi-bin/koha/erm/eholdings/local/titles/${resource.title_id}`"
22                                 >{{
23                                     resource.title.publication_title
24                                 }}</router-link
25                             ></span
26                         >
27                     </li>
28                     <li>
29                         <label>{{ $__("Publisher name") }}:</label>
30                         <span>
31                             {{ resource.title.publisher_name }}
32                         </span>
33                     </li>
34                     <li>
35                         <label>{{ $__("Publication type") }}:</label>
36                         <span>
37                             {{ resource.title.publication_type }}
38                         </span>
39                     </li>
40                     <li v-if="resource.title.print_identifier">
41                         <label>{{ $__("Print-format identifier") }}:</label>
42                         <span>
43                             {{ resource.title.print_identifier }}
44                         </span>
45                     </li>
46                     <li v-if="resource.title.online_identifier">
47                         <label>{{ $__("Online-format identifier") }}:</label>
48                         <span>
49                             {{ resource.title.online_identifier }}
50                         </span>
51                     </li>
52                 </ol>
53             </fieldset>
54
55             <fieldset class="rows">
56                 <ol>
57                     <li>
58                         <label>{{ $__("Package") }}:</label>
59                         <span
60                             ><router-link
61                                 :to="`/cgi-bin/koha/erm/eholdings/local/packages/${resource.package_id}`"
62                                 >{{ resource.package.name }}</router-link
63                             ></span
64                         >
65                     </li>
66
67                     <li>
68                         <label>{{ $__("Vendor") }}:</label>
69                         <span v-if="resource.vendor">
70                             {{ resource.vendor.name }}
71                         </span>
72                     </li>
73                     <li v-if="resource.package.content_type">
74                         <label>{{ $__("Package content type") }}:</label>
75                         <span>{{ resource.package.content_type }}</span>
76                     </li>
77                 </ol>
78             </fieldset>
79
80             <fieldset class="rows">
81                 <legend>Resource settings</legend>
82                 <ol>
83                     <li>
84                         <label>{{ $__("Coverage dates") }}:</label>
85                         <span
86                             >{{ format_date(resource.started_on) }}-{{
87                                 format_date(resource.ended_on)
88                             }}</span
89                         >
90                     </li>
91                 </ol>
92             </fieldset>
93         </div>
94     </div>
95 </template>
96
97 <script>
98 import { inject } from "vue"
99 import { APIClient } from "../../fetch/api-client.js"
100 import { storeToRefs } from "pinia"
101 export default {
102     setup() {
103         const format_date = $date
104
105         const vendorStore = inject("vendorStore")
106         const { vendors } = storeToRefs(vendorStore)
107         return {
108             format_date,
109             vendors,
110         }
111     },
112     data() {
113         return {
114             resource: {
115                 resource_id: null,
116                 title_id: null,
117                 package_id: null,
118                 started_on: "",
119                 ended_on: "",
120                 proxy: "",
121                 title: {},
122                 package: {},
123             },
124             initialized: false,
125         }
126     },
127
128     beforeRouteEnter(to, from, next) {
129         next(vm => {
130             vm.getResource(to.params.resource_id)
131         })
132     },
133     beforeRouteUpdate(to, from) {
134         this.resource = this.getResource(to.params.resource_id)
135     },
136     methods: {
137         getResource(resource_id) {
138             const client = APIClient.erm
139             client.localResources.get(resource_id).then(
140                 resource => {
141                     this.resource = resource
142                     this.initialized = true
143                 },
144                 error => {}
145             )
146         },
147     },
148     name: "EHoldingsLocalResourcesShow",
149 }
150 </script>
151 <style scoped>
152 fieldset.rows label {
153     width: 25rem;
154 }
155 </style>