| 1 |
// $Id$
|
| 2 |
|
| 3 |
if (Drupal.jsEnabled) {
|
| 4 |
$(document).ready(function () {
|
| 5 |
$("a.multireference_add_fields").click(function() {
|
| 6 |
// determine field_name + next_item
|
| 7 |
var new_item = $(this).attr("next_item");
|
| 8 |
var field_name = $(this).attr("field_name");
|
| 9 |
|
| 10 |
// select correct row to duplicate
|
| 11 |
var old_item = new_item-1;
|
| 12 |
var row_id = "#" + field_name + "_" + old_item;
|
| 13 |
var new_row = $(row_id).html();
|
| 14 |
|
| 15 |
// replace row ids, etc.
|
| 16 |
var regex = new RegExp( "(item[\_\-])" + old_item, "ig" );
|
| 17 |
var newex = "$1" + new_item;
|
| 18 |
var new_id = field_name + "_" + new_item;
|
| 19 |
new_row = new_row.replace(regex,newex);
|
| 20 |
new_row = '<tr id="' + new_id + '">' + new_row + '</tr>';
|
| 21 |
|
| 22 |
// add row
|
| 23 |
$(row_id).after(new_row);
|
| 24 |
|
| 25 |
// reset values
|
| 26 |
new_id = "#" + new_id;
|
| 27 |
$(new_id).clearForm();
|
| 28 |
|
| 29 |
// update next_item value
|
| 30 |
$(this).attr("next_item",++new_item);
|
| 31 |
|
| 32 |
// reload autocomplete JS
|
| 33 |
$(document).each(Drupal.autocompleteAutoAttach);
|
| 34 |
});
|
| 35 |
});
|
| 36 |
|
| 37 |
$.fn.clearForm = function() {
|
| 38 |
return this.each(function() {
|
| 39 |
var type = this.type, tag = this.tagName.toLowerCase();
|
| 40 |
if (type == 'text' || type == 'password' || tag == 'textarea')
|
| 41 |
this.value = '';
|
| 42 |
else if (type == 'checkbox' || type == 'radio')
|
| 43 |
this.checked = false;
|
| 44 |
else if (tag == 'select')
|
| 45 |
this.selectedIndex = -1;
|
| 46 |
else
|
| 47 |
$(this).children().clearForm();
|
| 48 |
});
|
| 49 |
};
|
| 50 |
}
|
| 51 |
|