Annotation of embedaddon/coova-chilli/www/chilliController.js, revision 1.1
1.1 ! misho 1: chilliController.onUpdate = updateUI ;
! 2: chilliController.onError = handleError ;
! 3: chilliClock.onTick = function () { }
! 4:
! 5: if (!window.queryObj) {
! 6: window.queryObj = new Object();
! 7: window.location.search.replace(new RegExp("([^?=&]+)(=([^&]*))?","g"), function($0,$1,$2,$3) { queryObj[$1] = $3; });
! 8: }
! 9:
! 10: chilliController.queryObj = window.queryObj;
! 11:
! 12: function ie_getElementsByTagName(str) {
! 13: if (str=="*") return document.all;
! 14: else return document.all.tags(str);
! 15: }
! 16:
! 17: if (document.all)
! 18: document.getElementsByTagName = ie_getElementsByTagName;
! 19:
! 20: function hidePage(page) {
! 21: var e = document.getElementById(page);
! 22: if (e != null) e.style.display='none';
! 23: }
! 24:
! 25: function showPage(page) {
! 26: var e = document.getElementById(page);
! 27: if (e != null) e.style.display='inline';
! 28: }
! 29:
! 30: function setElementValue(elem, val, forceHTML) {
! 31: var e = document.getElementById(elem);
! 32: if (e != null) {
! 33: var node = e;
! 34: if (!forceHTML && node.firstChild) {
! 35: node = node.firstChild;
! 36: node.nodeValue = val;
! 37: } else {
! 38: node.innerHTML = val;
! 39: }
! 40: }
! 41: }
! 42:
! 43: chilliClock.onChange = function ( newval ) {
! 44: setElementValue("sessionTime", chilliController.formatTime(newval));
! 45: }
! 46:
! 47: function updateUI (cmd ) {
! 48: log ( "Update UI is called. chilliController.clientState = " + chilliController.clientState ) ;
! 49:
! 50: clearTimeout ( delayTimer );
! 51:
! 52: if ( chilliController.redir ) {
! 53: if (chilliController.redir.originalURL != null &&
! 54: chilliController.redir.originalURL != '') {
! 55: setElementValue('originalURL', '<a target="_blank" href="'+chilliController.redir.originalURL+
! 56: '">'+chilliController.redir.originalURL+'</a>', true);
! 57: }
! 58: if (chilliController.redir.redirectionURL != null &&
! 59: chilliController.redir.redirectionURL != '') {
! 60: setElementValue('redirectionURL', chilliController.redir.redirectionURL);
! 61: }
! 62: }
! 63:
! 64: if ( chilliController.message ) {
! 65: setElementValue('logonMessage', chilliController.message);
! 66: chilliController.message = null;
! 67: chilliController.refresh();
! 68: }
! 69:
! 70: if ( chilliController.location ) {
! 71: setElementValue('locationName', chilliController.location.name);
! 72: chilliController.location = null;
! 73: }
! 74:
! 75: if ( chilliController.clientState == 0 ) {
! 76: showLogonPage();
! 77: }
! 78:
! 79: if ( chilliController.clientState == 1 ) {
! 80: if ( chilliController.statusURL ) {
! 81: chilliController.statusWindow = window.open(chilliController.statusURL, "");
! 82: } else {
! 83: showStatusPage();
! 84: }
! 85: }
! 86:
! 87: if (chilliController.redir.redirectionURL) {
! 88: //chilliController.nextWindow = window.open(chilliController.redir.redirectionURL,'nextURL');
! 89: window.location.href = chilliController.redir.redirectionURL;
! 90: chilliController.redir.redirectionURL = null;
! 91: }
! 92:
! 93: if ( chilliController.clientState == 2 ) showWaitPage();
! 94: }
! 95:
! 96: function handleError( code ) {
! 97: clearTimeout(delayTimer);
! 98: //showErrorPage(code);
! 99: }
! 100:
! 101: /* Action triggered when buttons are pressed */
! 102: function connect() {
! 103: var username = document.getElementById('username').value ;
! 104: var password = document.getElementById('password').value ;
! 105:
! 106: if (username == null || username == '')
! 107: return setElementValue('logonMessage', 'Username is required');
! 108:
! 109: showWaitPage(1000);
! 110: chilliController.logon( username , password ) ;
! 111: }
! 112:
! 113: function disconnect() {
! 114: if (confirm("Are you sure you want to disconnect now?")) {
! 115: chilliClock.stop();
! 116: showWaitPage(1000);
! 117: chilliController.logoff();
! 118: }
! 119: return false;
! 120: }
! 121:
! 122: /* User interface pages update */
! 123: function showLogonPage() {
! 124: if (chilliController.openid)
! 125: showPage('openIDSelect');
! 126: showPage("logonPage");
! 127: hidePage("statusPage");
! 128: hidePage("waitPage");
! 129: hidePage("errorPage");
! 130: }
! 131:
! 132: function showStatusPage() {
! 133: hidePage("logonPage");
! 134: showPage("statusPage");
! 135: hidePage("waitPage");
! 136: hidePage("errorPage");
! 137:
! 138: // Update message
! 139: if ( chilliController.message ) {
! 140: setElementValue("statusMessage", chilliController.message);
! 141: }
! 142:
! 143: // Update session
! 144: setElementValue("sessionId",
! 145: chilliController.session.sessionId ?
! 146: chilliController.session.sessionId :
! 147: "Not available");
! 148:
! 149: setElementValue("startTime",
! 150: chilliController.session.startTime ?
! 151: chilliController.session.startTime :
! 152: "Not available");
! 153:
! 154: setElementValue("sessionTimeout",
! 155: chilliController.formatTime(chilliController.session.sessionTimeout, 'unlimited'));
! 156:
! 157: setElementValue("idleTimeout",
! 158: chilliController.formatTime(chilliController.session.idleTimeout, 'unlimited'));
! 159:
! 160: setElementValue("maxInputOctets",
! 161: chilliController.formatBytes(chilliController.session.maxInputOctets));
! 162: setElementValue("maxOutputOctets",
! 163: chilliController.formatBytes(chilliController.session.maxOutputOctets));
! 164: setElementValue("maxTotalOctets",
! 165: chilliController.formatBytes(chilliController.session.maxTotalOctets));
! 166:
! 167: // Update accounting
! 168: setElementValue("sessionTime",
! 169: chilliController.formatTime(chilliController.accounting.sessionTime));
! 170:
! 171: setElementValue("idleTime",
! 172: chilliController.formatTime(chilliController.accounting.idleTime));
! 173:
! 174: setElementValue("inputOctets" , chilliController.formatBytes(chilliController.accounting.inputOctets));
! 175: setElementValue("outputOctets", chilliController.formatBytes(chilliController.accounting.outputOctets));
! 176:
! 177: chilliClock.resync (chilliController.accounting.sessionTime);
! 178: }
! 179:
! 180: function showOpenIDForm(e)
! 181: {
! 182: var form = document.getElementById('openIDForm');
! 183: var x = document.createElement('div');
! 184: x.style.display = 'block';
! 185: x.style.position = 'absolute';
! 186: x.style.top = e.y - 25;
! 187: x.style.left = e.x + 25;
! 188: x.style.xIndex = 2;
! 189: x.innerHTML = form.innerHTML;
! 190: document.body.appendChild(x);
! 191: }
! 192:
! 193: function openID() {
! 194: var openIDSelect = document.getElementById('openIDSelect');
! 195:
! 196: openIDSelect.onclick = function(e) {
! 197: if (!e) e = window.event;
! 198: e.stopPropagation;
! 199: showOpenIDForm(e);
! 200: };
! 201:
! 202: var openIDForm = document.getElementById('openIDForm');
! 203:
! 204: openIDForm.onclick = function(e) {
! 205: if (!e) e = window.event;
! 206: e.stopPropagation;
! 207: };
! 208:
! 209: document.onclick = closeOpenIDForm();
! 210: }
! 211:
! 212: function closeOpenIDForm() {
! 213: hidePage('openIDForm');
! 214: }
! 215:
! 216: function showWaitPage(delay) {
! 217: /* Wait for delay */
! 218: clearTimeout(delayTimer);
! 219: if (typeof(delay) == 'number' && (delay > 10)) {
! 220: delayTimer= setTimeout('showWaitPage(0)' , delay);
! 221: return;
! 222: }
! 223:
! 224: /* show the waitPage */
! 225: hidePage("logonPage");
! 226: hidePage("statusPage");
! 227: showPage("waitPage");
! 228: hidePage("errorPage");
! 229: }
! 230:
! 231: function showErrorPage( str ) {
! 232: setTimeout('chilliController.refresh()', 15000);
! 233:
! 234: hidePage("logonPage");
! 235: hidePage("statusPage");
! 236: hidePage("waitPage");
! 237: showPage("errorPage");
! 238: setElementValue("errorMessage", str);
! 239: }
! 240:
! 241: var chillijsWindowOnLoad = window.onload;
! 242: var delayTimer; // global reference to delayTimer
! 243: window.onload = function() {
! 244: if (chillijsWindowOnLoad)
! 245: chillijsWindowOnLoad();
! 246:
! 247: var logonForm = document.getElementById('logonForm');
! 248:
! 249: var head = document.getElementsByTagName("head")[0];
! 250: if (head == null) head = document.body;
! 251:
! 252: if (logonForm == null) {
! 253: logonForm = document.getElementById('loginForm');
! 254: }
! 255:
! 256: if (logonForm == null) {
! 257: try {
! 258: logonForm = document.createElement('div');
! 259: logonForm.setAttribute('id', 'logonForm');
! 260: logonForm.setAttribute('name', 'logonForm');
! 261: var thisScript = document.getElementById('chillijs');
! 262: if (thisScript != null) {
! 263: thisScript.parentNode.insertBefore(logonForm, thisScript);
! 264: } else {
! 265: document.body.appendChild(logonForm);
! 266: }
! 267: } catch(exception) {
! 268: document.body.innerHTML += "<div id='logonForm'></div>";
! 269: }
! 270: logonForm = document.getElementById('logonForm');
! 271: }
! 272:
! 273: if (logonForm.innerHTML == '') {
! 274: if (head != null) {
! 275: var script = document.createElement('script');
! 276: script.id = 'chilliform';
! 277: script.type = 'text/javascript';
! 278: script.src = 'http://'+chilliController.host+':'+chilliController.port+'/www/chilliform.chi';
! 279: head.appendChild(script);
! 280: } else {
! 281: logonForm.innerHTML='Error loading generic login form';
! 282: }
! 283: }
! 284:
! 285: showWaitPage();
! 286: setTimeout('chilliController.refresh()', 500);
! 287: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>