Copy and cut files

Former-commit-id: ac9399efef37f13706590384e29295c6234acb7c [formerly f62dcb89aa49125769405c502688f3f8d4348da3] [formerly 4b9f0fd696f449c30da2d2f7a11cf5d6c7054c54 [formerly 64e70e39dcf6759e04315bc97ec6a0fed927c737]]
Former-commit-id: 422165231c785b121b1f6725909d3ce7c8dcdfee [formerly 2b26582a03f674d40abb39e27b2cc880d2bd3ebb]
Former-commit-id: ee743808a3c012514c9b7d57a34c79e408a8a78b
This commit is contained in:
Henrique Dias
2017-07-26 15:55:39 +01:00
parent 42bab1458e
commit 149465ab52
19 changed files with 371 additions and 230 deletions

View File

@@ -99,27 +99,45 @@ function put (url, content = '') {
})
}
function move (oldLink, newLink) {
oldLink = removePrefix(oldLink)
newLink = removePrefix(newLink)
function moveCopy (items, copy = false) {
let promises = []
return new Promise((resolve, reject) => {
let request = new window.XMLHttpRequest()
request.open('PATCH', `${store.state.baseURL}/api/resource${oldLink}`, true)
request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`)
request.setRequestHeader('Destination', newLink)
for (let item of items) {
let from = removePrefix(item.from)
let to = removePrefix(item.to)
request.onload = () => {
if (request.status === 200) {
resolve(request.responseText)
} else {
reject(request.responseText)
promises.push(new Promise((resolve, reject) => {
let request = new window.XMLHttpRequest()
request.open('PATCH', `${store.state.baseURL}/api/resource${from}`, true)
request.setRequestHeader('Authorization', `Bearer ${store.state.jwt}`)
request.setRequestHeader('Destination', to)
if (copy) {
request.setRequestHeader('Action', 'copy')
}
}
request.onerror = (error) => reject(error)
request.send()
})
request.onload = () => {
if (request.status === 200) {
resolve(request.responseText)
} else {
reject(request.responseText)
}
}
request.onerror = (error) => reject(error)
request.send()
}))
}
return Promise.all(promises)
}
function move (items) {
return moveCopy(items)
}
function copy (items) {
return moveCopy(items, true)
}
function checksum (url, algo) {
@@ -425,6 +443,7 @@ export default {
checksum,
move,
put,
copy,
post,
command,
search,