Class: Sibyl::EditorController

Inherits:
ApplicationController show all
Defined in:
app/controllers/sibyl/editor_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



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_scaffoldObject



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

#editObject



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

#indexObject



8
9
10
# File 'app/controllers/sibyl/editor_controller.rb', line 8

def index
	@tasks = Sibyl::Base.tasks
end

#index_formObject



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_taskObject



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_taskObject



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_scaffoldObject



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_imageObject



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_formObject



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