function addItem( node, unique_item_fields ) { var index = $(node).closest("div").attr('id'); var current_qty = parseInt($("#quantity").val()); var max_qty; if($("#quantity_to_receive").length != 0){ max_qty = parseInt($("#quantity_to_receive").val()); } else { max_qty = 99999; } if ( $("#items_list table").find('tr[idblock="' + index + '"]').length == 0 ) { if ( current_qty < max_qty ) { if ( current_qty < max_qty - 1 ) cloneItemBlock(index, unique_item_fields); addItemInList(index, unique_item_fields); $("#" + index).find("input[name='buttonPlus']").val( (window.MSG_ADDITEM_JS_UPDATEITEM ) ); $("#"+ index).find("input[name='buttonPlusMulti']").remove(); $("#" + index).find("input[name='multiValue']").remove(); $("#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."); } } else { if ( current_qty < max_qty ) cloneItemBlock(index, unique_item_fields); var tr = constructTrNode(index); $("#items_list table").find('tr[idblock="' + index + '"]:first').replaceWith(tr); } $("#" + index).hide(); } function addMulti( count, node, unique_item_fields){ var index = $(node).closest("div").attr('id'); var countItemsBefore = $("#items_list tbody tr").length; var current_qty = parseInt( $('#quantity').val(), 10 ); $("#procModal").modal('show'); $("#" + index).hide(); for(var i=0;i"; var edit_link = "" + (window.MSG_ADDITEM_JS_EDIT || "Edit") + ""; var del_link = "" + (window.MSG_ADDITEM_JS_DELETE || "Delete") + ""; result += "" + edit_link + ""; result += "" + del_link + ""; for(i in fields) { var field = fields[i]; var field_elt = $("#" + index) .find("[name='kohafield'][value='items."+field+"']") .prevAll("[name='field_value']")[0]; var field_value; if($(field_elt).is('select')) { field_value = $(field_elt).find("option:selected").text(); } else { field_value = $(field_elt).val(); } if (field_value == undefined) { field_value = ''; } result += "" + field_value + ""; } result += ""; return result; } function addItemInList(index, unique_item_fields, callback) { $("#items_list").show(); var tr = constructTrNode(index, unique_item_fields); $("#items_list table tbody").append(tr); if (typeof callback === "function"){ callback(); } } function deleteItemBlock(node_a, index, unique_item_fields) { $("#" + index).remove(); var current_qty = parseInt($("#quantity").val()); var max_qty; if($("#quantity_to_receive").length != 0) { max_qty = parseInt($("#quantity_to_receive").val()); } else { max_qty = 99999; } $("#quantity").val(current_qty - 1).change(); $(node_a).parents('tr').remove(); if(current_qty - 1 == 0) $("#items_list").hide(); if ( $("#quantity").val() <= max_qty - 1) { if ( $("#outeritemblock").children("div :visible").length == 0 ) { $("#outeritemblock").children("div:last").show(); } } if ( $("#quantity").val() == 0 && $("#outeritemblock > div").length == 0) { cloneItemBlock(0, unique_item_fields); } } function cloneItemBlock(index, unique_item_fields, callback) { var original; if(index) { original = $("#" + index); //original
} var dont_copy_fields = new Array(); if(unique_item_fields) { var dont_copy_fields = unique_item_fields.split(' '); for(i in dont_copy_fields) { dont_copy_fields[i] = "items." + dont_copy_fields[i]; } } var random = Math.floor(Math.random()*100000); // get a random itemid. var clone = $("
") $.ajax({ url: "/cgi-bin/koha/services/itemrecorddisplay.pl", dataType: 'html', data: { frameworkcode: 'ACQ' }, success: function(data, textStatus, jqXHR) { /* Create the item block */ $(clone).append(data); /* Change all itemid fields value */ $(clone).find("input[name='itemid']").each(function(){ $(this).val(random); }); /* Add buttons + and Clear */ var buttonPlus = "
"; buttonPlus += ''; buttonPlus += ''; buttonPlus += ''; buttonPlus += ''; buttonPlus += "
"; $(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() && $.inArray(kohafield,dont_copy_fields) == -1) { $(this).parent("div").attr("id").match(/^(subfield.)/); var id = RegExp.$1; var value = $(this).val(); $(clone).find("div[id^='"+id+"'] input[name='field_value']").val(value); } }); /* 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() && $.inArray(kohafield,dont_copy_fields) == -1) { $(this).parent("div").attr("id").match(/^(subfield.)/); var id = RegExp.$1; var value = $(this).val(); $(clone).find("div[id^='"+id+"'] select[name='field_value']").val(value); } }); $("#outeritemblock").append(clone); if (typeof callback === "function"){ var cloneIndex = "itemblock"+random; callback(cloneIndex); } BindPluginEvents(data); } }); } function BindPluginEvents(data) { // the script tag in data for plugins contains a document ready that binds // the events for the plugin // when we append, this code does not get executed anymore; so we do it here var events= data.match(/BindEventstag_\d+_subfield_._\d+/g); if ( events == null ) return; for(var i=0; i"); success = false; } } } // If there is a duplication, we raise an error if ( success == false ) { $(".error").show(); return false; } $.ajax({ url: '/cgi-bin/koha/acqui/check_uniqueness.pl', async: false, dataType: 'json', data: data, success: function(data) { for (field in data) { success = false; for (var i=0; i < data[field].length; i++) { var value = data[field][i]; $(".error").append( field + " '" + value + "' " + (window.MSG_ADDITEM_JS_ALREADY_EXISTS_IN_DB || "already exists in database") + "
" ); } } } }); if ( success == false ) { $(".error").show(); } return success; }