filebrowser/_assets/_old/js/listing.js
Henrique Dias 02e22f4017 updates
Former-commit-id: f1539e92838e1140679ef920b6371b9d391af69c [formerly c84baa55075fee51ebb721d6b6696370d3abbeb8] [formerly 9ed81811e74619df1adb92c12a50d37915eadb92 [formerly 98a92a3da0f2147215ea219f6521766a269b8228]]
Former-commit-id: d84ec2952d31bd0bd1242be89487dd7b58db2749 [formerly 4cadf618b95922326d41a20d565d7e063afc1045]
Former-commit-id: 8bdba61ef5e95c8662ca27c0964ad9d91b3e8e8c
2017-06-29 17:54:57 +01:00

91 lines
2.2 KiB
JavaScript

'use strict'
listing.redefineDownloadURLs = function () {
let files = ''
for (let i = 0; i < selectedItems.length; i++) {
let url = document.getElementById(selectedItems[i]).dataset.url
files += url.replace(window.location.pathname, '') + ','
}
files = files.substring(0, files.length - 1)
files = encodeURIComponent(files)
let links = document.querySelectorAll('#download ul a')
Array.from(links).forEach(link => {
link.href = '?download=' + link.dataset.format + '&files=' + files
})
}
listing.newFileButton = function (event) {
event.preventDefault()
let clone = document.importNode(templates.question.content, true)
clone.querySelector('h3').innerHTML = 'New file'
clone.querySelector('p').innerHTML = 'End with a trailing slash to create a dir.'
clone.querySelector('.ok').innerHTML = 'Create'
clone.querySelector('form').addEventListener('submit', listing.newFilePrompt)
document.querySelector('body').appendChild(clone)
document.querySelector('.overlay').classList.add('active')
document.querySelector('.prompt').classList.add('active')
}
listing.newFilePrompt = function (event) {
event.preventDefault()
buttons.setLoading('new')
let name = event.currentTarget.querySelector('input').value
webdav.new(window.location.pathname + name)
.then(() => {
buttons.setDone('new')
listing.reload()
})
.catch(e => {
console.log(e)
buttons.setDone('new', false)
})
closePrompt(event)
return false
}
listing.addDoubleTapEvent = function () {
let items = document.getElementsByClassName('item'),
touches = {
id: '',
count: 0
}
Array.from(items).forEach(file => {
file.addEventListener('touchstart', event => {
if (touches.id != file.id) {
touches.id = file.id
touches.count = 1
setTimeout(() => {
touches.count = 0
}, 300)
return
}
touches.count++
if (touches.count > 1) {
window.location = file.dataset.url
}
})
})
}
document.addEventListener('DOMContentLoaded', event => {
listing.addDoubleTapEvent()
if (user.AllowNew) {
buttons.new.addEventListener('click', listing.newFileButton)
}
})