chore: Add router views for agent_bots (#5600)

This commit is contained in:
Pranav Raj S 2022-10-12 11:58:52 +11:00 committed by GitHub
parent 38776906ab
commit 9b5c0de0ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 168 additions and 61 deletions

View file

@ -3,6 +3,7 @@ import { frontendURL } from '../../../../helper/URLHelper';
const settings = accountId => ({ const settings = accountId => ({
parentNav: 'settings', parentNav: 'settings',
routes: [ routes: [
'agent_bots',
'agent_list', 'agent_list',
'canned_list', 'canned_list',
'labels_list', 'labels_list',
@ -74,10 +75,20 @@ const settings = accountId => ({
{ {
icon: 'automation', icon: 'automation',
label: 'AUTOMATION', label: 'AUTOMATION',
beta: true,
hasSubMenu: false, hasSubMenu: false,
toState: frontendURL(`accounts/${accountId}/settings/automation/list`), toState: frontendURL(`accounts/${accountId}/settings/automation/list`),
toStateName: 'automation_list', toStateName: 'automation_list',
}, },
{
icon: 'bot',
label: 'AGENT_BOTS',
beta: true,
hasSubMenu: false,
toState: frontendURL(`accounts/${accountId}/settings/agent-bots`),
toStateName: 'agent_bots',
featureFlagKey: 'agent_bots',
},
{ {
icon: 'chat-multiple', icon: 'chat-multiple',
label: 'CANNED_RESPONSES', label: 'CANNED_RESPONSES',

View file

@ -1,5 +1,5 @@
<template> <template>
<li class="sidebar-item"> <li v-show="isMenuItemVisible" class="sidebar-item">
<div v-if="hasSubMenu" class="secondary-menu--wrap"> <div v-if="hasSubMenu" class="secondary-menu--wrap">
<span class="secondary-menu--header fs-small"> <span class="secondary-menu--header fs-small">
{{ $t(`SIDEBAR.${menuItem.label}`) }} {{ $t(`SIDEBAR.${menuItem.label}`) }}
@ -36,7 +36,7 @@
{{ `${menuItem.count}` }} {{ `${menuItem.count}` }}
</span> </span>
<span <span
v-if="menuItem.label === 'AUTOMATION'" v-if="menuItem.beta"
data-view-component="true" data-view-component="true"
label="Beta" label="Beta"
class="beta" class="beta"
@ -114,10 +114,23 @@ export default {
}, },
}, },
computed: { computed: {
...mapGetters({ activeInbox: 'getSelectedInbox' }), ...mapGetters({
activeInbox: 'getSelectedInbox',
accountId: 'getCurrentAccountId',
isFeatureEnabledonAccount: 'accounts/isFeatureEnabledonAccount',
}),
hasSubMenu() { hasSubMenu() {
return !!this.menuItem.children; return !!this.menuItem.children;
}, },
isMenuItemVisible() {
if (!this.menuItem.featureFlagKey) {
return true;
}
return this.isFeatureEnabledonAccount(
this.accountId,
this.menuItem.featureFlagKey
);
},
isInboxConversation() { isInboxConversation() {
return ( return (
this.$store.state.route.name === 'inbox_conversation' && this.$store.state.route.name === 'inbox_conversation' &&

View file

@ -0,0 +1,5 @@
{
"AGENT_BOTS": {
"HEADER": "Bots"
}
}

View file

@ -1,55 +1,57 @@
import { default as _advancedFilters } from './advancedFilters.json'; import advancedFilters from './advancedFilters.json';
import { default as _agentMgmt } from './agentMgmt.json'; import agentBots from './agentBots.json';
import { default as _attributesMgmt } from './attributesMgmt.json'; import agentMgmt from './agentMgmt.json';
import { default as _automation } from './automation.json'; import attributesMgmt from './attributesMgmt.json';
import { default as _bulkActions } from './bulkActions.json'; import automation from './automation.json';
import { default as _campaign } from './campaign.json'; import bulkActions from './bulkActions.json';
import { default as _cannedMgmt } from './cannedMgmt.json'; import campaign from './campaign.json';
import { default as _chatlist } from './chatlist.json'; import cannedMgmt from './cannedMgmt.json';
import { default as _contact } from './contact.json'; import chatlist from './chatlist.json';
import { default as _contactFilters } from './contactFilters.json'; import contact from './contact.json';
import { default as _conversation } from './conversation.json'; import contactFilters from './contactFilters.json';
import { default as _csatMgmtMgmt } from './csatMgmt.json'; import conversation from './conversation.json';
import { default as _generalSettings } from './generalSettings.json'; import csatMgmtMgmt from './csatMgmt.json';
import { default as _inboxMgmt } from './inboxMgmt.json'; import generalSettings from './generalSettings.json';
import { default as _integrationApps } from './integrationApps.json'; import helpCenter from './helpCenter.json';
import { default as _integrations } from './integrations.json'; import inboxMgmt from './inboxMgmt.json';
import { default as _labelsMgmt } from './labelsMgmt.json'; import integrationApps from './integrationApps.json';
import { default as _login } from './login.json'; import integrations from './integrations.json';
import { default as _report } from './report.json'; import labelsMgmt from './labelsMgmt.json';
import { default as _resetPassword } from './resetPassword.json'; import login from './login.json';
import { default as _setNewPassword } from './setNewPassword.json'; import report from './report.json';
import { default as _settings } from './settings.json'; import resetPassword from './resetPassword.json';
import { default as _signup } from './signup.json'; import setNewPassword from './setNewPassword.json';
import { default as _teamsSettings } from './teamsSettings.json'; import settings from './settings.json';
import { default as _whatsappTemplates } from './whatsappTemplates.json'; import signup from './signup.json';
import { default as _helpCenter } from './helpCenter.json'; import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
export default { export default {
..._advancedFilters, ...advancedFilters,
..._agentMgmt, ...agentBots,
..._attributesMgmt, ...agentMgmt,
..._automation, ...attributesMgmt,
..._campaign, ...automation,
..._cannedMgmt, ...bulkActions,
..._chatlist, ...campaign,
..._contact, ...cannedMgmt,
..._contactFilters, ...chatlist,
..._conversation, ...contact,
..._csatMgmtMgmt, ...contactFilters,
..._generalSettings, ...conversation,
..._inboxMgmt, ...csatMgmtMgmt,
..._integrationApps, ...generalSettings,
..._integrations, ...helpCenter,
..._labelsMgmt, ...inboxMgmt,
..._login, ...integrationApps,
..._report, ...integrations,
..._resetPassword, ...labelsMgmt,
..._setNewPassword, ...login,
..._settings, ...report,
..._signup, ...resetPassword,
..._teamsSettings, ...setNewPassword,
..._whatsappTemplates, ...settings,
..._bulkActions, ...signup,
..._helpCenter, ...teamsSettings,
...whatsappTemplates,
}; };

View file

@ -175,6 +175,7 @@
"CONTACTS": "Contacts", "CONTACTS": "Contacts",
"HOME": "Home", "HOME": "Home",
"AGENTS": "Agents", "AGENTS": "Agents",
"AGENT_BOTS": "Bots",
"INBOXES": "Inboxes", "INBOXES": "Inboxes",
"NOTIFICATIONS": "Notifications", "NOTIFICATIONS": "Notifications",
"CANNED_RESPONSES": "Canned Responses", "CANNED_RESPONSES": "Canned Responses",

View file

@ -0,0 +1,18 @@
<template>
<div>Agent Bot list</div>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
computed: {
...mapGetters({
agentBots: 'agentBots/getBots',
uiFlags: 'agentBots/getUIFlags',
}),
},
mounted() {
this.$store.dispatch('agentBots/get');
},
};
</script>

View file

@ -0,0 +1,40 @@
import SettingsContent from '../Wrapper';
const Bot = () => import('./Index.vue');
const CsmlEditBot = () => import('./csml/Edit.vue');
const CsmlNewBot = () => import('./csml/New.vue');
import { frontendURL } from '../../../../helper/URLHelper';
export default {
routes: [
{
path: frontendURL('accounts/:accountId/settings/agent-bots'),
roles: ['administrator'],
component: SettingsContent,
props: {
headerTitle: 'AGENT_BOTS.HEADER',
icon: 'bot',
showNewButton: false,
},
children: [
{
path: '',
name: 'agent_bots',
component: Bot,
roles: ['administrator'],
},
{
path: 'csml/new',
name: 'agent_bots_csml_new',
component: CsmlNewBot,
roles: ['administrator'],
},
{
path: 'csml/:botId',
name: 'agent_bots_csml_edit',
component: CsmlEditBot,
roles: ['administrator'],
},
],
},
],
};

View file

@ -0,0 +1,6 @@
<template>
<div>Component to edit CSML Bots</div>
</template>
<script>
export default {};
</script>

View file

@ -0,0 +1,6 @@
<template>
<div>Component to create CSML Bots</div>
</template>
<script>
export default {};
</script>

View file

@ -1,19 +1,20 @@
import { frontendURL } from '../../../helper/URLHelper'; import { frontendURL } from '../../../helper/URLHelper';
import account from './account/account.routes'; import account from './account/account.routes';
import agent from './agents/agent.routes'; import agent from './agents/agent.routes';
import agentBot from './agentBots/agentBot.routes';
import attributes from './attributes/attributes.routes';
import automation from './automation/automation.routes';
import billing from './billing/billing.routes';
import campaigns from './campaigns/campaigns.routes';
import canned from './canned/canned.routes'; import canned from './canned/canned.routes';
import inbox from './inbox/inbox.routes'; import inbox from './inbox/inbox.routes';
import integrations from './integrations/integrations.routes';
import integrationapps from './integrationapps/integrations.routes'; import integrationapps from './integrationapps/integrations.routes';
import integrations from './integrations/integrations.routes';
import labels from './labels/labels.routes'; import labels from './labels/labels.routes';
import profile from './profile/profile.routes'; import profile from './profile/profile.routes';
import reports from './reports/reports.routes'; import reports from './reports/reports.routes';
import campaigns from './campaigns/campaigns.routes';
import teams from './teams/teams.routes';
import attributes from './attributes/attributes.routes';
import automation from './automation/automation.routes';
import store from '../../../store'; import store from '../../../store';
import billing from './billing/billing.routes'; import teams from './teams/teams.routes';
export default { export default {
routes: [ routes: [
@ -30,6 +31,7 @@ export default {
}, },
...account.routes, ...account.routes,
...agent.routes, ...agent.routes,
...agentBot.routes,
...attributes.routes, ...attributes.routes,
...automation.routes, ...automation.routes,
...billing.routes, ...billing.routes,

View file

@ -29,6 +29,7 @@
"M6.5 2A2.5 2.5 0 0 0 4 4.5v15A2.5 2.5 0 0 0 6.5 22h13.25a.75.75 0 0 0 0-1.5H6.5a1 1 0 0 1-1-1h14.25a.75.75 0 0 0 .75-.75V4.5A2.5 2.5 0 0 0 18 2H6.5ZM19 18H5.5V4.5a1 1 0 0 1 1-1H18a1 1 0 0 1 1 1V18Z" "M6.5 2A2.5 2.5 0 0 0 4 4.5v15A2.5 2.5 0 0 0 6.5 22h13.25a.75.75 0 0 0 0-1.5H6.5a1 1 0 0 1-1-1h14.25a.75.75 0 0 0 .75-.75V4.5A2.5 2.5 0 0 0 18 2H6.5ZM19 18H5.5V4.5a1 1 0 0 1 1-1H18a1 1 0 0 1 1 1V18Z"
], ],
"book-open-globe-outline": "M3.5 5.75a.25.25 0 0 1 .25-.25H10c.69 0 1.25.56 1.25 1.25v8.959a6.49 6.49 0 0 1 1.5-2.646V6.75c0-.69.56-1.25 1.25-1.25h6.25a.25.25 0 0 1 .25.25v5.982A6.518 6.518 0 0 1 22 12.81V5.75A1.75 1.75 0 0 0 20.25 4H14c-.788 0-1.499.331-2 .863A2.742 2.742 0 0 0 10 4H3.75A1.75 1.75 0 0 0 2 5.75v12.5c0 .966.784 1.75 1.75 1.75H10c.495 0 .96-.13 1.36-.36a6.473 6.473 0 0 1-.343-1.663A1.248 1.248 0 0 1 10 18.5H3.75a.25.25 0 0 1-.25-.25V5.75ZM16.007 17c.04-1.415.248-2.669.553-3.585.171-.513.364-.893.554-1.134.195-.247.329-.281.386-.281.057 0 .192.034.386.281.19.241.383.62.554 1.134.305.916.513 2.17.553 3.585h-2.986Zm-.396-3.9c.108-.323.23-.622.368-.887A5.504 5.504 0 0 0 12.023 17h2.984c.04-1.5.26-2.866.604-3.9Zm3.778 0a6.133 6.133 0 0 0-.368-.887A5.504 5.504 0 0 1 22.978 17h-2.985c-.04-1.5-.26-2.866-.604-3.9Zm.604 4.9h2.985a5.504 5.504 0 0 1-3.957 4.787c.138-.265.26-.564.368-.886.345-1.035.564-2.4.604-3.901Zm-2.107 4.719c-.194.247-.329.281-.386.281-.057 0-.191-.034-.386-.281-.19-.241-.383-.62-.554-1.135-.305-.915-.513-2.17-.553-3.584h2.986c-.04 1.415-.248 2.669-.553 3.584-.171.514-.364.894-.554 1.135ZM12.023 18a5.504 5.504 0 0 0 3.956 4.787 6.133 6.133 0 0 1-.367-.886c-.346-1.035-.565-2.4-.605-3.901h-2.984Z", "book-open-globe-outline": "M3.5 5.75a.25.25 0 0 1 .25-.25H10c.69 0 1.25.56 1.25 1.25v8.959a6.49 6.49 0 0 1 1.5-2.646V6.75c0-.69.56-1.25 1.25-1.25h6.25a.25.25 0 0 1 .25.25v5.982A6.518 6.518 0 0 1 22 12.81V5.75A1.75 1.75 0 0 0 20.25 4H14c-.788 0-1.499.331-2 .863A2.742 2.742 0 0 0 10 4H3.75A1.75 1.75 0 0 0 2 5.75v12.5c0 .966.784 1.75 1.75 1.75H10c.495 0 .96-.13 1.36-.36a6.473 6.473 0 0 1-.343-1.663A1.248 1.248 0 0 1 10 18.5H3.75a.25.25 0 0 1-.25-.25V5.75ZM16.007 17c.04-1.415.248-2.669.553-3.585.171-.513.364-.893.554-1.134.195-.247.329-.281.386-.281.057 0 .192.034.386.281.19.241.383.62.554 1.134.305.916.513 2.17.553 3.585h-2.986Zm-.396-3.9c.108-.323.23-.622.368-.887A5.504 5.504 0 0 0 12.023 17h2.984c.04-1.5.26-2.866.604-3.9Zm3.778 0a6.133 6.133 0 0 0-.368-.887A5.504 5.504 0 0 1 22.978 17h-2.985c-.04-1.5-.26-2.866-.604-3.9Zm.604 4.9h2.985a5.504 5.504 0 0 1-3.957 4.787c.138-.265.26-.564.368-.886.345-1.035.564-2.4.604-3.901Zm-2.107 4.719c-.194.247-.329.281-.386.281-.057 0-.191-.034-.386-.281-.19-.241-.383-.62-.554-1.135-.305-.915-.513-2.17-.553-3.584h2.986c-.04 1.415-.248 2.669-.553 3.584-.171.514-.364.894-.554 1.135ZM12.023 18a5.504 5.504 0 0 0 3.956 4.787 6.133 6.133 0 0 1-.367-.886c-.346-1.035-.565-2.4-.605-3.901h-2.984Z",
"bot-outline": "M17.753 14a2.25 2.25 0 0 1 2.25 2.25v.905a3.75 3.75 0 0 1-1.307 2.846C17.13 21.345 14.89 22 12 22c-2.89 0-5.128-.656-6.691-2a3.75 3.75 0 0 1-1.306-2.843v-.908A2.25 2.25 0 0 1 6.253 14h11.5Zm0 1.5h-11.5a.75.75 0 0 0-.75.75v.908c0 .655.286 1.278.784 1.706C7.545 19.945 9.44 20.502 12 20.502c2.56 0 4.458-.557 5.719-1.64a2.25 2.25 0 0 0 .784-1.706v-.906a.75.75 0 0 0-.75-.75ZM11.898 2.008 12 2a.75.75 0 0 1 .743.648l.007.102V3.5h3.5a2.25 2.25 0 0 1 2.25 2.25v4.505a2.25 2.25 0 0 1-2.25 2.25h-8.5a2.25 2.25 0 0 1-2.25-2.25V5.75A2.25 2.25 0 0 1 7.75 3.5h3.5v-.749a.75.75 0 0 1 .648-.743L12 2l-.102.007ZM16.25 5h-8.5a.75.75 0 0 0-.75.75v4.505c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75V5.75a.75.75 0 0 0-.75-.75Zm-6.5 1.5a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5Zm4.492 0a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499Z",
"building-bank-outline": "M13.032 2.325a1.75 1.75 0 0 0-2.064 0L3.547 7.74c-.978.713-.473 2.26.736 2.26H4.5v5.8A2.75 2.75 0 0 0 3 18.25v1.5c0 .413.336.75.75.75h16.5a.75.75 0 0 0 .75-.75v-1.5a2.75 2.75 0 0 0-1.5-2.45V10h.217c1.21 0 1.713-1.547.736-2.26l-7.421-5.416Zm-1.18 1.211a.25.25 0 0 1 .295 0L18.95 8.5H5.05l6.803-4.964ZM18 10v5.5h-2V10h2Zm-3.5 0v5.5h-1.75V10h1.75Zm-3.25 0v5.5H9.5V10h1.75Zm-5.5 7h12.5c.69 0 1.25.56 1.25 1.25V19h-15v-.75c0-.69.56-1.25 1.25-1.25ZM6 15.5V10h2v5.5H6Z", "building-bank-outline": "M13.032 2.325a1.75 1.75 0 0 0-2.064 0L3.547 7.74c-.978.713-.473 2.26.736 2.26H4.5v5.8A2.75 2.75 0 0 0 3 18.25v1.5c0 .413.336.75.75.75h16.5a.75.75 0 0 0 .75-.75v-1.5a2.75 2.75 0 0 0-1.5-2.45V10h.217c1.21 0 1.713-1.547.736-2.26l-7.421-5.416Zm-1.18 1.211a.25.25 0 0 1 .295 0L18.95 8.5H5.05l6.803-4.964ZM18 10v5.5h-2V10h2Zm-3.5 0v5.5h-1.75V10h1.75Zm-3.25 0v5.5H9.5V10h1.75Zm-5.5 7h12.5c.69 0 1.25.56 1.25 1.25V19h-15v-.75c0-.69.56-1.25 1.25-1.25ZM6 15.5V10h2v5.5H6Z",
"calendar-clock-outline": [ "calendar-clock-outline": [
"M21 6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h5.772a6.471 6.471 0 0 1-.709-1.5H6.25a1.75 1.75 0 0 1-1.75-1.75V8.5h15v2.813a6.471 6.471 0 0 1 1.5.709V6.25ZM6.25 4.5h11.5c.966 0 1.75.784 1.75 1.75V7h-15v-.75c0-.966.784-1.75 1.75-1.75Z", "M21 6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h5.772a6.471 6.471 0 0 1-.709-1.5H6.25a1.75 1.75 0 0 1-1.75-1.75V8.5h15v2.813a6.471 6.471 0 0 1 1.5.709V6.25ZM6.25 4.5h11.5c.966 0 1.75.784 1.75 1.75V7h-15v-.75c0-.966.784-1.75 1.75-1.75Z",

View file

@ -15,3 +15,5 @@
enabled: false enabled: false
- name: help_center - name: help_center
enabled: true enabled: true
- name: agent_bots
enabled: false