1function IbsysSessionService() { 2 return function(statusUrl, prolongUrl) { 3 var _statusUrl = statusUrl, _prolongUrl = prolongUrl, HEADER_IBSYS_IGNORE = 'x-ibsys-ignore', HEADER_REQUESTED_WITH = 'X-Requested-With'; 4 5 return { 6 checkSession : checkSession, 7 prolongSession : prolongSession 8 } 9 10 function checkSession(success, error) { 11 return _executeRequest(_statusUrl, success, error); 12 } 13 14 function prolongSession(success, error) { 15 return _executeRequest(_prolongUrl, success, error); 16 } 17 18 function _executeRequest(url, success, error) { 19 var request = new XMLHttpRequest(); 20 request.open('GET', _appendTimeStamp(url)); 21 request.setRequestHeader(HEADER_IBSYS_IGNORE, 'true'); 22 request.setRequestHeader(HEADER_REQUESTED_WITH, 'XMLHttpRequest'); 23 request.onload = function() { 24 if (this.status >= 200 && this.status < 400) { 25 success(_resolvePayload(this.responseText)); 26 } else { 27 error(this.responseText); 28 } 29 }; 30 request.onerror = function() { 31 error(this.responseText); 32 }; 33 request.send(); 34 } 35 36 /** 37 * Append time stamp to the URL as query parameter in order to prevent 38 * caching of the request. 39 * 40 * @param {String} 41 * url 42 */ 43 function _appendTimeStamp(url) { 44 var delimiter = url.indexOf('?') != -1 ? '&' : '?'; 45 return url + delimiter + 'time=' + Date.now(); 46 } 47 48 /** 49 * Resolve payload data. 50 * 51 * @param {XMLHttpRequest} 52 * xhr 53 */ 54 function _resolvePayload(xhr) { 55 var payload = JSON.parse(xhr); 56 return { 57 isLoggedIn : payload['loggedin'], 58 displayWarningActivity : payload['display-warning-activity'], 59 displayWarningInactivity : payload['display-warning-inactivity'], 60 remainingSecondsActivity : payload['remaining-seconds-activity'], 61 remainingSecondsInactivity : payload['remaining-seconds-inactivity'], 62 }; 63 } 64 65 }.apply(null, arguments); 66}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.