lib/generators/mugen/templates/app/controllers/mygengo/jobs_controller.rb
class Mygengo::JobsController < Mygengo::MygengoController
URL_REGEXP = /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix
# GET /jobs
# GET /jobs.xml
def index
@job_ids = Mugen::Jobs.all
if @job_ids
@jobs = @job_ids.collect {|j|
Mugen::Job.find(j['job_id']).merge('comments' => Mugen::Job.comments(j['job_id']))
}
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @jobs }
end
else
redirect_to mygengo_account_index_path
end
end
# GET /jobs/1
# GET /jobs/1.xml
def show
@job = Mugen::Job.find(params[:id])
@preview = Mugen::Job.preview(@job['job_id'])
@comments = Mugen::Job.comments(@job['job_id'])
@job.merge!('comments' => @comments)
@feedback = Mugen::Job.feedback(@job['job_id'])
@revisions = Mugen::Job.revisions(@job['job_id'])
@revisions = [@revisions] if @revisions.is_a?(Hash)
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @job }
end
end
def review_form
@job = Mugen::Job.find(params[:id])
@preview = Mugen::Job.preview(@job['job_id'])
@comments = Mugen::Job.comments(@job['job_id'])
@job.merge!('comments' => @comments)
@feedback = Mugen::Job.feedback(@job['job_id'])
end
def reject_form
@job = Mugen::Job.find(params[:id])
@preview = Mugen::Job.preview(@job['job_id'])
@comments = Mugen::Job.comments(@job['job_id'])
@job.merge!('comments' => @comments)
end
def revise_form
@job = Mugen::Job.find(params[:id])
@preview = Mugen::Job.preview(@job['job_id'])
@comments = Mugen::Job.comments(@job['job_id'])
@job.merge!('comments' => @comments)
end
# GET /jobs/1
# GET /jobs/1.xml
def revision
@job = Mugen::Job.find(params[:job_id])
@revision = Mugen::Job.revision(params[:job_id], params[:id])
respond_to do |format|
format.html {}
format.xml { render :xml => @job }
end
end
# GET /jobs/new
# GET /jobs/new.xml
def new
@job = Mugen::Job
@languages = Mugen::Service.languages
@language_pairs = Mugen::Service.language_pairs
@language_src = @languages.collect { |lp| [ lp["language"], lp['lc'] ] }.uniq.sort
@language_tgt = @languages.collect { |lp| [ lp["language"], lp['lc'] ] }.uniq.sort
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @job }
end
end
# GET /jobs/1/edit
def edit
@job = Mugen::Job.find(params[:id])
end
# POST /jobs
# POST /jobs.xml
def create
params[:job]['body_src'] = sanitize(params[:job]['body_src'])
if params[:job]['callback_url'].empty? ||
!params[:job]['callback_url'].match(URL_REGEXP)
params[:job].delete('callback_url')
end
flag = Mugen::Job.create(params[:job])
redirect_to mygengo_jobs_path
end
# PUT /jobs/1
# PUT /jobs/1.xml
def update
@job = Mugen::Job.update(params[:id])
redirect_to mygengo_jobs_path
end
def purchase
@job = Mugen::Job.purchase(params[:id])
redirect_to mygengo_jobs_path
end
def approve
@job = Mugen::Job.approve(params[:id])
redirect_to mygengo_jobs_path
end
def revise
@job = Mugen::Job.revise(params[:id], params[:job])
redirect_to mygengo_jobs_path
end
def reject
@job = Mugen::Job.reject(params[:id], params[:job])
redirect_to mygengo_jobs_path
end
# DELETE /jobs/1
# DELETE /jobs/1.xml
def destroy
@job = Mugen::Job.delete(params[:id])
respond_to do |format|
format.html { redirect_to(mygengo_jobs_url) }
format.xml { head :ok }
end
end
private
def sanitize(text)
return text.gsub(/<\/?.*?>/, "")
end
end