From bdb3232b05c5efc78035c120bef127cfcf7c70fc Mon Sep 17 00:00:00 2001 From: phasefx Date: Wed, 29 Jun 2005 22:28:24 +0000 Subject: [PATCH] keep a list of windows and documents. Makes thhings easier to investigate in the js shell git-svn-id: svn://svn.open-ils.org/ILS/trunk@989 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../chrome/content/evergreen/auth/auth.js | 3 +- .../chrome/content/evergreen/util/win.js | 32 ++++++++++++++++++---- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/Evergreen/staff_client/chrome/content/evergreen/auth/auth.js b/Evergreen/staff_client/chrome/content/evergreen/auth/auth.js index d0503ddf90..a12ad60715 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/auth/auth.js +++ b/Evergreen/staff_client/chrome/content/evergreen/auth/auth.js @@ -1,6 +1,7 @@ var G = {}; // the master Global variable G['main_window'] = self; -G['win_list'] = new Array(); +G['win_list'] = new Object(); +G['doc_list'] = new Object(); G['window_name_increment'] = 0; G['auth_ses'] = ''; G['user_ou'] = ''; diff --git a/Evergreen/staff_client/chrome/content/evergreen/util/win.js b/Evergreen/staff_client/chrome/content/evergreen/util/win.js index ae0030c59b..c7a68c28c0 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/util/win.js +++ b/Evergreen/staff_client/chrome/content/evergreen/util/win.js @@ -101,17 +101,39 @@ function SafeWindowOpen(url,title,features) } function register_window(w) { - mw.G['win_list'].push(w); + sdump('D_WIN',arg_dump(arguments,{0:true})); + mw.G.win_list[w.toString()] = w; } -function register_patron_window(w) { } -function unregister_patron_window(w) { } +function unregister_window(w) { + sdump('D_WIN',arg_dump(arguments,{0:true})); + try { delete mw.G.win_list[w.toString()]; } catch(E) { mw.G.win_list[w.toString()] = false; } +} function close_all_windows() { + sdump('D_WIN',arg_dump(arguments)); var w; - while (w = mw.G['win_list'].pop()) { - w.close(); + for (var i in mw.G.win_list) { + sdump('D_WIN','\tconsidering ' + i + '...'); + if (mw.G.win_list[i] != mw) { + sdump('D_WIN','closing'); + var w = mw.G.win_list[i]; + try { w.close(); } catch (E) {} + //unregister_window( w ); + } + sdump('D_WIN','\n'); } + mw.close(); +} + +function register_document(d) { + sdump('D_WIN',arg_dump(arguments,{0:true})); + mw.G.doc_list[d.toString()] = d; +} + +function unregister_document(d) { + sdump('D_WIN',arg_dump(arguments,{0:true})); + try { delete mw.G.doc_list[d.toString()]; } catch(E) { mw.G.doc_list[d.toString()] = false; } } -- 2.11.0