@@ -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>
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user