mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Create form templates (#20189)
This commit is contained in:
58
app/controllers/admin/form_templates_controller.rb
Normal file
58
app/controllers/admin/form_templates_controller.rb
Normal file
@@ -0,0 +1,58 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class Admin::FormTemplatesController < Admin::StaffController
|
||||
before_action :ensure_form_templates_enabled
|
||||
|
||||
def index
|
||||
form_templates = FormTemplate.all
|
||||
render_serialized(form_templates, AdminFormTemplateSerializer, root: "form_templates")
|
||||
end
|
||||
|
||||
def new
|
||||
end
|
||||
|
||||
def create
|
||||
params.require(:name)
|
||||
params.require(:template)
|
||||
|
||||
begin
|
||||
template = FormTemplate.create!(name: params[:name], template: params[:template])
|
||||
render_serialized(template, AdminFormTemplateSerializer, root: "form_template")
|
||||
rescue FormTemplate::NotAllowed => err
|
||||
render_json_error(err.message)
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
template = FormTemplate.find(params[:id])
|
||||
render_serialized(template, AdminFormTemplateSerializer, root: "form_template")
|
||||
end
|
||||
|
||||
def edit
|
||||
FormTemplate.find(params[:id])
|
||||
end
|
||||
|
||||
def update
|
||||
template = FormTemplate.find(params[:id])
|
||||
|
||||
begin
|
||||
template.update!(name: params[:name], template: params[:template])
|
||||
render_serialized(template, AdminFormTemplateSerializer, root: "form_template")
|
||||
rescue FormTemplate::NotAllowed => err
|
||||
render_json_error(err.message)
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
template = FormTemplate.find(params[:id])
|
||||
template.destroy!
|
||||
|
||||
render json: success_json
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def ensure_form_templates_enabled
|
||||
raise Discourse::InvalidAccess.new unless SiteSetting.experimental_form_templates
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user