213 lines
6.3 KiB
JavaScript
213 lines
6.3 KiB
JavaScript
/**
|
|
* Ideal Timer (jquery)
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
$(function () {
|
|
var timerDoc = $('#document-Status'),
|
|
btnPause = $('#document-Pause'),
|
|
btnResume = $('#document-Resume'),
|
|
btnElapsed = $('#document-Elapsed'),
|
|
btnDestroy = $('#document-Destroy'),
|
|
btnInit = $('#document-Init');
|
|
|
|
// Document 5 Sec Timeout
|
|
// --------------------------------------------------------------------
|
|
if (timerDoc.length) {
|
|
var docTimeout = 5000;
|
|
// idle/active events
|
|
$(document).on('idle.idleTimer', function (event, elem, obj) {
|
|
timerDoc
|
|
.val(function (i, value) {
|
|
return value + 'Idle @ ' + moment().format() + ' \n';
|
|
})
|
|
.removeClass('alert-success')
|
|
.addClass('alert-warning');
|
|
});
|
|
$(document).on('active.idleTimer', function (event, elem, obj, e) {
|
|
timerDoc
|
|
.val(function (i, value) {
|
|
return value + 'Active [' + e.type + '] [' + e.target.nodeName + '] @ ' + moment().format() + ' \n';
|
|
})
|
|
.addClass('alert-success')
|
|
.removeClass('alert-warning');
|
|
});
|
|
|
|
// button events
|
|
btnPause.on('click', function () {
|
|
// Pause
|
|
$(document).idleTimer('pause');
|
|
timerDoc.val(function (i, value) {
|
|
return value + 'Paused @ ' + moment().format() + ' \n';
|
|
});
|
|
$(this).blur();
|
|
return false;
|
|
});
|
|
btnResume.on('click', function () {
|
|
// Resume
|
|
$(document).idleTimer('resume');
|
|
timerDoc.val(function (i, value) {
|
|
return value + 'Resumed @ ' + moment().format() + ' \n';
|
|
});
|
|
$(this).blur();
|
|
return false;
|
|
});
|
|
btnElapsed.on('click', function () {
|
|
// Elapsed
|
|
timerDoc.val(function (i, value) {
|
|
return value + 'Elapsed (since becoming active): ' + $(document).idleTimer('getElapsedTime') + ' \n';
|
|
});
|
|
$(this).blur();
|
|
return false;
|
|
});
|
|
btnDestroy.on('click', function () {
|
|
// Destroy
|
|
$(document).idleTimer('destroy');
|
|
timerDoc
|
|
.val(function (i, value) {
|
|
return value + 'Destroyed: @ ' + moment().format() + ' \n';
|
|
})
|
|
.removeClass('alert-success')
|
|
.removeClass('alert-warning');
|
|
$(this).blur();
|
|
return false;
|
|
});
|
|
btnInit.on('click', function () {
|
|
// Initialize
|
|
// show init with object
|
|
$(document).idleTimer({
|
|
timeout: docTimeout
|
|
});
|
|
timerDoc.val(function (i, value) {
|
|
return value + 'Init: @ ' + moment().format() + ' \n';
|
|
});
|
|
|
|
// Apply classes for default state
|
|
if ($(document).idleTimer('isIdle')) {
|
|
timerDoc.removeClass('alert-success').addClass('alert-warning');
|
|
} else {
|
|
timerDoc.addClass('alert-success').removeClass('alert-warning');
|
|
}
|
|
$(this).blur();
|
|
return false;
|
|
});
|
|
|
|
// Clear old statuses
|
|
timerDoc.val('');
|
|
|
|
// Start timeout, passing no options
|
|
$(document).idleTimer(docTimeout);
|
|
|
|
// style based on state
|
|
if ($(document).idleTimer('isIdle')) {
|
|
timerDoc
|
|
.val(function (i, value) {
|
|
return value + 'Initial Idle State @ ' + moment().format() + ' \n';
|
|
})
|
|
.removeClass('alert-success')
|
|
.addClass('alert-warning');
|
|
} else {
|
|
timerDoc
|
|
.val(function (i, value) {
|
|
return value + 'Initial Active State @ ' + moment().format() + ' \n';
|
|
})
|
|
.addClass('alert-success')
|
|
.removeClass('alert-warning');
|
|
}
|
|
}
|
|
|
|
// Element 3 Sec Timeout
|
|
// --------------------------------------------------------------------
|
|
var elementTimer = $('#element-Status'),
|
|
btnReset = $('#element-Reset'),
|
|
btnRemaining = $('#element-Remaining'),
|
|
btnLastActive = $('#element-LastActive'),
|
|
btnState = $('#element-State');
|
|
if (elementTimer.length) {
|
|
var elTimeout = 3000;
|
|
// idle/active events
|
|
elementTimer.on('idle.idleTimer', function (event, elem, obj) {
|
|
event.stopPropagation();
|
|
|
|
elementTimer
|
|
.val(function (i, value) {
|
|
return value + 'Idle @ ' + moment().format() + ' \n';
|
|
})
|
|
.removeClass('alert-success')
|
|
.addClass('alert-warning');
|
|
});
|
|
elementTimer.on('active.idleTimer', function (event) {
|
|
event.stopPropagation();
|
|
|
|
elementTimer
|
|
.val(function (i, value) {
|
|
return value + 'Active @ ' + moment().format() + ' \n';
|
|
})
|
|
.addClass('alert-success')
|
|
.removeClass('alert-warning');
|
|
});
|
|
|
|
// button events
|
|
btnReset.on('click', function () {
|
|
// Reset
|
|
elementTimer.idleTimer('reset').val(function (i, value) {
|
|
return value + 'Reset @ ' + moment().format() + ' \n';
|
|
});
|
|
|
|
// classes for default state
|
|
if ($('#element-Status').idleTimer('isIdle')) {
|
|
elementTimer.removeClass('alert-success').addClass('alert-warning');
|
|
} else {
|
|
elementTimer.addClass('alert-success').removeClass('alert-warning');
|
|
}
|
|
$(this).blur();
|
|
return false;
|
|
});
|
|
btnRemaining.on('click', function () {
|
|
// Remaining
|
|
elementTimer.val(function (i, value) {
|
|
return value + 'Remaining: ' + elementTimer.idleTimer('getRemainingTime') + ' \n';
|
|
});
|
|
$(this).blur();
|
|
return false;
|
|
});
|
|
btnLastActive.on('click', function () {
|
|
// Last Active
|
|
elementTimer.val(function (i, value) {
|
|
return value + 'LastActive: ' + elementTimer.idleTimer('getLastActiveTime') + ' \n';
|
|
});
|
|
$(this).blur();
|
|
return false;
|
|
});
|
|
btnState.on('click', function () {
|
|
// State
|
|
elementTimer.val(function (i, value) {
|
|
return value + 'State: ' + ($('#element-Status').idleTimer('isIdle') ? 'idle' : 'active') + ' \n';
|
|
});
|
|
$(this).blur();
|
|
return false;
|
|
});
|
|
|
|
// Clear value if cached & start time
|
|
elementTimer.val('').idleTimer(elTimeout);
|
|
|
|
// show initial state
|
|
if (elementTimer.idleTimer('isIdle')) {
|
|
elementTimer
|
|
.val(function (i, value) {
|
|
return value + 'Initial Idle @ ' + moment().format() + ' \n';
|
|
})
|
|
.removeClass('alert-success')
|
|
.addClass('alert-warning');
|
|
} else {
|
|
elementTimer
|
|
.val(function (i, value) {
|
|
return value + 'Initial Active @ ' + moment().format() + ' \n';
|
|
})
|
|
.addClass('alert-success')
|
|
.removeClass('alert-warning');
|
|
}
|
|
}
|
|
});
|