pdf viewer

This commit is contained in:
hiranyey 2023-06-04 13:24:30 +02:00 committed by Pierre Dubouilh
parent 97c427fb87
commit 929f30a9bb
3 changed files with 52 additions and 2 deletions

33
ui/script.js vendored
View file

@ -19,6 +19,7 @@ const picsHolder = document.getElementById('picsHolder')
const video = document.getElementById('video') const video = document.getElementById('video')
const videoHolder = document.getElementById('videoHolder') const videoHolder = document.getElementById('videoHolder')
const manualUpload = document.getElementById('clickupload') const manualUpload = document.getElementById('clickupload')
const pdf = document.getElementById('pdf')
const help = document.getElementById('help') const help = document.getElementById('help')
const okBadge = document.getElementById('ok') const okBadge = document.getElementById('ok')
const sadBadge = document.getElementById('sad') const sadBadge = document.getElementById('sad')
@ -105,6 +106,9 @@ window.onClickLink = e => {
// let html be displayed naturally // let html be displayed naturally
} else if (a.innerText.endsWith('.html')) { } else if (a.innerText.endsWith('.html')) {
return true return true
} else if (isPdf(a.href)) {
openPDF(a.href)
return false
} }
// else just force download // else just force download
@ -371,11 +375,12 @@ function resetView () {
table.style.display = 'table' table.style.display = 'table'
picsHolder.src = transparentPixel picsHolder.src = transparentPixel
videoHolder.src = '' videoHolder.src = ''
editor.style.display = pics.style.display = video.style.display = crossIcon.style.display = 'none' pdf.innerHTML = ''
editor.style.display = pics.style.display = video.style.display = pdf.style.display = crossIcon.style.display = 'none'
scrollToArrow() scrollToArrow()
} }
window.quitAll = () => helpOff() || picsOff() || videosOff() || padOff() window.quitAll = () => helpOff() || picsOff() || videosOff() || padOff() || pdfOff()
// Mkdir icon // Mkdir icon
window.mkdirBtn = function () { window.mkdirBtn = function () {
@ -609,6 +614,30 @@ window.videodl = function () {
dl(getASelected()) dl(getASelected())
} }
// PDF Viewer
const pdfTypes = ['.pdf']
const isPdf = src => src && pdfTypes.find(type => src.toLocaleLowerCase().includes(type))
const isPdfMode = () => pdf.style.display === 'flex'
function openPDF (src) {
const name = src.split('/').pop()
table.style.display = 'none'
crossIcon.style.display = 'block'
pdf.style.display = 'flex'
const pdfEmbed = document.createElement('embed')
pdfEmbed.setAttribute('src', src + '#toolbar=0')
pdfEmbed.setAttribute('type', 'application/pdf')
pdf.appendChild(pdfEmbed)
pushSoftState(decodeURI(name))
return false
}
function pdfOff () {
if (!isPdfMode()) { return }
resetView()
softPrev()
return true
}
// help // help
const isHelpMode = () => help.style.display === 'block' const isHelpMode = () => help.style.display === 'block'

20
ui/style.css vendored
View file

@ -35,6 +35,26 @@
background: gray; background: gray;
} }
#pdf {
user-select: none;
-webkit-tap-highlight-color: transparent;
justify-content:center;
align-items:center;
position: fixed;
background-color: #000;
top: 0px;
bottom: 0px;
left: 0px;
right: 0px;
overflow: hidden;
z-index: 99;
}
#pdf embed {
width: 100%;
height: 100%;
}
html { html {
color: #dfe6e9; color: #dfe6e9;
background-color: #2d3436; background-color: #2d3436;

1
ui/ui.tmpl vendored
View file

@ -58,6 +58,7 @@
<div onclick="window.videodl()" class="icon-dl" id="video-dl"></div> <div onclick="window.videodl()" class="icon-dl" id="video-dl"></div>
<video controls id="videoHolder"> </video> <video controls id="videoHolder"> </video>
</div> </div>
<div id="pdf" style="display:none;"> </div>
<table id="linkTable"> <table id="linkTable">
{{range .RowsFolders}} {{range .RowsFolders}}