From 01ec1ff00bc9fb5e30fdc8bc549d284954cb86cd Mon Sep 17 00:00:00 2001 From: gray Date: Tue, 19 Jul 2011 12:53:04 +0300 Subject: [PATCH] Small refactor cocoon.js --- .../cocoon/install/templates/cocoon.js | 63 +++++++++---------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/lib/generators/cocoon/install/templates/cocoon.js b/lib/generators/cocoon/install/templates/cocoon.js index 50434ec..a5d2225 100644 --- a/lib/generators/cocoon/install/templates/cocoon.js +++ b/lib/generators/cocoon/install/templates/cocoon.js @@ -1,63 +1,58 @@ $(document).ready(function() { function replace_in_content(content, regexp_str, with_str) { - reg_exp = new RegExp(regexp_str); - content.replace(reg_exp, with_str) + reg_exp = new RegExp(regexp_str); + content.replace(reg_exp, with_str); } + $('.add_fields').live('click', function(e) { + e.preventDefault(); + var assoc = $(this).data('association'), + assocs = $(this).data('associations'), + content = $(this).data('template'), + insertionPosition = $(this).data('association-insertion-position'), + insertionNode = $(this).data('association-insertion-node'), + insertionCallback = $(this).data('insertion-callback'), + regexp_braced = new RegExp('\\[new_' + assoc + '\\]', 'g'), + regexp_underscord = new RegExp('_new_' + assoc + '_', 'g'), + new_id = new Date().getTime(), + newcontent_braced = '[' + new_id + ']', + newcontent_underscord = '_' + new_id + '_', + new_content = content.replace(regexp_braced, '[' + new_id + ']'); - $('.add_fields').live('click', function() { - var assoc = $(this).attr('data-association'); - var assocs = $(this).attr('data-associations'); - var content = $(this).attr('data-template'); - var insertionPosition = $(this).attr('data-association-insertion-position'); - var insertionNode = $(this).attr('data-association-insertion-node'); - var insertionCallback = $(this).data('insertion-callback'); - var regexp_braced = new RegExp('\\[new_' + assoc + '\\]', 'g'); - var regexp_underscord = new RegExp('_new_' + assoc + '_', 'g'); - var new_id = new Date().getTime(); - var newcontent_braced = '[' + new_id + ']'; - var newcontent_underscord = '_' + new_id + '_'; - var new_content = content.replace(regexp_braced, '[' + new_id + ']'); if (new_content == content) { regexp_braced = new RegExp('\\[new_' + assocs + '\\]', 'g'); regexp_underscord = new RegExp('_new_' + assocs + '_', 'g'); new_content = content.replace(regexp_braced, '[' + new_id + ']'); } + new_content = new_content.replace(regexp_underscord, newcontent_underscord); - if (insertionNode) { + if (insertionNode) insertionNode = $(insertionNode); - } - else { + else insertionNode = $(this).parent(); - } var contentNode = $(new_content); - - if (insertionPosition == 'after'){ + + if (insertionPosition == 'after') insertionNode.after(contentNode); - } else { - insertionNode.before(contentNode); - } + else + insertionNode.before(contentNode); - if(insertionCallback){ + if (insertionCallback) insertionCallback.call(contentNode); - } - - return false; }); - $('.remove_fields.dynamic').live('click', function() { + $('.remove_fields.dynamic').live('click', function(e) { + e.preventDefault(); $(this).closest(".nested-fields").remove(); - return false; }); - $('.remove_fields.existing').live('click', function() { + $('.remove_fields.existing').live('click', function(e) { + e.preventDefault(); $(this).prev("input[type=hidden]").val("1"); $(this).closest(".nested-fields").hide(); - return false; }); -}); - +}); \ No newline at end of file