@piveau/piveau-hub-ui-modules 4.8.5 → 4.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs +25 -31
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DPIMenu.vue.mjs +19 -34
- package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.d.ts +8 -0
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs +6 -6
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperty.vue.mjs +24 -24
- package/dist/datasetDetails/properties/DatasetDetailsProperty.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/specification.d.ts +9 -1
- package/dist/datasetDetails/properties/specification.mjs +26 -14
- package/dist/datasetDetails/properties/specification.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/services/datasetService.mjs +12 -12
- package/dist/services/datasetService.mjs.map +1 -1
- package/dist/store/modules/datasetDetailsStore.d.ts +9 -7
- package/dist/store/modules/datasetDetailsStore.mjs +63 -29
- package/dist/store/modules/datasetDetailsStore.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { resolveComponent as n, openBlock as r, createBlock as
|
|
3
|
-
import
|
|
4
|
-
const
|
|
1
|
+
import b from "./PvDataInfoBox.vue2.mjs";
|
|
2
|
+
import { resolveComponent as n, openBlock as r, createBlock as l, normalizeClass as i, withCtx as D, renderSlot as a, createElementVNode as e, toDisplayString as p, createCommentVNode as s, createTextVNode as d, createElementBlock as c, createVNode as f } from "vue";
|
|
3
|
+
import k from "../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
+
const $ = {
|
|
5
5
|
class: "dataset-info-box-header",
|
|
6
6
|
"data-cy": "dataset-title"
|
|
7
|
-
},
|
|
7
|
+
}, y = { class: "card-title m0" }, h = { class: "dataset-info-box-body" }, B = { class: "row" }, M = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "col-12 col-md-2"
|
|
10
10
|
}, C = ["src"], I = {
|
|
@@ -15,17 +15,17 @@ const D = {
|
|
|
15
15
|
class: "dataset-info-box-footer"
|
|
16
16
|
};
|
|
17
17
|
function V(t, o, T, w, E, L) {
|
|
18
|
-
const g = n("pv-data-info-box-description"), u = n("PvDataInfoBoxFormats"), m = n("PvDataInfoBoxFooter"),
|
|
19
|
-
return r(),
|
|
18
|
+
const g = n("pv-data-info-box-description"), u = n("PvDataInfoBoxFormats"), m = n("PvDataInfoBoxFooter"), v = n("router-link");
|
|
19
|
+
return r(), l(v, {
|
|
20
20
|
to: t.to,
|
|
21
|
-
class:
|
|
21
|
+
class: i(["dataset-info-box text-dark text-decoration-none", { "dataset-info-box--catalog": t.catalogMode }])
|
|
22
22
|
}, {
|
|
23
|
-
default:
|
|
24
|
-
t.compact ? s("", !0) : a(t.$slots, "header", {
|
|
25
|
-
e("div",
|
|
26
|
-
e("h2",
|
|
23
|
+
default: D(() => [
|
|
24
|
+
t.compact ? s("", !0) : a(t.$slots, "header", {}, () => [
|
|
25
|
+
e("div", $, [
|
|
26
|
+
e("h2", y, p(t.datasetOrCatalogTitle), 1)
|
|
27
27
|
])
|
|
28
|
-
]),
|
|
28
|
+
], void 0, 0),
|
|
29
29
|
o[5] || (o[5] = d()),
|
|
30
30
|
a(t.$slots, "body", { dataset: t.dataset }, () => [
|
|
31
31
|
e("div", h, [
|
|
@@ -34,21 +34,21 @@ function V(t, o, T, w, E, L) {
|
|
|
34
34
|
e("img", {
|
|
35
35
|
src: t.src,
|
|
36
36
|
alt: "img",
|
|
37
|
-
class:
|
|
37
|
+
class: i(["catalog-img border border-dark", { "catalog-img--big": !t.compact }])
|
|
38
38
|
}, null, 10, C)
|
|
39
39
|
])) : s("", !0),
|
|
40
40
|
o[2] || (o[2] = d()),
|
|
41
41
|
e("div", I, [
|
|
42
|
-
t.compact ? a(t.$slots, "header", {
|
|
42
|
+
t.compact ? a(t.$slots, "header", {}, () => [
|
|
43
43
|
e("div", P, [
|
|
44
44
|
e("h2", F, p(t.datasetOrCatalogTitle), 1)
|
|
45
45
|
])
|
|
46
|
-
]) : s("", !0),
|
|
46
|
+
], void 0, 0) : s("", !0),
|
|
47
47
|
o[0] || (o[0] = d()),
|
|
48
48
|
a(t.$slots, "description", {}, () => [
|
|
49
|
-
!t.catalogMode || !t.compact ? (r(),
|
|
49
|
+
!t.catalogMode || !t.compact ? (r(), l(g, {
|
|
50
50
|
key: 0,
|
|
51
|
-
class:
|
|
51
|
+
class: i("mb-3"),
|
|
52
52
|
description: t.dataset.description,
|
|
53
53
|
"description-max-length": t.descriptionMaxLength,
|
|
54
54
|
truncate: t.descriptionMaxLength
|
|
@@ -60,7 +60,7 @@ function V(t, o, T, w, E, L) {
|
|
|
60
60
|
o[3] || (o[3] = d()),
|
|
61
61
|
t.dataset.formats && t.dataset.formats.length > 0 ? (r(), c("div", {
|
|
62
62
|
key: 1,
|
|
63
|
-
class:
|
|
63
|
+
class: i(["dataset-info-box-badge-container col-12 mb-3", { "col-md-3": !t.compact }])
|
|
64
64
|
}, [
|
|
65
65
|
a(t.$slots, "right", {
|
|
66
66
|
formats: t.dataset.formats
|
|
@@ -71,10 +71,7 @@ function V(t, o, T, w, E, L) {
|
|
|
71
71
|
])
|
|
72
72
|
], 2)) : s("", !0),
|
|
73
73
|
o[4] || (o[4] = d()),
|
|
74
|
-
t.compact ? a(t.$slots, "footer", {
|
|
75
|
-
key: 2,
|
|
76
|
-
dataset: t.dataset
|
|
77
|
-
}, () => [
|
|
74
|
+
t.compact ? a(t.$slots, "footer", { dataset: t.dataset }, () => [
|
|
78
75
|
f(m, {
|
|
79
76
|
class: "col-12",
|
|
80
77
|
src: t.src,
|
|
@@ -82,16 +79,13 @@ function V(t, o, T, w, E, L) {
|
|
|
82
79
|
updatedDate: null,
|
|
83
80
|
catalog: t.catalogMode ? t.dataset.description : t.dataset.catalog
|
|
84
81
|
}, null, 8, ["src", "catalog"])
|
|
85
|
-
]) : s("", !0)
|
|
82
|
+
], void 0, 2) : s("", !0)
|
|
86
83
|
])
|
|
87
84
|
])
|
|
88
85
|
]),
|
|
89
86
|
o[6] || (o[6] = d()),
|
|
90
|
-
t.compact ? s("", !0) : a(t.$slots, "footer", {
|
|
91
|
-
|
|
92
|
-
dataset: t.dataset
|
|
93
|
-
}, () => [
|
|
94
|
-
t.catalogMode ? (r(), c("div", N)) : (r(), i(m, {
|
|
87
|
+
t.compact ? s("", !0) : a(t.$slots, "footer", { dataset: t.dataset }, () => [
|
|
88
|
+
t.catalogMode ? (r(), c("div", N)) : (r(), l(m, {
|
|
95
89
|
key: 0,
|
|
96
90
|
class: "dataset-info-box-footer",
|
|
97
91
|
src: t.src,
|
|
@@ -99,12 +93,12 @@ function V(t, o, T, w, E, L) {
|
|
|
99
93
|
updatedDate: t.dataset.updatedDate,
|
|
100
94
|
catalog: t.dataset.catalog
|
|
101
95
|
}, null, 8, ["src", "createdDate", "updatedDate", "catalog"]))
|
|
102
|
-
])
|
|
96
|
+
], void 0, 1)
|
|
103
97
|
]),
|
|
104
98
|
_: 3
|
|
105
99
|
}, 8, ["to", "class"]);
|
|
106
100
|
}
|
|
107
|
-
const j = /* @__PURE__ */
|
|
101
|
+
const j = /* @__PURE__ */ k(b, [["render", V]]);
|
|
108
102
|
export {
|
|
109
103
|
j as default
|
|
110
104
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PvDataInfoBox.vue.mjs","sources":["../../lib/PvDataInfoBox/PvDataInfoBox.vue"],"sourcesContent":["<template>\n <router-link\n :to=\"to\"\n class=\"dataset-info-box text-dark text-decoration-none\"\n :class=\"{'dataset-info-box--catalog': catalogMode}\"\n >\n <slot name=\"header\" v-if=\"!compact\">\n <div class=\"dataset-info-box-header\" data-cy=\"dataset-title\">\n <h2 class=\"card-title m0\">{{ datasetOrCatalogTitle }}</h2>\n </div>\n </slot>\n\n <!-- Body slot -->\n <slot name=\"body\" :dataset=\"dataset\">\n <div class=\"dataset-info-box-body\">\n <div class=\"row\">\n <div v-if=\"catalogMode && !compact\" class=\"col-12 col-md-2\">\n <img\n :src=\"src\"\n alt=\"img\"\n class=\"catalog-img border border-dark\"\n :class=\"{'catalog-img--big': !compact}\"\n />\n </div>\n \n <div\n class=\"dataset-info-box-description-container col-12 col-md\"\n data-cy=\"dataset-description\"\n >\n <slot name=\"header\" v-if=\"compact\">\n <div data-cy=\"dataset-title\">\n <h2 class=\"card-title\">{{ datasetOrCatalogTitle }}</h2>\n </div>\n </slot>\n\n <slot name=\"description\">\n <pv-data-info-box-description\n v-if=\"!catalogMode || !compact\"\n :class=\"'mb-3'\"\n :description=\"dataset.description\"\n :description-max-length=\"descriptionMaxLength\"\n :truncate=\"descriptionMaxLength\"\n />\n </slot>\n \n <slot name=\"after-description\" />\n </div>\n <div\n v-if=\"dataset.formats && dataset.formats.length > 0\"\n class=\"dataset-info-box-badge-container col-12 mb-3\"\n :class=\"{ 'col-md-3': !compact }\"\n >\n <slot name=\"right\" :formats=\"dataset.formats\">\n <PvDataInfoBoxFormats :formats=\"dataset.formats\"></PvDataInfoBoxFormats>\n </slot>\n </div>\n <slot name=\"footer\" :dataset=\"dataset\" v-if=\"compact\">\n <PvDataInfoBoxFooter\n class=\"col-12\"\n :src=\"src\"\n :createdDate=\"null\"\n :updatedDate=\"null\"\n :catalog=\"catalogMode ? dataset.description : dataset.catalog\"\n />\n <!-- <div v-else class=\"dataset-info-box-footer\" /> -->\n </slot>\n </div>\n </div>\n </slot>\n\n <!-- Footer slot -->\n <slot name=\"footer\" :dataset=\"dataset\" v-if=\"!compact\">\n <PvDataInfoBoxFooter\n class=\"dataset-info-box-footer\"\n v-if=\"!catalogMode\"\n :src=\"src\"\n :createdDate=\"dataset.createdDate\"\n :updatedDate=\"dataset.updatedDate\"\n :catalog=\"dataset.catalog\"\n />\n <div v-else class=\"dataset-info-box-footer\" />\n </slot>\n </router-link>\n</template>\n\n<script lang=\"ts\">\nimport { Dataset } from \"../types/global\";\nimport {defineComponent, PropType} from \"vue\";\nimport type RouteLocationRaw from \"vue-router\";\n\nimport PvBadge from \"../PvBadge/PvBadge.vue\";\nimport PvDataInfoBoxFooter from \"./PvDataInfoBoxFooter.vue\";\nimport PvDataInfoBoxDescription from \"./PvDataInfoBoxDescription.vue\";\nimport PvDataInfoBoxFormats from \"./PvDataInfoBoxFormats.vue\"\n\nexport default defineComponent({\n name: \"PvDataInfoBox\",\n components: {\n PvBadge,\n PvDataInfoBoxFooter,\n PvDataInfoBoxDescription,\n PvDataInfoBoxFormats,\n },\n props: {\n /**\n * The dataset to display.\n */\n dataset: {\n type: Object as PropType<Dataset>,\n default: () =>\n ({\n title: \"\",\n description: \"\",\n catalog: \"\",\n createdDate: \"12.12.2023\",\n updatedDate: \"13.12.2023\",\n formats: [],\n } as Dataset),\n },\n\n /**\n * The route to navigate to when clicking on the dataset.\n */\n to: {\n type: [Object, String] as PropType<RouteLocationRaw | string>,\n required: true,\n },\n\n /**\n * Specified the maximum length of the description before it is cut off.\n */\n descriptionMaxLength: {\n type: Number,\n default: 200,\n },\n\n /**\n * Image source for the catalog logo/flag.\n */\n src: {\n type: String,\n default: \"\",\n },\n\n /**\n * If true, swaps to catalog display mode\n */\n catalogMode: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true switches from two column to one column layout\n * and decreases vertical distancing between elements.\n */\n compact: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n datasetOrCatalogTitle(): string {\n const { dataset, catalogMode } = this;\n return catalogMode\n ? dataset.title || dataset.catalog || \"\"\n : dataset.title || \"\";\n },\n },\n});\n</script>\n"],"names":["_hoisted_1","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_10","_resolveComponent","_openBlock","_createBlock","_component_router_link","_ctx","_normalizeClass","_withCtx","_createCommentVNode","_renderSlot","_createElementVNode","_cache","_createTextVNode","catalogMode","compact","_hoisted_4","_createElementBlock","_hoisted_8","_component_pv_data_info_box_description","descriptionMaxLength","dataset","_createVNode","_component_PvDataInfoBoxFormats","src","_component_PvDataInfoBoxFooter"],"mappings":";;;MAO2CA,IAAQ;AAAA,EAAA,OAAA;AAAA;GAQtCC,IAAA,EAAA,OAAM,iFAC2BC,IAAM;AAAA,EAAA,KAAA;AAAA;GAUxCC,IAAM,CAAA,KAAA,GACNC,IAAQ;AAAA,EAAA,OAAA;AAAA;oEAqDFC,IAAM;AAAA,EAAA,KAAA;AAAA;;;gHA/EtBC,EAiFc,aAAA;SA/EPC,EAAC,GAAAC,EAAAC,GAAA;AAAA,IAAA,IAAAC,EAAA;AAAA,IAOC,OAAAC,EAAA,CAAA,mDAAA,EAAA,6BAAAD,EAAA,YAAA,CAAA,CAAA;AAAA,EAAA,GAAA;AAAA,aAJPE,EAIO,MAAA;AAAA,MAHLF,EAAA,UAMFG,EAuDO,IAAA,EAAA,IA7DLC,EACEJ,EAA0D,QAAA,UAA1D,
|
|
1
|
+
{"version":3,"file":"PvDataInfoBox.vue.mjs","sources":["../../lib/PvDataInfoBox/PvDataInfoBox.vue"],"sourcesContent":["<template>\n <router-link\n :to=\"to\"\n class=\"dataset-info-box text-dark text-decoration-none\"\n :class=\"{'dataset-info-box--catalog': catalogMode}\"\n >\n <slot name=\"header\" v-if=\"!compact\">\n <div class=\"dataset-info-box-header\" data-cy=\"dataset-title\">\n <h2 class=\"card-title m0\">{{ datasetOrCatalogTitle }}</h2>\n </div>\n </slot>\n\n <!-- Body slot -->\n <slot name=\"body\" :dataset=\"dataset\">\n <div class=\"dataset-info-box-body\">\n <div class=\"row\">\n <div v-if=\"catalogMode && !compact\" class=\"col-12 col-md-2\">\n <img\n :src=\"src\"\n alt=\"img\"\n class=\"catalog-img border border-dark\"\n :class=\"{'catalog-img--big': !compact}\"\n />\n </div>\n \n <div\n class=\"dataset-info-box-description-container col-12 col-md\"\n data-cy=\"dataset-description\"\n >\n <slot name=\"header\" v-if=\"compact\">\n <div data-cy=\"dataset-title\">\n <h2 class=\"card-title\">{{ datasetOrCatalogTitle }}</h2>\n </div>\n </slot>\n\n <slot name=\"description\">\n <pv-data-info-box-description\n v-if=\"!catalogMode || !compact\"\n :class=\"'mb-3'\"\n :description=\"dataset.description\"\n :description-max-length=\"descriptionMaxLength\"\n :truncate=\"descriptionMaxLength\"\n />\n </slot>\n \n <slot name=\"after-description\" />\n </div>\n <div\n v-if=\"dataset.formats && dataset.formats.length > 0\"\n class=\"dataset-info-box-badge-container col-12 mb-3\"\n :class=\"{ 'col-md-3': !compact }\"\n >\n <slot name=\"right\" :formats=\"dataset.formats\">\n <PvDataInfoBoxFormats :formats=\"dataset.formats\"></PvDataInfoBoxFormats>\n </slot>\n </div>\n <slot name=\"footer\" :dataset=\"dataset\" v-if=\"compact\">\n <PvDataInfoBoxFooter\n class=\"col-12\"\n :src=\"src\"\n :createdDate=\"null\"\n :updatedDate=\"null\"\n :catalog=\"catalogMode ? dataset.description : dataset.catalog\"\n />\n <!-- <div v-else class=\"dataset-info-box-footer\" /> -->\n </slot>\n </div>\n </div>\n </slot>\n\n <!-- Footer slot -->\n <slot name=\"footer\" :dataset=\"dataset\" v-if=\"!compact\">\n <PvDataInfoBoxFooter\n class=\"dataset-info-box-footer\"\n v-if=\"!catalogMode\"\n :src=\"src\"\n :createdDate=\"dataset.createdDate\"\n :updatedDate=\"dataset.updatedDate\"\n :catalog=\"dataset.catalog\"\n />\n <div v-else class=\"dataset-info-box-footer\" />\n </slot>\n </router-link>\n</template>\n\n<script lang=\"ts\">\nimport { Dataset } from \"../types/global\";\nimport {defineComponent, PropType} from \"vue\";\nimport type RouteLocationRaw from \"vue-router\";\n\nimport PvBadge from \"../PvBadge/PvBadge.vue\";\nimport PvDataInfoBoxFooter from \"./PvDataInfoBoxFooter.vue\";\nimport PvDataInfoBoxDescription from \"./PvDataInfoBoxDescription.vue\";\nimport PvDataInfoBoxFormats from \"./PvDataInfoBoxFormats.vue\"\n\nexport default defineComponent({\n name: \"PvDataInfoBox\",\n components: {\n PvBadge,\n PvDataInfoBoxFooter,\n PvDataInfoBoxDescription,\n PvDataInfoBoxFormats,\n },\n props: {\n /**\n * The dataset to display.\n */\n dataset: {\n type: Object as PropType<Dataset>,\n default: () =>\n ({\n title: \"\",\n description: \"\",\n catalog: \"\",\n createdDate: \"12.12.2023\",\n updatedDate: \"13.12.2023\",\n formats: [],\n } as Dataset),\n },\n\n /**\n * The route to navigate to when clicking on the dataset.\n */\n to: {\n type: [Object, String] as PropType<RouteLocationRaw | string>,\n required: true,\n },\n\n /**\n * Specified the maximum length of the description before it is cut off.\n */\n descriptionMaxLength: {\n type: Number,\n default: 200,\n },\n\n /**\n * Image source for the catalog logo/flag.\n */\n src: {\n type: String,\n default: \"\",\n },\n\n /**\n * If true, swaps to catalog display mode\n */\n catalogMode: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true switches from two column to one column layout\n * and decreases vertical distancing between elements.\n */\n compact: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n datasetOrCatalogTitle(): string {\n const { dataset, catalogMode } = this;\n return catalogMode\n ? dataset.title || dataset.catalog || \"\"\n : dataset.title || \"\";\n },\n },\n});\n</script>\n"],"names":["_hoisted_1","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_10","_resolveComponent","_openBlock","_createBlock","_component_router_link","_ctx","_normalizeClass","_withCtx","_createCommentVNode","_renderSlot","_createElementVNode","_cache","_createTextVNode","catalogMode","compact","_hoisted_4","_createElementBlock","_hoisted_8","_component_pv_data_info_box_description","descriptionMaxLength","dataset","_createVNode","_component_PvDataInfoBoxFormats","src","_component_PvDataInfoBoxFooter"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import A from "axios";
|
|
2
2
|
import m from "jquery";
|
|
3
3
|
import "lodash-es";
|
|
4
|
-
import { mapGetters as
|
|
4
|
+
import { mapGetters as $, mapActions as y } from "vuex";
|
|
5
5
|
import O from "./components/Dropup.vue.mjs";
|
|
6
6
|
import { useWindowScroll as T } from "../external/@vueuse/core/index";
|
|
7
|
-
import { resolveComponent as D, openBlock as u, createElementBlock as h, createElementVNode as l, toDisplayString as c, createCommentVNode as g, createTextVNode as d, Fragment as b, renderList as v, createBlock as
|
|
7
|
+
import { resolveComponent as D, openBlock as u, createElementBlock as h, createElementVNode as l, toDisplayString as c, createCommentVNode as g, createTextVNode as d, Fragment as b, renderList as v, createBlock as w, resolveDynamicComponent as U, normalizeClass as _, withCtx as k, renderSlot as q, createVNode as C } from "vue";
|
|
8
8
|
import "./DPIMenu.vue2.mjs";
|
|
9
9
|
import L from "../_virtual/_plugin-vue_export-helper.mjs";
|
|
10
10
|
const z = {
|
|
@@ -38,7 +38,7 @@ const z = {
|
|
|
38
38
|
};
|
|
39
39
|
},
|
|
40
40
|
computed: {
|
|
41
|
-
|
|
41
|
+
...$("datasetDetails", [
|
|
42
42
|
"getCatalog",
|
|
43
43
|
"getID",
|
|
44
44
|
"getLoading",
|
|
@@ -56,7 +56,7 @@ const z = {
|
|
|
56
56
|
e((s = (r = this.getAdmsIdentifiers) == null ? void 0 : r[0]) == null ? void 0 : s.identifier) || // Check Adms
|
|
57
57
|
e((o = (a = this.getOtherIdentifiers) == null ? void 0 : a[0]) == null ? void 0 : o.identifier);
|
|
58
58
|
},
|
|
59
|
-
|
|
59
|
+
...$("auth", ["getUserData"]),
|
|
60
60
|
menuGroups() {
|
|
61
61
|
return [
|
|
62
62
|
{
|
|
@@ -215,22 +215,7 @@ const z = {
|
|
|
215
215
|
name: "Data Management",
|
|
216
216
|
href: `${this.rootUrl}/data-management/`,
|
|
217
217
|
external: !0
|
|
218
|
-
}), e.push(
|
|
219
|
-
{
|
|
220
|
-
name: this.$t("message.dataupload.menu.myCatalogues"),
|
|
221
|
-
to: {
|
|
222
|
-
name: "DataProviderInterface-UserCatalogues",
|
|
223
|
-
query: { locale: this.$route.query.locale }
|
|
224
|
-
}
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
name: this.$t("message.dataupload.menu.userProfile"),
|
|
228
|
-
to: {
|
|
229
|
-
name: "DataProviderInterface-UserProfile",
|
|
230
|
-
query: { locale: this.$route.query.locale }
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
), this.showRatingService && this.isOperator && e.push({
|
|
218
|
+
}), this.showRatingService && this.isOperator && e.push({
|
|
234
219
|
name: "Comment moderation",
|
|
235
220
|
to: {
|
|
236
221
|
name: "DataProviderInterface-CommentsModeration",
|
|
@@ -314,9 +299,9 @@ const z = {
|
|
|
314
299
|
}, console.log(a.response.data);
|
|
315
300
|
let i = typeof s == "string" && s;
|
|
316
301
|
i = typeof s == "function" && s(a), i = typeof s == "object" && s.prefix + " - " + a.response.data, console.log(s);
|
|
317
|
-
const
|
|
302
|
+
const p = i || o || a.message || "An error occurred";
|
|
318
303
|
this.showSnackbar({
|
|
319
|
-
message:
|
|
304
|
+
message: p,
|
|
320
305
|
variant: "error"
|
|
321
306
|
});
|
|
322
307
|
} finally {
|
|
@@ -405,7 +390,7 @@ const z = {
|
|
|
405
390
|
class: "btn btn-default logout"
|
|
406
391
|
};
|
|
407
392
|
function G(e, t, r, s, a, o) {
|
|
408
|
-
const i = D("dropup"),
|
|
393
|
+
const i = D("dropup"), p = D("router-link"), P = D("app-confirmation-dialog");
|
|
409
394
|
return u(), h("div", S, [
|
|
410
395
|
a.visible && o.showWarningBanner ? (u(), h("div", M, [
|
|
411
396
|
l("div", R, c(e.$t("message.dataupload.menu.warningbanner")), 1)
|
|
@@ -417,8 +402,8 @@ function G(e, t, r, s, a, o) {
|
|
|
417
402
|
]),
|
|
418
403
|
t[6] || (t[6] = d()),
|
|
419
404
|
l("div", B, [
|
|
420
|
-
e.$env.content.dataProviderInterface.hideOldDPIFunctions ? g("", !0) : (u(!0), h(b, { key: 0 }, v(o.menuGroups, (n,
|
|
421
|
-
key: `Group${
|
|
405
|
+
e.$env.content.dataProviderInterface.hideOldDPIFunctions ? g("", !0) : (u(!0), h(b, { key: 0 }, v(o.menuGroups, (n, f) => (u(), w(i, {
|
|
406
|
+
key: `Group${f}`,
|
|
422
407
|
groupName: n.group,
|
|
423
408
|
groupItems: n.items,
|
|
424
409
|
show: e.$env.content.dataProviderInterface.buttons[n.group],
|
|
@@ -428,8 +413,8 @@ function G(e, t, r, s, a, o) {
|
|
|
428
413
|
t[2] || (t[2] = d()),
|
|
429
414
|
l("ul", null, [
|
|
430
415
|
l("div", F, [
|
|
431
|
-
(u(!0), h(b, null, v(o.menuItems, (n,
|
|
432
|
-
key: `Menu${
|
|
416
|
+
(u(!0), h(b, null, v(o.menuItems, (n, f) => (u(), h("li", {
|
|
417
|
+
key: `Menu${f}`
|
|
433
418
|
}, [
|
|
434
419
|
l("button", {
|
|
435
420
|
type: "button",
|
|
@@ -463,13 +448,13 @@ function G(e, t, r, s, a, o) {
|
|
|
463
448
|
})
|
|
464
449
|
])
|
|
465
450
|
], -1))
|
|
466
|
-
], 8, H)) : (u(),
|
|
451
|
+
], 8, H)) : (u(), w(U(n.handler ? "button" : "router-link"), {
|
|
467
452
|
key: 1,
|
|
468
453
|
class: _({ disabled: n.disabled }),
|
|
469
454
|
to: n.to,
|
|
470
455
|
onClick: (I) => n.handler ? n.handler() : null
|
|
471
456
|
}, {
|
|
472
|
-
default:
|
|
457
|
+
default: k(() => [
|
|
473
458
|
d(c(n.name), 1)
|
|
474
459
|
]),
|
|
475
460
|
_: 2
|
|
@@ -487,8 +472,8 @@ function G(e, t, r, s, a, o) {
|
|
|
487
472
|
t[4] || (t[4] = l("br", null, null, -1)),
|
|
488
473
|
t[5] || (t[5] = d()),
|
|
489
474
|
l("button", W, [
|
|
490
|
-
|
|
491
|
-
default:
|
|
475
|
+
C(p, { to: { name: "Logout" } }, {
|
|
476
|
+
default: k(() => [
|
|
492
477
|
d(c(e.$t("message.dataupload.menu.logout")), 1)
|
|
493
478
|
]),
|
|
494
479
|
_: 1
|
|
@@ -498,20 +483,20 @@ function G(e, t, r, s, a, o) {
|
|
|
498
483
|
])) : g("", !0)
|
|
499
484
|
])) : g("", !0),
|
|
500
485
|
t[9] || (t[9] = d()),
|
|
501
|
-
|
|
486
|
+
C(P, {
|
|
502
487
|
id: "DPIMenuModal",
|
|
503
488
|
loading: a.modal.loading,
|
|
504
489
|
confirm: a.modal.confirm,
|
|
505
490
|
onConfirm: a.modal.confirmHandler
|
|
506
491
|
}, {
|
|
507
|
-
default:
|
|
492
|
+
default: k(() => [
|
|
508
493
|
d(c(a.modal.message), 1)
|
|
509
494
|
]),
|
|
510
495
|
_: 1
|
|
511
496
|
}, 8, ["loading", "confirm", "onConfirm"])
|
|
512
497
|
]);
|
|
513
498
|
}
|
|
514
|
-
const ae = /* @__PURE__ */ L(z, [["render", G], ["__scopeId", "data-v-
|
|
499
|
+
const ae = /* @__PURE__ */ L(z, [["render", G], ["__scopeId", "data-v-912aa0d6"]]);
|
|
515
500
|
export {
|
|
516
501
|
ae as default
|
|
517
502
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DPIMenu.vue.mjs","sources":["../../lib/data-provider-interface/DPIMenu.vue"],"sourcesContent":["<template>\n <div id=\"wrapper\" data-cy=\"dpi-menu\">\n <div v-if=\"visible && showWarningBanner\" class=\"warning-banner\">\n <div class=\"warning-content\">\n {{ $t(\"message.dataupload.menu.warningbanner\") }}\n </div>\n </div>\n <nav v-if=\"visible\">\n <div>\n <h4 class=\"text-white\">{{ $t(\"message.dataupload.menu.dpi\") }}</h4>\n </div>\n\n <div style=\"margin-top: 1%\">\n <!-- ADD env to hide \"old\" DPI -->\n <dropup\n v-if=\"!$env.content.dataProviderInterface.hideOldDPIFunctions\"\n v-for=\"(group, index) in menuGroups\"\n :key=\"`Group${index}`\"\n :groupName=\"group.group\"\n :groupItems=\"group.items\"\n :show=\"$env.content.dataProviderInterface.buttons[group.group]\"\n :isOperator=\"getUserData.roles.includes('operator')\"\n :isCatalog=\"group.group === 'Catalogue' ? true : false\"\n >\n </dropup>\n <ul>\n <div class=\"btn-group dropup\">\n <li v-for=\"(menuItem, index) in menuItems\" :key=\"`Menu${index}`\" >\n <button\n type=\"button\"\n class=\"btn btn-default\"\n @click=\"scrollToTop()\"\n >\n <!-- External links -->\n <a\n v-if=\"menuItem.external\"\n :href=\"menuItem.href\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {{ menuItem.name }} \n <span class=\"ml-2 external-link-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" 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 </span>\n </a>\n \n <!-- Internal router links or handlers -->\n <component\n v-else\n :is=\"menuItem.handler ? 'button' : 'router-link'\"\n :class=\"{ disabled: menuItem.disabled }\"\n :to=\"menuItem.to\"\n @click.native=\"menuItem.handler ? menuItem.handler() : null\"\n >\n {{ menuItem.name }}\n </component>\n </button>\n</li>\n </div>\n </ul>\n </div>\n\n <div v-if=\"getUserData.userName\" class=\"logoutWrap\">\n <slot name=\"right\" :get-user-data=\"getUserData\">\n <small class=\"text-white\"\n >{{ $t(\"message.dataupload.menu.loggedInAs\") }}\n {{ getUserData.userName }}</small\n >\n <br />\n <button type=\"button\" class=\"btn btn-default logout\">\n <router-link :to=\"{ name: 'Logout' }\">{{\n $t(\"message.dataupload.menu.logout\")\n }}</router-link>\n </button>\n </slot>\n </div>\n </nav>\n\n <app-confirmation-dialog\n id=\"DPIMenuModal\"\n :loading=\"modal.loading\"\n :confirm=\"modal.confirm\"\n @confirm=\"modal.confirmHandler\"\n >\n {{ modal.message }}\n </app-confirmation-dialog>\n </div>\n</template>\n\n<script>\nimport axios from \"axios\";\nimport $ from \"jquery\";\nimport { has, isEmpty } from \"lodash-es\";\nimport { mapGetters, mapActions } from \"vuex\";\nimport Dropup from \"./components/Dropup\";\nimport { useWindowScroll } from \"@vueuse/core\";\n\nexport default {\n name: \"DPI-menu\",\n components: {\n Dropup,\n },\n props: {},\n data() {\n return {\n showRatingService: this.$env.content.datasetDetails?.showRatingService,\n rootUrl: this.$env.api.baseUrl?.split('.eu/')[0] + '.eu/' || 'https://ppe.data.europa.eu/',\n visible: true,\n modal: {\n show: false,\n loading: false,\n error: null,\n message: \"\",\n confirm: \"Ok\",\n confirmHandler: () => null,\n },\n };\n },\n setup() {\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: \"smooth\" });\n y.value = 0;\n };\n return {\n scrollToTop,\n };\n },\n computed: {\n ...mapGetters(\"datasetDetails\", [\n \"getCatalog\",\n \"getID\",\n \"getLoading\",\n \"getTitle\",\n \"getDescription\",\n 'getAdmsIdentifiers',\n 'getIdentifiers',\n 'getOtherIdentifiers',\n ]),\n // Individual DOI checks for display\n hasAnyDoi() {\n const checkDoi = (value) => value && value.match(/^10\\.\\d{4,9}\\/[-._;()/:A-Z0-9]+$/i);\n\n return (\n checkDoi(this.getIdentifiers?.[0]) || // Check Identifier\n checkDoi(this.getAdmsIdentifiers?.[0]?.identifier) || // Check Adms\n checkDoi(this.getOtherIdentifiers?.[0]?.identifier) // Check Others\n );\n },\n ...mapGetters(\"auth\", [\"getUserData\"]),\n menuGroups() {\n return [\n {\n group: \"Dataset\",\n items: [\n {\n key: \"create-dataset\",\n name: \"createDataset\",\n to: {\n name: \"DataProviderInterface-Input\",\n query: { locale: this.$route.query.locale, edit: false }, // if edit is false -> reset is triggered\n params: { property: \"datasets\" },\n },\n },\n {\n name: \"deleteDataset\",\n disabled: !this.isLocatedOnAuthorizedDatasetPage || this.hasAnyDoi,\n handler: () => {\n this.modal = {\n ...this.modal,\n ...{\n message: this.$t(\n \"message.dataupload.menu.datasetDeletion.message\"\n ),\n confirm: this.$t(\n \"message.dataupload.menu.datasetDeletion.confirm\"\n ),\n confirmHandler: () =>\n this.handleDelete({\n id: this.getID,\n property: \"datasets\",\n catalog: this.getCatalog.id,\n }),\n },\n };\n $(\"#modal\").modal({ show: true });\n },\n },\n {\n key: \"edit-dataset\",\n name: \"editDataset\",\n onlyAuthorizedDatasetPage: true,\n disabled: !this.isLocatedOnAuthorizedDatasetPage,\n to: {\n name: \"DataProviderInterface-Edit\",\n params: {\n catalog: this.getCatalog.id || \"undefined\",\n property: \"datasets\",\n id: this.getID || \"undefined\",\n },\n query: {\n draft: false,\n locale: this.$route.query.locale,\n },\n },\n },\n\n {\n key: \"draft-dataset\",\n name: \"setToDraft\",\n disabled: !this.isLocatedOnAuthorizedDatasetPage,\n handler: () => {\n this.modal = {\n ...this.modal,\n ...{\n message: this.$t(\n \"message.dataupload.menu.markAsDraft.message\"\n ),\n confirm: this.$t(\n \"message.dataupload.menu.markAsDraft.confirm\"\n ),\n confirmHandler: () =>\n this.handleMarkAsDraft({\n id: this.getID,\n catalog: this.getCatalog.id,\n title: this.getTitle,\n description: this.getDescription,\n }),\n },\n };\n $(\"#modal\").modal({ show: true });\n },\n },\n {\n key: \"register-dataset\",\n name: \"registerDoi\",\n disabled: !this.isLocatedOnAuthorizedDatasetPage,\n handler: () => {\n this.modal = {\n ...this.modal,\n ...{\n message: this.$t(\n \"message.dataupload.menu.registerADoi.message\"\n ),\n confirm: this.$t(\n \"message.dataupload.menu.registerADoi.confirm\"\n ),\n confirmHandler: () =>\n this.handleRegisterDoi({\n id: this.getID,\n catalog: this.getCatalog.id,\n type:\n this.$env.content.dataProviderInterface\n .doiRegistrationService.persistentIdentifierType ||\n \"mock\",\n }),\n },\n };\n $(\"#modal\").modal({ show: true });\n },\n },\n ],\n },\n {\n group: \"Catalogue\",\n items: [\n {\n name: \"CreateCatalogue\",\n to: {\n name: \"DataProviderInterface-Input\",\n query: { locale: this.$route.query.locale, edit: false },\n params: { property: \"catalogues\" },\n },\n },\n {\n name: \"DeleteCatalogue\",\n disabled: !this.isLocatedOnAuthorizedCatalogPage,\n handler: () => {\n this.modal = {\n ...this.modal,\n ...{\n message:\n \"Are you sure you want to delete this catalogue? This can not be reverted!\",\n confirm: \"Delete catlogue (irreversible)\",\n confirmHandler: () =>\n this.handleDelete({\n id: this.$route.params.ctlg_id,\n property: \"catalogues\",\n catalog: this.$route.params.ctlg_id,\n }),\n },\n };\n $(\"#modal\").modal({ show: true });\n },\n },\n {\n name: \"EditCatalog\",\n onlyAuthorizedDatasetPage: true,\n disabled: !this.isLocatedOnAuthorizedCatalogPage,\n to: {\n name: \"DataProviderInterface-Edit\",\n params: {\n catalog: this.$route.params.ctlg_id\n ? this.$route.params.ctlg_id\n : \"undefined\",\n property: \"catalogues\",\n id: this.getID || \"undefined\",\n },\n query: {\n draft: false,\n locale: this.$route.query.locale,\n },\n },\n },\n ],\n },\n ];\n },\n menuItems() {\n let items = [];\n // Only show Draft Datasets if hideOldDPIFunctions is not true\n if (!this.$env.content.dataProviderInterface.hideOldDPIFunctions) {\n items.push({\n name: this.$t(\"message.dataupload.menu.draftDatasets\"),\n to: {\n name: \"DataProviderInterface-Draft\",\n query: { locale: this.$route.query.locale },\n },\n });\n }\n \n if (this.$env.content.dataProviderInterface.hideOldDPIFunctions) {\n items.push({\n name: \"Data Management\",\n href: `${this.rootUrl}/data-management/`,\n external: true,\n });\n }\n \n items.push(\n {\n name: this.$t(\"message.dataupload.menu.myCatalogues\"),\n to: {\n name: \"DataProviderInterface-UserCatalogues\",\n query: { locale: this.$route.query.locale },\n },\n },\n {\n name: this.$t(\"message.dataupload.menu.userProfile\"),\n to: {\n name: \"DataProviderInterface-UserProfile\",\n query: { locale: this.$route.query.locale },\n },\n }\n );\n \n if (this.showRatingService && this.isOperator) {\n items.push({\n name: \"Comment moderation\",\n to: {\n name: \"DataProviderInterface-CommentsModeration\",\n query: { locale: this.$route.query.locale },\n },\n });\n }\n return items;\n },\n isLocatedOnAuthorizedDatasetPage() {\n // Never return true while loading\n if (this.getLoading) return false;\n\n // Is the user located on the correct page?\n const isOnDatasetDetailsPage =\n this.$route.name === \"DatasetDetailsDataset\";\n if (!isOnDatasetDetailsPage) return false;\n const datasetId = isOnDatasetDetailsPage && this.$route.params.ds_id;\n\n // Does user have permission on dataset (based on current datasetDetails state)?\n const permissions = this.getUserData && this.getUserData.permissions;\n const catalogId = this.getCatalog && this.getCatalog.id;\n const hasPermission = permissions.find(\n (permission) => permission.rsname === catalogId\n );\n\n if (this.isOperator) {\n return true;\n }\n\n // Does the user have permission on the current dataset details page?\n return (\n hasPermission && isOnDatasetDetailsPage && datasetId === this.getID\n );\n },\n isLocatedOnAuthorizedCatalogPage() {\n // never return true while loading\n if (this.getLoading) return false;\n\n // is the user located on the correct page?\n const onCatalogPage = this.$route.name === \"CatalogueDetails\";\n if (!onCatalogPage) return false;\n const catalogId = onCatalogPage && this.$route.params.ctlg_id;\n\n // const permissions = this.getUserData && this.getUserData.permissions;\n // const hasPermission = permissions.find(permission => permission.rsname === catalogId);\n const hasPermission = true;\n // does user have permission on current catalogue\n return hasPermission && onCatalogPage;\n },\n isOperator() {\n return this.getUserData.roles.includes(\"operator\");\n },\n showWarningBanner() {\n return this.$env.content.dataProviderInterface?.showWarningBanner || false;\n }\n },\n methods: {\n checkDoi(doi = '') {\n return doi && doi.match(/^10\\.\\d{4,9}\\/[-._;()/:A-Z0-9]+$/i);\n },\n ...mapActions(\"auth\", [\"updateUserData\"]),\n ...mapActions(\"snackbar\", [\"showSnackbar\"]),\n setupKeycloakWatcher() {\n if (this.$keycloak && this.$keycloak.authenticated) {\n // Set up watcher here since we this.$keycloak might not be available.\n // If this.$keycloak is ensured, move this watcher out of this created hook.\n this.$watch(\n \"$keycloak.token\",\n async (newToken) => {\n if (!newToken) return;\n\n let rtpToken = this.$keycloak.rtpToken;\n if (!rtpToken) {\n const rtpTokenFn = this.$keycloak.getRtpToken;\n if (rtpTokenFn) {\n const res = await rtpTokenFn({ autoRefresh: true });\n rtpToken = res;\n }\n }\n\n this.updateUserData({\n authToken: newToken,\n rtpToken: rtpToken,\n hubUrl: this.$env.api.hubUrl,\n });\n },\n { immediate: true }\n );\n\n this.$watch(\"$keycloak.rtpToken\", (newRtpToken) => {\n if (!newRtpToken) return;\n\n this.updateUserData({\n authToken: this.$keycloak.token,\n rtpToken: newRtpToken,\n hubUrl: this.$env.api.hubUrl,\n });\n });\n }\n },\n async handleConfirm(action, argsObj, { successMessage, errorMessage }) {\n this.modal.loading = true;\n try {\n // Sleep for 250ms for better UX\n this.$Progress.start();\n await new Promise((resolve) => setTimeout(resolve, 250));\n\n this.$Progress.set(25);\n await this.$store.dispatch(action, argsObj);\n\n // Successful DOI registration\n this.showSnackbar({\n message: successMessage,\n variant: \"success\",\n });\n await new Promise((resolve) => setTimeout(resolve, 250));\n\n this.$Progress.finish();\n } catch (ex) {\n this.$Progress.fail();\n // eslint-disable-next-line no-console\n console.error(ex);\n\n const maybeErrorStatusMsg =\n ex.response && ex.response.data && ex.response.data.message;\n\n this.modal = {\n ...this.modal,\n ...{\n // Need to translate this\n message:\n \"DOI registration is not possible, the following error occured: \" +\n ex.response.data,\n confirm: \"Okay\",\n confirmHandler: () => $(\"#modal\").modal(\"hide\"),\n },\n };\n\n console.log(ex.response.data);\n let customErrorMessage =\n typeof errorMessage === \"string\" && errorMessage;\n customErrorMessage =\n typeof errorMessage === \"function\" && errorMessage(ex);\n // customErrorMessage = typeof errorMessage === 'object' && errorMessage.prefix && `${errorMessage.prefix}${maybeErrorStatusMsg && ` — ${maybeErrorStatusMsg}`}`;\n customErrorMessage =\n typeof errorMessage === \"object\" &&\n errorMessage.prefix + \" - \" + ex.response.data;\n\n console.log(errorMessage);\n const errorMsg =\n customErrorMessage ||\n maybeErrorStatusMsg ||\n ex.message ||\n \"An error occurred\";\n // show snackbar\n this.showSnackbar({\n message: errorMsg,\n variant: \"error\",\n });\n } finally {\n this.modal.loading = false;\n $(\"#modal\").modal(\"hide\");\n }\n },\n async handleRegisterDoi({ id, catalog, type = \"eu-ra-doi\" }) {\n await this.handleConfirm(\n \"auth/createPersistentIdentifier\",\n { id, catalog, type },\n {\n successMessage: this.$te(\"message.snackbar.doiRegistration.success\")\n ? this.$t(\"message.snackbar.doiRegistration.success\")\n : \"Successfully registered DOI\",\n errorMessage: {\n prefix: this.$te(\"message.snackbar.doiRegistration.error\")\n ? this.$t(\"message.snackbar.doiRegistration.error\")\n : \"DOI registration failed\",\n },\n }\n );\n },\n async handleMarkAsDraft({ id, catalog, title, description }) {\n await this.handleConfirm(\n \"auth/putDatasetToDraft\",\n {\n id,\n catalog,\n title,\n description,\n },\n {\n successMessage: this.$te(\"message.snackbar.markAsDraft.success\")\n ? this.$t(\"message.snackbar.markAsDraft.success\")\n : \"Dataset successfully marked as draft\",\n errorMessage: {\n prefix: this.$te(\"message.snackbar.markAsDraft.error\")\n ? this.$t(\"message.snackbar.markAsDraft.error\")\n : \"Failed to mark dataset as draft\",\n },\n }\n );\n\n this.$router\n .push({\n name: \"DataProviderInterface-Draft\",\n query: { locale: this.$route.query.locale },\n })\n .catch(() => {});\n },\n async handleDelete({ id, property, catalog }) {\n // todo: create user dataset api (and maybe integrate to store)\n // For now, do request manually using axios\n\n this.modal.loading = true;\n this.$Progress.start();\n try {\n let endpoint;\n\n if (property === \"datasets\") {\n endpoint = `${this.$env.api.hubUrl}datasets/${id}?useNormalizedId=true&catalogue=${catalog}`;\n } else if (property === \"catalogues\") {\n endpoint = `${this.$env.api.hubUrl}catalogues/${id}`;\n }\n\n await axios.delete(endpoint, {\n headers: {\n \"Content-Type\": \"text/turtle\",\n Authorization: `Bearer ${this.getUserData.rtpToken}`,\n },\n });\n\n let successMessage;\n if (property === \"datasets\") {\n successMessage = this.$te(\"message.snackbar.deleteDataset.success\")\n ? this.$t(\"message.snackbar.deleteDataset.success\")\n : \"Dataset successfully deleted\";\n } else if (property === \"catalogues\") {\n successMessage = this.$te(\"message.snackbar.deleteCatalog.success\")\n ? this.$t(\"message.snackbar.deleteCatalog.success\")\n : \"Catalog successfully deleted\";\n }\n\n this.showSnackbar({\n message: successMessage,\n variant: \"success\",\n });\n this.$Progress.finish();\n\n // Redirect to Home\n this.$router\n .push({\n name: \"Datasets\",\n query: { locale: this.$route.query.locale, refresh: true },\n })\n .catch(() => {});\n } catch (ex) {\n this.$Progress.fail();\n\n let errorMessage;\n\n if (property === \"datasets\") {\n errorMessage = this.$te(\"message.snackbar.deleteDataset.error\")\n ? this.$t(\"message.snackbar.deleteDataset.error\")\n : \"Failed to delete dataset\";\n } else if (property === \"catalogues\") {\n errorMessage = this.$te(\"message.snackbar.deleteCatalog.error\")\n ? this.$t(\"message.snackbar.deleteCatalog.error\")\n : \"Failed to delete catalog\";\n }\n\n this.showSnackbar({\n message: `${errorMessage}${\n ex.response?.data ? ` — ${ex.response?.data}` : ex.message\n }`,\n variant: \"error\",\n });\n } finally {\n this.modal.loading = false;\n $(\"#modal\").modal(\"hide\");\n }\n },\n },\n created() {\n this.setupKeycloakWatcher();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n#wrapper {\n background: linear-gradient(90deg, #082b7a, #0e47cb);\n width: 100%;\n position: sticky;\n bottom: 0;\n z-index: 999;\n}\n\nnav {\n max-width: 1400px;\n display: flex;\n flex-direction: row;\n margin: 0 auto;\n justify-content: space-between;\n font-size: 1rem;\n align-items: center;\n}\n\nul {\n float: right;\n\n li {\n display: inline;\n\n a {\n color: white;\n }\n }\n}\n\nbutton a {\n color: white;\n}\n\n.logout {\n display: block;\n margin: 0 auto;\n border: 1px solid white;\n padding: 0.1rem 1.5rem;\n}\n\n.logoutWrap {\n width: 14rem;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.warning-banner {\n background-color: #ffc107;\n color: #000;\n padding: 0.75rem 1rem;\n text-align: center;\n width: 100%;\n}\n\n.warning-content {\n max-width: 1400px;\n margin: 0 auto;\n}\n\n.external-link-icon svg {\n vertical-align: text-top !important;\n}\n</style>\n"],"names":["_sfc_main","Dropup","_a","_b","x","y","useWindowScroll","mapGetters","checkDoi","value","_c","_e","_d","$","items","isOnDatasetDetailsPage","datasetId","permissions","catalogId","hasPermission","permission","onCatalogPage","doi","mapActions","newToken","rtpToken","rtpTokenFn","newRtpToken","action","argsObj","successMessage","errorMessage","resolve","ex","maybeErrorStatusMsg","customErrorMessage","errorMsg","id","catalog","type","title","description","property","endpoint","axios","_hoisted_3","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_10","_openBlock","_createElementBlock","_hoisted_1","$data","$options","_hoisted_2","_createElementVNode","_toDisplayString","_ctx","_hoisted_4","_Fragment","_renderList","group","index","_createBlock","_component_dropup","menuItem","$setup","_resolveDynamicComponent","_normalizeClass","_createTextVNode","_hoisted_9","_renderSlot","_hoisted_11","_createVNode","_component_router_link","_component_app_confirmation_dialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DPIMenu.vue.mjs","sources":["../../lib/data-provider-interface/DPIMenu.vue"],"sourcesContent":["<template>\n <div id=\"wrapper\" data-cy=\"dpi-menu\">\n <div v-if=\"visible && showWarningBanner\" class=\"warning-banner\">\n <div class=\"warning-content\">\n {{ $t(\"message.dataupload.menu.warningbanner\") }}\n </div>\n </div>\n <nav v-if=\"visible\">\n <div>\n <h4 class=\"text-white\">{{ $t(\"message.dataupload.menu.dpi\") }}</h4>\n </div>\n\n <div style=\"margin-top: 1%\">\n <!-- ADD env to hide \"old\" DPI -->\n <dropup\n v-if=\"!$env.content.dataProviderInterface.hideOldDPIFunctions\"\n v-for=\"(group, index) in menuGroups\"\n :key=\"`Group${index}`\"\n :groupName=\"group.group\"\n :groupItems=\"group.items\"\n :show=\"$env.content.dataProviderInterface.buttons[group.group]\"\n :isOperator=\"getUserData.roles.includes('operator')\"\n :isCatalog=\"group.group === 'Catalogue' ? true : false\"\n >\n </dropup>\n <ul>\n <div class=\"btn-group dropup\">\n <li v-for=\"(menuItem, index) in menuItems\" :key=\"`Menu${index}`\" >\n <button\n type=\"button\"\n class=\"btn btn-default\"\n @click=\"scrollToTop()\"\n >\n <!-- External links -->\n <a\n v-if=\"menuItem.external\"\n :href=\"menuItem.href\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {{ menuItem.name }} \n <span class=\"ml-2 external-link-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" 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 </span>\n </a>\n \n <!-- Internal router links or handlers -->\n <component\n v-else\n :is=\"menuItem.handler ? 'button' : 'router-link'\"\n :class=\"{ disabled: menuItem.disabled }\"\n :to=\"menuItem.to\"\n @click.native=\"menuItem.handler ? menuItem.handler() : null\"\n >\n {{ menuItem.name }}\n </component>\n </button>\n</li>\n </div>\n </ul>\n </div>\n\n <div v-if=\"getUserData.userName\" class=\"logoutWrap\">\n <slot name=\"right\" :get-user-data=\"getUserData\">\n <small class=\"text-white\"\n >{{ $t(\"message.dataupload.menu.loggedInAs\") }}\n {{ getUserData.userName }}</small\n >\n <br />\n <button type=\"button\" class=\"btn btn-default logout\">\n <router-link :to=\"{ name: 'Logout' }\">{{\n $t(\"message.dataupload.menu.logout\")\n }}</router-link>\n </button>\n </slot>\n </div>\n </nav>\n\n <app-confirmation-dialog\n id=\"DPIMenuModal\"\n :loading=\"modal.loading\"\n :confirm=\"modal.confirm\"\n @confirm=\"modal.confirmHandler\"\n >\n {{ modal.message }}\n </app-confirmation-dialog>\n </div>\n</template>\n\n<script>\nimport axios from \"axios\";\nimport $ from \"jquery\";\nimport { has, isEmpty } from \"lodash-es\";\nimport { mapGetters, mapActions } from \"vuex\";\nimport Dropup from \"./components/Dropup\";\nimport { useWindowScroll } from \"@vueuse/core\";\n\nexport default {\n name: \"DPI-menu\",\n components: {\n Dropup,\n },\n props: {},\n data() {\n return {\n showRatingService: this.$env.content.datasetDetails?.showRatingService,\n rootUrl: this.$env.api.baseUrl?.split('.eu/')[0] + '.eu/' || 'https://ppe.data.europa.eu/',\n visible: true,\n modal: {\n show: false,\n loading: false,\n error: null,\n message: \"\",\n confirm: \"Ok\",\n confirmHandler: () => null,\n },\n };\n },\n setup() {\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: \"smooth\" });\n y.value = 0;\n };\n return {\n scrollToTop,\n };\n },\n computed: {\n ...mapGetters(\"datasetDetails\", [\n \"getCatalog\",\n \"getID\",\n \"getLoading\",\n \"getTitle\",\n \"getDescription\",\n 'getAdmsIdentifiers',\n 'getIdentifiers',\n 'getOtherIdentifiers',\n ]),\n // Individual DOI checks for display\n hasAnyDoi() {\n const checkDoi = (value) => value && value.match(/^10\\.\\d{4,9}\\/[-._;()/:A-Z0-9]+$/i);\n\n return (\n checkDoi(this.getIdentifiers?.[0]) || // Check Identifier\n checkDoi(this.getAdmsIdentifiers?.[0]?.identifier) || // Check Adms\n checkDoi(this.getOtherIdentifiers?.[0]?.identifier) // Check Others\n );\n },\n ...mapGetters(\"auth\", [\"getUserData\"]),\n menuGroups() {\n return [\n {\n group: \"Dataset\",\n items: [\n {\n key: \"create-dataset\",\n name: \"createDataset\",\n to: {\n name: \"DataProviderInterface-Input\",\n query: { locale: this.$route.query.locale, edit: false }, // if edit is false -> reset is triggered\n params: { property: \"datasets\" },\n },\n },\n {\n name: \"deleteDataset\",\n disabled: !this.isLocatedOnAuthorizedDatasetPage || this.hasAnyDoi,\n handler: () => {\n this.modal = {\n ...this.modal,\n ...{\n message: this.$t(\n \"message.dataupload.menu.datasetDeletion.message\"\n ),\n confirm: this.$t(\n \"message.dataupload.menu.datasetDeletion.confirm\"\n ),\n confirmHandler: () =>\n this.handleDelete({\n id: this.getID,\n property: \"datasets\",\n catalog: this.getCatalog.id,\n }),\n },\n };\n $(\"#modal\").modal({ show: true });\n },\n },\n {\n key: \"edit-dataset\",\n name: \"editDataset\",\n onlyAuthorizedDatasetPage: true,\n disabled: !this.isLocatedOnAuthorizedDatasetPage,\n to: {\n name: \"DataProviderInterface-Edit\",\n params: {\n catalog: this.getCatalog.id || \"undefined\",\n property: \"datasets\",\n id: this.getID || \"undefined\",\n },\n query: {\n draft: false,\n locale: this.$route.query.locale,\n },\n },\n },\n\n {\n key: \"draft-dataset\",\n name: \"setToDraft\",\n disabled: !this.isLocatedOnAuthorizedDatasetPage,\n handler: () => {\n this.modal = {\n ...this.modal,\n ...{\n message: this.$t(\n \"message.dataupload.menu.markAsDraft.message\"\n ),\n confirm: this.$t(\n \"message.dataupload.menu.markAsDraft.confirm\"\n ),\n confirmHandler: () =>\n this.handleMarkAsDraft({\n id: this.getID,\n catalog: this.getCatalog.id,\n title: this.getTitle,\n description: this.getDescription,\n }),\n },\n };\n $(\"#modal\").modal({ show: true });\n },\n },\n {\n key: \"register-dataset\",\n name: \"registerDoi\",\n disabled: !this.isLocatedOnAuthorizedDatasetPage,\n handler: () => {\n this.modal = {\n ...this.modal,\n ...{\n message: this.$t(\n \"message.dataupload.menu.registerADoi.message\"\n ),\n confirm: this.$t(\n \"message.dataupload.menu.registerADoi.confirm\"\n ),\n confirmHandler: () =>\n this.handleRegisterDoi({\n id: this.getID,\n catalog: this.getCatalog.id,\n type:\n this.$env.content.dataProviderInterface\n .doiRegistrationService.persistentIdentifierType ||\n \"mock\",\n }),\n },\n };\n $(\"#modal\").modal({ show: true });\n },\n },\n ],\n },\n {\n group: \"Catalogue\",\n items: [\n {\n name: \"CreateCatalogue\",\n to: {\n name: \"DataProviderInterface-Input\",\n query: { locale: this.$route.query.locale, edit: false },\n params: { property: \"catalogues\" },\n },\n },\n {\n name: \"DeleteCatalogue\",\n disabled: !this.isLocatedOnAuthorizedCatalogPage,\n handler: () => {\n this.modal = {\n ...this.modal,\n ...{\n message:\n \"Are you sure you want to delete this catalogue? This can not be reverted!\",\n confirm: \"Delete catlogue (irreversible)\",\n confirmHandler: () =>\n this.handleDelete({\n id: this.$route.params.ctlg_id,\n property: \"catalogues\",\n catalog: this.$route.params.ctlg_id,\n }),\n },\n };\n $(\"#modal\").modal({ show: true });\n },\n },\n {\n name: \"EditCatalog\",\n onlyAuthorizedDatasetPage: true,\n disabled: !this.isLocatedOnAuthorizedCatalogPage,\n to: {\n name: \"DataProviderInterface-Edit\",\n params: {\n catalog: this.$route.params.ctlg_id\n ? this.$route.params.ctlg_id\n : \"undefined\",\n property: \"catalogues\",\n id: this.getID || \"undefined\",\n },\n query: {\n draft: false,\n locale: this.$route.query.locale,\n },\n },\n },\n ],\n },\n ];\n },\n menuItems() {\n let items = [];\n // Only show Draft Datasets if hideOldDPIFunctions is not true\n if (!this.$env.content.dataProviderInterface.hideOldDPIFunctions) {\n items.push({\n name: this.$t(\"message.dataupload.menu.draftDatasets\"),\n to: {\n name: \"DataProviderInterface-Draft\",\n query: { locale: this.$route.query.locale },\n },\n });\n }\n \n if (this.$env.content.dataProviderInterface.hideOldDPIFunctions) {\n items.push({\n name: \"Data Management\",\n href: `${this.rootUrl}/data-management/`,\n external: true,\n });\n }\n \n // items.push(\n // {\n // name: this.$t(\"message.dataupload.menu.myCatalogues\"),\n // to: {\n // name: \"DataProviderInterface-UserCatalogues\",\n // query: { locale: this.$route.query.locale },\n // },\n // },\n // {\n // name: this.$t(\"message.dataupload.menu.userProfile\"),\n // to: {\n // name: \"DataProviderInterface-UserProfile\",\n // query: { locale: this.$route.query.locale },\n // },\n // }\n // );\n \n if (this.showRatingService && this.isOperator) {\n items.push({\n name: \"Comment moderation\",\n to: {\n name: \"DataProviderInterface-CommentsModeration\",\n query: { locale: this.$route.query.locale },\n },\n });\n }\n return items;\n },\n isLocatedOnAuthorizedDatasetPage() {\n // Never return true while loading\n if (this.getLoading) return false;\n\n // Is the user located on the correct page?\n const isOnDatasetDetailsPage =\n this.$route.name === \"DatasetDetailsDataset\";\n if (!isOnDatasetDetailsPage) return false;\n const datasetId = isOnDatasetDetailsPage && this.$route.params.ds_id;\n\n // Does user have permission on dataset (based on current datasetDetails state)?\n const permissions = this.getUserData && this.getUserData.permissions;\n const catalogId = this.getCatalog && this.getCatalog.id;\n const hasPermission = permissions.find(\n (permission) => permission.rsname === catalogId\n );\n\n if (this.isOperator) {\n return true;\n }\n\n // Does the user have permission on the current dataset details page?\n return (\n hasPermission && isOnDatasetDetailsPage && datasetId === this.getID\n );\n },\n isLocatedOnAuthorizedCatalogPage() {\n // never return true while loading\n if (this.getLoading) return false;\n\n // is the user located on the correct page?\n const onCatalogPage = this.$route.name === \"CatalogueDetails\";\n if (!onCatalogPage) return false;\n const catalogId = onCatalogPage && this.$route.params.ctlg_id;\n\n // const permissions = this.getUserData && this.getUserData.permissions;\n // const hasPermission = permissions.find(permission => permission.rsname === catalogId);\n const hasPermission = true;\n // does user have permission on current catalogue\n return hasPermission && onCatalogPage;\n },\n isOperator() {\n return this.getUserData.roles.includes(\"operator\");\n },\n showWarningBanner() {\n return this.$env.content.dataProviderInterface?.showWarningBanner || false;\n }\n },\n methods: {\n checkDoi(doi = '') {\n return doi && doi.match(/^10\\.\\d{4,9}\\/[-._;()/:A-Z0-9]+$/i);\n },\n ...mapActions(\"auth\", [\"updateUserData\"]),\n ...mapActions(\"snackbar\", [\"showSnackbar\"]),\n setupKeycloakWatcher() {\n if (this.$keycloak && this.$keycloak.authenticated) {\n // Set up watcher here since we this.$keycloak might not be available.\n // If this.$keycloak is ensured, move this watcher out of this created hook.\n this.$watch(\n \"$keycloak.token\",\n async (newToken) => {\n if (!newToken) return;\n\n let rtpToken = this.$keycloak.rtpToken;\n if (!rtpToken) {\n const rtpTokenFn = this.$keycloak.getRtpToken;\n if (rtpTokenFn) {\n const res = await rtpTokenFn({ autoRefresh: true });\n rtpToken = res;\n }\n }\n\n this.updateUserData({\n authToken: newToken,\n rtpToken: rtpToken,\n hubUrl: this.$env.api.hubUrl,\n });\n },\n { immediate: true }\n );\n\n this.$watch(\"$keycloak.rtpToken\", (newRtpToken) => {\n if (!newRtpToken) return;\n\n this.updateUserData({\n authToken: this.$keycloak.token,\n rtpToken: newRtpToken,\n hubUrl: this.$env.api.hubUrl,\n });\n });\n }\n },\n async handleConfirm(action, argsObj, { successMessage, errorMessage }) {\n this.modal.loading = true;\n try {\n // Sleep for 250ms for better UX\n this.$Progress.start();\n await new Promise((resolve) => setTimeout(resolve, 250));\n\n this.$Progress.set(25);\n await this.$store.dispatch(action, argsObj);\n\n // Successful DOI registration\n this.showSnackbar({\n message: successMessage,\n variant: \"success\",\n });\n await new Promise((resolve) => setTimeout(resolve, 250));\n\n this.$Progress.finish();\n } catch (ex) {\n this.$Progress.fail();\n // eslint-disable-next-line no-console\n console.error(ex);\n\n const maybeErrorStatusMsg =\n ex.response && ex.response.data && ex.response.data.message;\n\n this.modal = {\n ...this.modal,\n ...{\n // Need to translate this\n message:\n \"DOI registration is not possible, the following error occured: \" +\n ex.response.data,\n confirm: \"Okay\",\n confirmHandler: () => $(\"#modal\").modal(\"hide\"),\n },\n };\n\n console.log(ex.response.data);\n let customErrorMessage =\n typeof errorMessage === \"string\" && errorMessage;\n customErrorMessage =\n typeof errorMessage === \"function\" && errorMessage(ex);\n // customErrorMessage = typeof errorMessage === 'object' && errorMessage.prefix && `${errorMessage.prefix}${maybeErrorStatusMsg && ` — ${maybeErrorStatusMsg}`}`;\n customErrorMessage =\n typeof errorMessage === \"object\" &&\n errorMessage.prefix + \" - \" + ex.response.data;\n\n console.log(errorMessage);\n const errorMsg =\n customErrorMessage ||\n maybeErrorStatusMsg ||\n ex.message ||\n \"An error occurred\";\n // show snackbar\n this.showSnackbar({\n message: errorMsg,\n variant: \"error\",\n });\n } finally {\n this.modal.loading = false;\n $(\"#modal\").modal(\"hide\");\n }\n },\n async handleRegisterDoi({ id, catalog, type = \"eu-ra-doi\" }) {\n await this.handleConfirm(\n \"auth/createPersistentIdentifier\",\n { id, catalog, type },\n {\n successMessage: this.$te(\"message.snackbar.doiRegistration.success\")\n ? this.$t(\"message.snackbar.doiRegistration.success\")\n : \"Successfully registered DOI\",\n errorMessage: {\n prefix: this.$te(\"message.snackbar.doiRegistration.error\")\n ? this.$t(\"message.snackbar.doiRegistration.error\")\n : \"DOI registration failed\",\n },\n }\n );\n },\n async handleMarkAsDraft({ id, catalog, title, description }) {\n await this.handleConfirm(\n \"auth/putDatasetToDraft\",\n {\n id,\n catalog,\n title,\n description,\n },\n {\n successMessage: this.$te(\"message.snackbar.markAsDraft.success\")\n ? this.$t(\"message.snackbar.markAsDraft.success\")\n : \"Dataset successfully marked as draft\",\n errorMessage: {\n prefix: this.$te(\"message.snackbar.markAsDraft.error\")\n ? this.$t(\"message.snackbar.markAsDraft.error\")\n : \"Failed to mark dataset as draft\",\n },\n }\n );\n\n this.$router\n .push({\n name: \"DataProviderInterface-Draft\",\n query: { locale: this.$route.query.locale },\n })\n .catch(() => {});\n },\n async handleDelete({ id, property, catalog }) {\n // todo: create user dataset api (and maybe integrate to store)\n // For now, do request manually using axios\n\n this.modal.loading = true;\n this.$Progress.start();\n try {\n let endpoint;\n\n if (property === \"datasets\") {\n endpoint = `${this.$env.api.hubUrl}datasets/${id}?useNormalizedId=true&catalogue=${catalog}`;\n } else if (property === \"catalogues\") {\n endpoint = `${this.$env.api.hubUrl}catalogues/${id}`;\n }\n\n await axios.delete(endpoint, {\n headers: {\n \"Content-Type\": \"text/turtle\",\n Authorization: `Bearer ${this.getUserData.rtpToken}`,\n },\n });\n\n let successMessage;\n if (property === \"datasets\") {\n successMessage = this.$te(\"message.snackbar.deleteDataset.success\")\n ? this.$t(\"message.snackbar.deleteDataset.success\")\n : \"Dataset successfully deleted\";\n } else if (property === \"catalogues\") {\n successMessage = this.$te(\"message.snackbar.deleteCatalog.success\")\n ? this.$t(\"message.snackbar.deleteCatalog.success\")\n : \"Catalog successfully deleted\";\n }\n\n this.showSnackbar({\n message: successMessage,\n variant: \"success\",\n });\n this.$Progress.finish();\n\n // Redirect to Home\n this.$router\n .push({\n name: \"Datasets\",\n query: { locale: this.$route.query.locale, refresh: true },\n })\n .catch(() => {});\n } catch (ex) {\n this.$Progress.fail();\n\n let errorMessage;\n\n if (property === \"datasets\") {\n errorMessage = this.$te(\"message.snackbar.deleteDataset.error\")\n ? this.$t(\"message.snackbar.deleteDataset.error\")\n : \"Failed to delete dataset\";\n } else if (property === \"catalogues\") {\n errorMessage = this.$te(\"message.snackbar.deleteCatalog.error\")\n ? this.$t(\"message.snackbar.deleteCatalog.error\")\n : \"Failed to delete catalog\";\n }\n\n this.showSnackbar({\n message: `${errorMessage}${\n ex.response?.data ? ` — ${ex.response?.data}` : ex.message\n }`,\n variant: \"error\",\n });\n } finally {\n this.modal.loading = false;\n $(\"#modal\").modal(\"hide\");\n }\n },\n },\n created() {\n this.setupKeycloakWatcher();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n#wrapper {\n background: linear-gradient(90deg, #082b7a, #0e47cb);\n width: 100%;\n position: sticky;\n bottom: 0;\n z-index: 999;\n}\n\nnav {\n max-width: 1400px;\n display: flex;\n flex-direction: row;\n margin: 0 auto;\n justify-content: space-between;\n font-size: 1rem;\n align-items: center;\n}\n\nul {\n float: right;\n\n li {\n display: inline;\n\n a {\n color: white;\n }\n }\n}\n\nbutton a {\n color: white;\n}\n\n.logout {\n display: block;\n margin: 0 auto;\n border: 1px solid white;\n padding: 0.1rem 1.5rem;\n}\n\n.logoutWrap {\n width: 14rem;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.warning-banner {\n background-color: #ffc107;\n color: #000;\n padding: 0.75rem 1rem;\n text-align: center;\n width: 100%;\n}\n\n.warning-content {\n max-width: 1400px;\n margin: 0 auto;\n}\n\n.external-link-icon svg {\n vertical-align: text-top !important;\n}\n</style>\n"],"names":["_sfc_main","Dropup","_a","_b","x","y","useWindowScroll","mapGetters","checkDoi","value","_c","_e","_d","$","items","isOnDatasetDetailsPage","datasetId","permissions","catalogId","hasPermission","permission","onCatalogPage","doi","mapActions","newToken","rtpToken","rtpTokenFn","newRtpToken","action","argsObj","successMessage","errorMessage","resolve","ex","maybeErrorStatusMsg","customErrorMessage","errorMsg","id","catalog","type","title","description","property","endpoint","axios","_hoisted_3","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_10","_openBlock","_createElementBlock","_hoisted_1","$data","$options","_hoisted_2","_createElementVNode","_toDisplayString","_ctx","_hoisted_4","_Fragment","_renderList","group","index","_createBlock","_component_dropup","menuItem","$setup","_resolveDynamicComponent","_normalizeClass","_createTextVNode","_hoisted_9","_renderSlot","_hoisted_11","_createVNode","_component_router_link","_component_app_confirmation_dialog"],"mappings":"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"}
|
|
@@ -158,6 +158,14 @@ declare const _default: import('vue').DefineComponent<{}, {}, {
|
|
|
158
158
|
temporalResolution: {
|
|
159
159
|
type: string;
|
|
160
160
|
};
|
|
161
|
+
geoDcatAp: {
|
|
162
|
+
type: string;
|
|
163
|
+
translate: string;
|
|
164
|
+
fields: string;
|
|
165
|
+
preTransform: (data: any) => {
|
|
166
|
+
label: any;
|
|
167
|
+
}[];
|
|
168
|
+
};
|
|
161
169
|
} & {
|
|
162
170
|
politicalGeocodingLevelURI: {
|
|
163
171
|
type: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mapGetters as V } from "vuex";
|
|
2
2
|
import k from "./DatasetDetailsProperty.vue.mjs";
|
|
3
3
|
import { dcatSchema as P, dcatDeSchema as F, dcatFields as E, dcatDeFields as I } from "./specification.mjs";
|
|
4
|
-
import { resolveComponent as p, openBlock as o, createElementBlock as
|
|
4
|
+
import { resolveComponent as p, openBlock as o, createElementBlock as D, createElementVNode as d, renderSlot as l, createVNode as T, createTextVNode as a, withDirectives as b, Fragment as A, renderList as C, createBlock as H, vShow as v, createCommentVNode as M } from "vue";
|
|
5
5
|
import "./DatasetDetailsProperties.vue2.mjs";
|
|
6
6
|
import N from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
7
7
|
const $ = {
|
|
@@ -64,7 +64,7 @@ const $ = {
|
|
|
64
64
|
};
|
|
65
65
|
function q(e, t, n, z, r, i) {
|
|
66
66
|
const w = p("dataset-details-feature-header"), _ = p("dataset-details-property"), x = p("pv-show-more");
|
|
67
|
-
return o(),
|
|
67
|
+
return o(), D("div", B, [
|
|
68
68
|
d("div", L, [
|
|
69
69
|
l(e.$slots, "property-header", {}, () => [
|
|
70
70
|
T(w, {
|
|
@@ -75,12 +75,12 @@ function q(e, t, n, z, r, i) {
|
|
|
75
75
|
}, null, 8, ["title", "arrowDown", "onClick"])
|
|
76
76
|
], !0),
|
|
77
77
|
t[3] || (t[3] = a()),
|
|
78
|
-
|
|
78
|
+
b(d("div", j, [
|
|
79
79
|
l(e.$slots, "property-table-before", {}, void 0, !0),
|
|
80
80
|
t[0] || (t[0] = a()),
|
|
81
81
|
l(e.$slots, "property-table", {}, () => [
|
|
82
82
|
d("table", G, [
|
|
83
|
-
(o(!0),
|
|
83
|
+
(o(!0), D(A, null, C(i.fieldsArray, (s, S) => {
|
|
84
84
|
var h, f, m, c, g, u, y;
|
|
85
85
|
return o(), H(_, {
|
|
86
86
|
name: s,
|
|
@@ -97,7 +97,7 @@ function q(e, t, n, z, r, i) {
|
|
|
97
97
|
], 512)
|
|
98
98
|
], !0),
|
|
99
99
|
t[1] || (t[1] = a()),
|
|
100
|
-
|
|
100
|
+
b(d("div", O, null, 512), [
|
|
101
101
|
[v, i.showMoreVisible && !r.expanded]
|
|
102
102
|
]),
|
|
103
103
|
t[2] || (t[2] = a()),
|
|
@@ -116,7 +116,7 @@ function q(e, t, n, z, r, i) {
|
|
|
116
116
|
}, null, 8, ["label", "upArrow", "action"])) : M("", !0)
|
|
117
117
|
]);
|
|
118
118
|
}
|
|
119
|
-
const X = /* @__PURE__ */ N($, [["render", q], ["__scopeId", "data-v-
|
|
119
|
+
const X = /* @__PURE__ */ N($, [["render", q], ["__scopeId", "data-v-2672ed97"]]);
|
|
120
120
|
export {
|
|
121
121
|
X as default
|
|
122
122
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsProperties.vue.mjs","sources":["../../../lib/datasetDetails/properties/DatasetDetailsProperties.vue"],"sourcesContent":["<template>\n <div class=\"mt-5 dsd-properties\">\n <div class=\"col-12 mb-2 p-0 dsd-properties-list\">\n <slot name=\"property-header\">\n <dataset-details-feature-header
|
|
1
|
+
{"version":3,"file":"DatasetDetailsProperties.vue.mjs","sources":["../../../lib/datasetDetails/properties/DatasetDetailsProperties.vue"],"sourcesContent":["<template>\n <div class=\"mt-5 dsd-properties\">\n <div class=\"col-12 mb-2 p-0 dsd-properties-list\">\n <slot name=\"property-header\">\n <dataset-details-feature-header :title=\"$t('message.datasetDetails.additionalInfo')\" :arrowDown=\"!infoVisible\"\n tag=\"additional-information-toggle\" :onClick=\"toggleInfo\" />\n </slot>\n <div class=\"position-relative dsd-item additional-information\" data-cy=\"additional-information\"\n v-show=\"infoVisible\">\n <slot name=\"property-table-before\"></slot>\n <slot name=\"property-table\">\n <table class=\"table table-borderless table-responsive\" ref=\"dsdProperties\" role=\"tablist\" id=\"myTab\">\n <dataset-details-property v-for='(name, index) in fieldsArray' :name=\"name\"\n :translate=\"fieldSchema[name]?.translate\" :type=\"fieldSchema[name]?.type\"\n :propertyFields=\"fieldSchema[name]?.fields\" :track=\"fieldSchema[name]?.track\"\n :itemstyles=\"fieldSchema[name]?.itemstyles\" :preTransform=\"fieldSchema[name]?.preTransform\"\n :transform=\"fieldSchema[name]?.transform\" :key=\"index\" />\n </table>\n </slot>\n <div class=\"additional-information-overlay\" ref=\"overlay\" v-show=\"showMoreVisible && !expanded\"></div>\n <slot name=\"property-table-after\"></slot>\n </div>\n </div>\n <pv-show-more v-if=\"showMoreVisible\"\n :label=\"expanded ? $t('message.metadata.showLess') : $t('message.metadata.showMore')\" :upArrow=\"expanded\"\n :action=\"toggleExpanded\" class=\"row text-primary\" />\n </div>\n</template>\n\n<script>\nimport { mapGetters } from \"vuex\";\nimport DatasetDetailsProperty from \"./DatasetDetailsProperty\";\nimport { dcatDeFields, dcatFields, dcatSchema, dcatDeSchema } from \"./specification.ts\";\n\nexport default {\n name: \"DatasetDetailsProperties\",\n components: {\n DatasetDetailsProperty\n },\n data() {\n return {\n infoVisible: true,\n initialHeight: 0,\n restrictedHeight: 100,\n expanded: false,\n };\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getDatasetDescriptionHeight'\n ]),\n fieldSchema() {\n return Object.assign(dcatSchema(this.i18n.global.t), dcatDeSchema())\n },\n propertyFields() {\n let properties = this.$env.content?.datasetDetails?.properties;\n if (!properties || properties === \"\") {\n properties = dcatFields;\n if (this.$env.content.dataProviderInterface.specification === 'dcatapde') {\n properties += \",\" + dcatDeFields;\n }\n }\n return properties;\n },\n fieldsArray() {\n return this.propertyFields.split(',').map(item => item.trim());\n },\n showMoreVisible() {\n return this.initialHeight > this.restrictedHeight;\n }\n },\n methods: {\n toggleInfo() {\n this.infoVisible = !this.infoVisible;\n },\n toggleExpanded() {\n this.expanded = !this.expanded;\n this.adaptHeight();\n },\n adaptHeight() {\n this.$refs.dsdProperties.style['flex'] = this.expanded ? \"0 0 100%\" : `0 0 ${this.restrictedHeight}px`;\n this.$refs.dsdProperties.style['max-height'] = this.expanded ? \"100%\" : `${this.restrictedHeight}px`;\n // this.$refs.dsdProperties.style['overflow-y'] = this.expanded ? \"auto\": \"hidden\";\n }\n },\n mounted() {\n this.initialHeight = this.$refs.dsdProperties.clientHeight;\n this.$refs.overlay.style.bottom = (this.$refs.dsdProperties.offsetHeight - this.$refs.dsdProperties.clientHeight) + \"px\";\n if (this.getDatasetDescriptionHeight >= this.initialHeight) {\n this.restrictedHeight = this.getDatasetDescriptionHeight;\n this.toggleExpanded()\n } else if ((this.getDatasetDescriptionHeight >= this.restrictedHeight) && (this.getDatasetDescriptionHeight <= this.initialHeight)) {\n this.restrictedHeight = this.getDatasetDescriptionHeight\n }\n this.adaptHeight();\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.arrow {\n cursor: pointer;\n}\n\n.additional-information-overlay {\n width: 100%;\n height: 100px;\n position: absolute;\n left: 0;\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0, white 100%);\n pointer-events: none;\n}\n\ntable {\n background: #F5F5F5;\n}\n</style>\n"],"names":["_sfc_main","DatasetDetailsProperty","mapGetters","dcatSchema","dcatDeSchema","properties","_b","_a","dcatFields","dcatDeFields","item","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createElementVNode","_renderSlot","_ctx","_createVNode","_component_dataset_details_feature_header","$data","$options","_withDirectives","_hoisted_3","_hoisted_4","_Fragment","_renderList","name","index","_createBlock","_component_dataset_details_property","_c","_d","_e","_f","_g","_hoisted_5","_vShow","_component_pv_show_more"],"mappings":"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"}
|