diff --git a/res/include/script/file_viewer/QRCodeWindow.js b/res/include/script/file_viewer/QRCodeWindow.js new file mode 100644 index 0000000..f4b8e2f --- /dev/null +++ b/res/include/script/file_viewer/QRCodeWindow.js @@ -0,0 +1,35 @@ +function QRCodeWindow(viewer) { + this.viewer = viewer + this.visible = false + this.modal = new Modal( + document.getElementById("file_viewer"), + () => { this.toggle() }, + "QR code", "500px", "auto", + ) + + this.img = document.createElement("img") + this.img.style.display = "block" + this.img.style.width = "100%" + this.modal.setBody(this.img) + + this.btnQRCode = document.getElementById("btn_qr_code") + this.btnQRCode.addEventListener("click", () => { this.toggle() }) + + this.setFile() +} + +QRCodeWindow.prototype.toggle = function () { + if (this.visible) { + this.modal.close() + this.btnQRCode.classList.remove("button_highlight") + this.visible = false + } else { + this.modal.open() + this.btnQRCode.classList.add("button_highlight") + this.visible = true + } +} + +QRCodeWindow.prototype.setFile = function () { + this.img.src = "/api/misc/qr?text=" + encodeURIComponent(window.location.href) +} diff --git a/res/include/script/file_viewer/Viewer.js b/res/include/script/file_viewer/Viewer.js index 576cedf..f650e63 100644 --- a/res/include/script/file_viewer/Viewer.js +++ b/res/include/script/file_viewer/Viewer.js @@ -17,6 +17,7 @@ function Viewer(type, viewToken, data) { this.toolbar = new Toolbar(this) this.detailsWindow = new DetailsWindow(this) this.editWindow = new EditWindow() + this.qrCodeWindow = new QRCodeWindow(this) this.divFilepreview = document.getElementById("filepreview") @@ -117,6 +118,7 @@ Viewer.prototype.setFile = function (file) { this.detailsWindow.setFile(file) this.editWindow.setFile(file) this.toolbar.setFile(file) + this.qrCodeWindow.setFile() // Register a new view. We don't care what this returns becasue we can't // do anything about it anyway diff --git a/res/template/file_viewer.html b/res/template/file_viewer.html index 553a2bd..3e0da7e 100644 --- a/res/template/file_viewer.html +++ b/res/template/file_viewer.html @@ -69,6 +69,10 @@ share Share +