<%- object_name = unique_object_name_for("edit_todo_#{@todo.id}") %> function add_spec(id, spec) { <%- # do this outside of object_name to fill spec_of_todo in # global namespace, not in namespace of object. Otherwise # spec_of_todo is not available for the js attached to the # edit form -%> spec_of_todo[id] = spec; } var <%=object_name%> = { animate: function() { <%=object_name%>.hide_todo(); <%=object_name%>.replace_placeholder_with_form(); <%=object_name%>.fill_dependency_array(); enable_rich_interaction(); }, hide_todo: function() { $('#<%= dom_id(@todo, 'line') %>').hide(); }, replace_placeholder_with_form: function() { $('#<%=dom_id(@todo, 'edit')%>').html(<%=object_name%>.html_for_edit_form()); $('#<%=dom_id(@todo, 'edit')%>').show(); $('#<%=dom_id(@todo, 'form')%> input#todo_description').focus(); }, fill_dependency_array: function() { spec_of_todo = new Array(); <% @todo.predecessors.each do |dep| -%> add_spec('<%=dep.id%>', "<%= escape_javascript(dep.specification)%>"); <% end -%> }, html_for_edit_form: function() { return "<%= js_render('todos/edit_form', {}, @todo) %>" } } <%=object_name%>.animate();