I've implemented the Session Expiration example using the RadNotification.
However, I've noticed that users often have to click the "Continue Session" button several times
before the modal closes. I've worked around this by continuing to call notification.hide() until
notification.isVisible() is no longer true. This workaround appears to work, but I would like to see a
fix for this in the future.
function ContinueSession() {
var
notification = $find(
"ctl00_SessionTimeoutRadNotification"
);
//we need to contact the server to restart the Session - the fastest way is via callback
//calling update() automatically performs the callback, no need for any additional code or control
sessionKeepAlive();
var
attempts = 0;
while
(notification.isVisible()) {
notification.hide();
attempts++;
}
console.log(
"Took "
+ attempts +
" attempts to close"
);
//resets the showInterval for the scenario where the Notification is not disposed (e.g. an AJAX request is made)
//You need to inject a call to the ContinueSession() function from the code behind in such a request
var
showIntervalStorage = notification.get_showInterval();
//store the original value
notification.set_showInterval(0);
//change the timer to avoid untimely showing, 0 disables automatic showing
notification.set_showInterval(showIntervalStorage);
//sets back the original interval which will start counting from its full value again
stopTimer(
"timeLeftCounter"
);
seconds = 60;
updateMainLabel(
true
);
}