Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-25 10:40:28 +01:00
DEV: Implement wizard replacement validation in Topic Creation
Dieser Commit ist enthalten in:
Ursprung
9ab4ca21c8
Commit
f2d1437cff
3 geänderte Dateien mit 27 neuen und 0 gelöschten Zeilen
|
@ -55,6 +55,8 @@ en:
|
|||
liquid_syntax_error: "Liquid syntax error in %{attribute}: %{message}"
|
||||
subscription: "%{type} %{property} usage is not supported on your subscription"
|
||||
not_permitted_for_guests: "%{object_id} is not permitted when guests can access the wizard"
|
||||
error_messages:
|
||||
wizard_replacing_composer: "A wizard is set to replace the composer in this category. You cannot create a topic here."
|
||||
|
||||
site_settings:
|
||||
custom_wizard_enabled: "Enable custom wizards."
|
||||
|
|
23
lib/custom_wizard/extensions/topic_extension.rb
Normale Datei
23
lib/custom_wizard/extensions/topic_extension.rb
Normale Datei
|
@ -0,0 +1,23 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module CustomWizardTopicExtension
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included { before_validation :check_wizard_replacement, on: :create }
|
||||
|
||||
def check_wizard_replacement
|
||||
if wizard_replacing_composer?(self.category_id)
|
||||
self.errors.add(
|
||||
:base,
|
||||
I18n.t('wizard.error_messages.wizard_replacing_composer')
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def wizard_replacing_composer?(category_id)
|
||||
return false unless category_id
|
||||
|
||||
category = Category.find(category_id)
|
||||
category.custom_fields['create_topic_wizard'].present?
|
||||
end
|
||||
end
|
|
@ -91,6 +91,7 @@ after_initialize do
|
|||
../lib/custom_wizard/extensions/invites_controller.rb
|
||||
../lib/custom_wizard/extensions/users_controller.rb
|
||||
../lib/custom_wizard/extensions/guardian.rb
|
||||
../lib/custom_wizard/extensions/topic_extension.rb
|
||||
../lib/custom_wizard/extensions/custom_field/preloader.rb
|
||||
../lib/custom_wizard/extensions/custom_field/serializer.rb
|
||||
../lib/custom_wizard/extensions/custom_field/extension.rb
|
||||
|
@ -200,6 +201,7 @@ after_initialize do
|
|||
::InvitesController.prepend InvitesControllerCustomWizard
|
||||
::UsersController.prepend CustomWizardUsersController
|
||||
::Guardian.prepend CustomWizardGuardian
|
||||
::Topic.include CustomWizardTopicExtension
|
||||
|
||||
full_path = "#{Rails.root}/plugins/discourse-custom-wizard/assets/stylesheets/wizard/wizard_custom.scss"
|
||||
if Stylesheet::Importer.respond_to?(:plugin_assets)
|
||||
|
|
Laden …
In neuem Issue referenzieren