From 16e250542de43eadf62bc9354329912be84c3420 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Fri, 8 Mar 2019 10:12:50 +0100 Subject: [PATCH] Bug 21049: Set 007/00 when selecting material type (Rancor) There is a 1-1 relationship between the material type values and the position 00 of 007 field. Selecting a material type should set this position's value. Signed-off-by: Liz Rea Signed-off-by: Josef Moravec Signed-off-by: Nick Clemens (cherry picked from commit 856425db1e156ee4faf1aae70b0a78845711ba43) Signed-off-by: Martin Renvoize --- .../intranet-tmpl/lib/koha/cateditor/widget.js | 2 +- .../prog/en/includes/cateditor-widgets-marc21.inc | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/lib/koha/cateditor/widget.js b/koha-tmpl/intranet-tmpl/lib/koha/cateditor/widget.js index be0623699c..2f60856aac 100644 --- a/koha-tmpl/intranet-tmpl/lib/koha/cateditor/widget.js +++ b/koha-tmpl/intranet-tmpl/lib/koha/cateditor/widget.js @@ -109,7 +109,7 @@ define( [ 'resources' ], function( Resources ) { createFromXML: function( resourceId ) { var widget = this; - Resources[resourceId].done( function( xml ) { + return Resources[resourceId].done( function( xml ) { $(widget.node).find('.widget-loading').remove(); var $matSelect = $('').appendTo(widget.node); var $contents = $('').appendTo(widget.node); diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-widgets-marc21.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-widgets-marc21.inc index fae0baa4b3..3c4594f7ff 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-widgets-marc21.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cateditor-widgets-marc21.inc @@ -243,7 +243,18 @@ require( [ 'koha-backend', 'widget', 'text-marc' ], function( KohaBackend, Widge return this.materialTypeMapping[this.text.substring(0, 1)]; }, postCreate: function( node, mark ) { - this.createFromXML( 'marc21/xml/007' ); + this.createFromXML( 'marc21/xml/007' ).then(() => { + $(this.node).find('.material-select').on('change', (e) => { + const keys = Object.keys(this.materialTypeMapping); + const k = keys.filter(k => this.materialTypeMapping[k] === $(e.target).val()); + this.setFixed(0, 1, k, '+input'); + + // FIXME There must be a better way to update display + const n = $(this.node).find('[name="f00"]'); + n.triggerHandler('focus'); + n.triggerHandler('blur'); + }); + }); } } ); -- 2.39.5