diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index b52b2300e..76d0bacc8 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2,4 +2,11 @@ module ApplicationHelper def available_locales_with_name LANGUAGES_CONFIG.map { |_key, val| val.slice(:name, :iso_639_1_code) } end + + def feature_help_urls + features = YAML.safe_load(Rails.root.join('config/features.yml').read).freeze + features.each_with_object({}) do |feature, hash| + hash[feature['name']] = feature['help_url'] if feature['help_url'] + end + end end diff --git a/app/javascript/dashboard/assets/scss/_layout.scss b/app/javascript/dashboard/assets/scss/_layout.scss index ea40c1f3a..54a03c403 100644 --- a/app/javascript/dashboard/assets/scss/_layout.scss +++ b/app/javascript/dashboard/assets/scss/_layout.scss @@ -1,11 +1,10 @@ // scss-lint:disable SpaceAfterPropertyColon -// @import 'shared/assets/fonts/inter'; - +@import 'shared/assets/fonts/inter'; +// Inter, html, body { font-family: 'PlusJakarta', - Inter, -apple-system, system-ui, BlinkMacSystemFont, diff --git a/app/javascript/dashboard/featureFlags.js b/app/javascript/dashboard/featureFlags.js index f2fd3e757..a0453b7d3 100644 --- a/app/javascript/dashboard/featureFlags.js +++ b/app/javascript/dashboard/featureFlags.js @@ -20,4 +20,14 @@ export const FEATURE_FLAGS = { INBOX_VIEW: 'inbox_view', SLA: 'sla', RESPONSE_BOT: 'response_bot', + CHANNEL_EMAIL: 'channel_email', + CHANNEL_FACEBOOK: 'channel_facebook', + CHANNEL_TWITTER: 'channel_twitter', + CHANNEL_WEBSITE: 'channel_website', + CUSTOM_REPLY_DOMAIN: 'custom_reply_domain', + CUSTOM_REPLY_EMAIL: 'custom_reply_email', + DISABLE_BRANDING: 'disable_branding', + EMAIL_CONTINUITY_ON_API_CHANNEL: 'email_continuity_on_api_channel', + INBOUND_EMAILS: 'inbound_emails', + IP_LOOKUP: 'ip_lookup', }; diff --git a/app/javascript/dashboard/helper/featureHelper.js b/app/javascript/dashboard/helper/featureHelper.js new file mode 100644 index 000000000..edbbf4472 --- /dev/null +++ b/app/javascript/dashboard/helper/featureHelper.js @@ -0,0 +1,4 @@ +export function getHelpUrlForFeature(featureName) { + const { helpUrls } = window.chatwootConfig; + return helpUrls[featureName]; +} diff --git a/app/javascript/dashboard/i18n/locale/en/sla.json b/app/javascript/dashboard/i18n/locale/en/sla.json index d2a4f1d2a..d9670eb06 100644 --- a/app/javascript/dashboard/i18n/locale/en/sla.json +++ b/app/javascript/dashboard/i18n/locale/en/sla.json @@ -4,22 +4,21 @@ "ADD_ACTION": "Add SLA", "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.", "LEARN_MORE": "Learn more about SLA", - "HEADER_BTN_TXT": "Add SLA", "LOADING": "Fetching SLAs", - "SEARCH_404": "There are no items matching this query", - "SIDEBAR_TXT": "

SLA

Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.

These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!

", "LIST": { "404": "There are no SLAs available in this account.", - "TITLE": "Manage SLA", - "DESC": "SLAs: Friendly promises for great service!", - "TABLE_HEADER": [ - "Name", - "Description", - "FRT", - "NRT", - "RT", - "Business Hours" - ] + "BUSINESS_HOURS_ON": "Business hours on", + "BUSINESS_HOURS_OFF": "Business hours off", + "RESPONSE_TYPES": { + "FRT": "First response time threshold", + "NRT": "Next response time threshold", + "RT": "Resolution time threshold", + "SHORT_HAND": { + "FRT": "FRT", + "NRT": "NRT", + "RT": "RT" + } + } }, "FORM": { "NAME": { diff --git a/app/javascript/dashboard/routes/dashboard/settings/SettingsLayout.vue b/app/javascript/dashboard/routes/dashboard/settings/SettingsLayout.vue new file mode 100644 index 000000000..618805309 --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/settings/SettingsLayout.vue @@ -0,0 +1,23 @@ + + diff --git a/app/javascript/dashboard/routes/dashboard/settings/SettingsWrapper.vue b/app/javascript/dashboard/routes/dashboard/settings/SettingsWrapper.vue index 293a093af..3f5bf16f9 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/SettingsWrapper.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/SettingsWrapper.vue @@ -9,7 +9,7 @@ defineProps({