#468 - add extra buttons for status actions
This commit is contained in:
parent
80ef855a63
commit
9fc997500e
8 changed files with 118 additions and 68 deletions
51
src/components/extra_buttons/extra_buttons.js
Normal file
51
src/components/extra_buttons/extra_buttons.js
Normal file
|
@ -0,0 +1,51 @@
|
|||
import Popper from 'vue-popperjs/src/component/popper.js.vue'
|
||||
|
||||
const ExtraButtons = {
|
||||
props: [ 'status' ],
|
||||
components: {
|
||||
Popper
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
showDropDown: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deleteStatus () {
|
||||
const confirmed = window.confirm(this.$t('status.delete_confirm'))
|
||||
if (confirmed) {
|
||||
this.$store.dispatch('deleteStatus', { id: this.status.id })
|
||||
}
|
||||
},
|
||||
toggleMenu () {
|
||||
this.showDropDown = !this.showDropDown
|
||||
},
|
||||
pinStatus () {
|
||||
this.$store.state.api.backendInteractor.pinOwnStatus(this.status.id).then((status) => {
|
||||
if (status.error) {
|
||||
this.$emit('onError', status.error)
|
||||
} else {
|
||||
this.$store.dispatch('updatePinned', status)
|
||||
}
|
||||
})
|
||||
},
|
||||
unpinStatus () {
|
||||
this.$store.state.api.backendInteractor.unpinOwnStatus(this.status.id).then((status) => {
|
||||
this.$store.dispatch('updatePinned', status)
|
||||
})
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
currentUser () { return this.$store.state.users.currentUser },
|
||||
canDelete () {
|
||||
if (!this.currentUser) { return }
|
||||
const superuser = this.currentUser.rights.moderator || this.currentUser.rights.admin
|
||||
return superuser || this.status.user.id === this.currentUser.id
|
||||
},
|
||||
ownStatus () {
|
||||
return this.status.user.id === this.currentUser.id
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default ExtraButtons
|
Loading…
Add table
Add a link
Reference in a new issue