Patch from Warren Layton for asciibetical ordering of services in z39.50 client....
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 13 Sep 2009 15:08:19 +0000 (15:08 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 13 Sep 2009 15:08:19 +0000 (15:08 +0000)
---

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

index d3d7fce..8ece2df 100644 (file)
@@ -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);