From 75b647aba87e3bc9cef7b9eaa174c40a21b70d20 Mon Sep 17 00:00:00 2001 From: phasefx Date: Sun, 13 Sep 2009 15:08:19 +0000 Subject: [PATCH] Patch from Warren Layton for asciibetical ordering of services in z39.50 client. Native Catalog always goes to the top. Thanks! --- The attached patch presents the Z39.50 targets in the Staff Client in alphabetical order - a problem for us because we're starting to have quite a few configured. I'm not sure if this is the most elegant solution so feedback is definitely welcome. Cheers, Warren git-svn-id: svn://svn.open-ils.org/ILS/trunk@14014 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/xul/staff_client/server/cat/z3950.js | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Open-ILS/xul/staff_client/server/cat/z3950.js b/Open-ILS/xul/staff_client/server/cat/z3950.js index d3d7fce186..8ece2df239 100644 --- a/Open-ILS/xul/staff_client/server/cat/z3950.js +++ b/Open-ILS/xul/staff_client/server/cat/z3950.js @@ -345,18 +345,27 @@ cat.z3950.prototype = { if (typeof robj.ilsevent != 'undefined') throw(robj); obj.services = robj; var x = document.getElementById('service_rows'); - for (var i in obj.services) { + var services = new Array(); + for (var i in obj.services) { + var label; + if (obj.services[i].label) { + label = obj.services[i].label; + } else if (obj.services[i].name) { + label = obj.services[i].name; + } else { + label = i; + } + var j = [label, i]; + services.push(j); + } + services.sort(); + for (var j=0; j < services.length; j++) { + var i = services[j][1]; try { if (i == 'native-evergreen-catalog') continue; var r = document.createElement('row'); x.appendChild(r); var cb = document.createElement('checkbox'); - if (obj.services[i].label) { - cb.setAttribute('label',obj.services[i].label); - } else if (obj.services[i].name) { - cb.setAttribute('label',obj.services[i].name); - } else { - cb.setAttribute('label',i); - } + cb.setAttribute('label',services[j][0]); cb.setAttribute('tooltiptext',i + ' : ' + obj.services[i].db + '@' + obj.services[i].host + ':' + obj.services[i].port); cb.setAttribute('mytype','service_class'); cb.setAttribute('service',i); cb.setAttribute('id',i+'_service'); r.appendChild(cb); -- 2.43.2