Subversion Repositories ALCASAR

Rev

Rev 2112 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log

Rev 2112 Rev 2370
1
chilliController.interval = 20;
1
chilliController.interval = 20;
2
chilliController.host = "alcasar";
-
 
3
chilliController.port = 3990;
-
 
4
chilliController.onUpdate = updateUI ;
2
chilliController.onUpdate = updateUI ;
5
chilliController.onError  = handleError ;
3
chilliController.onError  = handleError ;
6
chilliClock.onTick = function () { }
4
chilliClock.onTick = function () { }
7
 
5
 
8
var isloggedout = false;
6
var isloggedout = false;
9
 
7
 
10
if (!window.queryObj) {
8
if (!window.queryObj) {
11
    window.queryObj = new Object();
9
    window.queryObj = new Object();
12
    window.location.search.replace(new RegExp("([^?=&]+)(=([^&]*))?","g"), function($0,$1,$2,$3) { queryObj[$1] = $3; });
10
    window.location.search.replace(new RegExp("([^?=&]+)(=([^&]*))?","g"), function($0,$1,$2,$3) { queryObj[$1] = $3; });
13
}
11
}
14
 
12
 
15
chilliController.queryObj = window.queryObj;
13
chilliController.queryObj = window.queryObj;
16
 
14
 
17
function ie_getElementsByTagName(str) {
15
function ie_getElementsByTagName(str) {
18
  if (str=="*") return document.all;
16
  if (str=="*") return document.all;
19
  else return document.all.tags(str);
17
  else return document.all.tags(str);
20
}
18
}
21
 
19
 
22
if (document.all) 
20
if (document.all) 
23
  document.getElementsByTagName = ie_getElementsByTagName;
21
  document.getElementsByTagName = ie_getElementsByTagName;
24
 
22
 
25
function hidePage(page) { 
23
function hidePage(page) { 
26
    var e = document.getElementById(page);
24
    var e = document.getElementById(page);
27
    if (e != null) e.style.display='none';
25
    if (e != null) e.style.display='none';
28
}
26
}
29
 
27
 
30
function showPage(page) { 
28
function showPage(page) { 
31
    var e = document.getElementById(page);
29
    var e = document.getElementById(page);
32
    if (e != null) e.style.display='inline';
30
    if (e != null) e.style.display='inline';
33
}
31
}
34
 
32
 
35
function setElementValue(elem, val, forceHTML) {
33
function setElementValue(elem, val, forceHTML) {
36
    var e = document.getElementById(elem);
34
    var e = document.getElementById(elem);
37
    if (e != null) {
35
    if (e != null) {
38
	var node = e;
36
	var node = e;
39
	if (!forceHTML && node.firstChild) {
37
	if (!forceHTML && node.firstChild) {
40
	    node = node.firstChild;
38
	    node = node.firstChild;
41
	    node.nodeValue = val;
39
	    node.nodeValue = val;
42
	} else {
40
	} else {
43
	    node.innerHTML = val;
41
	    node.innerHTML = val;
44
	}
42
	}
45
    }
43
    }
46
}
44
}
47
 
45
 
48
chilliClock.onChange = function ( newval ) {
46
chilliClock.onChange = function ( newval ) {
49
    setElementValue("sessionTime", chilliController.formatTime(newval));
47
    setElementValue("sessionTime", chilliController.formatTime(newval));
50
}
48
}
51
    
49
    
52
function updateUI (cmd ) {
50
function updateUI (cmd ) {
53
    log ( "Update UI is called. chilliController.clientState = " + chilliController.clientState ) ; 
51
    log ( "Update UI is called. chilliController.clientState = " + chilliController.clientState ) ; 
54
    
52
    
55
    clearTimeout ( delayTimer );
53
    clearTimeout ( delayTimer );
56
 
54
 
57
    if ( chilliController.redir ) {
55
    if ( chilliController.redir ) {
58
	if (chilliController.redir.originalURL != null &&
56
	if (chilliController.redir.originalURL != null &&
59
	    chilliController.redir.originalURL != '') {
57
	    chilliController.redir.originalURL != '') {
60
	    setElementValue('originalURL', '<a target="_blank" href="'+chilliController.redir.originalURL+
58
	    setElementValue('originalURL', '<a target="_blank" href="'+chilliController.redir.originalURL+
61
			    '">'+chilliController.redir.originalURL+'</a>', true);
59
			    '">'+chilliController.redir.originalURL+'</a>', true);
62
	}
60
	}
63
	if (chilliController.redir.redirectionURL != null &&
61
	if (chilliController.redir.redirectionURL != null &&
64
	    chilliController.redir.redirectionURL != '') {
62
	    chilliController.redir.redirectionURL != '') {
65
	    setElementValue('redirectionURL', chilliController.redir.redirectionURL);
63
	    setElementValue('redirectionURL', chilliController.redir.redirectionURL);
66
	}
64
	}
67
    }
65
    }
68
 
66
 
69
    if ( chilliController.message ) {
67
    if ( chilliController.message ) {
70
	setElementValue('logonMessage', chilliController.message);
68
	setElementValue('logonMessage', chilliController.message);
71
	chilliController.message = null;
69
	chilliController.message = null;
72
	chilliController.refresh();
70
	chilliController.refresh();
73
    }
71
    }
74
 
72
 
75
    if ( chilliController.location ) {
73
    if ( chilliController.location ) {
76
	setElementValue('locationName', chilliController.location.name);
74
	setElementValue('locationName', chilliController.location.name);
77
	chilliController.location = null;
75
	chilliController.location = null;
78
    }
76
    }
79
 
77
 
80
    if ( chilliController.clientState == 0 ) {
78
    if ( chilliController.clientState == 0 ) {
81
        showLoggedOutPage();
79
        showLoggedOutPage();
82
		setTimeout('chilliController.refresh()', 1000*chilliController.interval);//WBR for status page only
80
		setTimeout('chilliController.refresh()', 1000*chilliController.interval);//WBR for status page only
83
    }
81
    }
84
 
82
 
85
    if ( chilliController.clientState == 1 ) {
83
    if ( chilliController.clientState == 1 ) {
86
        if ( chilliController.statusURL ) {
84
        if ( chilliController.statusURL ) {
87
			chilliController.statusWindow = window.open(chilliController.statusURL, "");
85
			chilliController.statusWindow = window.open(chilliController.statusURL, "");
88
		} else {
86
		} else {
89
			showStatusPage();
87
			showStatusPage();
90
        }
88
        }
91
    }
89
    }
92
 
90
 
93
    if (chilliController.redir.redirectionURL) {
91
    if (chilliController.redir.redirectionURL) {
94
	//chilliController.nextWindow = window.open(chilliController.redir.redirectionURL,'nextURL');
92
	//chilliController.nextWindow = window.open(chilliController.redir.redirectionURL,'nextURL');
95
	window.location.href = chilliController.redir.redirectionURL;
93
	window.location.href = chilliController.redir.redirectionURL;
96
	chilliController.redir.redirectionURL = null;
94
	chilliController.redir.redirectionURL = null;
97
    }
95
    }
98
    
96
    
99
    if ( chilliController.clientState == 2 ) showWaitPage();
97
    if ( chilliController.clientState == 2 ) showWaitPage();
100
}
98
}
101
 
99
 
102
function handleError( code ) {
100
function handleError( code ) {
103
    clearTimeout(delayTimer);
101
    clearTimeout(delayTimer);
104
    //showErrorPage(code);
102
    //showErrorPage(code);
105
}
103
}
106
 
104
 
107
/* User interface pages update */
105
/* User interface pages update */
108
function showLoggedOutPage() {
106
function showLoggedOutPage() {
109
	isloggedout = true;
107
	isloggedout = true;
110
    showPage("loggedOutPage");
108
    showPage("loggedOutPage");
111
    hidePage("statusPage");
109
    hidePage("statusPage");
112
    hidePage("waitPage");
110
    hidePage("waitPage");
113
    hidePage("errorPage");
111
    hidePage("errorPage");
114
    window.setTimeout("closePopup()",1000);
112
    window.setTimeout("closePopup()",1000);
115
}
113
}
116
 
114
 
117
function showStatusPage() {
115
function showStatusPage() {
118
	isloggedout = false;
116
	isloggedout = false;
119
    hidePage("loggedOutPage");
117
    hidePage("loggedOutPage");
120
    showPage("statusPage");
118
    showPage("statusPage");
121
    hidePage("waitPage");
119
    hidePage("waitPage");
122
    hidePage("errorPage");
120
    hidePage("errorPage");
123
    
121
    
124
    //For no compliant browser with these javascript functions : onbeforeunload and unload, to disconnect users whose close status.php window. Now, we check if user is still connected while he is joinning 'still_connected.php'
122
    //For no compliant browser with these javascript functions : onbeforeunload and unload, to disconnect users whose close status.php window. Now, we check if user is still connected while he is joinning 'still_connected.php'
125
    var xhttp = new XMLHttpRequest();
123
    var xhttp = new XMLHttpRequest();
126
    xhttp.open('GET','still_connected.php',true);
124
    xhttp.open('GET','still_connected.php',true);
127
    xhttp.send();
125
    xhttp.send();
128
 
126
 
129
    // Update message
127
    // Update message
130
    if ( chilliController.message ) { 
128
    if ( chilliController.message ) { 
131
	setElementValue("statusMessage", chilliController.message);
129
	setElementValue("statusMessage", chilliController.message);
132
    }
130
    }
133
    
131
    
134
    // Update session
132
    // Update session
135
    setElementValue("sessionId",
133
    setElementValue("sessionId",
136
		    chilliController.session.sessionId ?
134
		    chilliController.session.sessionId ?
137
		    chilliController.session.sessionId :
135
		    chilliController.session.sessionId :
138
		    "Not available");
136
		    "Not available");
139
			
137
			
140
	setElementValue("userName",
138
	setElementValue("userName",
141
		    chilliController.session.userName ?
139
		    chilliController.session.userName ?
142
		    chilliController.session.userName :
140
		    chilliController.session.userName :
143
		    "Not available");
141
		    "Not available");
144
			
142
			
145
    setElementValue("startTime",
143
    setElementValue("startTime",
146
		    chilliController.session.startTime ?
144
		    chilliController.session.startTime ?
147
		    chilliController.session.startTime.toLocaleString() :
145
		    chilliController.session.startTime.toLocaleString() :
148
		    "Not available");
146
		    "Not available");
149
    
147
    
150
    setElementValue("sessionTimeout",
148
    setElementValue("sessionTimeout",
151
		    chilliController.formatTime(chilliController.session.sessionTimeout, 'unlimited'));
149
		    chilliController.formatTime(chilliController.session.sessionTimeout, 'unlimited'));
152
 
150
 
153
    setElementValue("idleTimeout",
151
    setElementValue("idleTimeout",
154
		    chilliController.formatTime(chilliController.session.idleTimeout, 'unlimited'));
152
		    chilliController.formatTime(chilliController.session.idleTimeout, 'unlimited'));
155
 
153
 
156
    setElementValue("maxInputOctets",
154
    setElementValue("maxInputOctets",
157
		    chilliController.formatBytes(chilliController.session.maxInputOctets));
155
		    chilliController.formatBytes(chilliController.session.maxInputOctets));
158
    setElementValue("maxOutputOctets",
156
    setElementValue("maxOutputOctets",
159
		    chilliController.formatBytes(chilliController.session.maxOutputOctets));
157
		    chilliController.formatBytes(chilliController.session.maxOutputOctets));
160
    setElementValue("maxTotalOctets",
158
    setElementValue("maxTotalOctets",
161
		    chilliController.formatBytes(chilliController.session.maxTotalOctets));
159
		    chilliController.formatBytes(chilliController.session.maxTotalOctets));
162
 
160
 
163
    // Update accounting
161
    // Update accounting
164
    setElementValue("sessionTime",
162
    setElementValue("sessionTime",
165
		    chilliController.formatTime(chilliController.accounting.sessionTime));
163
		    chilliController.formatTime(chilliController.accounting.sessionTime));
166
    
164
    
167
    setElementValue("idleTime",
165
    setElementValue("idleTime",
168
		    chilliController.formatTime(chilliController.accounting.idleTime));
166
		    chilliController.formatTime(chilliController.accounting.idleTime));
169
    
167
    
170
    setElementValue("inputOctets" , chilliController.formatBytes(chilliController.accounting.inputOctets));
168
    setElementValue("inputOctets" , chilliController.formatBytes(chilliController.accounting.inputOctets));
171
    setElementValue("outputOctets", chilliController.formatBytes(chilliController.accounting.outputOctets));
169
    setElementValue("outputOctets", chilliController.formatBytes(chilliController.accounting.outputOctets));
172
    
170
    
173
    chilliClock.resync (chilliController.accounting.sessionTime);
171
    chilliClock.resync (chilliController.accounting.sessionTime);
174
}
172
}
175
 
173
 
176
function showWaitPage(delay) {
174
function showWaitPage(delay) {
177
    /* Wait for delay  */
175
    /* Wait for delay  */
178
    clearTimeout(delayTimer);	
176
    clearTimeout(delayTimer);	
179
    if (typeof(delay) == 'number' && (delay > 10)) {
177
    if (typeof(delay) == 'number' && (delay > 10)) {
180
	delayTimer= setTimeout('showWaitPage(0)' , delay);
178
	delayTimer= setTimeout('showWaitPage(0)' , delay);
181
	return;
179
	return;
182
    }
180
    }
183
    
181
    
184
    /* show the waitPage */
182
    /* show the waitPage */
185
    hidePage("loggedOutPage");
183
    hidePage("loggedOutPage");
186
    hidePage("statusPage");
184
    hidePage("statusPage");
187
    showPage("waitPage");
185
    showPage("waitPage");
188
    hidePage("errorPage");
186
    hidePage("errorPage");
189
}
187
}
190
 
188
 
191
function showErrorPage( str )  {
189
function showErrorPage( str )  {
192
    setTimeout('chilliController.refresh()', 15000);
190
    setTimeout('chilliController.refresh()', 15000);
193
    
191
    
194
    hidePage("loggedOutPage");
192
    hidePage("loggedOutPage");
195
    hidePage("statusPage");
193
    hidePage("statusPage");
196
    hidePage("waitPage");
194
    hidePage("waitPage");
197
    showPage("errorPage");
195
    showPage("errorPage");
198
    setElementValue("errorMessage", str);
196
    setElementValue("errorMessage", str);
199
}
197
}
200
 
198
 
201
function closePopup(){
199
function closePopup(){
202
	this.focus();
200
	this.focus();
203
	self.opener=this;
201
	self.opener=this;
204
	self.close();
202
	self.close();
205
}
203
}
206
function alcasarLogoff(){
204
function alcasarLogoff(){
207
	if (isloggedout == false){
205
	if (isloggedout == false){
208
  		chilliClock.stop();
206
  		chilliClock.stop();
209
		chilliController.logoff();
207
		chilliController.logoff();
210
	}
208
	}
211
	showWaitPage(1000);
209
	showWaitPage(1000);
212
	isloggedout = true;
210
	isloggedout = true;
213
}
211
}
214
function logout() {
212
function logout() {
215
	alcasarLogoff();
213
	alcasarLogoff();
216
	window.setTimeout("closePopup()",1000);
214
	window.setTimeout("closePopup()",1000);
217
}
215
}
218
function logoutWithConfirmation(msg) {
216
function logoutWithConfirmation(msg) {
219
	if (confirm(msg)) {
217
	if (confirm(msg)) {
220
		logout();
218
		logout();
221
	}
219
	}
222
return false;
220
return false;
223
}
221
}
224
	
222
	
225
var chillijsWindowOnLoad = window.onload;
223
var chillijsWindowOnLoad = window.onload;
226
var delayTimer; // global reference to delayTimer
224
var delayTimer; // global reference to delayTimer
227
 
225
 
228
window.onload = function() {
226
window.onload = function() {
229
    if (chillijsWindowOnLoad) 
227
    if (chillijsWindowOnLoad) 
230
	chillijsWindowOnLoad();
228
	chillijsWindowOnLoad();
231
 
229
 
232
    var head = document.getElementsByTagName("head")[0];
230
    var head = document.getElementsByTagName("head")[0];
233
    if (head == null) head = document.body;
231
    if (head == null) head = document.body;
234
 
232
 
235
    showWaitPage(); 
233
    showWaitPage(); 
236
    setTimeout('chilliController.refresh()', 1500);
234
    setTimeout('chilliController.refresh()', 1500);
237
}
235
}
238
 
236
 
239
 
237