diff --git a/app/javascript/dashboard/components/widgets/conversation/ConversationCard.vue b/app/javascript/dashboard/components/widgets/conversation/ConversationCard.vue index 4afe61c31..aa9af83b2 100644 --- a/app/javascript/dashboard/components/widgets/conversation/ConversationCard.vue +++ b/app/javascript/dashboard/components/widgets/conversation/ConversationCard.vue @@ -75,6 +75,7 @@ export default { inboxesList: 'inboxes/getInboxes', activeInbox: 'getSelectedInbox', currentUser: 'getCurrentUser', + accountId: 'getCurrentAccountId', }), isActiveChat() { @@ -97,11 +98,7 @@ export default { methods: { cardClick(chat) { const { activeInbox } = this; - const path = conversationUrl( - this.currentUser.account_id, - activeInbox, - chat.id - ); + const path = conversationUrl(this.accountId, activeInbox, chat.id); router.push({ path: frontendURL(path) }); }, extractMessageText(chatItem) { diff --git a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json index 5059cd491..c9c1f740d 100644 --- a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json @@ -1,7 +1,7 @@ { "INBOX_MGMT": { "HEADER": "Safates d'entrada", - "SIDEBAR_TXT": "
Safata d'entrada
Quan connecteu un lloc web o una pàgina de facebook a Chatwoot, es diu Safata d'entrada. Teniu bústies d'entrada il·limitades al vostre compte de Chatwoot.
Feu click a Afegir safata d'entrada per connectar-vos a un lloc web o a una pàgina de Facebook.
Al Tauler de control, pots veure totes les converses de totes les teves safates d'entrada en un sol lloc i respondre-les a la pestanya `Converses`.
També pots veure converses específiques per a una safata d’entrada si feu clic al nom de la safata d'entrada, al panell esquerre de la taula.
", + "SIDEBAR_TXT": "Safata d'entrada
Quan connecteu un lloc web o una pàgina de facebook a Chatwoot, es diu Safata d'entrada. Teniu bústies d'entrada il·limitades al vostre compte de Chatwoot.
Feu click a Afegir safata d'entrada per connectar-vos a un lloc web o a una pàgina de Facebook.
Al Tauler de control, pots veure totes les converses de totes les teves safates d'entrada en un sol lloc i respondre-les a la pestanya `Converses`.
També pots veure converses específiques per a una safata d’entrada si feu clic al nom de la safata d'entrada, al panell esquerre de la taula.
", "LIST": { "404": "No hi ha cap safata d'entrada connectat a aquest compte." }, diff --git a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json index 5f09f8095..fca1a7c44 100644 --- a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json @@ -1,7 +1,7 @@ { "INBOX_MGMT": { "HEADER": "Posteingänge", - "SIDEBAR_TXT": "Posteingang
Wenn Sie eine Website oder eine Facebook-Seite mit Chatwoot verbinden, wird dies als Posteingang bezeichnet. Sie können unbegrenzt Posteingänge in Ihrem Chatwoot-Konto haben.
Klicken Sie auf Posteingang hinzufügen , um eine Website oder eine Facebook-Seite zu verbinden.
Im Dashboard können Sie alle Konversationen aus all Ihren Posteingängen an einem einzigen Ort anzeigen und unter 'Konversationen' darauf antworten `tab.
Sie können Konversationen auch für einen Posteingang anzeigen, indem Sie auf den Namen des Posteingangs im linken Bereich des Dashboards klicken.
", + "SIDEBAR_TXT": "Posteingang
Wenn Sie eine Website oder eine Facebook-Seite mit Chatwoot verbinden, wird dies als Posteingang bezeichnet. Sie können unbegrenzt Posteingänge in Ihrem Chatwoot-Konto haben.
Klicken Sie auf Posteingang hinzufügen , um eine Website oder eine Facebook-Seite zu verbinden.
Im Dashboard können Sie alle Konversationen aus all Ihren Posteingängen an einem einzigen Ort anzeigen und unter 'Konversationen' darauf antworten `tab.
Sie können Konversationen auch für einen Posteingang anzeigen, indem Sie auf den Namen des Posteingangs im linken Bereich des Dashboards klicken.
", "LIST": { "404": "Diesem Konto sind keine Posteingänge zugeordnet." }, diff --git a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json index fe29aaebb..0a18b005b 100644 --- a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json @@ -1,7 +1,7 @@ { "INBOX_MGMT": { "HEADER": "Κιβώτια Εισερχομένων", - "SIDEBAR_TXT": "Κιβώτιο Εισερχομένων
Όταν συνδέετε σε μια Ιστοσελίδα ή μια σελίδα του Facebook με το Chatwoot, δημιουργείται ένα Κιβώτιο. Μπορείτε να έχετε απεριόριστα κιβώτια στον λογαριασμό σας στο Chatwoot.
Πατήστε στο Προσθήκη Κιβωτίου για να το συνδέσετε με μια ιστοσελίδα ή μια σελίδα στο Facebook.
Στον Πίνακα Ελέγχου, μπορείτε να δείτε τις συνομιλίες από όλα τα κιβώτια σε ένα μέρος και να απαντήσετε από την καρτέλα `Συνομιλίες`.
Μπορείτε επίσης να δείτε τις συνομιλίες από ένα κιβώτιο εισερχομένων πατώντας στο όνομά του στο αριστερό μέρος του πίνακα ελέγχου.
", + "SIDEBAR_TXT": "Κιβώτιο Εισερχομένων
Όταν συνδέετε σε μια Ιστοσελίδα ή μια σελίδα του Facebook με το Chatwoot, δημιουργείται ένα Κιβώτιο. Μπορείτε να έχετε απεριόριστα κιβώτια στον λογαριασμό σας στο Chatwoot.
Πατήστε στο Προσθήκη Κιβωτίου για να το συνδέσετε με μια ιστοσελίδα ή μια σελίδα στο Facebook.
Στον Πίνακα Ελέγχου, μπορείτε να δείτε τις συνομιλίες από όλα τα κιβώτια σε ένα μέρος και να απαντήσετε από την καρτέλα `Συνομιλίες`.
Μπορείτε επίσης να δείτε τις συνομιλίες από ένα κιβώτιο εισερχομένων πατώντας στο όνομά του στο αριστερό μέρος του πίνακα ελέγχου.
", "LIST": { "404": "Δεν υπάρχουν κιβώτια εισερχομένων σε αυτόν τον λογαριασμό." }, diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json index 2aa1c15c2..da8465626 100644 --- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json @@ -1,7 +1,7 @@ { "INBOX_MGMT": { "HEADER": "Inboxes", - "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
", + "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
", "LIST": { "404": "There are no inboxes attached to this account." }, diff --git a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json index 3a1fa2761..fe35bf261 100644 --- a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json @@ -1,7 +1,7 @@ { "INBOX_MGMT": { "HEADER": "Boîtes de réception", - "SIDEBAR_TXT": "Boîte de réception
Lorsque vous connectez un site Web ou une page Facebook à Chatwoot, elle est appelée une Boîte de réception. Vous pouvez avoir des boîtes de réception illimitées dans votre compte Chatwoot.
Cliquez sur Ajouter Boîte de réception pour connecter un site Web ou une page Facebook.
Dans le tableau de bord, vous pouvez voir toutes les conversations de toutes vos boîtes de réception en un seul endroit et y répondre dans l'onglet `Conversations`.
Vous pouvez également voir les conversations spécifiques à une boîte de réception en cliquant sur le nom de la boîte de réception sur le volet gauche du tableau de bord.
", + "SIDEBAR_TXT": "Boîte de réception
Lorsque vous connectez un site Web ou une page Facebook à Chatwoot, elle est appelée une Boîte de réception. Vous pouvez avoir des boîtes de réception illimitées dans votre compte Chatwoot.
Cliquez sur Ajouter Boîte de réception pour connecter un site Web ou une page Facebook.
Dans le tableau de bord, vous pouvez voir toutes les conversations de toutes vos boîtes de réception en un seul endroit et y répondre dans l'onglet `Conversations`.
Vous pouvez également voir les conversations spécifiques à une boîte de réception en cliquant sur le nom de la boîte de réception sur le volet gauche du tableau de bord.
", "LIST": { "404": "Il n'y a aucune boîte de réception associée à ce compte." }, diff --git a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json index f9e98fba7..2f87a0f67 100644 --- a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json @@ -1,7 +1,7 @@ { "INBOX_MGMT": { "HEADER": "ഇൻബോക്സുകൾ", - "SIDEBAR_TXT": "ഇൻബോക്സ്
ചാറ്റ് വൂട്ടിലേക്ക് നിങ്ങൾ ഒരു വെബ്സൈറ്റോ ഫേസ്ബുക്ക് പേജോ കണക്റ്റുചെയ്യുമ്പോൾ, അതിനെ ഇൻബോക്സ് എന്ന് വിളിക്കുന്നു. നിങ്ങളുടെ ചാറ്റ് വൂട്ട് അക്കൗണ്ടിൽ പരിധിയില്ലാത്ത ഇൻബോക്സുകൾ ഉണ്ടായിരിക്കാൻ കഴിയും.
ഒരു വെബ്സൈറ്റ് അല്ലെങ്കിൽ ഫേസ്ബുക് പേജ് ബന്ധിപ്പിക്കുന്നതിന് ഇൻബോക്സ് ചേർക്കുക ക്ലിക്കുചെയ്യുക.
ഡാഷ്ബോർഡ് , നിങ്ങളുടെ എല്ലാ ഇൻബോക്സുകളിൽ നിന്നുമുള്ള എല്ലാ സംഭാഷണങ്ങളും ഒരൊറ്റ സ്ഥലത്ത് കാണാനും `സംഭാഷണങ്ങൾ` ടാബിന് കീഴിൽ അവയോട് പ്രതികരിക്കാനും കഴിയും.
ഡാഷ്ബോർഡിന്റെ ഇടത് പാളിയിലെ ഇൻബോക്സ് ബട്ടണിൽ ക്ലിക്കുചെയ്ത് ഇൻബോക്സിൽ ഉള്ള സംഭാഷണങ്ങൾ കാണാൻ നിങ്ങൾക്കു സാധിക്കും .
", + "SIDEBAR_TXT": "ഇൻബോക്സ്
ചാറ്റ് വൂട്ടിലേക്ക് നിങ്ങൾ ഒരു വെബ്സൈറ്റോ ഫേസ്ബുക്ക് പേജോ കണക്റ്റുചെയ്യുമ്പോൾ, അതിനെ ഇൻബോക്സ് എന്ന് വിളിക്കുന്നു. നിങ്ങളുടെ ചാറ്റ് വൂട്ട് അക്കൗണ്ടിൽ പരിധിയില്ലാത്ത ഇൻബോക്സുകൾ ഉണ്ടായിരിക്കാൻ കഴിയും.
ഒരു വെബ്സൈറ്റ് അല്ലെങ്കിൽ ഫേസ്ബുക് പേജ് ബന്ധിപ്പിക്കുന്നതിന് ഇൻബോക്സ് ചേർക്കുക ക്ലിക്കുചെയ്യുക.
ഡാഷ്ബോർഡ്, നിങ്ങളുടെ എല്ലാ ഇൻബോക്സുകളിൽ നിന്നുമുള്ള എല്ലാ സംഭാഷണങ്ങളും ഒരൊറ്റ സ്ഥലത്ത് കാണാനും `സംഭാഷണങ്ങൾ` ടാബിന് കീഴിൽ അവയോട് പ്രതികരിക്കാനും കഴിയും.
ഡാഷ്ബോർഡിന്റെ ഇടത് പാളിയിലെ ഇൻബോക്സ് ബട്ടണിൽ ക്ലിക്കുചെയ്ത് ഇൻബോക്സിൽ ഉള്ള സംഭാഷണങ്ങൾ കാണാൻ നിങ്ങൾക്കു സാധിക്കും .
", "LIST": { "404": "ഈ അക്കൗണ്ടിലേക്കു ഇൻബോക്സുകളൊന്നും ബന്ധിപ്പിച്ചിട്ടില്ല." }, diff --git a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json index 9d3734621..981ca5ffc 100644 --- a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json @@ -1,7 +1,7 @@ { "INBOX_MGMT": { "HEADER": "Inboxen", - "SIDEBAR_TXT": "Inboxen
Wanneer u een website of een Facebook-pagina verbindt met Chatwoot, het heet een inbox. U kunt een oneindig aantal inboxen hebben in uw Chatwoot account.
Klik op Voeg Postvak in toe om een website of een Facebook-pagina te verbinden.
in het Dashboard, u kunt alle gesprekken van al uw inboxen op één plek zien en erop reageren onder het `Conversations` tabblad.
U kunt ook gesprekken zien die specifiek zijn voor een inbox door te klikken op de naam van de inbox op het linkerpaneel van het dashboard.
", + "SIDEBAR_TXT": "Inboxen
Wanneer u een website of een Facebook-pagina verbindt met Chatwoot, het heet een inbox. U kunt een oneindig aantal inboxen hebben in uw Chatwoot account.
Klik op Voeg Postvak in toe om een website of een Facebook-pagina te verbinden.
in het Dashboard, u kunt alle gesprekken van al uw inboxen op één plek zien en erop reageren onder het `Conversations` tabblad.
U kunt ook gesprekken zien die specifiek zijn voor een inbox door te klikken op de naam van de inbox op het linkerpaneel van het dashboard.
", "LIST": { "404": "Er zijn geen inboxen aan dit account gekoppeld." }, diff --git a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json index acd204b5c..631470370 100644 --- a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json @@ -1,7 +1,7 @@ { "INBOX_MGMT": { "HEADER": "Caixas de Entrada", - "SIDEBAR_TXT": "Caixa de entrada
Quando você conectar um site ou uma página de Facebook ao Chatwoot, é chamado de caixa de entrada. Você pode ter caixas de entrada ilimitadas na sua conta de Chatwoot.
Clique em Adicionar caixa de entrada para conectar um site ou uma página do Facebook.
No Painel, você pode ver todas as conversas de todas as suas caixas de entrada em um único lugar e responder a elas sob a guia `Conversations`.
Você também pode ver conversas específicas para uma caixa de entrada, clicando no nome da caixa de entrada no painel esquerdo do painel.
", + "SIDEBAR_TXT": "Caixa de entrada
Quando você conectar um site ou uma página de Facebook ao Chatwoot, é chamado de caixa de entrada. Você pode ter caixas de entrada ilimitadas na sua conta de Chatwoot.
Clique em Adicionar caixa de entrada para conectar um site ou uma página do Facebook.
No Painel, você pode ver todas as conversas de todas as suas caixas de entrada em um único lugar e responder a elas sob a guia `Conversations`.
Você também pode ver conversas específicas para uma caixa de entrada, clicando no nome da caixa de entrada no painel esquerdo do painel.
", "LIST": { "404": "Não há caixas de entrada anexadas a esta conta." }, diff --git a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json index 344436cc6..702a3b1d5 100644 --- a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json @@ -1,7 +1,7 @@ { "INBOX_MGMT": { "HEADER": "Căsuțe", - "SIDEBAR_TXT": "Inbox
Când conectezi un site web sau o pagină de Facebook la Chatwoot, se numește Inbox. Poți avea inbox-uri nelimitate în contul tău din Chatwoot.
Faceţi clic pe Adăugaţi Inbox pentru a conecta un website sau o pagină Facebook.
În Panoul de control , poți vedea toate conversațiile din toate cutiile tale într-un singur loc și să le răspunzi sub fila `Conversations`.
De asemenea, poți vedea conversații specifice unei căsuțe poștale făcând clic pe numele inbox-ului din panoul stâng al tabloului de bord.
", + "SIDEBAR_TXT": "Inbox
Când conectezi un site web sau o pagină de Facebook la Chatwoot, se numește Inbox. Poți avea inbox-uri nelimitate în contul tău din Chatwoot.
Faceţi clic pe Adăugaţi Inbox pentru a conecta un website sau o pagină Facebook.
În Panoul de control, poți vedea toate conversațiile din toate cutiile tale într-un singur loc și să le răspunzi sub fila `Conversations`.
De asemenea, poți vedea conversații specifice unei căsuțe poștale făcând clic pe numele inbox-ului din panoul stâng al tabloului de bord.
", "LIST": { "404": "Nu există căsuțe poștale atașate acestui cont." }, diff --git a/app/javascript/dashboard/mixins/account.js b/app/javascript/dashboard/mixins/account.js index 8ce8d2095..9e4a6e605 100644 --- a/app/javascript/dashboard/mixins/account.js +++ b/app/javascript/dashboard/mixins/account.js @@ -1,10 +1,10 @@ -import auth from '../api/auth'; +import { mapGetters } from 'vuex'; export default { computed: { - accountId() { - return auth.getCurrentUser().account_id; - }, + ...mapGetters({ + accountId: 'getCurrentAccountId', + }), }, methods: { addAccountScoping(url) { diff --git a/app/javascript/dashboard/mixins/specs/account.spec.js b/app/javascript/dashboard/mixins/specs/account.spec.js index a0cbf0d0a..c918ae774 100644 --- a/app/javascript/dashboard/mixins/specs/account.spec.js +++ b/app/javascript/dashboard/mixins/specs/account.spec.js @@ -1,33 +1,40 @@ -import { createWrapper } from '@vue/test-utils'; +import { shallowMount, createLocalVue } from '@vue/test-utils'; import accountMixin from '../account'; -import Vue from 'vue'; +import Vuex from 'vuex'; -jest.mock('../../api/auth', () => ({ - getCurrentUser: () => ({ account_id: 1 }), -})); +const localVue = createLocalVue(); +localVue.use(Vuex); describe('accountMixin', () => { - test('set accountId properly', () => { + let getters; + let store; + + beforeEach(() => { + getters = { + getCurrentAccountId: () => 1, + }; + + store = new Vuex.Store({ getters }); + }); + + it('set accountId properly', () => { const Component = { render() {}, title: 'TestComponent', mixins: [accountMixin], }; - const Constructor = Vue.extend(Component); - const vm = new Constructor().$mount(); - const wrapper = createWrapper(vm); + const wrapper = shallowMount(Component, { store, localVue }); expect(wrapper.vm.accountId).toBe(1); }); - test('returns current url', () => { + it('returns current url', () => { const Component = { render() {}, title: 'TestComponent', mixins: [accountMixin], }; - const Constructor = Vue.extend(Component); - const vm = new Constructor().$mount(); - const wrapper = createWrapper(vm); + + const wrapper = shallowMount(Component, { store, localVue }); expect(wrapper.vm.addAccountScoping('settings/inboxes/new')).toBe( '/app/accounts/1/settings/inboxes/new' ); diff --git a/app/javascript/dashboard/routes/dashboard/settings/account/Index.vue b/app/javascript/dashboard/routes/dashboard/settings/account/Index.vue index f4bac9d12..d8d86a052 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/account/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/account/Index.vue @@ -94,12 +94,12 @@ import Vue from 'vue'; import { required } from 'vuelidate/lib/validators'; import { mapGetters } from 'vuex'; -import { accountIdFromPathname } from 'dashboard/helper/URLHelper'; import alertMixin from 'shared/mixins/alertMixin'; import configMixin from 'shared/mixins/configMixin'; +import accountMixin from '../../../../mixins/account'; export default { - mixins: [alertMixin, configMixin], + mixins: [accountMixin, alertMixin, configMixin], data() { return { id: '', @@ -140,10 +140,7 @@ export default { }, methods: { async initializeAccount() { - const { pathname } = window.location; - const accountId = accountIdFromPathname(pathname); - - if (accountId) { + try { await this.$store.dispatch('accounts/get'); const { name, @@ -153,7 +150,7 @@ export default { support_email, domain_emails_enabled, features, - } = this.getAccount(accountId); + } = this.getAccount(this.accountId); Vue.config.lang = locale; this.name = name; @@ -163,6 +160,8 @@ export default { this.supportEmail = support_email; this.domainEmailsEnabled = domain_emails_enabled; this.features = features; + } catch (error) { + // Ignore error } }, diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Facebook.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Facebook.vue index 282096616..bcd9cda9d 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Facebook.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Facebook.vue @@ -82,13 +82,14 @@ import ChannelApi from '../../../../../api/channels'; import PageHeader from '../../SettingsSubPageHeader'; import router from '../../../../index'; import globalConfigMixin from 'shared/mixins/globalConfigMixin'; +import accountMixin from '../../../../../mixins/account'; export default { components: { LoadingState, PageHeader, }, - mixins: [globalConfigMixin], + mixins: [globalConfigMixin, accountMixin], data() { return { isCreating: false, @@ -126,9 +127,6 @@ export default { currentUser: 'getCurrentUser', globalConfig: 'globalConfig/get', }), - accountId() { - return this.currentUser.account_id; - }, }, created() {