From 2db6a02a932e07d3f112d28207cf3ee05c08383b Mon Sep 17 00:00:00 2001 From: Manav Aggarwal Date: Tue, 19 Sep 2023 18:11:50 +0530 Subject: [PATCH] - changing metadata key names, removing comments, replacing replace with trim --- .../components/edit/EditListItems.vue | 2 +- .../channelEdit/components/edit/EditModal.vue | 13 ++++---- .../shared/vuex/file/__tests__/module.spec.js | 4 +-- .../frontend/shared/vuex/file/utils.js | 32 ++++++++----------- 4 files changed, 21 insertions(+), 30 deletions(-) diff --git a/contentcuration/contentcuration/frontend/channelEdit/components/edit/EditListItems.vue b/contentcuration/contentcuration/frontend/channelEdit/components/edit/EditListItems.vue index 44cac4a2f5..fd980dc786 100644 --- a/contentcuration/contentcuration/frontend/channelEdit/components/edit/EditListItems.vue +++ b/contentcuration/contentcuration/frontend/channelEdit/components/edit/EditListItems.vue @@ -8,7 +8,7 @@ @input="trackSelect" @removed="handleRemoved" /> -
+
{ - file.metadata.folders.forEach(org => { - this.createNode('topic', org, newNodeId).then(topicNodeId => { - org.files.forEach(orgFile => { + file.metadata.folders.forEach(folder => { + this.createNode('topic', folder, newNodeId).then(topicNodeId => { + folder.files.forEach(folderFile => { const extra_fields = {}; - extra_fields['options'] = { entry: orgFile.resourceHref }; - extra_fields['title'] = orgFile.title; + extra_fields['options'] = { entry: folderFile.resourceHref }; + extra_fields['title'] = folderFile.title; let file_kind = null; FormatPresetsList.forEach(p => { if (p.id === file.metadata.preset) { @@ -532,7 +532,6 @@ return File.uploadUrl({ checksum: file.checksum, size: file.file_size, - type: 'application/zip', name: file.original_filename, file_format: file.file_format, preset: file.metadata.preset, @@ -542,7 +541,7 @@ loaded: 0, total: file.size, }; - if (index === 0) { + if (!this.selected.length) { this.selected = [resourceNodeId]; } this.updateFile({ diff --git a/contentcuration/contentcuration/frontend/shared/vuex/file/__tests__/module.spec.js b/contentcuration/contentcuration/frontend/shared/vuex/file/__tests__/module.spec.js index b1da778cb5..9af92da859 100644 --- a/contentcuration/contentcuration/frontend/shared/vuex/file/__tests__/module.spec.js +++ b/contentcuration/contentcuration/frontend/shared/vuex/file/__tests__/module.spec.js @@ -247,7 +247,6 @@ describe('file store', () => { }); }); it('extractIMSMetadata should extract metadata from imsmanifest.xml', async () => { - // const manifestFile = get_imsmanifest_file({ title: 'Test file' }); const manifestContent = ` @@ -317,7 +316,6 @@ describe('file store', () => { const zip = new JSZip(); zip.file('imsmanifest.xml', manifestContent); - // zip.folder('ims_package.zip'); await zip.generateAsync({ type: 'blob' }).then(async function(imsBlob) { await expect(extractIMSMetadata(imsBlob)).resolves.toEqual({ title: 'Test File', @@ -506,7 +504,7 @@ describe('file store', () => { - Test File + \t\t\t\n\n\n\nTest File\n und diff --git a/contentcuration/contentcuration/frontend/shared/vuex/file/utils.js b/contentcuration/contentcuration/frontend/shared/vuex/file/utils.js index 814cb31409..45f34d62ff 100644 --- a/contentcuration/contentcuration/frontend/shared/vuex/file/utils.js +++ b/contentcuration/contentcuration/frontend/shared/vuex/file/utils.js @@ -62,7 +62,7 @@ async function getFolderMetadata(data, xmlDoc, zip, procssedFiles) { }; if (orgNode.nodeType === 1) { const title = orgNode.getElementsByTagName('title'); - org.title = title[0].textContent.replace(/ {2}|\r\n|\n|\r/gm, ''); + org.title = title[0].textContent.trim(); const files = orgNode.getElementsByTagName('item'); const immediateChildNodes = []; const childNodes = Object.values(orgNode.children); @@ -74,7 +74,7 @@ async function getFolderMetadata(data, xmlDoc, zip, procssedFiles) { await Promise.all( immediateChildNodes.map(async (fileNode, k) => { const file = {}; - file.title = title[1 + k].textContent.replace(/ {2}|\r\n|\n|\r/gm, ''); + file.title = title[1 + k].textContent.trim(); file.identifierref = fileNode.getAttribute('identifierref'); file.resourceHref = xmlDoc .querySelectorAll(`[identifier=${file.identifierref}]`)[0] @@ -149,41 +149,37 @@ async function getManifestMetadata(manifestFile, zip, procssedFiles) { if (xmlDoc.getElementsByTagName('lomes:title').length) { metadata.title = xmlDoc .getElementsByTagName('lomes:title')[0] - .children[0].textContent.replace(/ {2}|\r\n|\n|\r/gm, ''); + .children[0].textContent.trim(); } if ( xmlDoc.getElementsByTagName('lomes:idiom').length && - xmlDoc - .getElementsByTagName('lomes:idiom')[0] - .textContent.replace(/ {2}|\r\n|\n|\r/gm, '') !== 'und' + LanguagesMap.has(xmlDoc.getElementsByTagName('lomes:idiom')[0].textContent.trim()) && + xmlDoc.getElementsByTagName('lomes:idiom')[0].textContent.trim() !== 'und' ) { metadata.language = xmlDoc .getElementsByTagName('lomes:idiom')[0] - .children[0].textContent.replace(/ {2}|\r\n|\n|\r/gm, ''); + .children[0].textContent.trim(); } if (xmlDoc.getElementsByTagName('lomes:description').length) { metadata.description = xmlDoc .getElementsByTagName('lomes:description')[0] - .children[0].textContent.replace(/ {2}|\r\n|\n|\r/gm, ''); + .children[0].textContent.trim(); } } else { if (xmlDoc.getElementsByTagName('imsmd:title').length) { - metadata.title = xmlDoc - .getElementsByTagName('imsmd:title')[0] - .textContent.replace(/ {2}|\r\n|\n|\r/gm, ''); + metadata.title = xmlDoc.getElementsByTagName('imsmd:title')[0].textContent.trim(); } if ( xmlDoc.getElementsByTagName('imsmd:language').length && - xmlDoc.getElementsByTagName('imsmd:language')[0].textContent !== 'und' + LanguagesMap.has(xmlDoc.getElementsByTagName('imsmd:language')[0].textContent.trim()) && + xmlDoc.getElementsByTagName('imsmd:language')[0].textContent.trim() !== 'und' ) { - metadata.language = xmlDoc - .getElementsByTagName('imsmd:language')[0] - .textContent.replace(/ {2}|\r\n|\n|\r/gm, ''); + metadata.language = xmlDoc.getElementsByTagName('imsmd:language')[0].textContent.trim(); } if (xmlDoc.getElementsByTagName('imsmd:description').length) { metadata.description = xmlDoc .getElementsByTagName('imsmd:description')[0] - .textContent.replace(/ {2}|\r\n|\n|\r/gm, ''); + .textContent.trim(); } } return metadata; @@ -204,9 +200,7 @@ export async function extractIMSMetadata(fileInput) { } }) .then(async manifestFile => { - return await getManifestMetadata(manifestFile, zip, procssedFiles).then(metadata => { - return metadata; - }); + return await getManifestMetadata(manifestFile, zip, procssedFiles) }); }