Source: singleRecordForm.view.mixin-1.0.0.js

/***********************************************
 * Framework Name  :  Halu
 * (c) 2025 TILLS & Co.
 * --------------------------------------------
 * 単票登録(単一テーブル)パターン
 * ビューミックスイン
***********************************************/

(function ($, $H) {
  // 名前空間を設定する
  let App = $H.Library;

  /**
   * 関数を追加する
   * @mixin SingleRecordFormViewMixin
   */
  App.SingleRecordFormViewMixin = {

    /**
     * テンプレートのロードおよび各ダイアログの初期処理を実行する
     * 
     * @memberof SingleRecordFormViewMixin
     * @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 SingleRecordFormViewMixin
     * @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 SingleRecordFormViewMixin
     * @param {object} arg  - ユーザ名称、ログイン時刻、ログイン和暦
     */
    setログイン情報: function (arg) {
      $H.log("View setログイン情報 : start");

      $("#ユーザ氏名").html(arg["ユーザ名称"]);
      $("#ログイン日時").html(arg["ログイン時刻"]);

      if (arg["ログイン和暦"] != "") {
        $("#ログイン和暦").html(arg["ログイン和暦"]);
      }

      $H.log("View setログイン情報 : end");
    },

    /**
     * 処理モードに応じて実行ボタンの表示およびタイトルを切り替える<br>
     * モード切替による画面遷移の場合はモード切替を非表示にする<br>
     * 
     * @memberof SingleRecordFormViewMixin
     * @param {object} arg - 処理モード、前画面名
     */
    showヘッダータイトル: function (arg) {
      $H.log("View showヘッダータイトル : start");

      let w_title = $("#ヘッダータイトル").html();
      let titleArray = w_title.split(" ");
      let title = titleArray[0];

      let mode = arg["処理モード"];

      switch (mode) {
        case "select":
          title += " (照会)";
          $("#実行").hide();
          break;
        case "insert":
          title += " (新規)";
          $("#実行").show();
          break;
        case "convert":
          title += " (複製)";
          $("#実行").show();
          break;
        case "update":
          title += " (訂正)";
          $("#実行").show();
          break;
        case "delete":
          title += " (削除)";
          $("#実行").show();
      }

      $("#ヘッダータイトル").html(title);

      if ($("#モード切替")) {
        let beforHtmlName = this.appspec.beforename;
        if (beforHtmlName == arg["前画面名"]) {
          $("#モード切替").hide();
        }
      }

      $H.log("View showヘッダータイトル : end");
    },

    /**
     * データセットの内容を画面へ表示する
     * 
     * @memberof SingleRecordFormViewMixin
     * @param {object} arg - 処理モード、前画面名、データセット
     */
    on初期処理: function (arg) {
      $H.log("View on初期処理 : start");

      let dataSet = arg["データセット"];

      // テーブルの空行を作成する
      let detailInfo = this.appspec.getJSONChunkByIdAtRecords(dataSet, "detail");
      if (detailInfo === undefined) {
      }
      else {
        if (detailInfo["multiline"] == "yes") {
          this.resetJsonDataToTable("#mainTable", dataSet, "detail");
        }
      }

      $H.log("View on初期処理 : end");
    },

    /**
     * 空行追加後のデータセットの内容を画面へ表示する
     * 
     * @memberof SingleRecordFormViewMixin
     * @param {object} dataSet - 行追加済のデータセット
     */
    on行追加クリック: function (dataSet) {
      $H.log("View on行追加クリック : start");

      this.resetJsonDataToTable("#mainTable", dataSet, "detail");

      $H.log("View on行追加クリック : end");
    },

    /**
     * データセットの内容を画面に表示する
     * 
     * @memberof SingleRecordFormViewMixin
     * @param {object} dataset - データセット
     * @param {object} responseData - レスポンスデータ
     * @param {object} mode - 処理モード
     */
    on照会OfEditResponseData: function (dataSet, responseData, mode) {
      $H.log("View on照会OfEditResponseData : start");

      // テーブル以外の項目(ヘッダー・フッター)にデータを表示する
      this.fromJsonDataToView(dataSet);

      // テーブルにデータを表示する
      let detailInfo = this.appspec.getJSONChunkByIdAtRecords(dataSet, "detail");
      if (detailInfo === undefined) {
      }
      else {
        if (detailInfo["multiline"] == "yes") {
          this.resetJsonDataToTable("#mainTable", dataSet, "detail");
        }
      }

      $H.log("View on照会OfEditResponseData : end");
    },
    
    /**
     * データセットの内容を画面に表示する
     * 
     * @memberof SingleRecordFormViewMixin
     * @param {object} dataset - データセット
     * @param {object} responseData - レスポンスデータ
     * @param {object} mode - 処理モード
     */
    on登録OfEditResponseData: function (dataSet, responseData, mode) {
      $H.log("View on登録OfEditResponseData : start");

      this.on照会OfEditResponseData(dataSet, responseData, mode);

      $H.log("View on登録OfEditResponseData : end");
      return dataSet;
    },
    
    /**
     * データセットの内容を画面に表示する
     * 
     * @memberof SingleRecordFormViewMixin
     * @param {object} dataset - データセット
     * @param {object} responseData - レスポンスデータ
     * @param {object} mode - 処理モード
     */
    on訂正OfEditResponseData: function (dataSet, responseData, mode) {
      $H.log("View on訂正OfEditResponseData : start");

      this.on照会OfEditResponseData(dataSet, responseData, mode);

      $H.log("View on訂正OfEditResponseData : end");
    },
    
    /**
     * データセットの内容を画面に表示する
     * 
     * @memberof SingleRecordFormViewMixin
     * @param {object} dataset - データセット
     * @param {object} responseData - レスポンスデータ
     * @param {object} mode - 処理モード
     */
    on削除OfEditResponseData: function (dataSet, responseData, mode) {
      $H.log("View on削除OfEditResponseData : start");

      this.on照会OfEditResponseData(dataSet, responseData, mode);

      $H.log("View on削除OfEditResponseData : end");
    }

  };
}(jQuery, Halu));