lp948012 double-clicking on list rows
authorJason Etheridge <jason@esilibrary.com>
Tue, 6 Mar 2012 13:42:36 +0000 (08:42 -0500)
committerThomas Berezansky <tsbere@mvlc.org>
Tue, 6 Mar 2012 14:24:26 +0000 (09:24 -0500)
Teaches util.list how to handle double-clicks, and Patron Search to use
double-clicks for patron retrieval, and Holdings Maintenance to use
double-clicks for item editing.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Open-ILS/xul/staff_client/chrome/content/util/list.js
Open-ILS/xul/staff_client/server/cat/copy_browser.js
Open-ILS/xul/staff_client/server/patron/display.js
Open-ILS/xul/staff_client/server/patron/search_result.js

index 4013eff..df7f37d 100644 (file)
@@ -174,6 +174,14 @@ util.list.prototype = {
                 false
             );
         }
+        if (typeof params.on_dblclick == 'function') {
+            this.node.addEventListener(
+                'dblclick',
+                params.on_dblclick,
+                false
+            );
+        }
+
         /*
         this.node.addEventListener(
             'mousemove',
index 0fbce27..ce3c578 100644 (file)
@@ -1841,6 +1841,18 @@ cat.copy_browser.prototype = {
                             window.xulG.on_select(list);
                         }
                     },
+                    'on_dblclick' : function(ev) {
+                        JSAN.use('util.functional');
+                        JSAN.use('util.widgets');
+                        var sel = obj.list.retrieve_selection();
+                        obj.controller.view.sel_clip.disabled = sel.length < 1;
+                        obj.sel_list = util.functional.map_list(
+                            sel,
+                            function(o) { return o.getAttribute('retrieve_id'); }
+                        );
+                        obj.toggle_actions();
+                        util.widgets.dispatch('command','cmd_edit_items');
+                    },
                     'on_select' : function(ev) {
                         JSAN.use('util.functional');
                         var sel = obj.list.retrieve_selection();
index 97f23c0..f18ecf5 100644 (file)
@@ -735,6 +735,10 @@ patron.display.prototype = {
                             'query' : query,
                             'search_limit' : search_limit,
                             'search_sort' : search_sort,
+                            'on_dblclick' : function(list) {
+                                JSAN.use('util.widgets');
+                                util.widgets.dispatch('command','cmd_patron_retrieve')
+                            },
                             'on_select' : function(list) {
                                 if (!list) return;
                                 if (list.length < 1) return;
index 6d71bd5..0512e1c 100644 (file)
@@ -102,6 +102,24 @@ patron.search_result.prototype = {
                         }
                     );
                 },
+                'on_dblclick' : function(ev) {
+                    JSAN.use('util.functional');
+                    var sel = obj.list.retrieve_selection();
+                    var list = util.functional.map_list(
+                        sel,
+                        function(o) { return o.getAttribute('retrieve_id'); }
+                    );
+                    obj.controller.view.cmd_sel_clip.setAttribute('disabled', list.length < 1 );
+                    if (typeof obj.on_dblclick == 'function') {
+                        obj.on_dblclick(list);
+                    }
+                    if (typeof window.xulG == 'object' && typeof window.xulG.on_dblclick == 'function') {
+                        obj.error.sdump('D_PATRON','patron.search_result: Calling external .on_dblclick()\n');
+                        window.xulG.on_dblclick(list);
+                    } else {
+                        obj.error.sdump('D_PATRON','patron.search_result: No external .on_dblclick()\n');
+                    }
+                },
                 'on_select' : function(ev) {
                     JSAN.use('util.functional');
                     var sel = obj.list.retrieve_selection();