GitHub(nextgroup2706/ken_nogi)は今後使わず自社Gitea運用に切替え。 NodeSrvは旧リポジトリの履歴を破棄しファイルのみ統合(Dokploy用サービスアカウントは 別途mygit-admin/NodeSrv.gitに履歴あり)。notepmエクスポート(12GB)とPleasanter インストーラzip(208MB)はサイズが大きいため.gitignoreで除外。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
5.0 KiB
5.0 KiB
別記資料 スクリプト(Scripts)全文 (4/28)
// ...(前ファイルからの続き)
$('#Results_Class063').val(), //CC3
$('#Results_Class064').val(), //CC4
].forEach(function (v) {
if (v && !usersCC.includes(v)) usersCC.push(v);
});
let mergeValueCC = JSON.stringify(usersCC); //CC一覧のマージ対象項目をJSON文字列化
let class152 = JSON.stringify($('#Results_Class152').val()); //CC一覧
//前と内容が同じ場合は上書きしない
if (mergeValueCC !== class152) {
$p.set($('#Results_Class152'), mergeValueCC); //CC一覧
}
//担当者一覧・CC一覧のマージ(重複除去)
let usersAll = [];
users1.concat(usersCC).forEach(function (v) {
if (v && !usersAll.includes(v)) usersAll.push(v);
});
let mergeValueAll = JSON.stringify(usersAll); //担当者一覧・CC一覧のマージ対象項目をJSON文字列化
let class153 = JSON.stringify($('#Results_Class153').val()); //担当者・CC一覧
//前と内容が同じ場合は上書きしない
if (mergeValueAll !== class153) {
$p.set($('#Results_Class153'), mergeValueAll); //担当者・CC一覧
}
//登録者(依頼者)+担当者・CC一覧をマージしてClass154(依頼者・担当者・CC一覧)へ保存
$p.mergeClass154(usersAll);
}
//----------------------------------------------------------------------
//重複を除いてClass154(依頼者・担当者・CC一覧、複数選択・非表示)へ保存する
$p.mergeClass154 = function (usersAll) {
let classBVal = $('#Results_ClassB').val(); //登録者(依頼者)
let merged = [];
if (classBVal && !merged.includes(classBVal)) merged.push(classBVal);
usersAll.forEach(function (v) {
if (v && !merged.includes(v)) merged.push(v);
});
let mergeValue = JSON.stringify(merged);
let class154 = JSON.stringify($('#Results_Class154').val()); //依頼者・担当者・CC一覧
//前と内容が同じ場合は上書きしない
if (mergeValue !== class154) {
$p.set($('#Results_Class154'), mergeValue); //依頼者・担当者・CC一覧
}
}
//----------------------------------------------------------------------
//マスターシート・エリア・契約ブランド・契約営業所連携
//
//AutoPostBack(Links設定によるサーバー側自動転記)は処理負荷を避けるため全廃し、
//クライアントスクリプトで転記を行う。
// ・ClassY(マスターシート): 選択のたびに$p.apiGetでその場でレコード取得(対象レコードが多いため)
// ・Class022/023/031(エリア・契約ブランド・契約営業所): BeforeOpeningPageのServerScriptが
// 事前に全件取得しhiddenへ格納済みのデータをクライアント側で逆引きするだけ(apiGetは呼ばない)
//
//上書きルール(共通、重複チェックキーも含め全転記先に適用):
// ・未選択 → 選択:転記先に値があっても上書きしない(先に手入力していた値を尊重)
// ・選択済み → 別選択:転記先に値があっても上書きする(マスタを変えたら再転記)
//
//ClassY(マスターシート)自体は、登録完了(Status=200)以降かつ既に選択済みの場合のみ
//選択変更不可にする(未選択のままなら登録完了後も選択可能にする、$p.toggleClassYLock参照)
//ServerScriptが埋め込んだhiddenのマスタデータ(エリア/契約ブランド/契約営業所)
let areaMasterData = {};
let brandMasterData = {};
let officeMasterData = {};
$p.loadStaticMasters = function () {
areaMasterData = $('#areaMaster').val() ? JSON.parse($('#areaMaster').val()) : {};
brandMasterData = $('#brandMaster').val() ? JSON.parse($('#brandMaster').val()) : {};
officeMasterData = $('#officeMaster').val() ? JSON.parse($('#officeMaster').val()) : {};
}
//変更前値の記憶(未選択→選択/選択済み→別選択の判定に使う)
let previousLookupValues = {
ClassY: '',
Class022: '',
Class023: '',
Class031: ''
};
$p.rememberLookupBaseValues = function () {
previousLookupValues.ClassY = $('#Results_ClassY').val();
previousLookupValues.Class022 = $('#Results_Class022').val();
previousLookupValues.Class023 = $('#Results_Class023').val();
previousLookupValues.Class031 = $('#Results_Class031').val();
}
//APIレスポンス($p.apiGet結果)から、列名に応じたHash経由で値を取り出す
$p.getApiRecordValue = function (record, fieldName) {
if (fieldName === 'ResultId' || fieldName === 'Title' || fieldName === 'ItemTitle') {
return record[fieldName];
}
let hashKey =
fieldName.indexOf('Date') === 0 ? 'DateHash' :
fieldName.indexOf('Num') === 0 ? 'NumHash' :
fieldName.indexOf('Description') === 0 ? 'DescriptionHash' :
fieldName.indexOf('Check') === 0 ? 'CheckHash' :
// ...(次ファイルへ続く)