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>
3.8 KiB
3.8 KiB
別記資料 スクリプト(Scripts)全文 (15/28)
// ...(前ファイルからの続き)
if (item.resolveUser) fromVal = resolveUserName(fromVal);
let toVal = $('#Results_' + item.to).val();
//値に差異がある場合のみ転記する
if (fromVal !== toVal) {
$p.set($('#Results_' + item.to), fromVal);
}
});
}
//----------------------------------------------------------------------
//依頼者(ClassC:単一選択)と担当者・CC一覧(Class153:複数選択)をマージし、
//重複を除いてClassY(依頼者・担当者・CC一覧、複数選択・非表示)へ保存する
$p.mergeClassY = function () {
let classCVal = $('#Results_ClassC').val();
let class153Vals = $('#Results_Class153').val() || [];
let merged = [];
if (classCVal) merged.push(classCVal);
class153Vals.forEach(function (v) {
if (v && !merged.includes(v)) merged.push(v);
});
$p.set($('#Results_ClassY'), JSON.stringify(merged));
}
//----------------------------------------------------------------------
//返信予定日 Date085 変更イベントを検知して実行
$p.on('change', 'Date085', function () {
if ($('#Results_Date085').val() != '') {
console.log('返信予定日が変更されました。');
$p.replaceDate085();
}
});
//Description082には「直前に本文へ置換した返信予定日の値」をキーとして保持する
//(レコード保存・再読込後も同じ値が残るため、次回変更時に古い値だけを新しい値へ置換できる)
$p.replaceDate085 = function () {
if ($('#Results_Date085').val() != '') {
console.log('返信予定日が変更されました。');
//返信予定日(今回の新しい値)を取得
let date085 = $('#Results_Date085').val();
//遅延理由メッセージを取得
let content081 = $('#Results_Description081').val();
//前回置換に使った返信予定日(キー)をDescription082から取得
let content082 = $('#Results_Description082').val();
let newContent;
if (content082 == '') {
//初回:プレースホルダー(%返信予定日%)を返信予定日に置換
newContent = content081.replace(/%返信予定日%/g, date085);
} else {
//2回目以降:前回の返信予定日(キー)を今回の返信予定日に置換
newContent = content081.split(content082).join(date085);
}
//遅延理由を再設定する
$p.set($('#Results_Description081'), newContent);
//今回の返信予定日を次回のキーとしてDescription082に保存
$p.set($('#Results_Description082'), date085);
}
}
//----------------------------------------------------------------------
//日付文字列を「年/月/日(曜日)」形式に整形する(例:"2026/06/25" → "2026/6/25(木)")
function formatDateWithWeekday(dateStr) {
if (!dateStr) return '';
let datePart = dateStr.split(' ')[0]; //時刻が付いている場合は日付部分のみ取り出す
let parts = datePart.split('/');
if (parts.length < 3) return datePart; //想定外の形式の場合はそのまま返す
let year = parseInt(parts[0], 10);
let month = parseInt(parts[1], 10);
let day = parseInt(parts[2], 10);
let dateObj = new Date(year, month - 1, day);
let weekdays = ['日', '月', '火', '水', '木', '金', '土'];
let weekday = weekdays[dateObj.getDay()];
return year + '/' + month + '/' + day + '(' + weekday + ')'; //例:2026/6/25(木)
}