0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-09 11:52:54 +01:00

Update structure

Dieser Commit ist enthalten in:
Angus McLeod 2020-04-19 16:06:18 +10:00
Ursprung 500c305701
Commit 02c6096395
6 geänderte Dateien mit 60 neuen und 87 gelöschten Zeilen

Datei anzeigen

@ -1,29 +0,0 @@
module CustomWizardApplicationControllerExtension
extend ActiveSupport::Concern
def self.prepended(klass)
klass.class_eval do
before_action :redirect_to_wizard_if_required, if: :current_user
end
end
def redirect_to_wizard_if_required
wizard_id = current_user.custom_fields['redirect_to_wizard']
@excluded_routes ||= SiteSetting.wizard_redirect_exclude_paths.split('|') + ['/w/']
url = request.referer || request.original_url
if request.format === 'text/html' && !@excluded_routes.any? {|str| /#{str}/ =~ url} && wizard_id
if request.referer !~ /\/w\// && request.referer !~ /\/invites\//
CustomWizard::Wizard.set_submission_redirect(current_user, wizard_id, request.referer)
end
if CustomWizard::Wizard.exists?(wizard_id)
redirect_to "/w/#{wizard_id.dasherize}"
end
end
end
end
class ApplicationController
prepend CustomWizardApplicationControllerExtension if SiteSetting.custom_wizard_enabled
end

Datei anzeigen

@ -1,20 +0,0 @@
module CustomWizardExtraLocalesController
def show
if request.referer && URI(request.referer).path.include?('/w/')
bundle = params[:bundle]
if params[:v]&.size == 32
hash = ExtraLocalesController.bundle_js_hash(bundle)
immutable_for(1.year) if hash == params[:v]
end
render plain: ExtraLocalesController.bundle_js(bundle), content_type: "application/javascript"
else
super
end
end
end
class ExtraLocalesController
prepend CustomWizardExtraLocalesController if SiteSetting.custom_wizard_enabled
end

Datei anzeigen

@ -0,0 +1,16 @@
module ExtraLocalesControllerCustomWizard
def show
if request.referer && URI(request.referer).path.include?('/w/')
bundle = params[:bundle]
if params[:v]&.size == 32
hash = ::ExtraLocalesController.bundle_js_hash(bundle)
immutable_for(1.year) if hash == params[:v]
end
render plain: ::ExtraLocalesController.bundle_js(bundle), content_type: "application/javascript"
else
super
end
end
end

Datei anzeigen

@ -1,6 +1,6 @@
module InvitesControllerCustomWizard module InvitesControllerCustomWizard
def path(url) def path(url)
if Wizard.user_requires_completion?(@user) if ::Wizard.user_requires_completion?(@user)
wizard_id = @user.custom_fields['custom_wizard_redirect'] wizard_id = @user.custom_fields['custom_wizard_redirect']
if wizard_id && url != '/' if wizard_id && url != '/'
@ -15,8 +15,4 @@ module InvitesControllerCustomWizard
super(user) super(user)
@user = user @user = user
end end
end
class InvitesController
prepend InvitesControllerCustomWizard if SiteSetting.custom_wizard_enabled
end end

Datei anzeigen

@ -52,9 +52,6 @@ after_initialize do
../controllers/custom_wizard/wizard.rb ../controllers/custom_wizard/wizard.rb
../controllers/custom_wizard/steps.rb ../controllers/custom_wizard/steps.rb
../controllers/custom_wizard/transfer.rb ../controllers/custom_wizard/transfer.rb
../controllers/application_controller.rb
../controllers/extra_locales_controller.rb
../controllers/invites_controller.rb
../jobs/clear_after_time_wizard.rb ../jobs/clear_after_time_wizard.rb
../jobs/refresh_api_access_token.rb ../jobs/refresh_api_access_token.rb
../jobs/set_after_time_wizard.rb ../jobs/set_after_time_wizard.rb
@ -83,7 +80,8 @@ after_initialize do
../serializers/custom_wizard/wizard_step_serializer.rb ../serializers/custom_wizard/wizard_step_serializer.rb
../serializers/custom_wizard/wizard_serializer.rb ../serializers/custom_wizard/wizard_serializer.rb
../serializers/custom_wizard/log_serializer.rb ../serializers/custom_wizard/log_serializer.rb
../serializers/site_serializer.rb ../extensions/extra_locales_controller.rb
../extensions/invites_controller.rb
].each do |path| ].each do |path|
load File.expand_path(path, __FILE__) load File.expand_path(path, __FILE__)
end end
@ -124,6 +122,47 @@ after_initialize do
CustomWizard::Wizard.set_wizard_redirect(wizard_id, user) CustomWizard::Wizard.set_wizard_redirect(wizard_id, user)
end end
end end
add_to_class(:application_controller, :redirect_to_wizard_if_required) do
wizard_id = current_user.custom_fields['redirect_to_wizard']
@excluded_routes ||= SiteSetting.wizard_redirect_exclude_paths.split('|') + ['/w/']
url = request.referer || request.original_url
if request.format === 'text/html' && !@excluded_routes.any? {|str| /#{str}/ =~ url} && wizard_id
if request.referer !~ /\/w\// && request.referer !~ /\/invites\//
CustomWizard::Wizard.set_submission_redirect(current_user, wizard_id, request.referer)
end
if CustomWizard::Wizard.exists?(wizard_id)
redirect_to "/w/#{wizard_id.dasherize}"
end
end
end
add_to_serializer(:site, :include_wizard_required?) do
scope.is_admin? && Wizard.new(scope.user).requires_completion?
end
add_to_serializer(:site, :complete_custom_wizard) do
if scope.user && requires_completion = CustomWizard::Wizard.prompt_completion(scope.user)
requires_completion.map {|w| { name: w[:name], url: "/w/#{w[:id]}"} }
end
end
add_to_serializer(:site, :include_complete_custom_wizard?) do
complete_custom_wizard.present?
end
add_model_callback(:application_controller, :before_action) do
redirect_to_wizard_if_required if current_user
end
reloadable_patch do |plugin|
if enabled?
::ExtraLocalesController.prepend ExtraLocalesControllerCustomWizard
::InvitesController.prepend InvitesControllerCustomWizard
end
end
DiscourseEvent.trigger(:custom_wizard_ready) DiscourseEvent.trigger(:custom_wizard_ready)
end end

Datei anzeigen

@ -1,29 +0,0 @@
## TODO limit this to the first admin
module CustomWizardSiteSerializerExtension
extend ActiveSupport::Concern
def self.prepended(klass)
klass.class_eval do
attributes :complete_custom_wizard
end
end
def include_wizard_required?
scope.is_admin? && Wizard.new(scope.user).requires_completion?
end
def complete_custom_wizard
if scope.user && requires_completion = CustomWizard::Wizard.prompt_completion(scope.user)
requires_completion.map {|w| { name: w[:name], url: "/w/#{w[:id]}"} }
end
end
def include_complete_custom_wizard?
complete_custom_wizard.present?
end
end
class ::SiteSerializer
prepend CustomWizardSiteSerializerExtension if SiteSetting.custom_wizard_enabled
end