discourse-chat-integration/plugin.rb

44 lines
1.4 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
# name: discourse-chat-integration
2017-06-26 10:08:06 -04:00
# about: This plugin integrates discourse with a number of chat providers
# version: 0.1
# url: https://github.com/discourse/discourse-chat-integration
# author: David Taylor
2017-06-26 10:08:06 -04:00
enabled_site_setting :chat_integration_enabled
2017-06-26 10:08:06 -04:00
2017-07-03 17:11:17 -04:00
register_asset "stylesheets/chat-integration-admin.scss"
register_svg_icon "rocket" if respond_to?(:register_svg_icon)
register_svg_icon "fa-arrow-circle-o-right" if respond_to?(:register_svg_icon)
# Site setting validators must be loaded before initialize
require_relative "lib/discourse_chat/provider/slack/slack_enabled_setting_validator"
2017-06-26 10:08:06 -04:00
after_initialize do
require_relative "app/initializers/discourse_chat"
2017-08-01 15:53:39 -04:00
2017-10-09 22:08:26 -04:00
on(:post_created) do |post|
# This will run for every post, even PMs. Don't worry, they're filtered out later.
time = SiteSetting.chat_integration_delay_seconds.seconds
Jobs.enqueue_in(time, :notify_chats, post_id: post.id)
end
add_admin_route 'chat_integration.menu_title', 'chat'
AdminDashboardData.add_problem_check do
2018-12-04 06:45:17 -05:00
error = false
DiscourseChat::Channel.find_each do |channel|
error = true unless channel.error_key.blank?
end
if error
base_path = Discourse.respond_to?(:base_path) ? Discourse.base_path : Discourse.base_uri
I18n.t("chat_integration.admin_error", base_path: base_path)
end
end
DiscourseChat::Provider.mount_engines
2017-06-26 10:08:06 -04:00
end