From db28fcedf221bfe210cf9d4fcbaf214ecefad19c Mon Sep 17 00:00:00 2001 From: phasefx Date: Wed, 21 Dec 2005 02:36:00 +0000 Subject: [PATCH] new controller code broken :) git-svn-id: svn://svn.open-ils.org/ILS/trunk@2497 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/xul/staff_client/server/main/menu.js | 94 +++++++++---------- .../staff_client/server/main/menu_frame.xul | 2 +- 2 files changed, 45 insertions(+), 51 deletions(-) diff --git a/Open-ILS/xul/staff_client/server/main/menu.js b/Open-ILS/xul/staff_client/server/main/menu.js index 9e925d8483..a72a443495 100644 --- a/Open-ILS/xul/staff_client/server/main/menu.js +++ b/Open-ILS/xul/staff_client/server/main/menu.js @@ -17,49 +17,44 @@ main.menu.prototype = { var authtime = params['authtime']; var obj = this; - obj.view = {}; - - obj.view.tabbox = obj.w.document.getElementById('main_tabbox'); - obj.view.tabs = obj.view.tabbox.firstChild; - obj.view.panels = obj.view.tabbox.lastChild; var cmd_map = { 'cmd_broken' : [ - ['command','keypress'], + ['oncommand'], function() { alert('Not Yet Implemented'); } ], /* File Menu */ 'cmd_close_window' : [ - ['command','keypress'], + ['oncommand'], function() { obj.w.close(); } ], 'cmd_new_window' : [ - ['command','keypress'], + ['oncommand'], function() { obj.window.open(urls.remote_menu_frame,'test' + obj.window.appshell_name_increment++ ,'chrome'); } ], 'cmd_new_tab' : [ - ['command','keypress'], + ['oncommand'], function() { obj.new_tab(true); } ], 'cmd_close_tab' : [ - ['command','keypress'], + ['oncommand'], function() { obj.close_tab(); } ], /* Search Menu */ 'cmd_patron_search' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.remote_patron_display + '?session='+obj.w.escape(session),{},{}); } ], 'cmd_search_opac' : [ - ['command','keypress'], + ['oncommand'], function() { var content_params = { 'authtoken' : session, 'authtime' : authtime }; obj.set_tab(urls.xul_opac_wrapper,{},content_params); @@ -69,19 +64,19 @@ main.menu.prototype = { /* Circulation Menu */ 'cmd_circ_checkin' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.remote_checkin + '?session='+obj.w.escape(session),{},{}); } ], 'cmd_circ_checkout' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.remote_patron_barcode_entry + '?session='+obj.w.escape(session),{},{}); } ], 'cmd_circ_hold_capture' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.remote_hold_capture + '?session='+obj.w.escape(session),{},{}); } @@ -90,37 +85,37 @@ main.menu.prototype = { /* Admin menu */ 'cmd_test_html' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.test_html + '?session='+obj.w.escape(session),{},{}); } ], 'cmd_test_xul' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.test_xul + '?session='+obj.w.escape(session),{},{}); } ], 'cmd_console' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.remote_debug_console,{},{}); } ], 'cmd_shell' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.remote_debug_shell,{},{}); } ], 'cmd_xuleditor' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.remote_debug_xuleditor,{},{}); } ], 'cmd_fieldmapper' : [ - ['command','keypress'], + ['oncommand'], function() { obj.set_tab(urls.remote_debug_fieldmapper,{},{}); } @@ -128,28 +123,27 @@ main.menu.prototype = { }; - for (var i in cmd_map) { - var cmd = this.w.document.getElementById(i); - if (cmd) { - for (var j in cmd_map[i][0]) { - cmd.addEventListener(cmd_map[i][0][j],cmd_map[i][1],false); - } - } - obj.view[i] = cmd; - } + JSAN.use('util.controller'); + var cmd; + obj.controller = new util.controller(); + obj.controller.init( { 'window_knows_me_by' : 'g.menu.controller', 'control_map' : cmd_map } ); + + obj.controller.view.tabbox = obj.w.document.getElementById('main_tabbox'); + obj.controller.view.tabs = obj.controller.view.tabbox.firstChild; + obj.controller.view.panels = obj.controller.view.tabbox.lastChild; obj.new_tab(true); }, 'close_tab' : function () { - var idx = this.view.tabs.selectedIndex; + var idx = this.controller.view.tabs.selectedIndex; if (idx == 0) { try { - this.view.tabs.advanceSelectedTab(+1); + this.controller.view.tabs.advanceSelectedTab(+1); } catch(E) { this.error.sdump('D_TAB','failed tabs.advanceSelectedTab(+1):'+js2JSON(E) + '\n'); try { - this.view.tabs.advanceSelectedTab(-1); + this.controller.view.tabs.advanceSelectedTab(-1); } catch(E) { this.error.sdump('D_TAB','failed again tabs.advanceSelectedTab(-1):'+ js2JSON(E) + '\n'); @@ -157,11 +151,11 @@ main.menu.prototype = { } } else { try { - this.view.tabs.advanceSelectedTab(-1); + this.controller.view.tabs.advanceSelectedTab(-1); } catch(E) { this.error.sdump('D_TAB','failed tabs.advanceSelectedTab(-1):'+js2JSON(E) + '\n'); try { - this.view.tabs.advanceSelectedTab(+1); + this.controller.view.tabs.advanceSelectedTab(+1); } catch(E) { this.error.sdump('D_TAB','failed again tabs.advanceSelectedTab(+1):'+ js2JSON(E) + '\n'); @@ -170,15 +164,15 @@ main.menu.prototype = { } - this.error.sdump('D_TAB','\tnew tabbox.selectedIndex = ' + this.view.tabbox.selectedIndex + '\n'); + this.error.sdump('D_TAB','\tnew tabbox.selectedIndex = ' + this.controller.view.tabbox.selectedIndex + '\n'); - this.view.tabs.childNodes[ idx ].hidden = true; + this.controller.view.tabs.childNodes[ idx ].hidden = true; this.error.sdump('D_TAB','tabs.childNodes[ ' + idx + ' ].hidden = true;\n'); // Make sure we keep at least one tab open. var tab_flag = true; - for (var i = 0; i < this.view.tabs.childNodes.length; i++) { - var tab = this.view.tabs.childNodes[i]; + for (var i = 0; i < this.controller.view.tabs.childNodes.length; i++) { + var tab = this.controller.view.tabs.childNodes[i]; if (!tab.hidden) tab_flag = false; } @@ -187,23 +181,23 @@ main.menu.prototype = { 'find_free_tab' : function() { var last_not_hidden = -1; - for (var i = 0; i