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.1 KiB
5.1 KiB
別記資料 スクリプト(Scripts)全文 (25/28)
/*
@config :
@filename : 04_プロセス処理スクリプト.js
@title : 04_プロセス処理スクリプト.js
@name :
@siteIds :
@siteTitles : プロセス実行前の処理
@disabled: false
*/
//プロセスボタンから呼び出す共通ディスパッチャ
//Process定義側のOnClickは $p.ex.processScript($(this)); の形(ボタン要素そのものを渡す形)。
//procNum(数値文字列)ではなく、ボタンの表示ラベル文字列(procName)で処理を振り分ける
//(Processes側のId構成や件数が今後変わっても影響を受けないため。
// 3_03_質疑応答スクリプト.jsに元々あったprocessScript本体をこちらへ統合済み)
$p.ex.processScript = async function (target) {
let $btn = $(target);
if (!$btn.length) {
console.log('processScript: 対象ボタンが取得できませんでした');
return false;
}
let procName = $btn.text().replace(/^\s+/, '').trim();
console.log('processScript ' + procName);
let popMessage = '';
//確認ダイアログを出さないプロセス名。ここにprocNameを追加すると、そのプロセスはconfirmをスキップして即実行する
let noConfirmProcesses = [];
// プロセス名に応じた処理(popMessageが未定義(空文字)、またはnoConfirmProcessesに含まれる場合は確認メッセージを出さず実行)
switch (procName) {
case '積算へ依頼':
popMessage = '"' + procName + '" 処理を実行します。よろしいですか?';
if (popMessage && !noConfirmProcesses.includes(procName) && !confirm(popMessage)) return;
//ClassG(現在の進捗)が「1:承認図後・着工中」の場合の必須項目チェック(プロセス実行後はClassG/H/Iが読取専用化されるため、実行前のここでのみチェック可能)
if (!$p.ex.checkClassGRequiredFields()) return;
//問合せ種別(マトリックス以外/マトリックス)に応じた必須項目チェック
if (!$p.ex.checkInquiryTypeRequiredFields()) return;
break;
case '受付':
popMessage = '"' + procName + '" 処理を実行します。よろしいですか?';
if (popMessage && !noConfirmProcesses.includes(procName) && !confirm(popMessage)) return;
//受付日・受付者をここで設定(Process側の「データの変更」だと反映がexecProcess後(サーバー側)になり、
//先に動く01_基本スクリプト.jsのbefore_validate/ログ転記処理が値取得できず欠落するため、ここで直接設定する)
$p.ex.setTodayAndUser('Date081', 'Class081');
break;
case '質疑送信':
popMessage = '"' + procName + '" 処理を実行します。よろしいですか?';
if (popMessage && !noConfirmProcesses.includes(procName) && !confirm(popMessage)) return;
if ($('#Results_Description075').val()) {
$p.ex.saveQuestionMessage();
} else {
$p.ex.setMyMessage('new-status-red', '質疑内容を入力してください');
return false;
}
break;
case '回答送信': //念のためのボタン非表示以外のサーバー側判定はProcess側View条件(ClassC:["Own"])が担う
popMessage = '"' + procName + '" 処理を実行します。よろしいですか?';
if (popMessage && !noConfirmProcesses.includes(procName) && !confirm(popMessage)) return;
if ($p.userId().toString() != $('#Results_ClassC').val()) {
$p.ex.setMyMessage('new-status-red', '回答送信は依頼者本人のみ行えます');
return false;
}
if ($('#Results_Description076').val()) {
$p.ex.saveAnswerMessage();
} else {
$p.ex.setMyMessage('new-status-red', '回答内容を入力してください');
return false;
}
break;
case '質疑回答削除':
popMessage = '"' + procName + '" 処理を実行します。よろしいですか?';
if (popMessage && !noConfirmProcesses.includes(procName) && !confirm(popMessage)) return;
if ($('input[name="messageDeleteCheck"]:checked').length) {
$p.ex.messageDelete();
} else {
$p.ex.setMyMessage('new-status-red', '削除したい質疑回答メッセージを選択してください');
return false;
}
break;
case '積算対応中へ':
popMessage = '"' + procName + '" 処理を実行します。よろしいですか?';
if (popMessage && !noConfirmProcesses.includes(procName) && !confirm(popMessage)) return;
//旧「営業積算確認」プロセスを吸収。営業積算確認日(Date074)・質疑回答ステータス(Class071='3')を更新
// ...(次ファイルへ続く)