From 6be5837e06bf8157b236e9bc48889bfd7ae90293 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Thu, 4 Jun 2015 09:15:24 +0200 Subject: [PATCH] Bug 14327: Fix js error "TypeError: events is null" in additem.js If you have no item plugins, the events variable in BindPluginEvents of additem.js will be null. So testing events.length will generate the described error. This patch adds a check to prevent that from happening again. Test plan: [1] Do not yet apply this patch ! [2] Temporarily remove framework plugins from your items (in ACQ or default framework). Probably you have to clear dateaccessioned.pl and barcode.pl. [3] Open js console in your browser. [4] Go to Acquisition. Open a basket and add an order from a new empty record. [5] You should see js error: "TypeError: events is null" (additem.js:176) [6] Apply this patch and reload the page (make sure that you refresh so that the new javascript code is read). [7] The TypeError should be gone. [8] Restore the framework plugins from step 2. Refresh the page again and verify that they still work as expected. Signed-off-by: Jonathan Druart Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 5132d5f991515b86a9282b214a9418b65b4c0881) Signed-off-by: Chris Cormack Signed-off-by: Liz Rea Conflicts: koha-tmpl/intranet-tmpl/prog/en/js/additem.js --- koha-tmpl/intranet-tmpl/prog/en/js/additem.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/additem.js b/koha-tmpl/intranet-tmpl/prog/en/js/additem.js index aa19155925..e48adcd42f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/js/additem.js +++ b/koha-tmpl/intranet-tmpl/prog/en/js/additem.js @@ -165,6 +165,19 @@ function cloneItemBlock(index, unique_item_fields) { }); } +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