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');
+ });
+ });
}
} );