diff --git a/package.json b/package.json index 8548d4dafdff59887c28a6ae9a353b8a39383473..e569e945409eb68cb5efa59cbf127e09528d9f5d 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@coscine/api-client": "^2.6.0", - "@coscine/form-generator": "^3.0.7", + "@coscine/form-generator": "^3.0.8", "@rdfjs-elements/formats-pretty": "^0.4.3", "@rdfjs/data-model": "^2.0.0", "@rdfjs/dataset": "^2.0.0", @@ -90,5 +90,8 @@ "vite-plugin-windicss": "^1.8.3", "vue-template-compiler": "^2.7.10" }, - "packageManager": "yarn@3.2.4" + "packageManager": "yarn@3.2.4", + "resolutions": { + "nodeify-fetch": "3.0.0" + } } diff --git a/src/modules/login/components/LoginMain.vue b/src/modules/login/components/LoginMain.vue index ba5669c21b2ef89827909c0ef91ea35477961950..5c8be071285037afc6729c576e6cc542a59e6394 100644 --- a/src/modules/login/components/LoginMain.vue +++ b/src/modules/login/components/LoginMain.vue @@ -104,7 +104,7 @@ export default defineComponent({ // is a one time fix for data conforming to the old schema. Can be // removed from March 2023. Also edit the store type to use object. fixMalformedLoginStoredData() { - const loginStoredData = this.loginStore.loginStoredData; + const loginStoredData: string = this.loginStore.loginStoredData; if (loginStoredData && loginStoredData.trim() !== "") { this.loginStore.loginStoredData = loginStoredData .replace("entityID", "entityId") diff --git a/src/modules/resource/components/resource-page/MetadataManager.vue b/src/modules/resource/components/resource-page/MetadataManager.vue index 85b0d03035cd4b456ae1069ed2e914fe380d3f53..0ba2a99829954a5992eac823b3515705f10abaf6 100644 --- a/src/modules/resource/components/resource-page/MetadataManager.vue +++ b/src/modules/resource/components/resource-page/MetadataManager.vue @@ -20,7 +20,7 @@ :show-detail="showDetail" :shown-files="shownFiles" @changeMetadata="changeMetadata" - @loadAllFilesTab="loadAllFilesTab" + @loadAllFilesTab="changeMetadata(-1)" @removeElement="removeElement" /> <b-row id="metadataManagerMetadataSection"> @@ -65,10 +65,12 @@ :selected-shape="resource.applicationProfile" :shapes="applicationProfile" :disabled-mode="resource.archived" + :validation-context="currentFileId + ''" :class-receiver="receiveClass" :user-receiver="async () => user" @input="inputMetadata" - @isValid="isValid($event, currentFileId)" + @isValid="isValid" + @isValidating="isValidatingChange" /> </span> </b-col> @@ -213,6 +215,8 @@ export default defineComponent({ conforms: boolean; results: ValidationResult[]; }[], + isValidating: false, + storedSwitch: null as number | null, saveDuplicateFilesModalVisible: false, }; @@ -343,6 +347,12 @@ export default defineComponent({ fileListEdit() { this.getOptions(); }, + isValidating() { + if (!this.isValidating && this.storedSwitch !== null) { + this.currentFileId = this.storedSwitch; + this.storedSwitch = null; + } + }, shownFiles() { this.validationResults = Array.from( { length: this.shownFiles.length + 1 }, @@ -370,17 +380,25 @@ export default defineComponent({ } } }, - isValid(valid: ValidationReport, fileId: number) { + isValid(valid: ValidationReport, fileString: string) { + let fileId = Number(fileString); + if (isNaN(fileId)) { + fileId = this.currentFileId; + } if (this.validationResults.length && this.validationResults[fileId + 1]) { this.validationResults[fileId + 1].conforms = valid.conforms; this.validationResults[fileId + 1].results = valid.results; } }, - loadAllFilesTab() { - this.currentFileId = -1; + isValidatingChange(isValidating: boolean, _: string) { + this.isValidating = isValidating; }, changeMetadata(index: number) { - this.currentFileId = index; + if (this.isValidating) { + this.storedSwitch = index; + } else { + this.currentFileId = index; + } }, removeElement(index: number, count = 1) { if (this.showDetail) { diff --git a/vite.config.js b/vite.config.js index 342e79f4ffa809566806af502b736df2ce26e013..e5f7481a6e5c0f7c8079fc24591a48febead975d 100644 --- a/vite.config.js +++ b/vite.config.js @@ -63,6 +63,7 @@ const config = defineConfig({ }, build: { + target: "es2020", minify: true, rollupOptions: { external: [], diff --git a/yarn.lock-workspace b/yarn.lock-workspace index 158312bf18cc240346ca49e7d33aa2a198f817ad..93979962bbfc690ac7104efd56369de58163c9d9 100644 --- a/yarn.lock-workspace +++ b/yarn.lock-workspace @@ -307,16 +307,7 @@ __metadata: languageName: node linkType: hard -"@coscine/api-client@npm:^2.5.0": - version: 2.5.0 - resolution: "@coscine/api-client@npm:2.5.0" - dependencies: - axios: ^0.21.1 - checksum: 2e1fd19238288046c9de957ca153f71967f1f5347d565cf39cb06be39c649be98413cf8bd614c12bac7080cf3059358832b483c416994dc2514cf3e0c736ec4e - languageName: node - linkType: hard - -"@coscine/api-client@npm:^2.6.0": +"@coscine/api-client@npm:^2.5.0, @coscine/api-client@npm:^2.6.0": version: 2.6.0 resolution: "@coscine/api-client@npm:2.6.0" dependencies: @@ -325,9 +316,9 @@ __metadata: languageName: node linkType: hard -"@coscine/form-generator@npm:^3.0.7": - version: 3.0.7 - resolution: "@coscine/form-generator@npm:3.0.7" +"@coscine/form-generator@npm:^3.0.8": + version: 3.0.8 + resolution: "@coscine/form-generator@npm:3.0.8" dependencies: "@coscine/api-client": ^2.5.0 "@zazuko/rdf-vocabularies": ^2022.6.29 @@ -347,7 +338,7 @@ __metadata: peerDependenciesMeta: "@vue/composition-api": optional: true - checksum: dcbc0b5b73207306b9427263ea69990581befb7e5e2ca4e1228715e4ec7950fc0bbfe6d92351a4c13de0ef025a1557acf397175f9008b1d57c2721e0401a3127 + checksum: 8df99f7b85fe0b3ac4964a0ba32e127b8f3d2cefd017dc6d73ad32b023b16e9796387e46b58b76689d7d42d1bfa05b13b992ede24e25739c33a31e092df5920d languageName: node linkType: hard @@ -2183,15 +2174,6 @@ __metadata: languageName: node linkType: hard -"@zazuko/node-fetch@npm:^2.6.6": - version: 2.6.6 - resolution: "@zazuko/node-fetch@npm:2.6.6" - dependencies: - whatwg-url: ^5.0.0 - checksum: d2690111a98942a6329162d8486b9aea29b16bc4f5abf82709856568f0fe1268f1ac681d66b7ba0abc86d0c7cc5479ea0d53a05bb662ec506cf321fae1e7fad8 - languageName: node - linkType: hard - "@zazuko/rdf-vocabularies@npm:^2022.6.29": version: 2022.6.29 resolution: "@zazuko/rdf-vocabularies@npm:2022.6.29" @@ -3107,18 +3089,6 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^1.6.0": - version: 1.6.2 - resolution: "concat-stream@npm:1.6.2" - dependencies: - buffer-from: ^1.0.0 - inherits: ^2.0.3 - readable-stream: ^2.2.2 - typedarray: ^0.0.6 - checksum: 1ef77032cb4459dcd5187bd710d6fc962b067b64ec6a505810de3d2b8cc0605638551b42f8ec91edf6fcd26141b32ef19ad749239b58fae3aba99187adc32285 - languageName: node - linkType: hard - "concat-stream@npm:^2.0.0": version: 2.0.0 resolution: "concat-stream@npm:2.0.0" @@ -3236,7 +3206,7 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:^3.0.4, cross-fetch@npm:^3.0.5, cross-fetch@npm:^3.0.6": +"cross-fetch@npm:^3.0.5, cross-fetch@npm:^3.0.6": version: 3.1.5 resolution: "cross-fetch@npm:3.1.5" dependencies: @@ -6875,20 +6845,7 @@ __metadata: languageName: node linkType: hard -"nodeify-fetch@npm:^2.2.1": - version: 2.2.2 - resolution: "nodeify-fetch@npm:2.2.2" - dependencies: - "@zazuko/node-fetch": ^2.6.6 - concat-stream: ^1.6.0 - cross-fetch: ^3.0.4 - readable-error: ^1.0.0 - readable-stream: ^3.5.0 - checksum: ad884a840cadfa740328907958974fa2da41eda0222025d80dfb2eae3627a5a97cb1f29d89476ef3af79fceed56bedbe3967fff9da8336a06c7d2945485c7c95 - languageName: node - linkType: hard - -"nodeify-fetch@npm:^3.0.0": +"nodeify-fetch@npm:3.0.0": version: 3.0.0 resolution: "nodeify-fetch@npm:3.0.0" dependencies: @@ -8229,7 +8186,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:^2.3.3, readable-stream@npm:~2.3.6": version: 2.3.7 resolution: "readable-stream@npm:2.3.7" dependencies: @@ -9421,7 +9378,7 @@ __metadata: "typescript@patch:typescript@^4.8.3#~builtin<compat/typescript>": version: 4.8.3 - resolution: "typescript@patch:typescript@npm%3A4.8.3#~builtin<compat/typescript>::version=4.8.3&hash=a1c5e5" + resolution: "typescript@patch:typescript@npm%3A4.8.3#~builtin<compat/typescript>::version=4.8.3&hash=701156" bin: tsc: bin/tsc tsserver: bin/tsserver @@ -9443,7 +9400,7 @@ __metadata: resolution: "ui@workspace:." dependencies: "@coscine/api-client": ^2.6.0 - "@coscine/form-generator": ^3.0.7 + "@coscine/form-generator": ^3.0.8 "@esbuild-plugins/node-globals-polyfill": ^0.1.1 "@esbuild-plugins/node-modules-polyfill": ^0.1.4 "@rdfjs-elements/formats-pretty": ^0.4.3