Annotation of embedaddon/coova-chilli/www/chilliController.js, revision 1.1.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>