From 3fa27c054a2e66b038557801debfb39700194fd6 Mon Sep 17 00:00:00 2001 From: pacien Date: Wed, 24 Oct 2018 05:03:45 +0200 Subject: Rename project --- beamer/viewer/viewer.js | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 beamer/viewer/viewer.js (limited to 'beamer/viewer/viewer.js') diff --git a/beamer/viewer/viewer.js b/beamer/viewer/viewer.js new file mode 100644 index 0000000..414ff1c --- /dev/null +++ b/beamer/viewer/viewer.js @@ -0,0 +1,65 @@ +/* + * Beamer Viewer, a web-based PDF presentation viewer + * Copyright (C) 2018 Pacien TRAN-GIRARD + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +"use strict"; + +class Viewer { + constructor() { + this.fileInput = document.getElementById("fileInput"); + this._listenForInput(); + } + + load(source) { + pdfjsLib.getDocument(source).then(function(pdf) { + const presentation = new Presentation(pdf); + }).catch(function(error) { + console.error(error); + window.alert("Error while loading presentation:\n\n" + error.message); + window.location.href = window.location.pathname; // reload without "?file=..." + }); + } + + _readFile(file) { + const fileReader = new FileReader(); + const self = this; + fileReader.onload = function() { + const byteArray = new Uint8Array(this.result); + self.load(byteArray); + } + + fileReader.readAsArrayBuffer(file); + } + + _listenForInput() { + const self = this; + fileInput.addEventListener("change", function(event) { + self._readFile(event.target.files[0]); + }); + + document.body.addEventListener("drop", function(event) { + event.preventDefault(); + event.stopPropagation(); + self._readFile(event.dataTransfer.files[0]); + }); + + document.body.addEventListener("dragover", function(event) { + event.preventDefault(); + event.stopPropagation(); + }); + } +} -- cgit v1.2.3