From 5ded837c38a52af4c8ae417fcc9ea366cb69506e Mon Sep 17 00:00:00 2001 From: phasefx Date: Fri, 15 Jul 2005 23:04:08 +0000 Subject: [PATCH] nesting/bundling is good. checkdigit stuff seems finicky. git-svn-id: svn://svn.open-ils.org/ILS/trunk@1226 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../chrome/content/evergreen/circ/checkin.xul | 1 - .../chrome/content/evergreen/circ/checkin_items.js | 2 +- .../chrome/content/evergreen/main/paged_tree.js | 2 +- .../chrome/content/evergreen/main/paged_tree.xul | 1 - .../content/evergreen/main/paged_tree_overlay.xul | 4 +- .../evergreen/patron/patron_checkout_items.js | 4 +- .../content/evergreen/patron/patron_display.js | 97 ++++++++++++---------- .../content/evergreen/patron/patron_display.xul | 1 - .../evergreen/patron/patron_display_overlay.xul | 4 +- .../content/evergreen/patron/patron_items.js | 4 +- .../content/evergreen/patron/patron_search.xul | 1 - .../evergreen/patron/patron_search_overlay.xul | 5 +- .../evergreen/patron/patron_search_results.js | 2 +- .../chrome/content/evergreen/util/error.js | 16 ++-- 14 files changed, 76 insertions(+), 68 deletions(-) diff --git a/Evergreen/staff_client/chrome/content/evergreen/circ/checkin.xul b/Evergreen/staff_client/chrome/content/evergreen/circ/checkin.xul index bde47e2646..b6a69c7c87 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/circ/checkin.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/circ/checkin.xul @@ -13,7 +13,6 @@ params.patron_items_node = document.getElementById('PatronItems_main'); params.patron_checkout_items_node = document.getElementById('PatronCheckoutItems_main'); params.commandset_node = document.getElementById('universal_cmds'); - params.popupset_node = document.getElementById('universal_popupset'); mw.focus_widget( document, 'PatronNavBar_refresh' ); mw.OpenILS_init(params);" onunload="mw.OpenILS_exit(params);" diff --git a/Evergreen/staff_client/chrome/content/evergreen/circ/checkin_items.js b/Evergreen/staff_client/chrome/content/evergreen/circ/checkin_items.js index dd3e98c27a..42859dbedf 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/circ/checkin_items.js +++ b/Evergreen/staff_client/chrome/content/evergreen/circ/checkin_items.js @@ -6,7 +6,7 @@ function checkin_items_init(p) { p.checkin_items_cols = circ_cols(); - p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'cols' : p.checkin_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } ); + p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.checkin_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } ); p.add_checkout_items = p.paged_tree.add_rows; p.clear_checkout_items = p.paged_tree.clear_tree; diff --git a/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree.js b/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree.js index d368d2094a..d17d7dc4f2 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree.js +++ b/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree.js @@ -7,7 +7,7 @@ function paged_tree_init(p) { p.current_idx = 0; p.tree = p.node.getElementsByAttribute('name','tree')[0]; - p.popup = p.popupset_node.getElementsByAttribute('name','tree')[0]; + p.popup = p.node.getElementsByTagName('popup')[0]; p.treecols = p.tree.firstChild; p.tc = p.tree.lastChild; diff --git a/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree.xul b/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree.xul index 7da2f140b2..14a62ee38e 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree.xul @@ -9,7 +9,6 @@ sizemode="maximized" persist="width height" onload=" params.paged_tree = 'PagedTree_tree'; - params.popup = 'PagedTree_popup'; params.nav_bar = 'PagedTree_nav'; params.nav_range = 'PagedTree_label_range'; params.nav_results = 'PagedTree_label_results'; diff --git a/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree_overlay.xul index 5b0a831836..89cb7d550b 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree_overlay.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/main/paged_tree_overlay.xul @@ -14,6 +14,9 @@ + + + @@ -51,7 +54,6 @@ - diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_checkout_items.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_checkout_items.js index 280da913c2..56a02e859f 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_checkout_items.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_checkout_items.js @@ -6,7 +6,7 @@ function patron_checkout_items_init(p) { p.patron_checkout_items_cols = circ_cols(); - p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'cols' : p.patron_checkout_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } ); + p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_checkout_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } ); p.add_checkout_items = p.paged_tree.add_rows; p.clear_checkout_items = p.paged_tree.clear_tree; @@ -20,7 +20,7 @@ function patron_checkout_items_init(p) { p.paged_tree.register_flesh_row_function( f ); } - p.register_context_builder = function (f) { + p.register_checkout_context_builder = function (f) { sdump('D_PATRON_CHECKOUT_ITEMS','p.register_context_builder(' + f + ')\n'); p.paged_tree.register_context_builder( f ); } diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js index b983932d0c..4a42364784 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js @@ -100,6 +100,7 @@ function patron_display_patron_items_init(p) { p.patron_items.register_patron_items_select_callback( function (ev) { sdump('D_PATRON_DISPLAY','Firing patron_items_select_callback\n'); + sdump('D_PATRON_DISPLAY','ev.target = ' + ev.target + '\n'); var patron_items = get_list_from_tree_selection( p.patron_items.paged_tree.tree ); /* grab cover art for selected item? */ } @@ -111,21 +112,22 @@ function patron_display_patron_items_init(p) { p.patron_items.map_patron_items_to_cols( p._patron.checkouts()[ record_id ], treeitem ); } ); - p.patron_items.register_context_builder( + p.patron_items.register_item_context_builder( function (ev) { - sdump('D_PATRON_DISPLAY','Firing context_builder\n'); + sdump('D_PATRON_DISPLAY','Firing context_builder for patron_items\n'); + sdump('D_PATRON_DISPLAY','ev.target = ' + ev.target + '\np.patron_items.paged_tree.popup = ' + p.patron_items.paged_tree.popup + '\n'); empty_widget(p.patron_items.paged_tree.popup); var patron_items = get_list_from_tree_selection( p.patron_items.paged_tree.tree ); - var menuitem; + sdump('D_PATRON_DISPLAY','patron_items.length = ' + patron_items.length + '\n'); /*** RENEW ***/ - menuitem = p.patron_items.paged_tree.w.document.createElement('menuitem'); - p.patron_items.paged_tree.popup.appendChild( menuitem ); - menuitem.setAttribute('label',getString('circ.context_renew')); - menuitem.addEventListener( + var menuitem_pi_r = p.patron_items.paged_tree.w.document.createElement('menuitem'); + p.patron_items.paged_tree.popup.appendChild( menuitem_pi_r ); + menuitem_pi_r.setAttribute('label',getString('circ.context_renew')); + menuitem_pi_r.addEventListener( 'command', function (ev) { - sdump('D_PATRON_DISPLAY','Firing renew context\n'); + sdump('D_PATRON_DISPLAY','Firing renew context for patron_items\n'); for (var i = 0; i < patron_items.length; i++) { try { var idx = patron_items[i].getAttribute('record_id'); @@ -141,13 +143,13 @@ function patron_display_patron_items_init(p) { ); /*** CHECKIN ***/ - menuitem = p.patron_items.paged_tree.w.document.createElement('menuitem'); - p.patron_items.paged_tree.popup.appendChild( menuitem ); - menuitem.setAttribute('label',getString('circ.context_checkin')); - menuitem.addEventListener( + var menuitem_pi_c = p.patron_items.paged_tree.w.document.createElement('menuitem'); + p.patron_items.paged_tree.popup.appendChild( menuitem_pi_c ); + menuitem_pi_c.setAttribute('label',getString('circ.context_checkin')); + menuitem_pi_c.addEventListener( 'command', function (ev) { - sdump('D_PATRON_DISPLAY','Firing checkin context\n'); + sdump('D_PATRON_DISPLAY','Firing checkin context for patron_items\n'); for (var i = 0; i < patron_items.length; i++) { try { var idx = patron_items[i].getAttribute('record_id'); @@ -163,17 +165,18 @@ function patron_display_patron_items_init(p) { ); /* separator */ - menuitem = p.patron_items.paged_tree.w.document.createElement('menuseparator'); - p.patron_items.paged_tree.popup.appendChild( menuitem ); + var menuitem_pi_s = p.patron_items.paged_tree.w.document.createElement('menuseparator'); + p.patron_items.paged_tree.popup.appendChild( menuitem_pi_s ); /*** COPY EDITOR ***/ - menuitem = p.patron_items.paged_tree.w.document.createElement('menuitem'); - p.patron_items.paged_tree.popup.appendChild( menuitem ); - menuitem.setAttribute('label',getString('circ.context_edit')); - menuitem.addEventListener( + var menuitem_pi_ce = p.patron_items.paged_tree.w.document.createElement('menuitem'); + p.patron_items.paged_tree.popup.appendChild( menuitem_pi_ce ); + menuitem_pi_ce.setAttribute('label',getString('circ.context_edit')); + menuitem_pi_ce.addEventListener( 'command', function (ev) { + sdump('D_PATRON_DISPLAY','Firing copy editor context for patron_items\n'); for (var i = 0; i < patron_items.length; i++) { sdump('D_PATRON_DISPLAY','Firing copy edit context\n'); } @@ -182,12 +185,13 @@ function patron_display_patron_items_init(p) { ); /*** OPAC ***/ - menuitem = p.patron_items.paged_tree.w.document.createElement('menuitem'); - p.patron_items.paged_tree.popup.appendChild( menuitem ); - menuitem.setAttribute('label',getString('circ.context_opac')); - menuitem.addEventListener( + var menuitem_pi_o = p.patron_items.paged_tree.w.document.createElement('menuitem'); + p.patron_items.paged_tree.popup.appendChild( menuitem_pi_o ); + menuitem_pi_o.setAttribute('label',getString('circ.context_opac')); + menuitem_pi_o.addEventListener( 'command', function (ev) { + sdump('D_PATRON_DISPLAY','Firing opac context for patron_items\n'); for (var i = 0; i < patron_items.length; i++) { sdump('D_PATRON_DISPLAY','Firing opac context\n'); } @@ -208,13 +212,13 @@ function patron_display_patron_checkout_items_init(p) { p.attempt_checkout = function(barcode) { try { - if (! is_barcode_valid(barcode) ) throw('Invalid Barcode'); + //if (! is_barcode_valid(barcode) ) throw('Invalid Barcode'); var permit_check = checkout_permit( barcode, p._patron.id(), 0 ); if (permit_check.status == 0) { - var check = checkout_by_barcode( barcode, p._patron.id() ); + var check = checkout_by_copy_barcode( barcode, p._patron.id() ); if (check) { checkouts.push( check ); - p.patron_checkout_items.add_patron_checkout_items( [ checkouts.length - 1 ] ); + p.patron_checkout_items.add_checkout_items( [ checkouts.length - 1 ] ); tb.value = ''; } } else { @@ -245,13 +249,14 @@ function patron_display_patron_checkout_items_init(p) { p.redraw_patron_checkout_items = function() { p.patron_checkout_items.clear_patron_checkout_items(); for (var i = 0; i < checkouts.length; i++) { - p.patron_checkout_items.add_patron_checkout_items( [ i ] ); + p.patron_checkout_items.add_checkout_items( [ i ] ); } } p.patron_checkout_items.register_patron_checkout_items_select_callback( function (ev) { sdump('D_PATRON_DISPLAY','Firing patron_checkout_items_select_callback\n'); + sdump('D_PATRON_DISPLAY','ev.target = ' + ev.target + '\n'); var patron_checkout_items = get_list_from_tree_selection( p.patron_checkout_items.paged_tree.tree ); /* grab cover art for selected item? */ } @@ -263,21 +268,21 @@ function patron_display_patron_checkout_items_init(p) { p.patron_checkout_items.map_patron_checkout_items_to_cols( checkouts[ record_id ], treeitem ); } ); - p.patron_checkout_items.register_context_builder( + p.patron_checkout_items.register_checkout_context_builder( function (ev) { - sdump('D_PATRON_DISPLAY','Firing context_builder\n'); + sdump('D_PATRON_DISPLAY','Firing context_builder for patron_checkout_items\n'); + sdump('D_PATRON_DISPLAY','ev.target = ' + ev.target + '\np.patron_checkout_items.paged_tree.popup = ' + p.patron_checkout_items.paged_tree.popup + '\n'); empty_widget(p.patron_checkout_items.paged_tree.popup); var patron_checkout_items = get_list_from_tree_selection( p.patron_checkout_items.paged_tree.tree ); - var menuitem; /*** CHECKIN ***/ - menuitem = p.patron_checkout_items.paged_tree.w.document.createElement('menuitem'); - p.patron_checkout_items.paged_tree.popup.appendChild( menuitem ); - menuitem.setAttribute('label',getString('circ.context_checkin')); - menuitem.addEventListener( + var menuitem_pci_c = p.patron_checkout_items.paged_tree.w.document.createElement('menuitem'); + p.patron_checkout_items.paged_tree.popup.appendChild( menuitem_pci_c ); + menuitem_pci_c.setAttribute('label',getString('circ.context_checkin')); + menuitem_pci_c.addEventListener( 'command', function (ev) { - sdump('D_PATRON_DISPLAY','Firing checkin context\n'); + sdump('D_PATRON_DISPLAY','Firing checkin context for patron_checkout_items\n'); var keep_these = []; for (var i = 0; i < patron_checkout_items.length; i++) { try { @@ -299,17 +304,18 @@ function patron_display_patron_checkout_items_init(p) { ); /* separator */ - menuitem = p.patron_checkout_items.paged_tree.w.document.createElement('menuseparator'); - p.patron_checkout_items.paged_tree.popup.appendChild( menuitem ); + var menuitem_pci_s = p.patron_checkout_items.paged_tree.w.document.createElement('menuseparator'); + p.patron_checkout_items.paged_tree.popup.appendChild( menuitem_pci_s ); /*** COPY EDITOR ***/ - menuitem = p.patron_checkout_items.paged_tree.w.document.createElement('menuitem'); - p.patron_checkout_items.paged_tree.popup.appendChild( menuitem ); - menuitem.setAttribute('label',getString('circ.context_edit')); - menuitem.addEventListener( + var menuitem_pci_ce = p.patron_checkout_items.paged_tree.w.document.createElement('menuitem'); + p.patron_checkout_items.paged_tree.popup.appendChild( menuitem_pci_ce ); + menuitem_pci_ce.setAttribute('label',getString('circ.context_edit')); + menuitem_pci_ce.addEventListener( 'command', function (ev) { + sdump('D_PATRON_DISPLAY','Firing copy editor context for patron_checkout_items\n'); for (var i = 0; i < patron_checkout_items.length; i++) { var idx = patron_checkout_items[i].getAttribute('record_id'); sdump('D_PATRON_DISPLAY','Firing copy edit context\n'); @@ -319,12 +325,13 @@ function patron_display_patron_checkout_items_init(p) { ); /*** OPAC ***/ - menuitem = p.patron_checkout_items.paged_tree.w.document.createElement('menuitem'); - p.patron_checkout_items.paged_tree.popup.appendChild( menuitem ); - menuitem.setAttribute('label',getString('circ.context_opac')); - menuitem.addEventListener( + var menuitem_pci_o = p.patron_checkout_items.paged_tree.w.document.createElement('menuitem'); + p.patron_checkout_items.paged_tree.popup.appendChild( menuitem_pci_o ); + menuitem_pci_o.setAttribute('label',getString('circ.context_opac')); + menuitem_pci_o.addEventListener( 'command', function (ev) { + sdump('D_PATRON_DISPLAY','Firing opac context for patron_checkout_items\n'); for (var i = 0; i < patron_checkout_items.length; i++) { var idx = patron_checkout_items[i].getAttribute('record_id'); sdump('D_PATRON_DISPLAY','Firing opac context\n'); diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul index b8a2994a79..04bbfe3e90 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul @@ -13,7 +13,6 @@ params.patron_items_node = document.getElementById('PatronItems_main'); params.patron_checkout_items_node = document.getElementById('PatronCheckoutItems_main'); params.commandset_node = document.getElementById('universal_cmds'); - params.popupset_node = document.getElementById('universal_popupset'); mw.focus_widget( document, 'PatronNavBar_refresh' ); mw.OpenILS_init(params);" onunload="mw.OpenILS_exit(params);" diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul index 24158478f1..4d66829714 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul @@ -8,8 +8,8 @@ - - + + diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_items.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_items.js index 6b32c1a2d3..51d81ea55c 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_items.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_items.js @@ -6,7 +6,7 @@ function patron_items_init(p) { p.patron_items_cols = circ_cols(); - p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'cols' : p.patron_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } ); + p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } ); p.add_patron_items = p.paged_tree.add_rows; p.clear_patron_items = p.paged_tree.clear_tree; @@ -20,7 +20,7 @@ function patron_items_init(p) { p.paged_tree.register_flesh_row_function( f ); } - p.register_context_builder = function (f) { + p.register_item_context_builder = function (f) { sdump('D_PATRON_ITEMS','p.register_context_builder(' + f + ')\n'); p.paged_tree.register_context_builder( f ); } diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.xul index 016b822bcb..8f5b016b59 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.xul @@ -13,7 +13,6 @@ params.patron_display_status_node = document.getElementById('PatronDisplayStatus_main'); params.patron_search_form_node = document.getElementById('PatronSearchForm_main'); params.patron_search_results_node = document.getElementById('PatronSearchResults_main'); - params.popupset_node = document.getElementById('universal_popupset'); mw.focus_widget( document, 'pst1' ); mw.OpenILS_init(params);" onunload="mw.OpenILS_exit(params);" diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_overlay.xul index 5799cd4030..529db13f01 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_overlay.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_overlay.xul @@ -23,7 +23,10 @@ - + + + + diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_results.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_results.js index 4e828bd39c..85ef766800 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_results.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_results.js @@ -31,7 +31,7 @@ function patron_search_results_init(p) { } ]; - p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'cols' : p.patron_cols, 'debug' : p.app } ); + p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_cols, 'debug' : p.app } ); p.add_patrons = p.paged_tree.add_rows; p.clear_patrons = p.paged_tree.clear_tree; diff --git a/Evergreen/staff_client/chrome/content/evergreen/util/error.js b/Evergreen/staff_client/chrome/content/evergreen/util/error.js index 3c38472c1c..d2d8955ae8 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/util/error.js +++ b/Evergreen/staff_client/chrome/content/evergreen/util/error.js @@ -22,31 +22,31 @@ var sdump_levels = { 'D_PAGED_TREE' : true, 'D_TAB' : false, - 'D_AUTH' : true, + 'D_AUTH' : false, 'D_OPAC' : false, - 'D_PATRON_SEARCH' : true, - 'D_PATRON_SEARCH_FORM' : true, - 'D_PATRON_SEARCH_RESULTS' : true, + 'D_PATRON_SEARCH' : false, + 'D_PATRON_SEARCH_FORM' : false, + 'D_PATRON_SEARCH_RESULTS' : false, 'D_PATRON_DISPLAY' : true, 'D_PATRON_DISPLAY_STATUS' : true, 'D_PATRON_DISPLAY_CONTACT' : true, 'D_PATRON_ITEMS' : true, + 'D_PATRON_CHECKOUT_ITEMS' : true, 'D_CHECKIN' : true, 'D_CHECKIN_ITEMS' : true, - 'D_PATRON_UTILS' : true, - - 'D_CIRC_TREE' : true, + 'D_PATRON_UTILS' : false, + 'D_CIRC_UTILS' : false, 'D_EXPLODE' : false, 'D_FM_UTILS' : false, 'D_PRINT' : false, - 'D_SES' : true, + 'D_SES' : false, 'D_SPAWN' : false, 'D_STRING' : false, 'D_UTIL' : false, -- 2.11.0