@@ -77,7 +77,12 @@
- this is the activity tab
+
+
![]()
+ {{ entry.subject }}
+ {{ getTime(entry.datetime) }}
+
+
@@ -122,13 +127,20 @@ export default {
toolbar: false
},
lastModifiedRelative: null,
- lastCreatedRemative: null
+ lastCreatedRemative: null,
+ params: {
+ type: 'filter',
+ since: 0,
+ object_type: 'deck_card',
+ object_id: this.id
+ }
}
},
computed: {
...mapState({
currentBoard: state => state.currentBoard,
- assignableUsers: state => state.assignableUsers
+ assignableUsers: state => state.assignableUsers,
+ cardActivity: 'activity'
}),
currentCard() {
return this.$store.getters.cardById(this.id)
@@ -172,6 +184,7 @@ export default {
},
created() {
setInterval(this.updateRelativeTimestamps, 10000)
+ this.loadCardActivity()
},
destroyed() {
clearInterval(this.updateRelativeTimestamps)
@@ -230,6 +243,22 @@ export default {
}
this.$store.dispatch('removeLabel', data)
},
+ loadCardActivity() {
+ this.isLoading = true
+ this.$store.dispatch('loadActivity', this.params).then(response => {
+ this.isLoading = false
+ })
+ },
+ getTime(timestamp) {
+ return OC.Util.relativeModifiedDate(timestamp)
+ },
+ loadMore() {
+ let array = Object.values(this.cardActivity)
+ let aId = (array[array.length - 1].activity_id)
+
+ this.params.since = aId
+ this.loadCardActivity()
+ },
clickAddNewAttachmment() {
}
diff --git a/src/router.js b/src/router.js
index 144d1d6f7..e9d7cb60a 100644
--- a/src/router.js
+++ b/src/router.js
@@ -92,6 +92,11 @@ export default new Router({
return {
id: parseInt(route.params.id, 10)
}
+ },
+ sidebar: (route) => {
+ return {
+ id: parseInt(route.params.id, 10)
+ }
}
}
},
diff --git a/src/store/main.js b/src/store/main.js
index 514b66f55..2da17cd07 100644
--- a/src/store/main.js
+++ b/src/store/main.js
@@ -55,7 +55,7 @@ export default new Vuex.Store({
sharees: [],
assignableUsers: [],
boardFilter: BOARD_FILTERS.ALL,
- boardActivity: []
+ activity: []
},
getters: {
boards: state => {
@@ -64,8 +64,8 @@ export default new Vuex.Store({
sharees: state => {
return state.sharees
},
- boardActivity: state => {
- return state.boardActivity
+ activity: state => {
+ return state.activity
},
noneArchivedBoards: state => {
return state.boards.filter(board => {
@@ -144,8 +144,13 @@ export default new Vuex.Store({
state.sharees = shareesUsersAndGroups.users
state.sharees.push(...shareesUsersAndGroups.groups)
},
- setBoardActivity(state, boardActivity) {
- state.boardActivity.push(...boardActivity)
+ setActivity(state, activity) {
+ activity.forEach(element => {
+ if (element.subject_rich[1].board.id === state.currentBoard.id) {
+ state.activity.push(element)
+ }
+ })
+
},
setAssignableUsers(state, users) {
state.assignableUsers = users
@@ -275,13 +280,20 @@ export default new Vuex.Store({
commit('setSharees', response.data.ocs.data)
})
},
- loadBoardActivity({ commit }, obj) {
+ loadActivity({ commit }, obj) {
const params = new URLSearchParams()
params.append('format', 'json')
- params.append('limit', obj.limit)
+ params.append('type', 'deck')
params.append('since', obj.since)
- axios.get(OC.linkToOCS('apps/activity/api/v2/activity') + 'deck', { params }).then((response) => {
- commit('setBoardActivity', response.data.ocs.data)
+ params.append('object_type', obj.object_type)
+ params.append('object_id', obj.object_id)
+
+ let keyword = 'deck'
+ if (obj.type === 'filter') {
+ keyword = 'filter'
+ }
+ axios.get(OC.linkToOCS('apps/activity/api/v2/activity') + keyword, { params }).then((response) => {
+ commit('setActivity', response.data.ocs.data)
})
},