buttons animations
Former-commit-id: 7c32637982be8af78d41c5610405694689c8df55 [formerly 461b2f1d4556df9ef36ebac39e0a269aad57cce1] [formerly 071f6ef97283c1e5c0ebac49fda747fa77f6a539 [formerly f9699f174d
]]
Former-commit-id: a052df2da3d1dc23311e69ffd8d058567fa9bd3b [formerly ebdbc05a6bd049a2479b850b23c7e2ffa7a5ba5f]
Former-commit-id: 56066e9d06059f6dbfc87e28a7bd8406bff06a5d
pull/726/head
parent
2fd2365db3
commit
4e5b309bf9
|
@ -74,6 +74,7 @@
|
||||||
import {mapState} from 'vuex'
|
import {mapState} from 'vuex'
|
||||||
import Item from './ListingItem'
|
import Item from './ListingItem'
|
||||||
import api from '@/utils/api'
|
import api from '@/utils/api'
|
||||||
|
import buttons from '@/utils/buttons'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'listing',
|
name: 'listing',
|
||||||
|
@ -159,7 +160,7 @@ export default {
|
||||||
handleFiles: function (files, base) {
|
handleFiles: function (files, base) {
|
||||||
this.resetOpacity()
|
this.resetOpacity()
|
||||||
|
|
||||||
// buttons.setLoading('upload')
|
buttons.loading('upload')
|
||||||
let promises = []
|
let promises = []
|
||||||
|
|
||||||
for (let file of files) {
|
for (let file of files) {
|
||||||
|
@ -168,12 +169,12 @@ export default {
|
||||||
|
|
||||||
Promise.all(promises)
|
Promise.all(promises)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
buttons.done('upload')
|
||||||
this.$store.commit('setReload', true)
|
this.$store.commit('setReload', true)
|
||||||
// buttons.setDone('upload')
|
|
||||||
})
|
})
|
||||||
.catch(e => {
|
.catch(e => {
|
||||||
|
buttons.done('upload', false)
|
||||||
console.log(e)
|
console.log(e)
|
||||||
// buttons.setDone('upload', false)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
import {mapGetters, mapMutations, mapState} from 'vuex'
|
import {mapGetters, mapMutations, mapState} from 'vuex'
|
||||||
import api from '@/utils/api'
|
import api from '@/utils/api'
|
||||||
import url from '@/utils/url'
|
import url from '@/utils/url'
|
||||||
|
import buttons from '@/utils/buttons'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'delete',
|
name: 'delete',
|
||||||
|
@ -25,16 +26,16 @@ export default {
|
||||||
...mapMutations(['closeHovers']),
|
...mapMutations(['closeHovers']),
|
||||||
submit: function (event) {
|
submit: function (event) {
|
||||||
this.closeHovers()
|
this.closeHovers()
|
||||||
// buttons.setLoading('delete')
|
buttons.loading('delete')
|
||||||
|
|
||||||
if (this.req.kind !== 'listing') {
|
if (this.req.kind !== 'listing') {
|
||||||
api.delete(this.$route.path)
|
api.delete(this.$route.path)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// buttons.setDone('delete')
|
buttons.done('delete')
|
||||||
this.$router.push({path: url.removeLastDir(this.$route.path) + '/'})
|
this.$router.push({path: url.removeLastDir(this.$route.path) + '/'})
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
// buttons.setDone('delete', false)
|
buttons.done('delete', false)
|
||||||
console.log(error)
|
console.log(error)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -55,12 +56,12 @@ export default {
|
||||||
Promise.all(promises)
|
Promise.all(promises)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.$store.commit('setReload', true)
|
this.$store.commit('setReload', true)
|
||||||
// buttons.setDone('delete')
|
buttons.done('delete')
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
this.$store.commit('setReload', true)
|
this.$store.commit('setReload', true)
|
||||||
// buttons.setDone('delete', false)
|
buttons.done('delete', false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ export default {
|
||||||
let el = event.currentTarget
|
let el = event.currentTarget
|
||||||
let promises = []
|
let promises = []
|
||||||
let dest = this.current
|
let dest = this.current
|
||||||
// buttons.setLoading('move')
|
buttons.loading('move')
|
||||||
|
|
||||||
let selected = el.querySelector('li[aria-selected=true]')
|
let selected = el.querySelector('li[aria-selected=true]')
|
||||||
if (selected !== null) {
|
if (selected !== null) {
|
||||||
|
@ -77,11 +77,11 @@ export default {
|
||||||
|
|
||||||
Promise.all(promises)
|
Promise.all(promises)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// buttons.setDone('move')
|
buttons.done('move')
|
||||||
this.$router.push({page: dest})
|
this.$router.push({page: dest})
|
||||||
})
|
})
|
||||||
.catch(e => {
|
.catch(e => {
|
||||||
// buttons.setDone('move', false)
|
buttons.done('move', false)
|
||||||
console.log(e)
|
console.log(e)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
@ -34,14 +34,12 @@ export default {
|
||||||
uri += this.name + '/'
|
uri += this.name + '/'
|
||||||
uri = uri.replace('//', '/')
|
uri = uri.replace('//', '/')
|
||||||
|
|
||||||
// buttons.setLoading('newDir')
|
|
||||||
api.put(uri)
|
api.put(uri)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// buttons.setDone('newDir')
|
|
||||||
this.$router.push({ path: uri })
|
this.$router.push({ path: uri })
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
// buttons.setDone('newDir', false)
|
// TODO: Show error message!
|
||||||
console.log(error)
|
console.log(error)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -34,14 +34,12 @@ export default {
|
||||||
uri += this.name
|
uri += this.name
|
||||||
uri = uri.replace('//', '/')
|
uri = uri.replace('//', '/')
|
||||||
|
|
||||||
// buttons.setLoading('newFile')
|
|
||||||
api.put(uri)
|
api.put(uri)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// buttons.setDone('newFile')
|
|
||||||
this.$router.push({ path: uri })
|
this.$router.push({ path: uri })
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
// buttons.setDone('newFile', false)
|
// TODO: show error message in a box
|
||||||
console.log(error)
|
console.log(error)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -52,8 +52,6 @@ export default {
|
||||||
this.name = encodeURIComponent(this.name)
|
this.name = encodeURIComponent(this.name)
|
||||||
newLink = url.removeLastDir(oldLink) + '/' + this.name
|
newLink = url.removeLastDir(oldLink) + '/' + this.name
|
||||||
|
|
||||||
// buttons.setLoading('rename')
|
|
||||||
|
|
||||||
api.move(oldLink, newLink)
|
api.move(oldLink, newLink)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
if (this.req.kind !== 'listing') {
|
if (this.req.kind !== 'listing') {
|
||||||
|
@ -61,10 +59,9 @@ export default {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// TODO: keep selected after reload?
|
// TODO: keep selected after reload?
|
||||||
// buttons.setDone('rename')
|
|
||||||
this.$store.commit('setReload', true)
|
this.$store.commit('setReload', true)
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
// buttons.setDone('rename', false)
|
// TODO: show error message
|
||||||
console.log(error)
|
console.log(error)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
function loading (button) {
|
||||||
|
let el = document.querySelector(`#${button}-button > i`)
|
||||||
|
|
||||||
|
if (el === undefined || el === null) {
|
||||||
|
console.log('Error getting button ' + button)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
el.dataset.icon = el.innerHTML
|
||||||
|
el.style.opacity = 0
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
el.classList.add('spin')
|
||||||
|
el.innerHTML = 'autorenew'
|
||||||
|
el.style.opacity = 1
|
||||||
|
}, 200)
|
||||||
|
}
|
||||||
|
|
||||||
|
function done (button, success = true) {
|
||||||
|
let el = document.querySelector(`#${button}-button > i`)
|
||||||
|
|
||||||
|
if (el === undefined || el === null) {
|
||||||
|
console.log('Error getting button ' + button)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
el.style.opacity = 0
|
||||||
|
|
||||||
|
let third = () => {
|
||||||
|
el.innerHTML = el.dataset.icon
|
||||||
|
el.style.opacity = null
|
||||||
|
}
|
||||||
|
|
||||||
|
let second = () => {
|
||||||
|
el.style.opacity = 0
|
||||||
|
setTimeout(third, 200)
|
||||||
|
}
|
||||||
|
|
||||||
|
let first = () => {
|
||||||
|
el.classList.remove('spin')
|
||||||
|
el.innerHTML = success
|
||||||
|
? 'done'
|
||||||
|
: 'close'
|
||||||
|
el.style.opacity = 1
|
||||||
|
setTimeout(second, 200)
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(first, 200)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
loading,
|
||||||
|
done
|
||||||
|
}
|
Loading…
Reference in New Issue