first draft for the json template response (tested on sorting pages)

This commit is contained in:
did 2011-11-11 00:39:25 -08:00
parent bef9dd8e67
commit 596eb78a55
3 changed files with 60 additions and 11 deletions

View File

@ -1,6 +1,5 @@
#= require_self #= require_self
#= require_tree . #= require_tree .
#= require_tree ./templates
#= require_tree ./models #= require_tree ./models
#= require_tree ./views #= require_tree ./views
#= require_tree ./routers #= require_tree ./routers

View File

@ -12,6 +12,37 @@ class Locomotive.Views.Pages.ListView extends Backbone.View
return @ return @
make_sortable: -> make_sortable: ->
self = @
@$('ul.folder').sortable
handle: 'em'
axis: 'y'
update: (event, ui) -> self.call_sort $(@)
call_sort: (folder) ->
$.rails.ajax
url: folder.attr('data-url')
type: 'post'
dataType: 'json'
data:
children: (_.map folder.sortable('toArray'), (el) -> el.replace('item-', ''))
_method: 'put'
success: @.on_successful_sort
error: @.on_failed_sort
# on_sort: (data) ->
on_successful_sort: (data, status, xhr) ->
window.foo = xhr
$.growl('success', xhr.getResponseHeader('Flash'));
on_failed_sort: (data, status, xhr) ->
$.growl('error', xhr.getResponseHeader('Flash'));
# $.post($(@).attr('data-url'), params, function(data) {
# var error = typeof(data.error) != 'undefined';
# $.growl((error ? 'error' : 'success'), (error ? data.error : data.notice));
# }, 'json');
# TODO # TODO
# $('#pages-list ul.folder').sortable({ # $('#pages-list ul.folder').sortable({
# 'handle': 'em', # 'handle': 'em',

View File

@ -8,14 +8,6 @@ module Locomotive
super || has_errors? super || has_errors?
end end
def api_behavior(error)
puts "api_behavior here"
super
puts "api_behavior there"
end
# def api_behavior(error) # def api_behavior(error)
# raise error unless resourceful? # raise error unless resourceful?
# #
@ -31,6 +23,8 @@ module Locomotive
# end # end
def to_json def to_json
if get? if get?
display resource display resource
elsif has_errors? elsif has_errors?
@ -38,12 +32,37 @@ module Locomotive
elsif post? elsif post?
display resource, :status => :created, :location => api_location display resource, :status => :created, :location => api_location
elsif put? elsif put?
with_flash_message(:notice) do |message|
# puts "put ? yes #{controller.flash[:notice]} / #{resource.inspect}"
# controller.headers[:notice] => controller.flash[:notice]
puts "put ? yes, message = #{message}"
display resource, :status => :ok, :location => api_location display resource, :status => :ok, :location => api_location
end
elsif has_empty_resource_definition? elsif has_empty_resource_definition?
display empty_resource, :status => :ok display empty_resource, :status => :ok
else else
head :ok # head :ok
puts "youpi !!!"
display :notice => controller.flash[:notice], :status => :ok
end end
controller.flash.discard # reset flash messages !
end
protected
def with_flash_message(type)
puts "@alert = #{@alert} / @notice = #{@notice}"
set_flash_message!
message = controller.flash[type]
# controller.headers[:"flash-#{type.to_s.capitalize}"] = message
controller.headers[:flash] = message
yield(message) if block_given?
controller.flash.discard # reset flash messages !
end end
# def api_behavior(error) # def api_behavior(error)