I have taken this a step closer, basing my second attempt on hobo's
has-many-checkbox-editor. But still all I get is a spinner and no new
object created.
The problem seems to be that object_url(new.class, :method => :post)
is returning nil. new does, in fact, contain the correct object.
Why is that?
<def tag="file-set-checkbox-editor" attrs="update, message"><%=
raise HoboError.new("no update specified") unless update
fields = { "project_id"=> "#...@project_custodian.project.id}",
"file_set_id" => "#{this.id}" }
conditions = fields.map{|k,v|"#{k}=#{v}"}.join " AND "
obj = ProjectFileSet.find(:first, :conditions => conditions)
checkbox_attrs = {:type =>'checkbox'}
if obj == nil
new = ProjectFileSet.new(fields)
permission = if can_create?(new)
class_name = new.class.name.underscore
ajax_options = { :message => message, :spinner_next_to =>
Hobo.raw_js("this") }
ajax_options[:params] = { class_name => fields } unless
fields.empty?
checkbox_attrs[:onclick] = ajax_updater(object_url
(new.class, :method => :post), update, ajax_options)
end
else
permission = if can_delete?(obj)
checkbox_attrs[:checked] = 'checked'
message ||= "Unsetting #{obj.class.name.titleize}"
class_name = obj.class.name.underscore
checkbox_attrs[:onclick] = ajax_updater(object_url(obj, :method
=> :delete), update, {:message => message, :method => 'delete'})
end
end
element(:input, add_classes(attributes.merge(checkbox_attrs),
"checkbox_input file_set_checkbox")) if
permission
%></def>
On Jul 18, 1:04 pm, Montgomery Kosma <[email protected]> wrote:
> I have created a nifty page adapting table-plus to show all the
> datasets for an employee, with a checkbox next to each one that
> indicates whether that dataset is part of the current project.
>
> Last step is getting the checkbox to create or destroy the association
> object in the join table (ProjectDataSets).
>
> I am stuck on where to put in the create / destroy code. Using the
> debugger, it seems ajax_updater is called only when the page is
> rendered, not when the checkbox is clicked. But clearly something is
> happening, since I'm getting a spinner...
>
> Here's my tag (based on hobo's boolean-checkbox-editor):
>
> <def tag="checkbox-association-editor" attrs="update, message"><%
> raise HoboError.new("Not allowed to edit") unless can_edit?
> f = ajax_updater(object_url(this_parent, :method => :put),
> update,
> :method => "put",
> :message => message,
> :spinner_next_to => Hobo.raw_js("this"),
> :params => { this_parent.class.name.underscore => {
> this_field => Hobo.raw_js('this.checked')
> } })
> %>
> <input type="checkbox" value="1" onclick="#{f}" merge-attrs />
>
> </def>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Hobo
Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/hobousers?hl=en
-~----------~----~----~----~------~----~------~--~---