1 dump('entering main/main.js\n');
3 function grant_perms(url) {
4 var perms = "UniversalXPConnect UniversalPreferencesWrite UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead";
5 dump('Granting ' + perms + ' to ' + url + '\n');
6 var pref = Components.classes["@mozilla.org/preferences-service;1"]
7 .getService(Components.interfaces.nsIPrefBranch);
9 pref.setCharPref("capability.principal.codebase.p0.granted", perms);
10 pref.setCharPref("capability.principal.codebase.p0.id", url);
15 function main_init() {
16 dump('entering main_init()\n');
18 if (typeof JSAN == 'undefined') {
20 "The JSAN library object is missing."
23 /////////////////////////////////////////////////////////////////////////////
25 JSAN.errorLevel = "die"; // none, warn, or die
26 JSAN.addRepository('..');
28 //JSAN.use('test.test'); test.test.hello_world();
33 JSAN.use('util.error');
34 G.error = new util.error();
35 G.error.sdump('D_ERROR','Testing');
37 JSAN.use('util.window');
38 G.window = new util.window();
40 //G.window.open(urls.XUL_DEBUG_CONSOLE,'testconsole','chrome,resizable');
42 JSAN.use('auth.controller');
43 G.auth = new auth.controller( { 'window' : mw } );
45 JSAN.use('OpenILS.data');
46 G.data = new OpenILS.data()
47 G.data.on_error = G.auth.logoff;
48 G.data.entities = entities;
49 G.data.stash('entities');
51 JSAN.use('util.file');
52 G.file = new util.file();
54 G.file.get('ws_info');
55 G.ws_info = G.file.get_object();
56 // { server_name : { 'id' : ..., 'name' : ..., 'owning_lib' : ... }, ... : ... }
57 alert('retrieved ws_info from filesystem: ' + js2JSON(ws_info) );
60 alert('could not retrieve ws_info from filesystem');
62 G.data.ws_info = G.ws_info; G.data.stash('ws_info');
64 G.auth.on_login = function() {
66 var url = G.auth.controller.view.server_prompt.value || urls.remote;
67 if (! url.match( '^http://' ) ) url = 'http://' + url;
69 G.data.server = url; G.data.stash('server'); G.data.stash_retrieve();
73 if (G.data.ws_info && G.data.ws_info[G.auth.controller.view.server_prompt.value]) {
74 var deck = document.getElementById('main_deck');
75 var iframe = document.createElement('iframe'); deck.appendChild(iframe);
76 iframe.setAttribute( 'src', url + '/xul/server/main/data.xul' );
82 iframe.contentWindow.xulG = xulG;
84 G.auth.controller.view.ws_deck.selectedIndex = 1;
85 JSAN.use('util.widgets');
86 var spot = document.getElementById('menu_spot');
87 util.widgets.remove_children(spot);
88 var ml = util.widgets.make_menulist( [ ['PINES','1'], ['ARL-ATH','18'] ] );
89 ml.setAttribute('id','menu');
94 G.auth.on_register = function(ses,server,orgid,wsname) {
96 alert('register happens here: ses = ' + ses + ' server = ' + server + ' orgid = ' + orgid + ' wsname = ' + wsname );
98 var deck = document.getElementById('main_deck');
99 var iframe = document.createElement('iframe'); deck.appendChild(iframe);
100 iframe.setAttribute( 'src', G.data.server + '/xul/server/main/register.xul');
103 'url' : G.data.server,
106 'ws_server' : server,
111 iframe.contentWindow.xulG = xulG;
114 G.error.sdump('D_ERROR',E);
121 // XML_HTTP_SERVER will get reset to G.auth.controller.view.server_prompt.value
123 /////////////////////////////////////////////////////////////////////////////
125 var error = "!! This software has encountered an error. Please tell your friendly " +
126 "system administrator or software developer the following:\n" + E + '\n';
127 try { G.error.sdump('D_ERROR',error); } catch(E) { dump(error); }
130 dump('exiting main_init()\n');
133 dump('exiting main/main.js\n');