admin.rb 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. class CustomWizard::AdminController < ::ApplicationController
  2. before_action :ensure_logged_in
  3. before_action :ensure_admin
  4. def index
  5. render nothing: true
  6. end
  7. def field_types
  8. render json: { types: CustomWizard::Field.types }
  9. end
  10. def save
  11. params.require(:wizard)
  12. wizard = ::JSON.parse(params[:wizard])
  13. PluginStore.set('custom_wizard', wizard["id"], wizard)
  14. render json: success_json
  15. end
  16. def remove
  17. params.require(:id)
  18. PluginStore.remove('custom_wizard', params[:id])
  19. render json: success_json
  20. end
  21. def find_wizard
  22. params.require(:wizard_id)
  23. wizard = PluginStore.get('custom_wizard', params[:wizard_id].underscore)
  24. render json: success_json.merge(wizard: wizard)
  25. end
  26. def custom_wizards
  27. rows = PluginStoreRow.where(plugin_name: 'custom_wizard').order(:id)
  28. wizards = [*rows].map { |r| CustomWizard::Template.new(r.value) }
  29. render json: success_json.merge(wizards: wizards)
  30. end
  31. def submissions
  32. params.require(:wizard_id)
  33. rows = PluginStoreRow.where(plugin_name: "#{params[:wizard_id]}_submissions").order(:id)
  34. submissions = [*rows].map { |r| ::JSON.parse(r.value) }
  35. render json: success_json.merge(submissions: submissions)
  36. end
  37. end