diff --git a/app/controllers/api/v1/profiles_controller.rb b/app/controllers/api/v1/profiles_controller.rb index a92c479bc..b915f0775 100644 --- a/app/controllers/api/v1/profiles_controller.rb +++ b/app/controllers/api/v1/profiles_controller.rb @@ -13,6 +13,11 @@ class Api::V1::ProfilesController < Api::BaseController @user.update!(profile_params) end + def avatar + @user.avatar.attachment.destroy! if @user.avatar.attached? + head :ok + end + def availability @user.account_users.find_by!(account_id: availability_params[:account_id]).update!(availability: availability_params[:availability]) end diff --git a/app/javascript/dashboard/api/auth.js b/app/javascript/dashboard/api/auth.js index c41a43624..e5ed77a34 100644 --- a/app/javascript/dashboard/api/auth.js +++ b/app/javascript/dashboard/api/auth.js @@ -166,4 +166,8 @@ export default { profile: { ...availabilityData }, }); }, + + deleteAvatar() { + return axios.delete(endPoints('deleteAvatar').url); + }, }; diff --git a/app/javascript/dashboard/api/endPoints.js b/app/javascript/dashboard/api/endPoints.js index 0b801fdb3..c9d0955ef 100644 --- a/app/javascript/dashboard/api/endPoints.js +++ b/app/javascript/dashboard/api/endPoints.js @@ -36,6 +36,10 @@ const endPoints = { }, params: { omniauth_token: '' }, }, + + deleteAvatar: { + url: '/api/v1/profile/avatar', + }, }; export default page => { diff --git a/app/javascript/dashboard/i18n/locale/en/settings.json b/app/javascript/dashboard/i18n/locale/en/settings.json index 5c8dcbf98..47ad6ec7b 100644 --- a/app/javascript/dashboard/i18n/locale/en/settings.json +++ b/app/javascript/dashboard/i18n/locale/en/settings.json @@ -3,6 +3,9 @@ "LINK": "Profile Settings", "TITLE": "Profile Settings", "BTN_TEXT": "Update Profile", + "DELETE_AVATAR": "Delete Avatar", + "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully", + "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again", "UPDATE_SUCCESS": "Your profile has been updated successfully", "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully", "AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed", @@ -69,7 +72,11 @@ }, "AVAILABILITY": { "LABEL": "Availability", - "STATUSES_LIST": ["Online", "Busy", "Offline"] + "STATUSES_LIST": [ + "Online", + "Busy", + "Offline" + ] }, "EMAIL": { "LABEL": "Your email address", @@ -196,4 +203,4 @@ "FORWARD_SLASH_KEY": "/" } } -} +} \ No newline at end of file diff --git a/app/javascript/dashboard/routes/dashboard/settings/profile/Index.vue b/app/javascript/dashboard/routes/dashboard/settings/profile/Index.vue index e2ce46575..053ac5e50 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/profile/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/profile/Index.vue @@ -14,6 +14,17 @@ :src="avatarUrl" @change="handleImageUpload" /> +