o: ActiveSupport::Cache::Entry :@expires_in0:@compressedF: @value"u{"content_type"application/javascript" class"ProcessedAsset"dependency_digest"%4dd0de368a34c0ca493b692619051c33" mtime"2012-04-20T18:48:50-05:00" _version"%9f3b95dd7ea3030dc35985c0a8020862"dependency_paths[{" mtime"2012-04-20T18:48:50-05:00" digest"%ef024f05737dac992f8023429dcb1b4e" path"l/Library/Ruby/Gems/1.8/gems/bbenezech-nested_form-0.0.6/vendor/assets/javascripts/jquery_nested_form.js" digest"%ef024f05737dac992f8023429dcb1b4e"required_paths["l/Library/Ruby/Gems/1.8/gems/bbenezech-nested_form-0.0.6/vendor/assets/javascripts/jquery_nested_form.js" pathname"l/Library/Ruby/Gems/1.8/gems/bbenezech-nested_form-0.0.6/vendor/assets/javascripts/jquery_nested_form.js"logical_path"jquery_nested_form.js" lengthi‹ " source"‹ jQuery(function($) { window.NestedFormEvents = function() { this.addFields = $.proxy(this.addFields, this); this.removeFields = $.proxy(this.removeFields, this); }; NestedFormEvents.prototype = { addFields: function(e) { // Setup var link = e.currentTarget; var assoc = $(link).attr('data-association'); // Name of child var blueprint_name = $(link).attr('data-blueprint_name'); // Blueprint name/id for that association var content = $('#' + blueprint_name).html(); // Fields template // Make a unique ID for the new child var regexp = new RegExp('new_' + assoc, 'g'); var new_id = new Date().getTime(); content = content.replace(regexp, "new_" + new_id); // Make the context correct by replacing new_ with the generated ID // of each of the parent objects var context = ($(link).closest('.fields').find('input:first').attr('name') || '').replace(new RegExp('\[[a-z]+\]$'), ''); // context will be something like this for a brand new form: // project[tasks_attributes][new_1255929127459][assignments_attributes][new_1255929128105] // or for an edit form: // project[tasks_attributes][0][assignments_attributes][1] if (context) { var parentNames = context.match(/[a-z_]+_attributes/g) || []; var parentIds = context.match(/(new_)?[0-9]+/g) || []; for(var i = 0; i < parentNames.length; i++) { if(parentIds[i]) { content = content.replace( new RegExp('(_' + parentNames[i] + ')_.+?_', 'g'), '$1_' + parentIds[i] + '_'); content = content.replace( new RegExp('(\\[' + parentNames[i] + '\\])\\[.+?\\]', 'g'), '$1[' + parentIds[i] + ']'); } } } var field = this.insertFields(content, assoc, link); $(link).closest("form") .trigger({ type: 'nested:fieldAdded', field: field }) .trigger({ type: 'nested:fieldAdded:' + assoc, field: field }); return false; }, insertFields: function(content, assoc, link) { return $(content).insertBefore(link); }, removeFields: function(e) { var link = e.currentTarget; var hiddenField = $(link).prev('input[type=hidden]'); hiddenField.val('1'); // if (hiddenField) { // $(link).v // hiddenField.value = '1'; // } var field = $(link).closest('.fields'); field.hide(); $(link).closest("form").trigger({ type: 'nested:fieldRemoved', field: field }); return false; } }; window.nestedFormEvents = new NestedFormEvents(); $('form a.add_nested_fields').live('click', nestedFormEvents.addFields); $('form a.remove_nested_fields').live('click', nestedFormEvents.removeFields); }); :@created_atf1335716315.76888395e