Commit 1da5c4e9 by Masaru Abe

screenLock.jsリファクタリング

parent 6ba272bc
...@@ -2057,7 +2057,7 @@ COMMON.LockScreen = function() { ...@@ -2057,7 +2057,7 @@ COMMON.LockScreen = function() {
var timeWaitLockScreen = COMMON.getTimeWaitLockScreen(); var timeWaitLockScreen = COMMON.getTimeWaitLockScreen();
if (timeWaitLockScreen > 0) { if (timeWaitLockScreen > 0) {
//var message = I18N.i18nText("sysInfoScrLock01"); //var message = I18N.i18nText("sysInfoScrLock01");
screenLock({ SCREENLOCK.screenLock({
timeout: timeWaitLockScreen, timeout: timeWaitLockScreen,
html: '<img src="img/1222.png" alt="Screen Lock" /><br />', //+ message, html: '<img src="img/1222.png" alt="Screen Lock" /><br />', //+ message,
unlockFunc: COMMON.unlockFunction, unlockFunc: COMMON.unlockFunction,
......
...@@ -22,39 +22,52 @@ ...@@ -22,39 +22,52 @@
* } * }
* *
*/ */
function screenLock(options) {
//グローバルの名前空間用のオブジェクトを用意する
var SCREENLOCK = {};
SCREENLOCK.screenLock = function(options) {
var idleTimerId = null; var idleTimerId = null;
var bTimeout = false; var bTimeout = false;
var defaultOptions = { var defaultOptions = {
timeout : 600000, // default timeout = 10min. timeout : 600000, // default timeout = 10min.
id: 'to', id: 'to',
html: 'Clickして画面ロックを解除してください。', html: 'Clickして画面ロックを解除してください。',
color: '#fff', color: '#fff',
opacity: '0.95', opacity: '0.95',
background: '#333', background: '#333',
lockspeed: 'slow', lockspeed: 'slow',
errorMessage: 'ロックを解除できません。入力したパスワードを確認してください。', errorMessage: 'ロックを解除できません。入力したパスワードを確認してください。',
unlockFunc : function(elmId) { unlockFunc : function(elmId) {
// overlay click then fade out and remove element // overlay click then fade out and remove element
$('#' + elmId).fadeOut(lockspeed, function() { $('#' + elmId).fadeOut(lockspeed, function() {
// ロック画面をDOM要素から削除 // ロック画面をDOM要素から削除
$('#' + elmId).remove(); $('#' + elmId).remove();
// 画面ロック状態を解除 // 画面ロック状態を解除
removeLockState(); removeLockState();
// アイドルタイマーをもう一度仕掛ける // アイドルタイマーをもう一度仕掛ける
setIdleTimer(); setIdleTimer();
}); });
// unlock // unlock
return { 'result': true, 'errorCode' : 'success' }; return { 'result': true, 'errorCode' : 'success' };
} }
}; };
var timeout, elmId, html, color, opacity, background, lockspeed, unlockEvent, unlockFunc, errorMessage; var timeout;
var elmId;
var html;
var color;
var opacity;
var background;
var lockspeed;
var unlockEvent;
var unlockFunc;
var errorMessage;
// overlay option // overlay option
if(options) { if(options) {
...@@ -81,10 +94,10 @@ function screenLock(options) { ...@@ -81,10 +94,10 @@ function screenLock(options) {
// bind event // bind event
$(window).click(resetIdleTimer) $(window).click(resetIdleTimer)
.mousemove(resetIdleTimer) .mousemove(resetIdleTimer)
.keydown(resetIdleTimer) .keydown(resetIdleTimer)
.bind('touchstart', resetIdleTimer) .bind('touchstart', resetIdleTimer)
.bind('touchmove', resetIdleTimer); .bind('touchmove', resetIdleTimer);
// アイドルタイマーを起動 // アイドルタイマーを起動
setIdleTimer(); setIdleTimer();
...@@ -92,23 +105,23 @@ function screenLock(options) { ...@@ -92,23 +105,23 @@ function screenLock(options) {
/* ロックするまでのアイドルタイマー */ /* ロックするまでのアイドルタイマー */
function setIdleTimer() { function setIdleTimer() {
// check time out // check time out
if (timeout < 0) { // Remove unlock when timeout < 0 (this case for: after unlock, values from service options: web_screen_lock=N) if (timeout < 0) { // Remove unlock when timeout < 0 (this case for: after unlock, values from service options: web_screen_lock=N)
// clear timeout // clear timeout
if (idleTimerId) { if (idleTimerId) {
clearTimeout(idleTimerId); clearTimeout(idleTimerId);
idleTimerId = null; idleTimerId = null;
} }
bTimeout = false; bTimeout = false;
// clear lock state // clear lock state
removeLockState(); removeLockState();
return; return;
} }
// アイドルタイマーのタイムアウト時間(デフォルト/オプション指定時間) // アイドルタイマーのタイムアウト時間(デフォルト/オプション指定時間)
var idleStateTimeout = timeout; var idleStateTimeout = timeout;
...@@ -121,11 +134,10 @@ function screenLock(options) { ...@@ -121,11 +134,10 @@ function screenLock(options) {
// すでにロック状態かどうかをチェックし、ロック状態であれば、即ロックをかける // すでにロック状態かどうかをチェックし、ロック状態であれば、即ロックをかける
if(isLocked()) { if(isLocked()) {
idleStateTimeout = 0; idleStateTimeout = 0;
}
} // clear lock state
// clear lock state
removeLockState();
removeLockState();
// set idle timeout // set idle timeout
idleTimerId = setTimeout(function() { idleTimerId = setTimeout(function() {
...@@ -141,7 +153,7 @@ removeLockState(); ...@@ -141,7 +153,7 @@ removeLockState();
showLockScreen(); showLockScreen();
}, idleStateTimeout); }, idleStateTimeout);
// clear time out // clear time out
bTimeout = false; bTimeout = false;
}; };
...@@ -195,18 +207,18 @@ removeLockState(); ...@@ -195,18 +207,18 @@ removeLockState();
// フォーカスを当ててキーダウンイベントでタイムアウト解除を登録 // フォーカスを当ててキーダウンイベントでタイムアウト解除を登録
$('#passwd-txt').focus() $('#passwd-txt').focus()
.keydown(function(event) { .keydown(function(event) {
// パスワード入力タイマーを解除 // パスワード入力タイマーを解除
if(pwInputTimer) { if(pwInputTimer) {
clearTimeout(pwInputTimer); clearTimeout(pwInputTimer);
} }
pwInputTimer = null; pwInputTimer = null;
// エンターキーで解除実行 // エンターキーで解除実行
if(event.which == 13) { if(event.which == 13) {
executeUnlock(); executeUnlock();
} }
}); });
}); });
// force unlock function // force unlock function
...@@ -216,40 +228,39 @@ removeLockState(); ...@@ -216,40 +228,39 @@ removeLockState();
// execute unlock process // execute unlock process
function executeUnlock() { function executeUnlock() {
if (unlockFunc) { if (unlockFunc) {
var val = unlockFunc($('#passwd-txt').val(), forceUnlockFunc); var val = unlockFunc($('#passwd-txt').val(), forceUnlockFunc);
if (!val.result) { if (!val.result) {
$('#screenLockErrMsg').text(AVWEB.format(errorMessage, val.errorCode.errorMessage)); $('#screenLockErrMsg').text(AVWEB.format(errorMessage, val.errorCode.errorMessage));
$('#screenLockErrMsg').fadeIn(); $('#screenLockErrMsg').fadeIn();
$('#passwd-txt').focus(); $('#passwd-txt').focus();
return;
return; }
} else {
else { // Set new timeout value
// Set new timeout value timeout = val.newTimeout;
timeout = val.newTimeout; }
} /*
/* if(!unlockFunc($('#passwd-txt').val(), forceUnlockFunc)) {
if(!unlockFunc($('#passwd-txt').val(), forceUnlockFunc)) { $('#screenLockErrMsg').fadeIn();
$('#screenLockErrMsg').fadeIn(); $('#passwd-txt').focus();
$('#passwd-txt').focus(); return;
return; }
} */
*/ }
} defaultOptions.unlockFunc(elmId);
defaultOptions.unlockFunc(elmId);
} }
// OKボタン押下でロック解除関数を実行 // OKボタン押下でロック解除関数を実行
$('#unlock-btn').click(function() { executeUnlock(); }); $('#unlock-btn').click(function() { executeUnlock(); });
// resize overlay // resize overlay
$(window).resize(function() { $(window).resize(function() {
$('#' + elmId).css( { $('#' + elmId).css( {
'width': $(window).width(), 'width': $(window).width(),
'height': $(window).height() 'height': $(window).height()
}); });
}); });
}; };
/* set lock state */ /* set lock state */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment