From f1351788ee5d3be634462fea24e6057f9c74e428 Mon Sep 17 00:00:00 2001 From: pacien Date: Mon, 23 Oct 2023 22:42:46 +0200 Subject: viewer: fix loading from URL (for demo file) --- beamer/viewer/init.js | 2 +- beamer/viewer/viewer.js | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) (limited to 'beamer') diff --git a/beamer/viewer/init.js b/beamer/viewer/init.js index 18269cd..6190386 100644 --- a/beamer/viewer/init.js +++ b/beamer/viewer/init.js @@ -45,7 +45,7 @@ function init() { const viewer = new Viewer(); if ("file" in params) - viewer.load(params["file"]); + viewer.loadFromUrl(params["file"]); } function load(file) { diff --git a/beamer/viewer/viewer.js b/beamer/viewer/viewer.js index 8101b02..e9c6d65 100644 --- a/beamer/viewer/viewer.js +++ b/beamer/viewer/viewer.js @@ -29,7 +29,7 @@ class Viewer { this._listenForInput(); } - load(source) { + _preparePresentation(source) { const self = this; pdfjsLib.getDocument(source).then(function(pdf) { self.presentation = new Presentation(pdf); @@ -43,18 +43,29 @@ class Viewer { _readFile(file) { const self = this; this.fileReader.onload = function() { - self._onFileLoaded(new Uint8Array(this.result)); + self._setPresentation(new Uint8Array(this.result)); } this.fileReader.abort(); this.fileReader.readAsArrayBuffer(file); } - _onFileLoaded(bytes) { - this.load(bytes); + _setPresentation(presentation) { + this._preparePresentation(presentation); this.startButton.disabled = false; } + _setFileName(name) { + const dummy = new DataTransfer(); + dummy.items.add(new File([], name)); + this.fileInput.files = dummy.files; + } + + loadFromUrl(url) { + this._setFileName(url); + this._setPresentation(url); + } + _listenForInput() { const self = this; fileInput.addEventListener("change", function(event) { -- cgit v1.2.3