Bug 10541: enable cross-browser AJAX in additem.js
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / js / additem.js
index 859fe02..1cea437 100644 (file)
@@ -1,5 +1,5 @@
 function addItem( node, unique_item_fields ) {
-    var index = $(node).parent().attr('id');
+    var index = $(node).closest("div").attr('id');
     var current_qty = parseInt($("#quantity").val());
     var max_qty;
     if($("#quantity_to_receive").length != 0){
@@ -12,8 +12,8 @@ function addItem( node, unique_item_fields ) {
             if ( current_qty < max_qty - 1 )
                 cloneItemBlock(index, unique_item_fields);
             addItemInList(index, unique_item_fields);
-            $("#" + index).find("a[name='buttonPlus']").text("Update");
-            $("#quantity").val(current_qty + 1);
+            $("#" + index).find("input[name='buttonPlus']").val("Update");
+            $("#quantity").val(current_qty + 1).change();
         } else if ( current_qty >= max_qty ) {
             alert(window.MSG_ADDITEM_JS_CANT_RECEIVE_MORE_ITEMS
                 || "You can't receive any more items.");
@@ -65,6 +65,9 @@ function constructTrNode(index, unique_item_fields) {
         } else {
             field_value = $(field_elt).val();
         }
+        if (field_value == undefined) {
+            field_value = '';
+        }
         result += "<td>" + field_value + "</td>";
     }
     result += "</tr>";
@@ -87,7 +90,7 @@ function deleteItemBlock(node_a, index, unique_item_fields) {
     } else {
         max_qty = 99999;
     }
-    $("#quantity").val(current_qty - 1);
+    $("#quantity").val(current_qty - 1).change();
     $(node_a).parents('tr').remove();
     if(current_qty - 1 == 0)
         $("#items_list").hide();
@@ -131,13 +134,16 @@ function cloneItemBlock(index, unique_item_fields) {
                 $(this).val(random);
             });
             /* Add buttons + and Clear */
-            var buttonPlus = '<a name="buttonPlus" style="cursor:pointer; margin:0 1em;" onclick="addItem(this,\'' + unique_item_fields + '\')">Add</a>';
-            var buttonClear = '<a name="buttonClear" style="cursor:pointer;" onclick="clearItemBlock(this)">' + (window.MSG_ADDITEM_JS_CLEAR || 'Clear') + '</a>';
-            $(clone).append(buttonPlus).append(buttonClear);
+            var buttonPlus = "<fieldset class=\"action\">";
+            var buttonPlusText = _("Add item");
+                buttonPlus += '<input type="button" class="addItemControl" name="buttonPlus" style="cursor:pointer; margin:0 1em;" onclick="addItem(this,\'' + unique_item_fields + '\')" value="' + buttonPlusText + '" />';
+                buttonPlus += '<a class="addItemControl cancel" name="buttonClear" style="cursor:pointer;" onclick="clearItemBlock(this)">' + (window.MSG_ADDITEM_JS_CLEAR || 'Clear') + '</a>';
+                buttonPlus += "</fieldset>";
+            $(clone).append(buttonPlus);
             /* Copy values from the original block (input) */
             $(original).find("input[name='field_value']").each(function(){
                 var kohafield = $(this).siblings("input[name='kohafield']").val();
-                if($(this).val() && dont_copy_fields.indexOf(kohafield) == -1) {
+                if($(this).val() && $.inArray(kohafield,dont_copy_fields) == -1) {
                     $(this).parent("div").attr("id").match(/^(subfield.)/);
                     var id = RegExp.$1;
                     var value = $(this).val();
@@ -147,7 +153,7 @@ function cloneItemBlock(index, unique_item_fields) {
             /* Copy values from the original block (select) */
             $(original).find("select[name='field_value']").each(function(){
                 var kohafield = $(this).siblings("input[name='kohafield']").val();
-                if($(this).val() && dont_copy_fields.indexOf(kohafield) == -1) {
+                if($(this).val() && $.inArray(kohafield,dont_copy_fields) == -1) {
                     $(this).parent("div").attr("id").match(/^(subfield.)/);
                     var id = RegExp.$1;
                     var value = $(this).val();
@@ -161,7 +167,7 @@ function cloneItemBlock(index, unique_item_fields) {
 }
 
 function clearItemBlock(node) {
-    var index = $(node).parent().attr('id');
+    var index = $(node).closest("div").attr('id');
     var block = $("#"+index);
     $(block).find("input[type='text']").each(function(){
         $(this).val("");
@@ -182,8 +188,11 @@ function check_additem(unique_item_fields) {
     // Check if a value is duplicated in form
     for ( field in array_fields ) {
         var fieldname = array_fields[field];
+        if (fieldname == '') {
+            continue;
+        }
         var values = new Array();
-        $("[name='kohafield'][value=items."+array_fields[field]+"]").each(function(){
+        $("[name='kohafield'][value='items."+ fieldname +"']").each(function(){
             var input = $(this).prevAll("input[name='field_value']")[0];
             if($(input).val()) {
                 values.push($(input).val());