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
Expand Up @@ -4,13 +4,11 @@ jQuery ->
$button = $(this) $button = $(this)
$form = $button.closest('form') $form = $button.closest('form')
if $button.hasClass 'edit' if $button.hasClass 'edit'
$form.find('input').each (index, input) -> $(input).removeClass('disabled').prop('disabled', false) for input in $form.find('input')
$(input).removeClass('disabled').prop('disabled', false)
# TODO: error, se está eliminando el texto del boton también
$button.removeClass('edit').addClass('btn-danger').html('<i class="icon-remove"></i> Cancelar') $button.removeClass('edit').addClass('btn-danger').html('<i class="icon-remove"></i> Cancelar')
else else
$form.find('input').each (index, input) -> for input in $form.find('input')
$(input).addClass('disabled').prop('disabled', true) $(input).addClass('disabled').prop 'disabled', true
$(input).val($(input).data('original')) if input.type != 'submit' $(input).val($(input).data('original')) if input.type != 'submit'
$button.addClass('edit').removeClass('btn-danger').html('<i class="icon-edit"></i> Editar') $button.addClass('edit').removeClass('btn-danger').html('<i class="icon-edit"></i> Editar')
$form.hideValidationErrors() $form.hideValidationErrors()
Expand Down
70 changes: 20 additions & 50 deletions app/controllers/issues_controller.rb
@@ -1,72 +1,42 @@
# -*- encoding : utf-8 -*- # -*- encoding : utf-8 -*-
class IssuesController < ApplicationController class IssuesController < ApplicationController

respond_to :html, :json
def index
@issues = Issue.all #

# Decent exposure
respond_to do |format| #
format.html expose(:project) { Project.find(params[:project_id]) }
format.json { render json: @issues } expose(:issues) { project.issues }
end expose(:issue)

def index
respond_with issues
end end


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

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


def new def new
@issue = Issue.new respond_with issue

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


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


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

respond_with 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
end end


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

respond_with issue
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
end end


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

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

respond_to :html, :json

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


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


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


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


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


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

respond_with 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
end end


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

respond_with project
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
end end


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

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

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


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


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


Expand Down

0 comments on commit 51dd258

Please sign in to comment.