From 5951317c7dd8ca3dab15b6a577d42a60fe244aea Mon Sep 17 00:00:00 2001 From: dbs Date: Sat, 18 Dec 2010 06:25:00 +0000 Subject: [PATCH] Display the tag and indicators for authority records in the merge box Also, avoid the risk of creating or stomping on global variables by using 'var' to declare our variables. git-svn-id: svn://svn.open-ils.org/ILS/trunk@19017 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/js/ui/default/cat/authority/list.js | 50 ++++++++++++++---------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/Open-ILS/web/js/ui/default/cat/authority/list.js b/Open-ILS/web/js/ui/default/cat/authority/list.js index 6948e8404d..eab6cb097a 100644 --- a/Open-ILS/web/js/ui/default/cat/authority/list.js +++ b/Open-ILS/web/js/ui/default/cat/authority/list.js @@ -34,28 +34,34 @@ function displayAuthorities(data) { var idArr = []; // Grab each record from the returned authority records dojo.query("record", data).forEach(function(node) { - authText = ''; - authId = 0; + var auth = {}; + auth.text = ''; + auth.id = 0; // Grab each authority record field from the authority record dojo.query("datafield[tag^='1']", node).forEach(function(dfNode) { - authText += dojox.xml.parser.textContent(dfNode); + auth.text += dojox.xml.parser.textContent(dfNode); + auth.name = dojo.attr(dfNode, 'tag'); + auth.ind1 = dojo.attr(dfNode, 'ind1'); + auth.ind2 = dojo.attr(dfNode, 'ind2'); }); + + // Grab the ID of the authority record dojo.query("datafield[tag='901'] subfield[code='c']", node).forEach(function(dfNode) { - authId = dojox.xml.parser.textContent(dfNode); + auth.id = dojox.xml.parser.textContent(dfNode); }); - idArr.push(parseInt(authId)); + idArr.push(parseInt(auth.id)); // Create the authority record listing entry - dojo.place('
' + authText + '
', "authlist-div", "last"); + dojo.place('
' + auth.text + '
', "authlist-div", "last"); // Add the menu of new/edit/delete/mark-for-merge options var auth_menu = new dijit.Menu({}); // "Edit" menu item - new dijit.MenuItem({"id": "edit_" + authId, "onClick": function(){ + new dijit.MenuItem({"id": "edit_" + auth.id, "onClick": function(){ recId = this.id.slice(this.id.lastIndexOf('_') + 1); pcrud = new openils.PermaCrud(); auth_rec = pcrud.retrieve("are", recId); @@ -65,11 +71,11 @@ function displayAuthorities(data) { }, "label":"Edit"}).placeAt(auth_menu, "first"); // "Merge" menu item - new dijit.MenuItem({"id": "merge_" + authId, "onClick":function(){ - authText = ''; + new dijit.MenuItem({"id": "merge_" + auth.id, "onClick":function(){ + auth.text = ''; recId = this.id.slice(this.id.lastIndexOf('_') + 1); dojo.query('#auth' + recId + ' span.text').forEach(function(node) { - authText += dojox.xml.parser.textContent(node); + auth.text += dojox.xml.parser.textContent(node); }); // If there is a toMerge item already, this is a target record @@ -80,12 +86,14 @@ function displayAuthorities(data) { } else { mergeRole += 'Master'; } - dojo.place('' + mergeRole + '' + authText + '', 'mergebox-tbody', 'last'); + + dojo.place('' + mergeRole + '' + auth.text + '', 'mergebox-tbody', 'last'); + dojo.place('' + auth.name + ' ' + auth.ind1 + auth.ind2 + '', 'mergeMeta_' + recId, 'last'); dojo.removeClass('mergebox-div', 'hidden'); }, "label":"Mark for Merge"}).placeAt(auth_menu, "last"); // "Delete" menu item - new dijit.MenuItem({"id": "delete_" + authId, "onClick":function(){ + new dijit.MenuItem({"id": "delete_" + auth.id, "onClick":function(){ recId = this.id.slice(this.id.lastIndexOf('_') + 1); // Deleting an authority record is unusual; let's be 100% sure @@ -101,8 +109,8 @@ function displayAuthorities(data) { } }, "label":"Delete"}).placeAt(auth_menu, "last"); - auth_mb = new dijit.form.DropDownButton({dropDown: auth_menu, label:"Actions", id:"menu" + authId}); - auth_mb.placeAt("auth" + authId, "first"); + auth_mb = new dijit.form.DropDownButton({dropDown: auth_menu, label:"Actions", id:"menu" + auth.id}); + auth_mb.placeAt("auth" + auth.id, "first"); auth_menu.startup(); }); @@ -166,9 +174,9 @@ function loadMarcEditor(pcrud, rec) { } function authListInit() { - term = cgi.param('authTerm') || ''; - page = cgi.param('authPage') || 0; - axis = cgi.param('authAxis') || 'authority.author'; + var term = cgi.param('authTerm') || ''; + var page = cgi.param('authPage') || 0; + var axis = cgi.param('authAxis') || 'authority.author'; if (axis) { dijit.byId('authAxis').attr('value', axis); } @@ -226,12 +234,12 @@ function displayRecords(parms) { } /* Clear out the current contents of the page */ - widgets = dijit.findWidgets(dojo.byId('authlist-div')); + var widgets = dijit.findWidgets(dojo.byId('authlist-div')); dojo.forEach(widgets, function(w) { w.destroyRecursive(true); }); dojo.query("#authlist-div div").orphan(); - url = '/opac/extras/startwith/marcxml/' + var url = '/opac/extras/startwith/marcxml/' + dijit.byId('authAxis').attr('value') // + '/' + dijit.byId('authOU').attr('value') + '/1' // replace with preceding line if OUs gain some meaning @@ -243,12 +251,12 @@ function displayRecords(parms) { } function clearMergeRecords() { - records = dojo.query('.toMerge').orphan(); + var records = dojo.query('.toMerge').orphan(); dojo.addClass('mergebox-div', 'hidden'); } function mergeRecords() { - records = dojo.query('.toMerge').attr('id'); + var records = dojo.query('.toMerge').attr('id'); dojo.forEach(records, function(item, idx) { records[idx] = parseInt(item.slice(item.lastIndexOf('_') + 1)); }); -- 2.11.0