/***********************************************
* Framework Name : Halu
* (c) 2025 TILLS & Co.
* --------------------------------------------
* 一覧登録(単一テーブル)パターン
* ビューミックスイン
***********************************************/
(function ($, $H) {
// 名前空間を設定する
let App = $H.Library;
/**
* 関数を追加する
* @mixin SingleTableListFormViewMixin
*/
App.SingleTableListFormViewMixin = {
/**
* CSSの適用と各種ダイアログの初期処理を実施する
*
* @memberof SingleTableListFormViewMixin
* @param {object} dataset - データセット
*/
initExecute: function (dataset) {
$H.log("View initExecute : start");
this.initテンプレートロード();
this.initAlertDialog(); // 警告メッセージ用ダイアログ 初期処理
this.initConfirmDialog(this); // 確認メッセージ用ダイアログ 初期処理
this.initExecuteDialog(this); // 実行確認メッセージ用ダイアログ 初期処理
this.initServerDialog(this); // サーバ確認メッセージ用ダイアログ 初期処理
$H.log("View initExecute : end");
},
/**
* CSSファイル名をセッションストレージから取得し、現在の画面に適用する
*
* @memberof SingleTableListFormViewMixin
* @param - なし
*/
initテンプレートロード: function () {
$H.log("View initテンプレートロード : start");
// CSSファイル名をセッションストレージから取得しロードする
sessionStorage.setIdName(this.appspec.sysname + ".Login");
let cssName = sessionStorage.loadItem("CSSファイル名");
if (cssName) {
let arg = { cssName: cssName };
this.appendCSS(arg);
}
$('body').fadeIn("normal");
$H.log("View initテンプレートロード : end");
},
/**
* ページヘッダー部にあるログイン情報を表示する
*
* @memberof SingleTableListFormViewMixin
* @param {Object} arg - 画面情報(ログイン情報)
*/
setログイン情報: function (arg) {
$H.log("View setログイン情報 : start");
$("#ログイン和暦").html(arg["ログイン和暦"]);
$("#ログイン日時").html(arg["ログイン時刻"]);
$("#ユーザ氏名").html(arg["ユーザ名称"]);
$H.log("View setログイン情報 : end");
},
/**
* 初期処理を実施(処理なし) ※必要な場合は処理を追加
*
* @memberof SingleTableListFormViewMixin
* @param {Object} arg - 画面情報
*/
on初期処理: function (arg) {
$H.log("View on初期処理 : start");
$H.log("View on初期処理 : end");
},
/**
* 検索項目をクリアする<br>
*
* @memberof SingleTableListFormViewMixin
* @param {Object} dataSet - データセット
*/
onクリア: function (dataSet) {
$H.log("View onクリア : start");
// 検索項目をクリアする
this.setFromDatasetToViewWithSessionStorageOfHeader(dataSet);
$H.log("View onクリア : end");
},
/**
* データセットの明細データを画面の明細テーブルに表示する
*
* @memberof SingleTableListFormViewMixin
* @param {Object} dataSet - データセット
*/
on行追加クリック: function (dataSet) {
$H.log("View on行追加クリック : start");
this.resetJsonDataToTable("#mainTable", dataSet, "detail");
$H.log("View on行追加クリック : end");
},
/**
* 指定された行番号のチェックボックスをチェックONにする<br>
* 他の行に対してはチェックOFFにする<br>
*
* @memberof SingleTableListFormViewMixin
* @param {String} name - 項目名
* @param {number} index - 行のindex
*/
on行チェック: function (name, index) {
$H.log("View on行チェック : start");
let object = $("." + name)
let maxSize = object.length;
for (let i = 0; i < maxSize; i++) {
if (i == index) {
$(object[i]).prop("checked", true);
}
else {
$(object[i]).prop("checked", false);
}
}
$H.log("View on行チェック : end");
},
/**
* 選択された行に背景色を設定し、他の行に対しては背景色を元に戻す
*
* @memberof SingleTableListFormViewMixin
* @param {Object} arg - 画面項目
*/
onテーブル行クリック: function (arg) {
$H.log("View onテーブル行クリック : start");
let clickRow = arg["クリック行"];
// セッションストレージに識別名を保存する
sessionStorage.setIdName(this.appspec.sysname + "." + this.appspec.name);
// 選択行にCSSクラスを設定する
let j, k;
let beforeRow = sessionStorage.loadItem("クリック行");
let rows = $("#mainTable")[0].rows;
jQuery.each(rows, function (j) {
k = j;
let cells = rows[j].cells;
jQuery.each(cells, function () {
if (k == beforeRow) {
$(this).removeClass("rowBackground");
}
if (k == clickRow) {
$(this).addClass("rowBackground");
}
});
});
sessionStorage.saveItem("クリック行", clickRow);
$H.log("View onテーブル行クリック : end");
},
/**
* レスポンスデータの内容を画面に表示する<br>
* 削除チェックボックスが明細テーブルに存在する場合は、チェックOFFにする<br>
*
* @memberof SingleTableListFormViewMixin
* @param {Object} dataSet - データセット
* @param {Object} responseData - レスポンスデータ
* @param {String} mode - 処理モード
*/
on照会OfEditResponseData: function (dataSet, responseData, mode) {
$H.log("View on照会OfEditResponseData : start");
this.fromJsonDataToView(responseData);
this.resetJsonDataToTable("#mainTable", dataSet, "detail");
// 削除チェックボックスに値を設定する
let deleteCheckBox = $(".削除");
let maxSize = deleteCheckBox.length;
for (let i = 0; i < maxSize; i++) {
$(deleteCheckBox[i]).prop("checked", false);
}
$H.log("View on照会OfEditResponseData : end");
}
};
}(jQuery, Halu));