board timeline

Signed-off-by: Jakob <jakob.roehrl@web.de>
This commit is contained in:
Jakob
2019-08-22 12:39:46 +02:00
committed by Julius Härtl
parent c3d925a172
commit bc7c5ea4b7
2 changed files with 56 additions and 3 deletions

View File

@@ -1,10 +1,17 @@
<template> <template>
<div> <div>
timeline <div v-for="entry in boardActivity" :key="entry.activity_id">
<img :src="entry.icon">
{{ entry.activity_id }}
{{ entry.subject }}
{{ getTime(entry.datetime) }}
</div>
<button @click="loadMore">Load More</button>
</div> </div>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'
export default { export default {
name: 'TimelineTabSidebard', name: 'TimelineTabSidebard',
@@ -19,8 +26,38 @@ export default {
}, },
data() { data() {
return { return {
isLoading: false,
params: {
limit: 50,
since: 0
} }
} }
},
computed: {
...mapGetters({
boardActivity: 'boardActivity'
})
},
created() {
this.loadBoardActivity()
},
methods: {
loadBoardActivity() {
this.isLoading = true
this.$store.dispatch('loadBoardActivity', this.params).then(response => {
this.isLoading = false
})
},
getTime(timestamp) {
return OC.Util.relativeModifiedDate(timestamp)
},
loadMore() {
let array = Object.values(this.boardActivity)
let aId = (array[array.length - 1].activity_id)
this.params.since = aId
this.loadBoardActivity()
}
}
} }
</script> </script>

View File

@@ -54,7 +54,8 @@ export default new Vuex.Store({
boards: [], boards: [],
sharees: [], sharees: [],
assignableUsers: [], assignableUsers: [],
boardFilter: BOARD_FILTERS.ALL boardFilter: BOARD_FILTERS.ALL,
boardActivity: []
}, },
getters: { getters: {
boards: state => { boards: state => {
@@ -63,6 +64,9 @@ export default new Vuex.Store({
sharees: state => { sharees: state => {
return state.sharees return state.sharees
}, },
boardActivity: state => {
return state.boardActivity
},
noneArchivedBoards: state => { noneArchivedBoards: state => {
return state.boards.filter(board => { return state.boards.filter(board => {
return board.archived === false && !board.deletedAt return board.archived === false && !board.deletedAt
@@ -140,6 +144,9 @@ export default new Vuex.Store({
state.sharees = shareesUsersAndGroups.users state.sharees = shareesUsersAndGroups.users
state.sharees.push(...shareesUsersAndGroups.groups) state.sharees.push(...shareesUsersAndGroups.groups)
}, },
setBoardActivity(state, boardActivity) {
state.boardActivity.push(...boardActivity)
},
setAssignableUsers(state, users) { setAssignableUsers(state, users) {
state.assignableUsers = users state.assignableUsers = users
}, },
@@ -268,6 +275,15 @@ export default new Vuex.Store({
commit('setSharees', response.data.ocs.data) commit('setSharees', response.data.ocs.data)
}) })
}, },
loadBoardActivity({ commit }, obj) {
const params = new URLSearchParams()
params.append('format', 'json')
params.append('limit', obj.limit)
params.append('since', obj.since)
axios.get(OC.linkToOCS('apps/activity/api/v2/activity') + 'deck', { params }).then((response) => {
commit('setBoardActivity', response.data.ocs.data)
})
},
setBoardFilter({ commmit }, filter) { setBoardFilter({ commmit }, filter) {
commmit('setBoardFilter', filter) commmit('setBoardFilter', filter)