Browse files

Totally restfull controllers

  • Loading branch information...
1 parent cd8eeb0 commit 51dd258fd9c2f118d68d9366dec3026b8bd42c8c miguel.camba committed May 7, 2012
View
8 app/assets/javascripts/common.js.coffee
@@ -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()
View
70 app/controllers/issues_controller.rb
@@ -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
View
55 app/controllers/projects_controller.rb
@@ -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
View
8 app/controllers/users_controller.rb
@@ -1,5 +1,6 @@
class UsersController < ApplicationController
respond_to :html, :json
+
#
# Filters
#
@@ -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

0 comments on commit 51dd258

Please sign in to comment.