From 4d40813921e8eb4c8b56548d7e7b747c00017021 Mon Sep 17 00:00:00 2001 From: miker Date: Thu, 8 Oct 2009 15:41:44 +0000 Subject: [PATCH] Bug fix for the MARC editor: When we add a element we need to set it to be 40 characters long, and full of spaces, otherwise the Fixed Field editor cannot properly set the positions. Additionally, when a Fixed Field is edited but there is no backing element (say, trying to set the Audn when there is no 008) then we will add the needed . git-svn-id: svn://svn.open-ils.org/ILS/trunk@14305 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/xul/staff_client/server/cat/marcedit.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Open-ILS/xul/staff_client/server/cat/marcedit.js b/Open-ILS/xul/staff_client/server/cat/marcedit.js index f7e0e2b7ee..c12a720934 100644 --- a/Open-ILS/xul/staff_client/server/cat/marcedit.js +++ b/Open-ILS/xul/staff_client/server/cat/marcedit.js @@ -525,13 +525,13 @@ function createMARCTextbox (element,attrs) { return false; } } else if (event.keyCode == 64 && event.ctrlKey) { // ctrl + F6 - createControlField('006',''); + createControlField('006',' '); loadRecord(xml_record); } else if (event.keyCode == 65 && event.ctrlKey) { // ctrl + F7 - createControlField('007',''); + createControlField('007',' '); loadRecord(xml_record); } else if (event.keyCode == 66 && event.ctrlKey) { // ctrl + F8 - createControlField('008',''); + createControlField('008',' '); loadRecord(xml_record); } return true; @@ -1168,7 +1168,18 @@ function updateFixedFields (element) { for (var i in ff_pos[name]) { if (!ff_pos[name][i][rtype]) continue; - if (!parts[i]) continue; + if (!parts[i]) { + // we're missing the required field. Add it now. + + var newfield; + if (i == '_6') newfield = '006'; + else if (i == '_7') newfield = '007'; + else if (i == '_8') newfield = '008'; + else continue; + + createControlField(newfield,' '); + parts[i] = _record.controlfield.(@tag==newfield); + } var before = parts[i].substr(0, ff_pos[name][i][rtype].start); var after = parts[i].substr(ff_pos[name][i][rtype].start + ff_pos[name][i][rtype].len); -- 2.11.0