summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2022-10-17 08:25:33 +0200
committerSanto Cariotti <santo@dcariotti.me>2022-10-17 08:25:33 +0200
commit16357c0e48bf1006d1fd81f944aa0ac5ddd1e70d (patch)
tree7a978c0f58153646c86b455d4773ca640f16ef51
parenta1b648b2bb9960d5697f8fee8a6ce7f42f896744 (diff)
admin: Delete an user avatar
-rw-r--r--components/VTable.vue23
-rw-r--r--pages/settings.vue18
-rw-r--r--store/users.js3
3 files changed, 30 insertions, 14 deletions
diff --git a/components/VTable.vue b/components/VTable.vue
index 7c17d7b..5fb2ad2 100644
--- a/components/VTable.vue
+++ b/components/VTable.vue
@@ -22,8 +22,18 @@
svg(v-else xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6 text-red-500")
path(stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12")
span(v-else-if="name == 'avatar'")
- a.inline-block(:href="'/user/'+field.id" target="_blank")
- user-avatar(:data="field")
+ .flex
+ a.inline-block(:href="'/user/'+field.id" target="_blank")
+ user-avatar(:data="field")
+ a.text-red-500.ml-2.cursor-pointer(
+ title="Delete this avatar"
+ @click="deleteAvatar(field.id)"
+ v-if="field.avatar"
+ )
+ svg(xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6")
+ path(stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0")
+
+
span(v-else-if="['author', 'user', 'resolved'].includes(name)")
a.inline-block(:href="'/user/'+field[name].id" target="_blank")
user-avatar(:data="field[name]" v-if="field[name].username")
@@ -68,6 +78,15 @@ export default {
handleDelete(id) {
this.delete(id);
},
+ deleteAvatar(id) {
+ this.$store.dispatch("users/deleteAvatar", id).then((response) => {
+ if (response.status == 200) {
+ this.$toast.success("Avatar has been removed");
+ } else {
+ this.$toast.error("Error removing");
+ }
+ });
+ },
},
};
</script>
diff --git a/pages/settings.vue b/pages/settings.vue
index 5a74ced..8b8bad7 100644
--- a/pages/settings.vue
+++ b/pages/settings.vue
@@ -124,16 +124,14 @@ export default {
});
},
deleteAvatar() {
- this.$store
- .dispatch("users/deleteAvatar", this.me.id)
- .then((response) => {
- if (response.status == 200) {
- this.$toast.success("Avatar has been removed");
- this.avatarChanged = true;
- } else {
- this.$toast.error("Error removing");
- }
- });
+ this.$store.dispatch("users/deleteAvatar").then((response) => {
+ if (response.status == 200) {
+ this.$toast.success("Avatar has been removed");
+ this.avatarChanged = true;
+ } else {
+ this.$toast.error("Error removing");
+ }
+ });
},
save(event) {
const f = this.form;
diff --git a/store/users.js b/store/users.js
index 44f041c..5df1726 100644
--- a/store/users.js
+++ b/store/users.js
@@ -124,13 +124,12 @@ export const actions = {
return res;
},
// Delete the avatar
- // FIX: use the right endpoint with `id`, not `me`
async deleteAvatar({ commit, rootGetters }, id) {
commit("loadingStatus", true, { root: true });
let res = { status: 0, data: null };
let api = this.$config.api;
- await fetch(`${api}/v1/users/me/avatar`, {
+ await fetch(`${api}/v1/users/${id ?? "me"}/avatar`, {
method: "DELETE",
headers: {
Authorization: `Bearer ${rootGetters["auth/accessToken"]}`,