diff --git a/app/controllers/api/v1/profiles_controller.rb b/app/controllers/api/v1/profiles_controller.rb index fb9c3b62c..20b8e7ae8 100644 --- a/app/controllers/api/v1/profiles_controller.rb +++ b/app/controllers/api/v1/profiles_controller.rb @@ -22,6 +22,11 @@ class Api::V1::ProfilesController < Api::BaseController @user.account_users.find_by!(account_id: availability_params[:account_id]).update!(availability: availability_params[:availability]) end + def set_active_account + @user.account_users.find_by(account_id: profile_params[:account_id]).update(active_at: Time.now.utc) + head :ok + end + private def set_user @@ -39,6 +44,7 @@ class Api::V1::ProfilesController < Api::BaseController :display_name, :avatar, :message_signature, + :account_id, ui_settings: {} ) end diff --git a/app/javascript/dashboard/App.vue b/app/javascript/dashboard/App.vue index 7243e566e..0ff94efa5 100644 --- a/app/javascript/dashboard/App.vue +++ b/app/javascript/dashboard/App.vue @@ -87,6 +87,9 @@ export default { }, async initializeAccount() { await this.$store.dispatch('accounts/get'); + this.$store.dispatch('setActiveAccount', { + accountId: this.currentAccountId, + }); const { locale, latest_chatwoot_version: latestChatwootVersion, diff --git a/app/javascript/dashboard/api/auth.js b/app/javascript/dashboard/api/auth.js index 76042103f..ef1762f46 100644 --- a/app/javascript/dashboard/api/auth.js +++ b/app/javascript/dashboard/api/auth.js @@ -147,4 +147,13 @@ export default { deleteAvatar() { return axios.delete(endPoints('deleteAvatar').url); }, + + setActiveAccount({ accountId }) { + const urlData = endPoints('setActiveAccount'); + return axios.put(urlData.url, { + profile: { + account_id: accountId, + }, + }); + }, }; diff --git a/app/javascript/dashboard/api/endPoints.js b/app/javascript/dashboard/api/endPoints.js index c9d0955ef..8deb8d56a 100644 --- a/app/javascript/dashboard/api/endPoints.js +++ b/app/javascript/dashboard/api/endPoints.js @@ -40,6 +40,10 @@ const endPoints = { deleteAvatar: { url: '/api/v1/profile/avatar', }, + + setActiveAccount: { + url: '/api/v1/profile/set_active_account', + }, }; export default page => { diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue b/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue index e6e7df48e..ad432f42a 100644 --- a/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue +++ b/app/javascript/dashboard/components/layout/sidebarComponents/AccountSelector.vue @@ -8,25 +8,33 @@ :header-title="$t('SIDEBAR_ITEMS.CHANGE_ACCOUNTS')" :header-content="$t('SIDEBAR_ITEMS.SELECTOR_SUBTITLE')" /> -