From 77853824a3ab601ed8d29f0aefabfd2aff5317d9 Mon Sep 17 00:00:00 2001 From: Marco Ambrosini Date: Thu, 10 Dec 2020 10:54:09 +0100 Subject: [PATCH] Add ability to set conversation description Signed-off-by: Marco Ambrosini --- package-lock.json | 6 +- package.json | 1 + .../RightSidebar/Description/Description.vue | 423 ++++++++++++++++++ src/components/RightSidebar/RightSidebar.vue | 62 +++ src/services/conversationsService.js | 8 + src/store/conversationsStore.js | 11 +- 6 files changed, 507 insertions(+), 4 deletions(-) create mode 100644 src/components/RightSidebar/Description/Description.vue diff --git a/package-lock.json b/package-lock.json index aa9797e722b..1704ef0be8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20768,9 +20768,9 @@ "dev": true }, "v-click-outside": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v-click-outside/-/v-click-outside-3.0.1.tgz", - "integrity": "sha512-FITcAM0R3JEPUSGiO7hfhKDODZHkOQTk/FyI9mwxNcz6LbMbJhABhjevLI5VsU00PRksloQx8vmpFIqlAfX6nw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/v-click-outside/-/v-click-outside-3.1.2.tgz", + "integrity": "sha512-gMdRqfRE6m6XU6SiFi3dyBlFB2MWogiXpof8Aa3LQysrl9pzTndqp/iEaAphLoadaQUFnQ0ec6fLLaxr7LiY6A==" }, "v-tooltip": { "version": "2.0.3", diff --git a/package.json b/package.json index b90a6767422..82d84bc3b05 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "ua-parser-js": "^0.7.23", "url-parse": "^1.4.7", "util": "^0.12.3", + "v-click-outside": "^3.1.2", "vue": "^2.6.12", "vue-at": "^2.5.0-beta.2", "vue-clipboard2": "^0.3.1", diff --git a/src/components/RightSidebar/Description/Description.vue b/src/components/RightSidebar/Description/Description.vue new file mode 100644 index 00000000000..63afe5f499f --- /dev/null +++ b/src/components/RightSidebar/Description/Description.vue @@ -0,0 +1,423 @@ + + + + + + + diff --git a/src/components/RightSidebar/RightSidebar.vue b/src/components/RightSidebar/RightSidebar.vue index a7414abb3e8..b8bb06b9e24 100644 --- a/src/components/RightSidebar/RightSidebar.vue +++ b/src/components/RightSidebar/RightSidebar.vue @@ -35,6 +35,16 @@ @submit-title="handleSubmitTitle" @dismiss-editing="dismissEditing" @close="handleClose"> + diff --git a/src/services/conversationsService.js b/src/services/conversationsService.js index d592dfd532d..f71470092f9 100644 --- a/src/services/conversationsService.js +++ b/src/services/conversationsService.js @@ -346,6 +346,13 @@ const changeListable = async function(token, listable) { return response } +const setConversationDescription = async function(token, description) { + const response = await axios.put(generateOcsUrl('apps/spreed/api/v3', 2) + `room/${token}/description`, { + description, + }) + return response +} + export { fetchConversations, fetchConversation, @@ -367,4 +374,5 @@ export { changeListable, setConversationPassword, setConversationName, + setConversationDescription, } diff --git a/src/store/conversationsStore.js b/src/store/conversationsStore.js index 00a15d4a33e..8369787f6d2 100644 --- a/src/store/conversationsStore.js +++ b/src/store/conversationsStore.js @@ -30,7 +30,7 @@ import { addToFavorites, removeFromFavorites, setConversationName, -} from '../services/conversationsService' + setConversationDescription } from '../services/conversationsService' import { getCurrentUser } from '@nextcloud/auth' import { CONVERSATION, WEBINAR, PARTICIPANT } from '../constants' @@ -102,6 +102,10 @@ const mutations = { purgeConversationsStore(state) { Object.assign(state, getDefaultState()) }, + + setConversationDescription(state, { token, description }) { + Vue.set(state.conversations[token], 'description', description) + }, } const actions = { @@ -231,6 +235,11 @@ const actions = { commit('addConversation', conversation) }, + async setConversationDescription({ commit }, { token, description }) { + await setConversationDescription(token, description) + commit('setConversationDescription', { token, description }) + }, + async setReadOnlyState({ commit, getters }, { token, readOnly }) { const conversation = Object.assign({}, getters.conversations[token]) if (!conversation) {