{"version":3,"file":"UserCataloguesPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/UserCataloguesPage.vue"],"sourcesContent":["<script setup>\nimport { useStore } from 'vuex';\nimport { ref, computed, onMounted, } from 'vue';\nimport AppLink from \"../../widgets/AppLink.vue\";\nimport axios from 'axios'\nimport { useRouter, useRoute } from 'vue-router';\nimport { getCurrentInstance } from \"vue\";\n\nimport {\n  has,\n  isNil,\n} from 'lodash-es';\n\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst router = useRouter();\nconst route = useRoute();\n\n\nconst store = useStore();\nlet filteredCatalogs = ref([])\nlet userCatIDList = computed(() => store.getters['auth/getUserCatalogIds'])\n\nconst showMqaNotificationSettings = computed(() => {\n  const raw = env.content.dataProviderInterface.buttons.showMqaNotificationSettings;\n  //console.log('[MQA] env.content...showMqaNotificationSettings (raw):', raw, 'type:', typeof raw);\n  const viteshowMqaNotificationSettings = import.meta.env.VITE_CONTENT_DATA_PROVIDER_INTERFACE_BUTTONS_SHOW_MQA_NOTIFICATION_SETTINGS === 'true'\n  //console.log('[MQA] env.content...viteshowMqaNotificationSettings (raw):', viteshowMqaNotificationSettings, 'type:', typeof viteshowMqaNotificationSettings);\n\n  if (typeof raw === 'string') {\n    const normalized = raw.trim().toLowerCase();\n    console.log('[MQA] normalized string value:', normalized);\n    return normalized === 'true';\n  }\n  return raw === true;\n});\n\n\nlet filterCatList = async () => {\n  let cache;\n  await axios\n    .get(env.api.baseUrl + 'search?filter=catalogue&limit=1000')\n    .then(response => (cache = response))\n    .catch((err) => {\n      reject(err);\n    });\n\n  cache.data.result.results.forEach((e) => {\n    if (has(e, 'title') && !isNil(e.title) && has(e, 'id') && !isNil(e.id)) filteredCatalogs.value.push({ title: Object.values(e.title)[0], id: e.id })\n  });\n\n  filteredCatalogs.value = filteredCatalogs.value\n    .filter(item => userCatIDList.value.includes(item.id))\n    .map(item => ({ id: item.id, name: item.title }));\n\n\n}\n\nconst openMqaReport = (catalog) => {\n    const catalogId = catalog.id;\n    const mqaBaseUrl = 'https://data.europa.eu';\n    const locale = route.query.locale || 'en';\n    const mqaUrl = `${mqaBaseUrl}/mqa/catalogues/${catalogId}?locale=${locale}`;\n    window.open(mqaUrl, '_blank');\n}\n\nconst handleMQA = (cat) => {\n\n  router.push({\n    name: 'DataProviderInterface-MQASettings',\n    params: { id: cat.id },\n    query: { locale: route.query.locale }\n  }).catch(() => { });\n}\nconst handleEdit = () => {\n\n}\nonMounted(async () => {\n  filterCatList()\n});\n</script>\n<template>\n  <div class=\"catOverview\">\n    <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between content \">\n      <h1 class=\"small-headline\">{{ $t('message.dataupload.info.userCatalogues') }}</h1>\n      <p class=\"m-0 \">{{ $t('message.dataupload.info.userCatDescription') }}</p>\n      <!-- <div class=\"catWrap\">\n        <div v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\" class=\"annifItems \">\n          <app-link\n            :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n              catalog.name }}</app-link>\n        </div>\n        <div v-if=\"filteredCatalogs.length === 0\" v-for=\"(catalog, index) in userCatIDList\" :key=\"index\"\n          class=\"annifItems \">\n          <app-link\n            :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog } }\">{{\n              catalog }}</app-link>\n        </div>\n      </div> -->\n\n\n\n\n\n\n\n    <table>\n    <thead>\n      <tr>\n        <th>{{ $t('message.metadata.catalog') }} - ID</th>\n        <th>{{ $t('message.metadata.description') }}</th>\n        <th>{{ $t('message.dataupload.menu.actions') }}</th>\n      </tr>\n    </thead>\n\n    <tr v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\">\n      <td>\n\n        <app-link\n          :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n            catalog.id }}</app-link>\n\n      </td>\n      <td>\n        <span>{{ catalog.name }}</span>\n\n      </td>\n      <td>\n        <!-- <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n          $t('message.metadata.linkedData') }}</button>\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n          $t('message.dataupload.menu.edit') }}</button> -->\n\n        <button\n          v-if=\"showMqaNotificationSettings\"\n          type=\"button\"\n          class=\"btn btn-action\"\n          @click=\"handleMQA(catalog)\"\n        >\n         {{ $t('message.dpi.catalogue.mqa.settings') }}\n        </button>\n         <button type=\"button\"  class=\"btn btn-action\" @click=\"openMqaReport(catalog)\"  >\n              <span class=\"mr-1\">  {{ $t('message.dpi.catalogue.mqa.mqareport') }}  </span>\n                <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right mb-1\" viewBox=\"0 0 16 16\">\n                <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n                <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n                </svg>\n          </button>\n\n      </td>\n    </tr>\n\n\n\n  </table>\n\n</div>\n  </div>\n\n</template>\n<style scoped>\n\ntable {\nmargin-top: 50px !important;\nmargin-left: 0px !important;\n}\n.catOverview {\n  min-height: 60vh;\n}\n\n.btn-action {\n  border: solid 1px #3f3f3f;\n}\n\n.btn-action:hover {\n  border: solid 1px #3f3f3f;\n  background-color: #3f3f3f;\n  color: #fff;\n}\n\n.catWrap {\n  display: flex;\n  flex-wrap: wrap;\n  margin-top: 10px;\n  padding-top: 10px;\n  border-top: 1px solid lightgray;\n  justify-content: space-between;\n}\n\n.catWrap .annifItems {\n  background: #ECECEC;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.subline {\n  font-size: 12px;\n  color: lightgray;\n\n}\n\n\nth,\ntd {\n  padding: 1rem;\n\n}\n\ntr {\n  padding: 1rem;\n  border-bottom: 1px solid lightgray;\n}\n\nthead {\n  border-bottom: 1px solid lightgray;\n}\n</style>\n"],"names":["env","getCurrentInstance","router","useRouter","route","useRoute","store","useStore","filteredCatalogs","ref","userCatIDList","computed","showMqaNotificationSettings","raw","normalized","filterCatList","cache","axios","response","err","e","has","isNil","item","openMqaReport","catalog","catalogId","mqaBaseUrl","locale","mqaUrl","handleMQA","cat","onMounted","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_toDisplayString","$t","_hoisted_4","_Fragment","_renderList","_unref","index","_createVNode","AppLink","$route","_createTextVNode","$event","_hoisted_5","_hoisted_7"],"mappings":"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"}