Commit 90cbc971 by Motohisa Nakano

20121205-2

parent 3c754480
......@@ -11,6 +11,9 @@
/**
* システムエラーメッセージスタイル
*/
.toast-container {
z-index: 90001;
}
.toast-item {
border-radius: 10px;
}
......
......@@ -79,36 +79,51 @@ var UserEnvironment = function() {
* User Settings Class Definition
*/
var UserSetting = function() {
this.US_KEY="AVWUS";
this.US_KEY="AVWUS";
this.userSetting = this.load();
};
/* get user setting from localStorage */
UserSetting.prototype.load = function() {
var storage = window.localStorage;
var value = null;
var js = null;
if(storage) {
var value = storage.getItem(this.US_KEY);
if(!value) {
value = "{}"; // 空JSON文字列
}
js = JSON.parse(value);
}
return js;
}
/* store user setting */
UserSetting.prototype.set = function(key, value) {
if(!this.userSetting) {
this.userSetting = this.load();
}
var values = this.userSetting;
if(!values) {
values = { key: value };
} else {
values[key] = value;
}
var storage = window.localStorage;
if(storage) {
var val = storage.getItem(this.US_KEY);
var js = null;
if(!val) {
js = {};
} else {
js = JSON.parse(val);
}
js[key] = value;
storage.setItem(this.US_KEY, JSON.stringify(js));
var jsonStr = JSON.stringify(values);
storage.setItem(this.US_KEY, jsonStr);
}
this.userSetting = values;
};
/* grab user setting */
UserSetting.prototype.get = function(key) {
var storage = window.localStorage;
var value = null;
if(storage) {
var value = storage.getItem(this.US_KEY);
if(!value) {
return value;
}
var js = JSON.parse(value);
return js[key];
if(!this.userSetting) {
this.userSetting = this.load();
}
var values = this.userSetting;
if(values) {
return values[key];
}
return value;
return null;
};
/* show user setting object list */
UserSetting.prototype.show = function(elmid) {
......@@ -282,6 +297,9 @@ $(function () {
alert(error);
}
});
// ロード時に一旦エラー状態をクリアしておく
avwClearError();
});
/* get system setting object */
......@@ -723,18 +741,22 @@ function getByte(text) {
return count;
};
/* show system error message */
var isShowErrorMessage = false;
var hasErrorKey = 'AVW_HASERR';
function showSystemError() {
// すでに表示されていたら次は表示しない
if(isShowErrorMessage) {
if(avwHasError()) {
// すでにエラー状態であればエラーを表示しない
return;
} else {
// エラー状態にセット
avwSetErrorState();
}
// エラーメッセージの表示
// create DOM element for showing error message
var errMes = i18nText('sysErrorCallApi01');
var tags = '<div id="avw-sys-error"></div>';
$('body').prepend(tags);
//$('body').prepend(tags);
$('body').append(tags);
$('#avw-sys-error').css( {
'opacity': 0.7,
'position': 'fixed',
......@@ -742,7 +764,8 @@ function showSystemError() {
'left': '0',
'width': $(window).width(),
'height': $(window).height(),
'background': '#999'
'background': '#999',
'z-index': 90000
})
// resize error page
$(window).resize(function() {
......@@ -751,15 +774,45 @@ function showSystemError() {
'height': $(window).height()
});
});
/* show error messages */
// show error messages
$().toastmessage({ position: 'middle-center' });
$().toastmessage('showToast', {
type: 'error',
sticky: true,
text: errMes
});
/*
$().toastmessage('showToast', {
type: 'error',
sticky: true,
text: errMes,
close: function() { isShowErrorMessage = false; }
});
};
*/
};
/* エラー状態を取得 */
function avwHasError() {
var session = window.sessionStorage;
var isError = false;
if(session) {
isError = session.getItem(hasErrorKey);
}
return (isError == 'true');
}
/* エラー状態にセット */
function avwSetErrorState() {
var session = window.sessionStorage;
if(session) {
session.setItem(hasErrorKey, true);
}
}
/* エラー状態をクリア */
function avwClearError() {
var session = window.sessionStorage;
if(session) {
session.setItem(hasErrorKey, false);
}
}
/* ブラウザunload時に警告メッセージの出力設定を行う関数 */
function avwSetLogoutNortice() {
window.onbeforeunload = function(event) {
......
{
"sysErrorCallApi01":"EN:ご迷惑をおかけし申し訳ございません。<br />システムエラーが発生しました。<br />アプリケーションを終了し、管理者に連絡してください。",
"sysInfoScrLock01":"EN:長時間操作されなかったため、画面をロックしています。<br />画面をクリックしてロックを解除してください。",
"sysInfoWithoutLogout":"EN:ログアウトしておりませんが、このまま終了してもよろしいですか?\n※【注意】ログアウトしないと次回ログインできない場合がございます。",
"sysErrorCallApi01":"System error.<br/>Please close this window and contact administrator.",
"sysInfoScrLock01":"Click to unlock.",
"sysInfoWithoutLogout":"Are you sure to close this window without logout?\nIncorrect logout will cause login problem next time.",
"txtUsrCap":"User Infomation",
"txtLastLoginTime":"Last login time:",
"txtLastLoginTime":"Last login date:",
"txtOpt":"Option",
"txtOpt001":"Home default mode",
"txtHondana":"Bookself",
"txtOpt001":"Initial Screen",
"txtHondana":"Bookshelf",
"txtList":"List",
"txtOpt002":"Loop Video and Music",
"txtOpt003":"EN:マーキング",
"dspOptReset":"Restore To Default",
"txtBkResCap":"EN:サーバにバックアップ/リストア",
"txtOptBkCfm":"EN:毎回ログアウトの時、バックアップするかどうかは必ず確認する",
"txtOpt002":"Repeat movie and audio",
"txtOpt003":"Show marking when opening contents.",
"dspOptReset":"Reset",
"txtBkResCap":"Backup / Restore",
"txtOptBkCfm":"Confirm backup at every logout.",
"dspOptBk":"Backup",
"dspOptRes":"Restore",
"dspSave":"Save",
"txtBkMsg":"EN:サーバにバックアップしますか?",
"txtResMsg":"EN:サーバからリストアしますか?",
"msgPwdEmpty":"EN:パスワードが必要。",
"msgPwdOldWrong":"EN:古いパスワードが間違っています。",
"msgPwdNotMatch":"EN:パスワードが一致しません。",
"msgLoginErrWrong":"EN:ログインできません。入力情報を確認してください。(Error Code:{0})",
"dspPubDt2":"Delivery Date:",
"dspSave":"Apply",
"txtBkMsg":"Backup to server?",
"txtResMsg":"Restore from Server?",
"msgPwdEmpty":"Password is required.",
"msgPwdOldWrong":"Current Password mismatch.",
"msgPwdNotMatch":"New Password doesn't match.",
"msgLoginErrWrong":"LoginId or Password wrong: {0}",
"dspPubDt2":"Distributed Date:",
"txtPage":"Page:",
"dspDelete":"Delete",
"dspShioriDelConf":"EN:選択されているしおりを削除しますか?",
"dspRegDt":"Register Date",
"dspShioriDelConf":"Are you sure to delete bookmark?",
"dspRegDt":"Registered Date",
"dspLogin":"Login",
"dspSkip":"Skip",
"dspPwdUpd":"Change Password",
"dspPwdUpd":"Apply",
"txtLoginAccPath":"Account Path:",
"txtLoginId":"Login Id:",
"txtLoginPwd":"Password:",
"txtLoginPwdRbr":"EN:アカウントパスとログインIDを記憶する",
"txtLoginPwdRbr":"Remember Account Path and Login Id.",
"txtPwdCurr":"Current Password",
"txtPwdNew":"New Password",
"txtPwdNewRe":"EN:(再)変更パスワード",
"txtPwdRemind":"EN:スキップを選択すると、30日以内にこのメッセージが表示されせん",
"txtPwdNewRe":"Again",
"txtPwdRemind":"This message won't be shown during 30days if skip selected.",
"txtSearch":"Search",
"dspShiori":"Bookmark",
"dspSetting":"Setting",
"dspLogout":"Logout",
"txtRead":"Read",
"txtSort":"Order By",
"dspTitleNm":"Title Name",
"dspTitleNmKn":"Title Name(Kana)",
"txtPubDt":"EN:公開日",
"txtRecordNum":"EN:件",
"txtRecordTotal":"EN:件 表示",
"dspViewMore":"EN:>>次の{0}件を表示",
"txtGen":"Category",
"txtSort":"Sort",
"dspTitleNm":"Title",
"dspTitleNmKn":"Title(Kana)",
"txtPubDt":"Released Date",
"txtRecordNum":"",
"txtRecordTotal":"",
"dspViewMore":">> Next {0} contents",
"txtGen":"Genre",
"txtGr":"Group",
"txtViewDt":"View Date",
"txtViewDt":"Accessed Date",
"txtDetailPage":"Detail",
"txtCtnNm":"Content Name",
"txtTag":"Tag",
"txtContTxt":"EN:本文",
"txtLogoutBkMsg":"EN:ログアウトする前にバックアップしますか?",
"txtLogoutOptBkCfm":"EN:今回の行動を記憶し、次回から確認せずに、同じことをする。",
"dspBkOK":"EN:バックアップしてログアウト",
"dspBkCancel":"EN:バックアップしないでログアウト",
"txtSearchResult":"Search Result",
"txtContTxt":"Body Text",
"txtLogoutBkMsg":"Backup before logout?",
"txtLogoutOptBkCfm":"Remember this operation",
"dspBkOK":"Backup and Logout",
"dspBkCancel":"Logout",
"txtSearchResult":"Result",
"dspHome":"Home",
"txtLoginUser":"(Ver.20121205-1)EN:ログイン中:",
"txtLoginUser":"(Ver.20121206-1)User:",
"txtAll":"All",
"txtMkgSize":"EN:太さ",
"txtMkgS":"EN:小",
"txtMkgM":"EN:中",
"txtMkgB":"EN:大",
"txtMkgSB":"EN:特大",
"txtMkgSize":"Size",
"txtMkgS":"S",
"txtMkgM":"M",
"txtMkgB":"L",
"txtMkgSB":"LL",
"dspOK":"OK",
"dspCancel":"Cancel",
"txtMkToolBar":"EN:マーキング",
"dspPgClear":"EN:Clear this page",
"txtMkToolBar":"Marking Toolbar",
"dspPgClear":"Clear this page",
"txtColor":"Color",
"txtIndex":"Index",
"txtShioriCtnLs":"Bookmark List",
"txtTextCopy":"EN:テキストコピー",
"txtNoTextCopy":"EN:テキストがありません。",
"txtNoSearchResult":"EN:検索結果がありません。",
"msgShioriNotExists":"EN:しおりがありません。",
"msgPwdChangeOK":"EN:パスワード変更は成功しました。",
"msgPwdChangeNG":"EN:パスワード変更は失敗しましたので、すみませんが、もう一度してください。※注意:新規パスワードには英字および数字両方を含める必要があります。",
"msgSearchNotExist":"EN:条件と該当するコンテンツがありません",
"txtTooltipBack":"EN:戻る",
"txtTooltipBookmark":"EN:しおり追加・削除",
"txtTooltipShowMemo":"EN:メモ表示・非表示",
"txtTooltipAddMemo":"EN:メモ追加",
"txtTooltipShowMarking":"EN:マーキング表示・非表示",
"txtTooltipShowMarkingTool":"EN:マーキングツールバーを表示・非表示",
"msgShioriDeleted":"EN:しおりのページが削除しました。",
"dspViewHistory":"View History",
"msgLoginEmpty":"EN:入力してください",
"msgSaveOk":"EN:保存しました",
"msgPlaceHolder":"EN:キーワードを入力してください",
"txtOpt004":"EN:※コンテンツを開いた時に表示する",
"txtRestoreTitle":"EN:リストア確認",
"txtBackupTitle":"EN:バックアップ確認",
"txtResMsgNotice":"EN:※リストアしたら、現時点のローカルのデータでサーバのバックアップデータを上書きします。リストア後、元の状態に復元できませんので、ご注意ください",
"txtShioriCtnLs":"Bookmark list",
"txtTextCopy":"Copy Body Text",
"txtNoTextCopy":"No Text",
"txtNoSearchResult":"No Result",
"msgShioriNotExists":"no Bookmark",
"msgPwdChangeOK":"Success.",
"msgPwdChangeNG":"Failed.<br/>Password requires at least both of character and numeric.",
"msgSearchNotExist":"No content",
"txtTooltipBack":"Back",
"txtTooltipBookmark":"Add/Delete Bookmark",
"txtTooltipShowMemo":"Show/Hide memo",
"txtTooltipAddMemo":"Add memo",
"txtTooltipShowMarking":"Show/Hide Marking",
"txtTooltipShowMarkingTool":"Show/Hide Marking Panel",
"msgShioriDeleted":"Page was deleted.",
"dspViewHistory":"History",
"msgLoginEmpty":"Please fill empty field.",
"msgSaveOk":"Saved",
"msgPlaceHolder":"Keyword",
"txtOpt004":"Show when content will be opened.",
"txtRestoreTitle":"Restore confirmation",
"txtBackupTitle":"Backup confirmation",
"txtResMsgNotice":"This operation will override current data and all of your data will be lost.",
"dspChange":"Change",
"msgNoIndex":"EN:インデックスがありません",
"msgBackupSuccess":"EN:バックアップが正常に終了しました",
"msgBackupFailed":"EN:バックアップが失敗しました",
"msgRestoreSuccess":"EN:リストアが正常に終了しました",
"msgRestoreFailed":"EN:リストアが失敗しました",
"txtDeleteConfirmTitle":"EN:しおり削除確認",
"msgHistoryNotExist":"EN:閲覧履歴はありません。",
"msgChangePassword":"EN:パスワード変更",
"txtMemoEdit":"Edit",
"msgNoIndex":"No index.",
"msgBackupSuccess":"Backup success.",
"msgBackupFailed":"Backup failed.",
"msgRestoreSuccess":"Restore success.",
"msgRestoreFailed":"Restore failed.",
"txtDeleteConfirmTitle":"Delete confirmation",
"msgHistoryNotExist":"No history",
"msgChangePassword":"Change Password",
"txtMemoEdit":"Edit memo",
"txtMemoCopy":"Copy",
"msgPageImgErr":"EN:コンテンツを表示することができません。コンテンツが削除された可能性があります。ホーム画面に戻り異なるコンテンツを選択してください。",
"sysAppTitle":"EN:ABook閲覧ウェブ版"
"msgPageImgErr":"Unable to show contents. Maybe it was deleted at server. Back home and choose another content.",
"sysAppTitle":"ABook Viewer for Web"
}
{
"sysErrorCallApi01":"ご迷惑をおかけし申し訳ございません。<br />システムエラーが発生しました。<br />アプリケーションを終了し、管理者に連絡してください。",
"sysInfoScrLock01":"長時間操作されなかったため、画面をロックしています。<br />画面をクリックしてロックを解除してください。",
"sysInfoWithoutLogout":"ログアウトしておりませんが、このまま終了してもよろしいですか?\n※【注意】ログアウトしないと次回ログインできない場合がございます。",
"sysInfoWithoutLogout":"ログアウトしてませんが、このまま終了してもよろしいですか?\n※【注意】ログアウトしないと次回ログインできない場合がございます。",
"txtUsrCap":"ユーザ情報",
"txtLastLoginTime":"最終ログイン時間:",
"txtOpt":"オプション",
"txtOpt001":"最初の画面を選択",
"txtOpt001":"初期表示",
"txtHondana":"本棚",
"txtList":"リスト",
"txtOpt002":"動画、音楽繰り返し",
"txtOpt002":"動画・音楽を繰り返し再生する",
"txtOpt003":"マーキング",
"dspOptReset":"初期設定に戻る",
"txtBkResCap":"サーバにバックアップ/リストア",
"txtOptBkCfm":"毎回ログアウトの時、バックアップするかどうか必ず確認する",
"txtOptBkCfm":"ログアウトの時、バックアップするかどうか確認する",
"dspOptBk":"バックアップ",
"dspOptRes":"リストア",
"dspSave":"保存",
"txtBkMsg":"サーバにバックアップしますか?",
"txtResMsg":"サーバからデータを復旧しますか?※復旧すると現在のデータが上書きされます。復旧後は直前の状態に戻すことはできませんのでご注意ください。",
"msgPwdEmpty":"パスワードが必要。",
"msgPwdOldWrong":"現在のパスワードは誤りにあります。",
"txtBkMsg":"サーバにデータをバックアップしますか?",
"txtResMsg":"サーバからデータをリストアしますか?",
"msgPwdEmpty":"パスワードを入力してください",
"msgPwdOldWrong":"現在のパスワードに誤りがあります",
"msgPwdNotMatch":"変更パスワードが一致していません。",
"msgLoginErrWrong":"ログインできません。入力情報を確認してください。(エラーコード:{0})",
"dspPubDt2":"発行日:",
......@@ -45,12 +45,12 @@
"dspLogout":"ログアウト",
"txtRead":"読む",
"txtSort":"並べ替え",
"dspTitleNm":"タイトル",
"dspTitleNmKn":"タイトル名(かな)",
"dspTitleNm":"タイトル",
"dspTitleNmKn":"タイトル(カナ)",
"txtPubDt":"公開日",
"txtRecordNum":"件",
"txtRecordTotal":"件 表示",
"dspViewMore":">>次の{0}件を表示",
"dspViewMore":">> 次の{0}件を表示",
"txtGen":"ジャンル",
"txtGr":"グループ",
"txtViewDt":"閲覧日",
......@@ -61,10 +61,10 @@
"txtLogoutBkMsg":"ログアウトする前にバックアップしますか?",
"txtLogoutOptBkCfm":"今回の行動を記憶する。",
"dspBkOK":"バックアップしてログアウト",
"dspBkCancel":"バックアップしないでログアウト",
"dspBkCancel":"バックアップせずにログアウト",
"txtSearchResult":"検索結果",
"dspHome":"ホーム",
"txtLoginUser":"(Ver.20121205-1)ログイン中:",
"txtLoginUser":"(Ver.20121206-1)ログイン中:",
"txtAll":"すべて",
"txtMkgSize":"太さ",
"txtMkgS":"小",
......@@ -81,8 +81,8 @@
"txtTextCopy":"テキストコピー",
"txtNoTextCopy":"テキストがありません。",
"txtNoSearchResult":"検索結果がありません。",
"msgShioriNotExists":"しおりがありません",
"msgPwdChangeOK":"パスワード変更は成功しました。",
"msgShioriNotExists":"しおりがありません",
"msgPwdChangeOK":"パスワードを変更しました。",
"msgPwdChangeNG":"パスワード変更に失敗しました。再入力してください。※注意:新規パスワードには英字および数字両方を含める必要があります。",
"msgSearchNotExist":"条件に該当するコンテンツがありません。",
"txtTooltipBack":"戻る",
......@@ -93,24 +93,24 @@
"txtTooltipShowMarkingTool":"マーキングツールバーを表示・非表示",
"msgShioriDeleted":"ページが削除しました。",
"dspViewHistory":"閲覧履歴",
"msgLoginEmpty":"入力してください",
"msgLoginEmpty":"ログイン情報を入力してください",
"msgSaveOk":"保存しました",
"msgPlaceHolder":"キーワードを入力してください",
"txtOpt004":"※コンテンツを開いた時に表示する",
"txtRestoreTitle":"リストア確認",
"txtBackupTitle":"バックアップ確認",
"txtResMsgNotice":"※リストアしたら、現時点のローカルのデータでサーバのバックアップデータを上書きします。リストア後、元の状態に復元できませんので、ご注意ください",
"txtResMsgNotice":"※リストアすると、現時点のローカルのデータでサーバのバックアップデータを上書きします。リストア後、元の状態に復元できませんので、ご注意ください",
"dspChange":"変更",
"msgNoIndex":"インデックスがありません",
"msgBackupSuccess":"バックアップが正常に終了しました",
"msgBackupFailed":"バックアップ失敗しました",
"msgBackupFailed":"バックアップ失敗しました",
"msgRestoreSuccess":"リストアが正常に終了しました",
"msgRestoreFailed":"リストア失敗しました",
"msgRestoreFailed":"リストア失敗しました",
"txtDeleteConfirmTitle":"しおり削除確認",
"msgHistoryNotExist":"閲覧履歴はありません。",
"msgChangePassword":"パスワード変更",
"txtMemoEdit":"編集",
"txtMemoCopy":"コピー",
"msgPageImgErr":"コンテンツを表示することができません。コンテンツが削除された可能性があります。ホーム画面に戻り異なるコンテンツを選択してください。",
"msgPageImgErr":"コンテンツを表示することができません。コンテンツが削除された可能性があります。ホーム画面に戻り異なるコンテンツを選択してください。",
"sysAppTitle":"ABook閲覧ウェブ版"
}
{
"sysErrorCallApi01":"시스템 에러가 발생했습니다. 이용에 불편을 드려 죄송합니다.",
"sysInfoScrLock01":"장시간 조작이 없었으므로, 화면이 잠겼습니다.<br/>잠김을 해제하려면 화면을 클릭하십시오.",
"sysInfoWithoutLogout":"로그아웃하지 않은 상태로 창을 닫으면, 다음에 로그인되지 않는 경우도 있습니다. 이대로 창을 닫으시겠습니까?",
"sysInfoWithoutLogout":"로그아웃하지 않은 상태로 창을 닫으면, 다음에 로그인되지 않는 경우도 있습니다. 이대로 창을 닫으시겠습니까?\n(이 메세지는 브라우저를 '새로 고침' 할 때에도 표시됩니다.)",
"txtUsrCap":"사용자 정보",
"txtLastLoginTime":"최종 로그인 시간:",
"txtOpt":"옵션",
"txtOpt001":"기본 화면 선택",
"txtHondana":"갤러리",
"txtHondana":"그리드",
"txtList":"리스트",
"txtOpt002":"동영상, 음악 반복 재생",
"txtOpt003":"마킹",
......@@ -18,7 +18,7 @@
"dspOptRes":"복원",
"dspSave":"저장",
"txtBkMsg":"서버에 백업하시겠습니까?",
"txtResMsg":"서버에서 복원하시겠습니까? ※복원하면, 사용자 디바이스(PC, 태블릿 등)에 저장된 데이터를 서버의 데이터로 덮어씁니다. 복원 후 취소할 수 없습니다.",
"txtResMsg":"기존에 서버에 백업한 데이터를 복원하시겠습니까?",
"msgPwdEmpty":"패스워드를 입력해 주십시오.",
"msgPwdOldWrong":"기존 패스워드를 바르게 입력해 주십시오.",
"msgPwdNotMatch":"신규 패스워드와 신규 패스워드 확인이 일치하지 않습니다.",
......@@ -64,7 +64,7 @@
"dspBkCancel":"로그아웃",
"txtSearchResult":"검색 결과",
"dspHome":"홈",
"txtLoginUser":"(Ver.20121205-1)로그인 중:",
"txtLoginUser":"(Ver.20121206-1)로그인 중:",
"txtAll":"전체",
"txtMkgSize":"두께",
"txtMkgS":"소",
......@@ -83,7 +83,7 @@
"txtNoSearchResult":"검색 결과가 없습니다.",
"msgShioriNotExists":"북마크가 없습니다.",
"msgPwdChangeOK":"패스워드가 변경되었습니다.",
"msgPwdChangeNG":"패스워드를 변경하지 못했습니다. 다시 시도하시기 바랍니다.※주의 : 패스워드에는 영/숫자를 1개 이상씩 사용해야 합니다.",
"msgPwdChangeNG":"패스워드를 변경하지 못했습니다. 다시 시도하시기 바랍니다.<br/>※주의 : 패스워드에는 영/숫자를 1개 이상씩 사용해야 합니다.",
"msgSearchNotExist":"조건에 맞는 컨텐츠가 없습니다.",
"txtTooltipBack":"뒤로 가기",
"txtTooltipBookmark":"북마크 추가/삭제",
......@@ -93,13 +93,13 @@
"txtTooltipShowMarkingTool":"마킹 툴바 표시/비표시",
"msgShioriDeleted":"북마크한 페이지가 삭제되었습니다.",
"dspViewHistory":"열람 이력",
"msgLoginEmpty":"입력해 주십시오.",
"msgLoginEmpty":"로그인 정보를 입력해 주십시오.",
"msgSaveOk":"저장했습니다.",
"msgPlaceHolder":"키워드를 입력해 주십시오.",
"txtOpt004":"컨텐츠를 열 때 표시",
"txtRestoreTitle":"복원 확인",
"txtBackupTitle":"백업 확인",
"txtResMsgNotice":"서버에서 복원하시겠습니까? ※복원하면, 사용자 디바이스(PC, 태블릿 등)에 저장된 데이터를 서버의 데이터로 덮어씁니다. 복원 후 취소할 수 없습니다.",
"txtResMsgNotice":"※복원하면, 사용자 디바이스(PC, 태블릿 등)에 저장된 데이터를 마지막으로 백업한 데이터로 덮어씁니다. 복원 후 취소할 수 없습니다.",
"dspChange":"변경",
"msgNoIndex":"목차가 없습니다.",
"msgBackupSuccess":"백업했습니다.",
......@@ -108,9 +108,9 @@
"msgRestoreFailed":"복원을 실패했습니다.",
"txtDeleteConfirmTitle":"북마크 삭제 확인",
"msgHistoryNotExist":"열람 이력이 없습니다.",
"msgChangePassword":"패스워드 변경",
"msgChangePassword":"패스워드 변경를 변경해 주십시오.",
"txtMemoEdit":"편집",
"txtMemoCopy":"복사",
"msgPageImgErr":"KO:コンテンツを表示することができません。コンテンツが削除された可能性があります。ホーム画面に戻り異なるコンテンツを選択してください。",
"sysAppTitle":"KO:ABook閲覧ウェブ版"
"msgPageImgErr":"컨텐츠를 표시할 수 없습니다. 이 컨텐츠는 삭제되었을 가능성이 있습니다.",
"sysAppTitle":"ABook : 멀티미디어 컨텐츠 플랫폼"
}
......@@ -1081,6 +1081,8 @@
}
}else{
/* fit page */
screenFit();
ClientData.IsAddingMarking(true);
ClientData.IsDisplayMarking(true);
......@@ -1100,8 +1102,7 @@
/* draw again */
drawCanvas();
/* fit page */
screenFit();
displayCanvasDraw();
disableAllControl();
......@@ -1216,7 +1217,11 @@
$('#lastpage').unbind('click');
$('#zoomfit').unbind('click');
$('#zoomin').unbind('click');
$('#zoomout').unbind('click');
$('#zoomin').removeClass();
$('#zoomin').addClass('expansion_off');
$('#zoomout').unbind('click');
$('#zoomout').removeClass();
$('#zoomout').addClass('reduction_off');
$("#slider_page").slider( "option", "disabled", true );
disable('#txtSearch','#txtSlider');
......@@ -1245,8 +1250,8 @@
$("#nextpage").css('cursor', 'pointer');
$("#lastpage").css('cursor', 'pointer');
$("#zoomfit").css('cursor', 'pointer');
$("#zoomin").css('cursor', 'pointer');
$("#zoomout").css('cursor', 'pointer');
// $("#zoomin").css('cursor', 'pointer');
// $("#zoomout").css('cursor', 'pointer');
$("#control_screen").css('cursor', 'pointer');
$("#control_screen_2").css('cursor', 'pointer');
$("#slider_page").css('cursor', 'pointer');
......@@ -1335,8 +1340,12 @@
$('#nextpage').bind('click',nextPage_click);
$('#lastpage').bind('click',lastPage_click);
$('#zoomfit').bind('click',screenFit);
$('#zoomin').bind('click',zoomIn);
$('#zoomout').bind('click',zoomOut);
// $('#zoomin').bind('click',zoomIn);
// $('#zoomin').addClass('expansion');
// $("#zoomin").css('cursor', 'pointer');
// $('#zoomout').bind('click',zoomOut);
// $('#zoomout').addClass('reduction');
// $("#zoomout").css('cursor', 'pointer'); checkDisableButtonZoom();
$( "#slider_page" ).slider( "option", "disabled", false );
enable('#txtSearch','#txtSlider');
......@@ -1921,8 +1930,15 @@
}else{
/* create data on dialog */
$('#divCopyText').children().remove();
//$('#divCopyText').append('<li class="last">' + sPageText + '</li>');
$('#divCopyText').append('<label class="last" style="word-wrap:break-word">' +sPageText+ '</label>');
//$('#divCopyText').append('<li class="last">' + sPageText + '</li>');
var strPattern = "\n";
var strTemp = sPageText;
strTemp = strTemp.replace(strPattern, "<br/>");
strTemp += "<br/>";
$('#divCopyText').append('<div class="last" id="txtTextCopy" style="word-wrap:break-word">' + strTemp + '</div>');
/* display dialog */
// $("#divCopyText").dialog({
// show: "blind",
......@@ -3341,7 +3357,9 @@ function oldContent_Back(){
/* handle from bookmark page */
handleFromBookMarkPage();
trackTransforms(context_main);
nAjaxLoad = 0;
......
......@@ -911,6 +911,14 @@ aside.bookmarkBox label{
line-height:15px;
vertical-align:middle;
}
aside.bookmarkBox div{
padding:4px;
border-bottom:solid 1px #444;
overflow:hidden;
font-size:11px;
line-height:15px;
vertical-align:middle;
}
aside.bookmarkBox li .imgbox{
/*
......@@ -1079,6 +1087,9 @@ aside.bookmarkBox .last{
.sizing .reduction {width:56px;background-position:-117px 0;}
.sizing a:hover.reduction {background-position:-117px -33px;}
.sizing .expansion_off {width:59px;background-position:0 0;}
.sizing .reduction_off {width:56px;background-position:-117px 0;}
/*----------------------------*/
/* 14. toolbar setting */
/*----------------------------*/
......
......@@ -1205,16 +1205,23 @@ function mouseMove_canvasMain(event){
mx = event.targetTouches[0].pageX - px;
my = event.targetTouches[0].pageY - py;
}
// scaling
var sx = (destRect.right - destRect.left) / (srcRect.right - srcRect.left);
var sy = (destRect.bottom - destRect.top) / (srcRect.bottom - srcRect.top);
// var sx = (destRect.right - destRect.left) / (srcRect.right - srcRect.left);
// var sy = (destRect.bottom - destRect.top) / (srcRect.bottom - srcRect.top);
var sx = 1 / userScale;
var sy = 1 / userScale;
// calc scaling moving distance
moveX = Math.round(-mx * sx);
moveY = Math.round(-my * sy);
// store current mouse point
if (avwUserEnvObj.os != "ipad" && avwUserEnvObj.os != "android") {
px = event.pageX;
......@@ -1228,6 +1235,37 @@ function mouseMove_canvasMain(event){
flip();
zoomVideo();
// lastX = event.offsetX || (event.pageX - canvas_main.offsetLeft);
// lastY = event.offsetY || (event.pageY - canvas_main.offsetTop);
//
// if (dragStart){
// var pt = context_main.transformedPoint(lastX,lastY);
//
//
//
// if(yPos < maxposY){
// xPos += pt.x-dragStart.x;
// yPos += pt.y-dragStart.y;
//
// context_main.translate(pt.x-dragStart.x,pt.y-dragStart.y);
//
// // Clear the entire canvas
// var p1 = context_main.transformedPoint(0,0);
// var p2 = context_main.transformedPoint(canvas_main.width,canvas_main.height);
// context_main.clearRect(p1.x,p1.y,p2.x-p1.x,p2.y-p1.y);
//
// flip();
// }else{
//
// }
//
//
//
//
// }
}
var cwMain = $('#main').width();
......@@ -1295,12 +1333,18 @@ function mouseDown_CanvasMain(event){
py = event.targetTouches[0].pageY;
}
// document.body.style.mozUserSelect = document.body.style.webkitUserSelect = document.body.style.userSelect = 'none';
// lastX = event.offsetX || (event.pageX - canvas_main.offsetLeft);
// lastY = event.offsetY || (event.pageY - canvas_main.offsetTop);
// dragStart = context_main.transformedPoint(lastX,lastY);
}
function mouseUp_CanvasMain(event){
moveFlag = false;
}
/* View Component setDefaultEvent */
function setDefaultEvent() {
document.getElementById('main').addEventListener('click',onClick_CanvasMain,false);
......@@ -1779,6 +1823,25 @@ function flip() {
var size = canvas.height / height;
height = canvas.height;
width = width * size;
}
if(userScale != 1 && width < canvas.width){
width = width * userScale;
if(width > canvas.width){
//var size = canvas.width / width;
width = canvas.width;
//height = height * size;
}
}else if(userScale != 1 && height < canvas.height){
height = width * userScale;
if(height > canvas.height){
//var size = canvas.height / height;
height = canvas.height;
//width = width * size;
}
}
var destX = 0, destY = 0;
......@@ -1801,6 +1864,8 @@ function flip() {
destRect = new Rect(destX, destY, width, height);
/* get position for drawing canvas*/
if(isFirstLoad == true){
nPositionCanvas.left = destRect.left;
......@@ -1822,14 +1887,17 @@ function flip() {
scaleX = offscreen.width / width;
scaleY = offscreen.height / height;
// draw canvas
context.clearRect(0, 0, canvas.width, canvas.height);
context.save();
context.drawImage(offscreen,
srcRect.left, srcRect.top, srcRect.right - srcRect.left, srcRect.bottom - srcRect.top,
destRect.left, destRect.top, width, height);
context.restore();
};
/* mediaType = 1 and actionType = 0 linkURL object*/
......@@ -2443,7 +2511,12 @@ function sizingNotFull(width, height) {
.css('top', marginY);
}
$("#draw_canvas").css('cursor', 'default');
$("#draw_canvas").css('cursor', 'default');
if(userScale !=1){
changeScale(userScale);
flip();
}
};
/* Adjust Component size */
......@@ -2463,6 +2536,10 @@ function sizingFullSize(width, height) {
$("#draw_canvas").css('cursor', 'default');
if(userScale !=1){
changeScale(userScale);
flip();
}
};
/* zoom video */
......@@ -2505,9 +2582,78 @@ function zoomVideo(){
}
}
var scaleFactor = 1.1;
var zoom = function(clicks){
var pt = context_main.transformedPoint(lastX,lastY);
context_main.translate(lastX,lastY);
var factor = Math.pow(scaleFactor,clicks);
context_main.scale(factor,factor);
maxposY += canvas_main.width * (factor - 1);
context_main.translate(-lastX,-lastY);
}
// Adds ctx.getTransform() - returns an SVGMatrix
// Adds ctx.transformedPoint(x,y) - returns an SVGPoint
function trackTransforms(ctx){
var svg = document.createElementNS("http://www.w3.org/2000/svg",'svg');
var xform = svg.createSVGMatrix();
ctx.getTransform = function(){ return xform; };
var savedTransforms = [];
var save = ctx.save;
ctx.save = function(){
savedTransforms.push(xform.translate(0,0));
return save.call(ctx);
};
var restore = ctx.restore;
ctx.restore = function(){
xform = savedTransforms.pop();
return restore.call(ctx);
};
var scale = ctx.scale;
ctx.scale = function(sx,sy){
xform = xform.scaleNonUniform(sx,sy);
return scale.call(ctx,sx,sy);
};
var rotate = ctx.rotate;
ctx.rotate = function(radians){
xform = xform.rotate(radians*180/Math.PI);
return rotate.call(ctx,radians);
};
var translate = ctx.translate;
ctx.translate = function(dx,dy){
xform = xform.translate(dx,dy);
return translate.call(ctx,dx,dy);
};
var transform = ctx.transform;
ctx.transform = function(a,b,c,d,e,f){
var m2 = svg.createSVGMatrix();
m2.a=a; m2.b=b; m2.c=c; m2.d=d; m2.e=e; m2.f=f;
xform = xform.multiply(m2);
return transform.call(ctx,a,b,c,d,e,f);
};
var setTransform = ctx.setTransform;
ctx.setTransform = function(a,b,c,d,e,f){
xform.a = a;
xform.b = b;
xform.c = c;
xform.d = d;
xform.e = e;
xform.f = f;
return setTransform.call(ctx,a,b,c,d,e,f);
};
var pt = svg.createSVGPoint();
ctx.transformedPoint = function(x,y){
pt.x=x; pt.y=y;
return pt.matrixTransform(xform.inverse());
}
}
/* zoomIn event */
function zoomIn() {
userScale += scaleDelta;
userScale += scaleDelta;
if(userScale > 4){
userScale = 4;
......@@ -2516,11 +2662,47 @@ function zoomIn() {
changeScale(userScale);
flip();
/* zoom video */
zoomVideo();
zoomVideo();
checkDisableButtonZoom();
};
function checkDisableButtonZoom(){
if(userScale >= 4){
$('#zoomin').unbind('click');
$('#zoomin').removeClass();
$('#zoomin').addClass('expansion_off');
$("#zoomin").css('cursor', 'default');
}else{
$('#zoomin').unbind('click');
$('#zoomin').bind('click',zoomIn);
$('#zoomin').removeClass();
$('#zoomin').addClass('expansion');
$("#zoomin").css('cursor', 'pointer');
}
if(userScale <= 1){
$('#zoomout').unbind('click');
$('#zoomout').removeClass();
$('#zoomout').addClass('reduction_off');
$("#zoomout").css('cursor', 'default');
}else{
$('#zoomout').unbind('click');
$('#zoomout').bind('click',zoomOut);
$('#zoomout').removeClass();
$('#zoomout').addClass('reduction');
$("#zoomout").css('cursor', 'pointer');
}
}
/* zoomOut event */
function zoomOut() {
userScale -= scaleDelta;
......@@ -2533,6 +2715,8 @@ function zoomOut() {
/* zoom video */
zoomVideo()
checkDisableButtonZoom();
};
/* restore screen size */
......@@ -2540,16 +2724,18 @@ function screenFit() {
var canvas = document.getElementById('main');
var offScreen = document.getElementById('offscreen');
context_main.clearRect(0,0,canvas_main.width,canvas_main.height);
srcRect = new Rect(0, 0, offScreen.width, offScreen.height);
userScale = 1;
moveX = 0;
moveY = 0;
moveY = 0;
flip();
/* zoom video */
zoomVideo();
checkDisableButtonZoom();
};
......@@ -2561,21 +2747,64 @@ function changeScale(scale) {
var sc = srcRect.center();
var sw = offScreen.width, sh = offScreen.height;
sw /= scale;
sh /= scale;
// srcRect.left = sc.x - Math.floor(sw / 2);
// srcRect.top = sc.y - Math.floor(sh / 2);
// srcRect.right = srcRect.left + sw;
// srcRect.bottom = srcRect.top + sh;
// srcRect.width = sw;
// srcRect.height = sh;
var width = offscreen.width;
var height = offscreen.height;
var aspect = offscreen.width / offscreen.height;
if(canvas.width > canvas.height) {
height = canvas.height;
width = height * aspect;
if(width > canvas.width) {
width = canvas.width;
height = width / aspect;
}
if(height > canvas.height){
height = canvas.height;
width = height / aspect;
}
} else {
width = canvas.width;
height = width / aspect;
}
if(width < canvas.width){
//if(width >= height){
width = width * scale;
if(width > canvas.width){
sw /= scale;
sh = sw / (canvas.width / canvas.height);
}else{
sh /= scale;
}
//}else if(height <= canvas.height){
} else if(height < canvas.height){
height = height * scale;
if(height > canvas.height){
sh /= scale;
sw = sh / (canvas.height / canvas.width);
}else{
sw /= scale;
}
}else{
sh /= scale;
sw /= scale;
}
srcRect.left = sc.x - Math.round(sw / 2);
srcRect.top = sc.y - Math.round(sh / 2);
srcRect.right = Math.round(srcRect.left + sw);
srcRect.bottom = Math.round(srcRect.top + sh);
srcRect.width = srcRect.right - srcRect.left;
srcRect.height = srcRect.bottom - srcRect.top;
srcRect.height = srcRect.bottom - srcRect.top;
};
/* change Scale screen*/
......
......@@ -91,15 +91,28 @@ function bodyClickFunction(event) {
// Check mouse is in rectangle of searching panel
if ($('#header-searchbox').css('display') != "none") {
if (event.targetTouches[0].clientX >= $('#header-searchbox').position().left
&& event.targetTouches[0].clientX <= ($('#header-searchbox').position().left + $('#header-searchbox').width())
&& event.targetTouches[0].clientY >= $('#header-searchbox').position().top
&& event.targetTouches[0].clientY <= ($('#header-searchbox').position().top + $('#header-searchbox').height())) {
isHoverOn = true;
var currPosX, currPosY;
var avwUserEnvObj = new UserEnvironment();
if (avwUserEnvObj.os == 'android') {
//$("#searchbox-key").val(event.targetTouches[0].pageX + "_" + $('#header-searchbox').position().left + ":" + ($('#header-searchbox').position().left + $('#header-searchbox').width()));
currPosX = event.targetTouches[0].pageX;
currPosY = event.targetTouches[0].pageY;
}
else {
currPosX = event.targetTouches[0].clientX;
currPosY = event.targetTouches[0].clientY;
}
if (currPosX >= $('#header-searchbox').position().left
&& currPosX <= ($('#header-searchbox').position().left + $('#header-searchbox').width())
&& currPosY >= $('#header-searchbox').position().top
&& currPosY <= ($('#header-searchbox').position().top + $('#header-searchbox').height())) {
isHoverOn = true;
}
else {
isHoverOn = false;
$('#header-searchbox').hide();
}
......
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