Bug 33408: Store sysprefs in a new ERM store

We need the sysprefs' values to be shared between the components

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Jonathan Druart 2023-04-07 10:40:08 +02:00 committed by Tomas Cohen Arazi
parent b01094030a
commit a94178217b
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F
5 changed files with 36 additions and 11 deletions

View file

@ -81,6 +81,9 @@ export default {
storeToRefs(AVStore)
const { get_lib_from_av, map_av_dt_filter } = AVStore
const ERMStore = inject("ERMStore")
const { providers } = ERMStore
const table = ref()
const filters = reactive({
package_name: "",
@ -95,7 +98,7 @@ export default {
get_lib_from_av,
escape_str,
map_av_dt_filter,
erm_providers,
providers,
table,
}
},
@ -165,7 +168,7 @@ export default {
this.show_table = true
this.local_count_packages = null
if (this.erm_providers.includes("local")) {
if (this.providers.includes("local")) {
const client = APIClient.erm
const query = this.filters
? {

View file

@ -84,6 +84,9 @@ export default {
const { av_title_publication_types } = storeToRefs(AVStore)
const { get_lib_from_av } = AVStore
const ERMStore = inject("ERMStore")
const { providers } = ERMStore
const table = ref()
const filters = reactive({
publication_title: "",
@ -96,7 +99,7 @@ export default {
av_title_publication_types,
get_lib_from_av,
escape_str,
erm_providers,
providers,
table,
}
},
@ -175,7 +178,7 @@ export default {
"/api/v1/erm/eholdings/ebsco/titles"
)
}
if (this.erm_providers.includes("local")) {
if (this.providers.includes("local")) {
const client = APIClient.erm
const q = this.filters

View file

@ -1,5 +1,5 @@
<template>
<div v-if="initialized && ERMModule == 1">
<div v-if="initialized && sysprefs.ERMModule == 1">
<div id="sub-header">
<Breadcrumb />
<Help />
@ -48,7 +48,7 @@
<li>
<ul>
<li
v-for="provider in erm_providers"
v-for="provider in providers"
:key="provider"
>
<router-link
@ -136,9 +136,16 @@ export default {
const { loading, loaded, setError } = mainStore
const ERMStore = inject("ERMStore")
const { sysprefs, providers } = ERMStore
return {
vendorStore,
AVStore,
ERMStore,
sysprefs,
providers,
setError,
loading,
loaded,
@ -148,8 +155,6 @@ export default {
return {
component: "agreement",
initialized: false,
ERMModule: null,
erm_providers: [],
}
},
beforeCreate() {
@ -209,7 +214,8 @@ export default {
promises.push(
sysprefs_client.sysprefs.get("ERMProviders").then(
providers => {
this.erm_providers = providers.value.split(",")
this.ERMStore.providers = providers.value.split(",")
this.providers = this.ERMStore.providers
},
error => {}
)
@ -221,8 +227,8 @@ export default {
sysprefs_client.sysprefs
.get("ERMModule")
.then(value => {
this.ERMModule = value.value
if (this.ERMModule != 1) {
this.ERMStore.sysprefs.ERMModule = value.value
if (this.sysprefs.ERMModule != 1) {
return this.setError(
this.$__(
'The e-resource management module is disabled, turn on <a href="/cgi-bin/koha/admin/preferences.pl?tab=&op=search&searchfield=ERMModule">ERMModule</a> to use it'

View file

@ -28,6 +28,7 @@ const router = createRouter({
import { useMainStore } from "../stores/main";
import { useVendorStore } from "../stores/vendors";
import { useAVStore } from "../stores/authorised-values";
import { useERMStore } from "../stores/erm";
const pinia = createPinia();
@ -54,6 +55,8 @@ const mainStore = useMainStore(pinia);
app.provide("mainStore", mainStore);
const AVStore = useAVStore(pinia);
app.provide("AVStore", AVStore);
const ERMStore = useERMStore(pinia);
app.provide("ERMStore", ERMStore);
app.mount("#erm");

View file

@ -0,0 +1,10 @@
import { defineStore } from "pinia";
export const useERMStore = defineStore("erm", {
state: () => ({
sysprefs: {
ERMModule: false,
},
providers: [],
}),
});