feat: Add widget to help center config (#9235)

This commit is contained in:
Pranav
2024-04-15 16:46:48 -07:00
committed by GitHub
parent 42a457ff5d
commit 3d31d4dd7f
5 changed files with 35 additions and 20 deletions

View File

@@ -41,6 +41,7 @@ class Channel::WebWidget < ApplicationRecord
before_validation :validate_pre_chat_options
validates :website_url, presence: true
validates :widget_color, presence: true
has_many :portals, foreign_key: 'channel_web_widget_id', dependent: :nullify, inverse_of: :channel_web_widget
has_secure_token :website_token
has_secure_token :hmac_token

View File

@@ -15,9 +15,11 @@
# created_at :datetime not null
# updated_at :datetime not null
# account_id :integer not null
# channel_web_widget_id :bigint
#
# Indexes
#
# index_portals_on_channel_web_widget_id (channel_web_widget_id)
# index_portals_on_custom_domain (custom_domain) UNIQUE
# index_portals_on_slug (slug) UNIQUE
#
@@ -38,6 +40,7 @@ class Portal < ApplicationRecord
source: :user
has_one_attached :logo
has_many :inboxes, dependent: :nullify
belongs_to :channel_web_widget, class_name: 'Channel::WebWidget', optional: true
before_validation -> { normalize_empty_string_to_nil(%i[custom_domain homepage_link]) }
validates :account_id, presence: true
@@ -50,7 +53,7 @@ class Portal < ApplicationRecord
scope :active, -> { where(archived: false) }
CONFIG_JSON_KEYS = %w[allowed_locales default_locale].freeze
CONFIG_JSON_KEYS = %w[allowed_locales default_locale website_token].freeze
def file_base_data
{

View File

@@ -128,4 +128,7 @@ By default, it renders:
tocHeader: '<%= I18n.t('public_portal.toc_header') %>'
};
</script>
<% if @portal.channel_web_widget.present? %>
<%= @portal.channel_web_widget.web_widget_script.html_safe %>
<% end %>
</html>

View File

@@ -0,0 +1,6 @@
class AddChannelWebWidgetToPortals < ActiveRecord::Migration[7.0]
def change
add_column :portals, :channel_web_widget_id, :bigint
add_index :portals, :channel_web_widget_id
end
end

View File

@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2024_03_22_071629) do
ActiveRecord::Schema[7.0].define(version: 2024_04_15_210313) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_stat_statements"
enable_extension "pg_trgm"
@@ -800,6 +800,8 @@ ActiveRecord::Schema[7.0].define(version: 2024_03_22_071629) do
t.datetime "updated_at", null: false
t.jsonb "config", default: {"allowed_locales"=>["en"]}
t.boolean "archived", default: false
t.bigint "channel_web_widget_id"
t.index ["channel_web_widget_id"], name: "index_portals_on_channel_web_widget_id"
t.index ["custom_domain"], name: "index_portals_on_custom_domain", unique: true
t.index ["slug"], name: "index_portals_on_slug", unique: true
end