1AppRegistry.registerBundle({applicationId:'marketplace.sitevision.timeoutwarning|1.0.8',bundle: {"fi":{"logout":"Kirjaudu ulos","mustBeNumeric":"Täytyy olla numero","stayLoggedIn":"Pysy sisäänkirjautuneena","numberOfminutesBeforeWarning":"Minuuttimäärä, kunnes automaattisen uloskirjautumisen varoitus näytetään","timeUntilLogout":"Aika ennen automaattista uloskirjautumista:","automaticLogoutForYourSafety":"Turvallisuutesi takia sinut kirjataan ulos {0} minuutin passiivisuuden jälkeen.","automaticLogout":"Automaattinen uloskirjautuminen","warning":"Varoitus automaattisesta uloskirjautumisesta","extentionFailed":"Istuntoa ei voitu pidentää.","stayLoggedInOrLogout":"Valitse haluatko pysyä sisäänkirjautuneena vai kirjautua ulos."},"en":{"logout":"Log out","mustBeNumeric":"Must be numeric","stayLoggedIn":"Stay logged in","numberOfminutesBeforeWarning":"Number of minutes before automatic logout the warning will be shown","timeUntilLogout":"Time until automatic log out:","automaticLogoutForYourSafety":"For your safety you will be logged out after {0} minutes of inactivity.","automaticLogout":"Automatic log out","warning":"Warning ahead of automatic log out","extentionFailed":"The extention of the session time could not be completed.","stayLoggedInOrLogout":"Select whether you want to stay logged in or log out."},"sv":{"logout":"Logga ut","mustBeNumeric":"MÃ¥ste vara en siffra","stayLoggedIn":"Fortsätt vara inloggad","numberOfminutesBeforeWarning":"Antal minuter innan automatisk utloggning som varning ska visas","timeUntilLogout":"Tid till automatisk utloggning:","automaticLogoutForYourSafety":"För din säkerhets skull loggas du ut efter {0} minuters inaktivitet.","automaticLogout":"Automatisk utloggning","warning":"Varning om automatisk utloggning","extentionFailed":"Förlängning av sessionstiden kunde inte genomföras.","stayLoggedInOrLogout":"Välj om du vill fortsätta vara inloggad eller logga ut."},"da":{"logout":"Log ud","mustBeNumeric":"Skal være et ciffer","stayLoggedIn":"Fortsæt med at være logget ind","numberOfminutesBeforeWarning":"Antal minutter inden automatisk log ud skal vises som advarsel","timeUntilLogout":"Tid til automatisk log ud:","automaticLogoutForYourSafety":"For din sikkerheds skyld logges du ud efter {0} minutters inaktivitet.","automaticLogout":"Automatisk log ud","warning":"Advarsel om automatisk log ud","extentionFailed":"Forlængelse af sessionen kunne ikke gennemføres.","stayLoggedInOrLogout":"Vælg om du vil fortsætte med at være logget ind eller om du vil logge ud."},"no":{"logout":"Logg ut","mustBeNumeric":"MÃ¥ være et tall","stayLoggedIn":"Fortsett Ã¥ være innlogget.","numberOfminutesBeforeWarning":"Antall minutter før varsel om automatisk utlogging skal vises","timeUntilLogout":"Tid til automatisk utlogging:","automaticLogoutForYourSafety":"For sikkerhets skyld blir du logget ut etter {0} minutters inaktivitet.","automaticLogout":"Automatisk utlogging","warning":"Varsel om automatisk utlogging","extentionFailed":"Forlengelse av tiden du er innlogget kunne ikke gjennomføres.","stayLoggedInOrLogout":"Velg om du fortsatt vil være innlogget, eller bli logget ut."}}}); 2AppRegistry.registerModule({applicationId:'marketplace.sitevision.timeoutwarning|1.0.8',path:'/component/ExtentionFailedAlert',module:function(define){'use strict';define(function (require) { 3 'use strict'; 4 5 var Component = require('Component'); 6 7 var template = require('/template/extentionFailedAlert'); 8 9 return Component.extend({ 10 template: template, 11 events: { 12 dom: { 13 'click [data-dismiss]': 'destroy' 14 }, 15 app: { 16 clearFailedAlert: 'destroy' 17 } 18 } 19 }); 20});}}); 21AppRegistry.registerModule({applicationId:'marketplace.sitevision.timeoutwarning|1.0.8',path:'/template/main',module:function(define){define(function(require){var _=require('underscore');return function(obj){ 22var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');}; 23with(obj||{}){ 24__p+=''; 25} 26return __p; 27};});}}); 28AppRegistry.registerModule({applicationId:'marketplace.sitevision.timeoutwarning|1.0.8',path:'/template/extentionFailedAlert',module:function(define){define(function(require){var _=require('underscore');return function(obj){ 29var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');}; 30with(obj||{}){ 31__p+='<div class="env-alert env-alert--danger" role="alert">\n '+ 32((__t=( i18n('extentionFailed') ))==null?'':_.escape(__t))+ 33'\n <button type="button" class="env-alert__close" data-dismiss="alert" aria-label="Close">\n ×\n </button>\n</div>'; 34} 35return __p; 36};});}}); 37AppRegistry.registerModule({applicationId:'marketplace.sitevision.timeoutwarning|1.0.8',path:'/template/sessionTimeoutModal',module:function(define){define(function(require){var _=require('underscore');return function(obj){ 38var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');}; 39with(obj||{}){ 40__p+='<div id="sessionTimeoutWarningModal" class="env-modal-dialog" role="dialog" aria-labelledby="myDialog"\n aria-hidden="true" tabindex="-1">\n <div class="env-modal-dialog__dialog env-modal-dialog__dialog--medium">\n <section class="env-modal-dialog__content">\n <header id="svSessionTimeoutWarningModalHeader" class="env-modal-dialog__header">\n <h5 class="env-text env-modal-dialog__header__title">\n '+ 41((__t=( i18n('automaticLogout') ))==null?'':_.escape(__t))+ 42'\n </h5>\n </header>\n <div class="env-modal-dialog__body">\n <p class="env-text env-m-top--medium">\n '+ 43((__t=( i18n('automaticLogoutForYourSafety', [sessionTimeoutInMinutes]) ))==null?'':_.escape(__t))+ 44'\n </p>\n <p class="env-text env-m-top--medium env-m-bottom--medium">\n '+ 45((__t=( i18n('timeUntilLogout') ))==null?'':_.escape(__t))+
46'\n <span id="timeoutMinutes"\n class="sv-session-timeout-warning-bold">'+ 47((__t=( displayInitialMinute(warningInMinutes) ))==null?'':_.escape(__t))+ 48'</span>:<span\n id="timeoutSeconds" class="sv-session-timeout-warning-bold">59</span>\n </p>\n <p class="env-text env-m-bottom--medium">\n '+ 49((__t=( i18n('stayLoggedInOrLogout') ))==null?'':_.escape(__t))+ 50'\n </p>\n </div>\n <footer class="env-modal-dialog__footer env-modal-dialog__footer--right">\n <button type="button" class="env-button env-button--primary" data-modal-dialog-dismiss data-session-extend>\n '+ 51((__t=( i18n('stayLoggedIn') ))==null?'':_.escape(__t))+ 52'\n </button>\n <a href="?logout=true" type="button" data-modal-dialog-dismiss class="env-button env-button--link">\n '+ 53((__t=( i18n('logout') ))==null?'':_.escape(__t))+ 54'\n </a>\n </footer>\n </section>\n </div>\n</div>'; 55} 56return __p; 57};});}}); 58AppRegistry.registerModule({applicationId:'marketplace.sitevision.timeoutwarning|1.0.8',path:'/component/SessionTimeoutModal',module:function(define){'use strict';define(function (require) { 59 'use strict'; 60 61 var app = require('app'); 62 63 var Component = require('Component'); 64 65 var template = require('/template/sessionTimeoutModal'); 66 67 var countdownOneSecond; 68 return Component.extend({ 69 template: template, 70 events: { 71 dom: { 72 'click button[data-session-extend]': 'extend' 73 }, 74 app: { 75 closeModal: 'close' 76 } 77 }, 78 templateFunctions: function templateFunctions() { 79 return { 80 displayInitialMinute: function displayInitialMinute(warningInMinutes) { 81 return warningInMinutes - 1; 82 } 83 }; 84 }, 85 extend: function extend() { 86 clearInterval(countdownOneSecond); 87 app.trigger('extendSession'); 88 this.destroy(); 89 }, 90 onRendered: function onRendered() { 91 var _this = this; 92 93 var countDownTo = new Date(); 94 countDownTo.setMinutes(countDownTo.getMinutes() + parseInt(this.state.warningInMinutes, 10)); 95 countdownOneSecond = setInterval(function () { 96 var now = new Date().getTime(); 97 var timeRemaining = countDownTo.getTime() - now; 98 var minutes = Math.floor(timeRemaining % (1000 * 60 * 60) / (1000 * 60)); 99 var seconds = Math.floor(timeRemaining % (1000 * 60) / 1000); 100 101 var $minutes = _this.$('#timeoutMinutes'); 102 103 var $seconds = _this.$('#timeoutSeconds'); 104 105 $minutes.html(minutes); 106 $seconds.html(seconds >= 10 ? seconds : '0' + seconds); 107 108 if (timeRemaining < 0) { 109 clearInterval(countdownOneSecond); 110 $minutes.html(''); 111 $seconds.html(''); 112 window.location.href = '?logout=true'; 113 } 114 }, 1000); 115 this.$('#sessionTimeoutWarningModal').on('hide.env-modal-dialog', function () { 116 _this.extend(); 117 }); 118 }, 119 close: function close() { 120 clearInterval(countdownOneSecond); 121 this.$('#sessionTimeoutWarningModal').off('hide.env-modal-dialog').envDialog('hide'); 122 this.destroy(); 123 }, 124 filterState: function filterState(state) { 125 return { 126 sessionTimeoutInMinutes: state.sessionTimeoutInMinutes, 127 warningInMinutes: state.warningInMinutes 128 }; 129 } 130 }); 131});}}); 132AppRegistry.registerModule({applicationId:'marketplace.sitevision.timeoutwarning|1.0.8',path:'/main',module:function(define){'use strict';define(function (require) { 133 'use strict'; 134 135 var app = require('app'); 136 137 var router = require('router'); 138 139 var requester = require('requester'); 140 141 var Component = require('Component'); 142 143 var template = require('/template/main'); 144 145 var SessionTimeoutModal = require('/component/SessionTimeoutModal'); 146 147 var ExtentionFailedAlert = require('/component/ExtentionFailedAlert'); 148 149 var countdown; 150 return Component.extend({ 151 template: template, 152 events: { 153 self: { 154 'state:changed:initTime': 'initTimeoutCountdown' 155 }, 156 app: { 157 extendSession: 'extendSession' 158 } 159 }, 160 initTimeoutCountdown: function initTimeoutCountdown() { 161 var _this = this; 162 163 if (this.state.isOnlineVersion) { 164 clearTimeout(countdown); 165 app.trigger('closeModal'); 166 countdown = setTimeout(function () { 167 app.trigger('clearFailedAlert'); 168 var sessionTimeoutModal = new SessionTimeoutModal({ 169 warningInMinutes: _this.state.warningInMinutes, 170 sessionTimeoutInMinutes: _this.state.maxInactiveInterval / 60 171 }); 172 sessionTimeoutModal.render().$el.prependTo(_this.$el); 173 174 _this.$('#sessionTimeoutWarningModal').envDialog('show'); 175 }, this.state.maxInactiveInterval * 1000 - this.state.warningInMinutes * 60000); 176 } 177 }, 178 onRendered: function onRendered() { 179 var _this2 = this; 180 181 if (localStorage.getItem('maxInactiveInterval') !== this.state.maxInactiveInterval) { 182 this.updateLocalStorage(this.state.maxInactiveInterval); 183 } 184 185 var open = XMLHttpRequest.prototype.open; 186 var that = this; 187 188 XMLHttpRequest.prototype.open = function () { 189 this.addEventListener('load', function () { 190 if (that.state.isOnlineVersion) { 191 that.triggerCountdown(); 192 } 193 194 that.updateLocalStorage(that.state.isOnlineVersion ? localStorage.getItem('maxInactiveInterval') : that.state.maxInactiveInterval); 195 }, false); 196 open.apply(this, arguments); 197 }; 198 199 window.addEventListener('storage', function (e) { 200 if (e.key === 'sessionActivity' && _this2.state.isOnlineVersion) { 201 app.trigger('closeModal'); 202 203 _this2.triggerCountdown(); 204 } 205 206 if (e.key === 'maxInactiveInterval' && localStorage.getItem('maxInactiveInterval') !== _this2.state.maxInactiveInterval) { 207 if (_this2.state.isOnlineVersion) { 208 app.trigger('closeModal'); 209 210 _this2.updateState(localStorage.getItem('maxInactiveInterval')); 211 } else { 212 _this2.updateLocalStorage(_this2.state.maxInactiveInterval); 213 } 214 } 215 }); 216 217 if (this.state.isOnlineVersion) { 218 this.triggerCountdown(); 219 } 220 }, 221 triggerCountdown: function triggerCountdown() { 222 this.setState('initTime', new Date()); 223 }, 224 updateLocalStorage: function updateLocalStorage(maxInactiveInterval) { 225 localStorage.setItem('maxInactiveInterval', maxInactiveInterval); 226 localStorage.setItem('sessionActivity', new Date()); 227 }, 228 updateState: function updateState(maxInactiveInterval) { 229 this.setState('maxInactiveInterval', maxInactiveInterval); 230 this.setState('initTime', new Date()); 231 }, 232 extendSession: function extendSession() { 233 var _this3 = this; 234 235 requester.doGet({ 236 url: router.getUrl('/extend') 237 }).done(function (res) { 238 _this3.updateState(res.maxInactiveInterval); 239 240 _this3.updateLocalStorage(res.maxInactiveInterval); 241 }).fail(function () { 242 var extentionFailedAlert = new ExtentionFailedAlert(); 243 extentionFailedAlert.render().$el.prependTo(document.body); 244 }); 245 }, 246 filterState: function filterState(state) { 247 return { 248 isOnlineVersion: state.isOnlineVersion, 249 sessionTimeoutInMinutes: state.sessionTimeoutInMinutes, 250 warningInMinutes: state.warningInMinutes, 251 maxInactiveInterval: state.maxInactiveInterval 252 }; 253 } 254 }); 255});}});
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.