Class: Sibyl::EditorController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- Sibyl::EditorController
- Defined in:
- app/controllers/sibyl/editor_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #create_scaffold ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #index_form ⇒ Object
- #index_task ⇒ Object
- #list_task ⇒ Object
- #new_scaffold ⇒ Object
- #open_image ⇒ Object
- #save_form ⇒ Object
Instance Method Details
#create ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'app/controllers/sibyl/editor_controller.rb', line 39 def create logger.info "Got request: #{params[:task]} -> #{params[:form]}" task = params[:task] form = params[:form] @errors = [] @errors.push ["Task name '#{task}' is not a valid ruby class name."] unless task =~ /^[A-Z]\w+/ @errors.push ["Form name '#{form}' is not a valid ruby class name."] unless form =~ /^[A-Z]\w+/ task = task.underscore.downcase form = form.underscore.downcase unless @errors.length == 0 and (@errors = Sibyl::Form.create_form(task, form, params[:pdf])).length == 0 redirect_to "/sibyl/editor/edit/#{task}/#{form}" else logger.info "Errors: #{@errors}" rendeer 'create_error' end end |
#create_scaffold ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'app/controllers/sibyl/editor_controller.rb', line 68 def create_scaffold @task = params[:task] @columns = params[:columns] columns = @columns.map {|k,v| "#{k}:#{v}"} force = '' if params[:force] == 'on' force == '--force' end args = [Rails.root.join("bin", "rails").to_s, "generate", "scaffold", @task.titleize.to_s, *columns, "--migration", "--timestamps", force] logger.info("args: #{args.join(' ')}") system(*args) args = [Rails.root.join("bin", "rake").to_s, "db:migrate"] system(*args) redirect_to "/#{@task}" end |
#edit ⇒ Object
57 58 59 60 61 |
# File 'app/controllers/sibyl/editor_controller.rb', line 57 def edit @task = params[:task] @form = params[:form] @pages = Sibyl::Base.pages(@task, @form) end |
#index ⇒ Object
8 9 10 |
# File 'app/controllers/sibyl/editor_controller.rb', line 8 def index @tasks = Sibyl::Base.tasks end |
#index_form ⇒ Object
23 24 25 26 |
# File 'app/controllers/sibyl/editor_controller.rb', line 23 def index_form @pages = Sibyl::Base.pages(params[:task], params[:form]) render json: @pages end |
#index_task ⇒ Object
17 18 19 20 21 |
# File 'app/controllers/sibyl/editor_controller.rb', line 17 def index_task @filesystem_bag = Sibyl::Base.forms(params[:task]) @task = params[:task] render "index_task" end |
#list_task ⇒ Object
12 13 14 15 |
# File 'app/controllers/sibyl/editor_controller.rb', line 12 def list_task @filesystem_bag = Sibyl::Base.forms(params[:task]) render json: @filesystem_bag end |
#new_scaffold ⇒ Object
63 64 65 66 |
# File 'app/controllers/sibyl/editor_controller.rb', line 63 def new_scaffold @task = params[:task] @forms = Sibyl::Base.forms(@task) end |
#open_image ⇒ Object
84 85 86 87 88 |
# File 'app/controllers/sibyl/editor_controller.rb', line 84 def open_image logger.info("params: " +params.inspect) logger.info("image: #{Rails.root.join("app", "sibyl", params[:task], params[:form], params[:page]).to_s}") Launchy.open(Rails.root.join("app", "sibyl", params[:task], params[:form], params[:page]).to_s) end |
#save_form ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'app/controllers/sibyl/editor_controller.rb', line 28 def save_form filesystem_bag = {} dir = Rails.root.join("app", "sibyl", params[:task], params[:form]) json_file = dir.to_s.gsub(/$/, ".json") STDERR.puts "Writing: #{json_file}" File.open(json_file, "w") do |f| f.write params[:json].to_json end head :ok end |