From 6f3877f83c9344e8f8bd6b447acf727f138cd775 Mon Sep 17 00:00:00 2001 From: eyelidlessness Date: Thu, 23 Mar 2023 12:34:57 -0700 Subject: [PATCH] Fix: ensure instance attachments are loaded in draw widget --- CHANGELOG.md | 4 ++++ package-lock.json | 2 +- package.json | 2 +- src/widget/draw/draw-widget.js | 18 ++++++++++++++---- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fc191d7..26d5d803 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [7.2.2] - 2023-03-23 + +- Fix: ensure instance attachments are loaded in draw widget (#967) + ## [7.2.1] - 2023-03-21 - Fix: revert jQuery upgrade to address regressions accessing jQuery extensions in Enketo Express (#964) diff --git a/package-lock.json b/package-lock.json index 886a5988..e9169937 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "enketo-core", - "version": "7.2.1", + "version": "7.2.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 24c88ac2..862ae5a9 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "enketo-core", "description": "Extensible Enketo form engine", "homepage": "https://enketo.org", - "version": "7.2.1", + "version": "7.2.2", "license": "Apache-2.0", "os": [ "darwin", diff --git a/src/widget/draw/draw-widget.js b/src/widget/draw/draw-widget.js index a135227f..c22cfd33 100644 --- a/src/widget/draw/draw-widget.js +++ b/src/widget/draw/draw-widget.js @@ -357,18 +357,28 @@ class DrawWidget extends Widget { return ''; } + let fileOrURL = file; + + if (typeof file === 'string') { + try { + fileOrURL = await fileManager.getFileUrl(file); + } catch { + // Ignore error, attempt to load + } + } + try { if ( - typeof file === 'string' && - file.startsWith('jr://') && + typeof fileOrURL === 'string' && + fileOrURL.startsWith('jr://') && this.element.dataset.loadedUrl ) { - file = this.element.dataset.loadedUrl; + fileOrURL = this.element.dataset.loadedUrl; } this.pad.reset(); - await this.pad.setBaseImage(file); + await this.pad.setBaseImage(fileOrURL); return this.pad.toObjectURL(); } catch {