diff --git a/src/Canvas.js b/src/Canvas.js index 3bd1a2b..ca6c55a 100644 --- a/src/Canvas.js +++ b/src/Canvas.js @@ -21,6 +21,7 @@ class Canvas { * @param {int|string} name A unique name for this canvas */ generateID(resourceId, name) { + name = name.replace(/cr([1-9]$)/, `cr0$1`); this.id = `${this.BASE_URL}/${resourceId}/canvas/${name}`; this.resourceId = resourceId; this.name = name; diff --git a/src/common.js b/src/common.js index 7a571a3..5fc5871 100644 --- a/src/common.js +++ b/src/common.js @@ -187,6 +187,7 @@ Common.createCanvas = async function (manifest, filename) { dn: 2 }; + // Remove file extension let canvasName = filename.split('_')[namePos[manifest.technique]] .replace(/\.\w{1,3}$/, ''); @@ -225,8 +226,8 @@ Common.createCanvas = async function (manifest, filename) { */ Common.populateCanvases = async function (manifest, images) { const sequence = new Sequence(process.env.BASE_URL); - // There's only one sequence + // There's only one sequence sequence.generateID(manifest.resourceId, 0); for (let img of images) { @@ -241,6 +242,13 @@ Common.populateCanvases = async function (manifest, images) { } } + // Sort them according to their ID number... (cornice, colonna, ecc...) + sequence.canvases.sort((a, b) => { + const firstId = a['@id'].slice(a['@id'].lastIndexOf('/') + 1).replace(/[a-z]+/ig,''); + const secondId = b['@id'].slice(b['@id'].lastIndexOf('/') + 1).replace(/[a-z]+/ig,''); + return Number(firstId) - Number(secondId); + }); + manifest.addSequence(sequence); return manifest;