зеркало из https://github.com/nextcloud/spreed.git
Add ability to delete conversation
Signed-off-by: Marco Ambrosini <marcoambrosini@pm.me>
This commit is contained in:
Родитель
08026dbfe1
Коммит
3d267a7d74
|
@ -77,10 +77,10 @@ export default {
|
|||
color: #989898;
|
||||
}
|
||||
&-text {
|
||||
color: #000000;
|
||||
color: #444444;
|
||||
}
|
||||
&--quote {
|
||||
border-left: 4px solid #0083C9;
|
||||
border-left: 4px solid rgb(59, 59, 59);
|
||||
padding: 4px 0 0 8px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
:key="item.id"
|
||||
:to="{ name: 'conversation', params: { token: item.token }}"
|
||||
:title="item.displayName"
|
||||
@click="joinConversation(item.token)">
|
||||
@click.prevent.exact="joinConversation(item.token)">
|
||||
<Avatar
|
||||
slot="icon"
|
||||
:size="44"
|
||||
|
@ -48,13 +48,9 @@
|
|||
</ActionButton>
|
||||
<ActionButton
|
||||
icon="icon-delete"
|
||||
@click="alert('Delete')">
|
||||
Delete
|
||||
@click.prevent.exact="deleteConversation(item.token)">
|
||||
{{t('spreed', 'Leave Conversation')}}
|
||||
</ActionButton>
|
||||
<ActionLink
|
||||
icon="icon-external"
|
||||
title="Link"
|
||||
href="https://nextcloud.com" />
|
||||
</template>
|
||||
</AppContentListItem>
|
||||
</ul>
|
||||
|
@ -67,7 +63,7 @@ import AppNavigationCounter from 'nextcloud-vue/dist/Components/AppNavigationCou
|
|||
import AppContentListItem from 'nextcloud-vue/dist/Components/AppContentListItem'
|
||||
import ActionButton from 'nextcloud-vue/dist/Components/ActionButton'
|
||||
import { fetchConversations } from '../../../services/conversationsService'
|
||||
import { joinConversation } from '../../../services/participantsService'
|
||||
import { joinConversation, removeCurrentUserFromConversation } from '../../../services/participantsService'
|
||||
|
||||
export default {
|
||||
name: 'ConversationsList',
|
||||
|
@ -102,6 +98,14 @@ export default {
|
|||
const selectedConversationToken = payload.token
|
||||
this.joinConversation(selectedConversationToken)
|
||||
this.$router.push({ path: `/call/${selectedConversationToken}` })
|
||||
},
|
||||
/**
|
||||
* Deletes the current user from the conversation.
|
||||
* @param {String} token The token of the conversation to be left.
|
||||
*/
|
||||
async deleteConversation(token) {
|
||||
const response = await removeCurrentUserFromConversation(token)
|
||||
console.debug(response)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -99,5 +99,6 @@ export default {
|
|||
.settings {
|
||||
position: sticky;
|
||||
bottom: 0px;
|
||||
border-top: 1px solid lightgray;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -74,4 +74,22 @@ const createGroupConversation = async function(groupId) {
|
|||
}
|
||||
}
|
||||
|
||||
export { fetchConversations, searchPossibleConversations, createOneToOneConversation, createGroupConversation }
|
||||
/**
|
||||
* Delete a conversation.
|
||||
* @param {String} token The token of the conversation to be deleted.
|
||||
*/
|
||||
const deleteConversation = async function(token) {
|
||||
try {
|
||||
const response = await axios.delete(generateOcsUrl('apps/spreed/api/v1', 2) + `room/${token}`)
|
||||
return response
|
||||
} catch (error) {
|
||||
console.debug('Error while deleting the conversation: ', error)
|
||||
}
|
||||
}
|
||||
|
||||
export {
|
||||
fetchConversations,
|
||||
searchPossibleConversations,
|
||||
createOneToOneConversation,
|
||||
createGroupConversation,
|
||||
deleteConversation }
|
||||
|
|
|
@ -38,4 +38,36 @@ const joinConversation = async function(token) {
|
|||
}
|
||||
}
|
||||
|
||||
export { joinConversation }
|
||||
/**
|
||||
* Leaves the conversation specified with the token.
|
||||
*
|
||||
* @param {String} token The conversation token;
|
||||
*/
|
||||
const leaveConversation = async function(token) {
|
||||
try {
|
||||
const response = await axios.delete(generateOcsUrl('apps/spreed/api/v1', 2) + `room/${token}/participants/active`)
|
||||
return response
|
||||
} catch (error) {
|
||||
console.debug(error)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the the current user from the conversation specified with the token.
|
||||
*
|
||||
* @param {String} token The conversation token;
|
||||
*/
|
||||
const removeCurrentUserFromConversation = async function(token) {
|
||||
try {
|
||||
const response = await axios.delete(generateOcsUrl('apps/spreed/api/v1', 2) + `room/${token}/participants/self`)
|
||||
return response
|
||||
} catch (error) {
|
||||
console.debug(error)
|
||||
}
|
||||
}
|
||||
|
||||
export {
|
||||
joinConversation,
|
||||
leaveConversation,
|
||||
removeCurrentUserFromConversation
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче