initial commit
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
Name: Pages / Session Timeout - Examples
|
||||
Written by: Okler Themes - (http://www.okler.net)
|
||||
Theme Version: 2.1.1
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var SessionTimeout = {
|
||||
|
||||
options: {
|
||||
keepAliveUrl: '',
|
||||
alertOn: 15000, // ms
|
||||
timeoutOn: 20000 // ms
|
||||
},
|
||||
|
||||
alertTimer: null,
|
||||
timeoutTimer: null,
|
||||
|
||||
initialize: function() {
|
||||
this
|
||||
.start()
|
||||
.setup();
|
||||
},
|
||||
|
||||
start: function() {
|
||||
var _self = this;
|
||||
|
||||
this.alertTimer = setTimeout(function() {
|
||||
_self.onAlert();
|
||||
}, this.options.alertOn );
|
||||
|
||||
this.timeoutTimer = setTimeout(function() {
|
||||
_self.onTimeout();
|
||||
}, this.options.timeoutOn );
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
// bind success callback for all ajax requests
|
||||
setup: function() {
|
||||
var _self = this;
|
||||
|
||||
// if server returns successfuly,
|
||||
// then the session is renewed.
|
||||
// thats why we reset here the counter
|
||||
$( document ).ajaxSuccess(function() {
|
||||
_self.reset();
|
||||
});
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
reset: function() {
|
||||
clearTimeout(this.alertTimer);
|
||||
clearTimeout(this.timeoutTimer);
|
||||
this.start();
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
keepAlive: function() {
|
||||
// we don't have session on demo,
|
||||
// so the code above prevent a request to be made
|
||||
// in your project, please remove the next 3 lines of code
|
||||
if ( !this.options.keepAliveUrl ) {
|
||||
this.reset();
|
||||
return;
|
||||
}
|
||||
|
||||
var _self = this;
|
||||
|
||||
$.post( this.options.keepAliveUrl, function( data ) {
|
||||
_self.reset();
|
||||
});
|
||||
},
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// CUSTOMIZE HERE
|
||||
// ------------------------------------------------------------------------
|
||||
onAlert: function() {
|
||||
// if you want to show some warning
|
||||
// TODO: remove this confirm (it breaks the logic and it's ugly)
|
||||
var renew = confirm( 'Your session is about to expire, do you want to renew?' );
|
||||
|
||||
if ( renew ) {
|
||||
this.keepAlive();
|
||||
}
|
||||
|
||||
// if you want session to not expire
|
||||
// this.keepAlive();
|
||||
},
|
||||
|
||||
onTimeout: function() {
|
||||
self.location.href = 'pages-signin.html';
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$(function() {
|
||||
SessionTimeout.initialize();
|
||||
});
|
||||
|
||||
}).apply(this, [jQuery]);
|
||||
Reference in New Issue
Block a user