マルチカラム内の縦向き固定テーブルのデータ構造の変更

最終更新日:2024.09.18 公開日:2023.10.24

マルチカラムの中で縦向き固定テーブルを利用している場合は multiField v2 のフィールドを v3 へアップグレードする前に以下をよくお読みください。

type: 'multi-column' の中に「縦向き固定テーブル」( type: 'table-vertical-fixed' )がある場合、下記のように、その縦向き固定テーブル内の各フィールドのデータがマルチカラムのデータ直下に保存されるバグがありました。

// マルチフィールドを適用するコード
(function ($) {
    mtapp.multiField({
        version: 2,
        id: 348,
        label: 'マルチカラム',
        fieldBlocks: {
            tableVerticalFixed: {
                type: 'table-vertical-fixed',
                label: '縦向き固定テーブル',
                data: {},
                fields: ['text', 'select', 'image']
            },
            multiColumn: {
                type: 'multi-column',
                label: 'マルチカラム',
                data: {},
                columns: [{ col: 12, class: '', label: '', description: '', fields: ['h2', 'tableVerticalFixed'] }]
            }
        },
        fieldGroups: [['multiColumn']]
    });
})(jQuery);

// 保存されるデータ
{
  "items": [
    {
      "data": {
        "h2": "見出し",
        "text": "縦向き固定テーブル内1行テキスト",
        "select": "apple",
        "image": {
          "id": "669",
          "url": "/mt7/mtappjquery-qa/tinybeans.png",
          "thumbnail": "/mt7/mtappjquery-qa/assets_c/2023/05/tinybeans-thumb-120xauto-669.png?ts=20230530185852",
          "alt": "縦向き固定テーブル画像alt"
        }
      },
      "handle": "multiColumn",
      "id": "yGLCxkSJ"
    }
  ],
  "version": 2,
  "ts": 1699842128098
}

これをマルチカラムの data の中の縦向き固定テーブルのフィールドハンドル以下に収めるように変更しました。

// マルチフィールドを適用するコード
(function ($) {
    mtapp.multiField({
        version: 3, // 3に変更
        id: 48,
        label: 'マルチカラム',
        fieldBlocks: {
            tableVerticalFixed: {
                type: 'table-vertical-fixed',
                label: '縦向き固定テーブル',
                data: {},
                fields: ['text', 'select', 'image']
            },
            multiColumn: {
                type: 'multi-column',
                label: 'マルチカラム',
                data: {},
                columns: [{ col: 12, class: '', label: '', description: '', fields: ['h2', 'tableVerticalFixed'] }]
            }
        },
        fieldGroups: [['multiColumn']]
    });
})(jQuery);


// 保存されるデータ
{
  "items": [
    {
      "data": {
        "h2": "見出し",
        "tableVerticalFixed": {
          "text": "縦向き固定テーブル内1行テキスト",
          "select": "apple",
          "image": {
            "id": "669",
            "url": "/mt7/mtappjquery-qa/tinybeans.png",
            "thumbnail": "/mt7/mtappjquery-qa/assets_c/2023/05/tinybeans-thumb-120xauto-669.png?ts=20230530185852",
            "alt": "縦向き固定テーブル画像alt"
          }
        }
      },
      "handle": "multiColumn",
      "id": "yGLCxkSJ",
      "expanded": true
    }
  ],
  "version": 2,
  "ts": 1699842128098
}

一度データを開いて保存すると自動でデータのマイグレーションが行われます。「マルチカラム」の中で「縦向き固定テーブル」を利用している場合は、事前にテンプレートを調整してください。