Appearance
ADM-024-2 new_machine_kishu_link_save_links(機種マスタ紐付けの一括保存)
概要
編集モードで手を入れた行の 機種マスタ紐付け をまとめて保存する。行ごとに成否と理由を返し、画面は成功した行だけを閉じて、失敗した行は入力を残したまま理由を出す。画面遷移を挟むと入力が失われるため、リダイレクトではなく admin-ajax で受ける。
POST パラメータ
行の入力は 新台情報 ID をキーにした配列で送る。送るのは編集した行だけで、数値でないキーや配列以外の値は無視する。
| フィールド | 必須 | 型・制約 | 説明 |
|---|---|---|---|
action | ○ | 文字列 | new_machine_kishu_link_save_links |
nonce | ○ | 文字列 | new_machine_kishu_link_save で発行した nonce |
nmkl_mode[<ID>] | ○ | existing / new | 既存マスタへ紐付けるか、新規登録して紐付けるか |
nmkl_kishu_id[<ID>] | - | 整数文字列 | existing のときの紐付け先マスタ ID(1 以上が必須) |
nmkl_new_name[<ID>] | - | 文字列 | new のときに登録する機種名 |
成功時 data
部分的に失敗しても保存自体は成立しているため、success: true で返して結果に失敗を含める。
| 論理名 | 物理名 | 型 | 説明 |
|---|---|---|---|
| 見出し | message | string | 更新・失敗・変更なしの件数をまとめた 1 文 |
| 失敗を含むか | hasErrors | bool | 1 行でも失敗していれば true |
| 行ごとの結果 | rows | array | 送った行と同じ順。要素は下表 |
rows の要素
| 論理名 | 物理名 | 型 | 説明 |
|---|---|---|---|
| 新台情報 ID | id | int | 画面が行を引き当てるための ID |
| 結果区分 | status | string | updated / unchanged / error |
| 機種名 | machineName | string | 対象の新台情報の機種名 |
| 理由 | message | string | error のときのみ。行内に出す文言 |
| 紐付け先マスタ ID | kishuId | int | null | 紐付けを解決できた行のみ。error は null |
| 紐付け先の表示名 | currentLinkText | string | 紐付けを解決できた行のみ。error は空文字 |
| 選択肢のラベル | masterOptionText | string | currentLinkText に非アクティブの印を付けたもの。error は空文字。下記を参照 |
編集した行が 1 行も無いときは message に BULK_NO_CHANGES、rows は空配列を返す。
masterOptionText は一覧の「現在の紐付け」セルではなく、行内の紐付け先 select の option ラベルに使う。非アクティブなマスタへ紐付いていることは初期描画でも option ラベルだけで示しているため、保存後の差し替えでも同じ文言になるよう別のキーで返している。セル側は初期描画と同じく印を付けないので currentLinkText を使う。
失敗・ブロック(success: false の data に含み得るキー)
| 条件 | message の内容 |
|---|---|
| AJAX コンテキスト外・nonce 不正 | Messages::AUTH_FAILED |
manage_new_machine_info 権限なし | Messages::PERMISSION_DENIED_SHORT |