Skip to content

Commit

Permalink
Totally restfull controllers
Browse files Browse the repository at this point in the history
  • Loading branch information
miguel.camba committed May 6, 2012
1 parent cd8eeb0 commit 51dd258
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 103 deletions.
8 changes: 3 additions & 5 deletions app/assets/javascripts/common.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,11 @@ jQuery ->
$button = $(this)
$form = $button.closest('form')
if $button.hasClass 'edit'
$form.find('input').each (index, input) ->
$(input).removeClass('disabled').prop('disabled', false)
# TODO: error, se está eliminando el texto del boton también
$(input).removeClass('disabled').prop('disabled', false) for input in $form.find('input')
$button.removeClass('edit').addClass('btn-danger').html('<i class="icon-remove"></i> Cancelar')
else
$form.find('input').each (index, input) ->
$(input).addClass('disabled').prop('disabled', true)
for input in $form.find('input')
$(input).addClass('disabled').prop 'disabled', true
$(input).val($(input).data('original')) if input.type != 'submit'
$button.addClass('edit').removeClass('btn-danger').html('<i class="icon-edit"></i> Editar')
$form.hideValidationErrors()
Expand Down
70 changes: 20 additions & 50 deletions app/controllers/issues_controller.rb
Original file line number Diff line number Diff line change
@@ -1,72 +1,42 @@
# -*- encoding : utf-8 -*-
class IssuesController < ApplicationController

def index
@issues = Issue.all

respond_to do |format|
format.html
format.json { render json: @issues }
end
respond_to :html, :json

#
# Decent exposure
#
expose(:project) { Project.find(params[:project_id]) }
expose(:issues) { project.issues }
expose(:issue)

def index
respond_with issues
end

def show
@issue = Issue.find(params[:id])

respond_to do |format|
format.html
format.json { render json: @issue }
end
respond_with issue
end

def new
@issue = Issue.new

respond_to do |format|
format.html
format.json { render json: @issue }
end
respond_with issue
end

def edit
@issue = Issue.find(params[:id])
respond_with issue
end

def create
@issue = Issue.new(params[:issue])

respond_to do |format|
if @issue.save
format.html { redirect_to @issue, notice: 'Issue was successfully created.' }
format.json { render json: @issue, status: :created, location: @issue }
else
format.html { render action: "new" }
format.json { render json: @issue.errors, status: :unprocessable_entity }
end
end
issue.save
respond_with issue
end

def update
@issue = Issue.find(params[:id])

respond_to do |format|
if @issue.update_attributes(params[:issue])
format.html { redirect_to @issue, notice: 'Issue was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @issue.errors, status: :unprocessable_entity }
end
end
issue.save
respond_with issue
end

def destroy
@issue = Issue.find(params[:id])
@issue.destroy

respond_to do |format|
format.html { redirect_to issues_url }
format.json { head :no_content }
end
issue.destroy
respond_with issue
end
end
55 changes: 12 additions & 43 deletions app/controllers/projects_controller.rb
Original file line number Diff line number Diff line change
@@ -1,72 +1,41 @@
# -*- encoding : utf-8 -*-
class ProjectsController < ApplicationController

respond_to :html, :json

#
# Decent exposure
#
expose(:projects) { Project.all }
expose(:project)

def index
respond_to do |format|
format.html
format.json { render json: projects }
end
respond_with projects
end

def show
respond_to do |format|
format.html
format.json { render json: project }
end
respond_with project
end

def new
respond_to do |format|
format.html
format.json { render json: project }
end
respond_with project
end

def edit
@project = Project.find(params[:id])
respond_with project
end

def create
@project = Project.new(params[:project])

respond_to do |format|
if @project.save
format.html { redirect_to @project, notice: 'Project was successfully created.' }
format.json { render json: @project, status: :created, location: @project }
else
format.html { render action: "new" }
format.json { render json: @project.errors, status: :unprocessable_entity }
end
end
project.save
respond_with project
end

def update
@project = Project.find(params[:id])

respond_to do |format|
if @project.update_attributes(params[:project])
format.html { redirect_to @project, notice: 'Project was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @project.errors, status: :unprocessable_entity }
end
end
project.save
respond_with project
end

def destroy
@project = Project.find(params[:id])
@project.destroy

respond_to do |format|
format.html { redirect_to projects_url }
format.json { head :no_content }
end
project.destroy
respond_with project
end
end
8 changes: 3 additions & 5 deletions app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
class UsersController < ApplicationController
respond_to :html, :json

#
# Filters
#
Expand All @@ -21,15 +22,12 @@ def edit
end

def create
if user.save
auto_login user
flash[:notice] = "User was created successfully."
end
auto_login user if user.save
respond_with user, location: root_url
end

def update
flash[:notice] = "User was created updated." if user.save
user.save
respond_with user
end

Expand Down

0 comments on commit 51dd258

Please sign in to comment.