81 lines
3.7 KiB
JavaScript
81 lines
3.7 KiB
JavaScript
// site-335411向け Attachments061 のCSS適用箇所修復(送信はしない・プレビュー専用)。
|
||
// ユーザーが他8項目(Date061/Class061/Class062/Date062/Class063/Date063/Class065/Description061)は
|
||
// 管理画面から FieldCss ではなく ExtendedFieldCss に "code-readonly2" を設定する形へ手動で直したが、
|
||
// Attachments061だけは管理画面のUIから直せないため、同じパターンをコマンドで適用する。
|
||
// - FieldCss: "code-readonly2" を削除(元は未設定だったため)
|
||
// - ExtendedFieldCss: "code-readonly2" を新規追加
|
||
// Scripts/Styles/ServerScripts/Processesは現状のconfigsフォルダの内容をそのまま使う(変更なし)。
|
||
// Attachments061以外のColumnsは一切変更しない。
|
||
const fs = require("fs");
|
||
const path = require("path");
|
||
|
||
function main() {
|
||
const baseDir = __dirname;
|
||
const modifyRel = process.argv[2];
|
||
if (!modifyRel) {
|
||
console.error("[エラー] 出力先の modify フォルダを指定してください");
|
||
process.exit(1);
|
||
}
|
||
const siteId = 335411;
|
||
const siteDir = path.join(baseDir, "configs", "site-335411_②問い合わせ内容管理 Ver0.3");
|
||
const outDir = path.isAbsolute(modifyRel) ? modifyRel : path.join(siteDir, modifyRel);
|
||
|
||
const latest = JSON.parse(
|
||
fs.readFileSync(path.join(baseDir, "siteSettingJsons", `site-${siteId}_latest.json`), "utf8")
|
||
);
|
||
const d = latest.Response.Data;
|
||
const manifest = JSON.parse(fs.readFileSync(path.join(siteDir, "manifest.json"), "utf8"));
|
||
|
||
fs.mkdirSync(outDir, { recursive: true });
|
||
fs.writeFileSync(path.join(outDir, `before_site-${siteId}_latest.json`), JSON.stringify(latest, null, 2), "utf-8");
|
||
|
||
const siteSettings = JSON.parse(JSON.stringify(d.SiteSettings));
|
||
|
||
function rebuildList(manifestEntries, dir) {
|
||
return (manifestEntries || []).map((entry) => {
|
||
const { File, ...meta } = entry;
|
||
const body = fs.readFileSync(path.join(siteDir, dir, File), "utf-8");
|
||
return { ...meta, Body: body };
|
||
});
|
||
}
|
||
siteSettings.Scripts = rebuildList(manifest.Scripts, "scripts");
|
||
siteSettings.Styles = rebuildList(manifest.Styles, "styles");
|
||
siteSettings.ServerScripts = rebuildList(manifest.ServerScripts, "serverscripts");
|
||
|
||
const processesPath = path.join(siteDir, manifest.ProcessesFile || "processes.json");
|
||
siteSettings.Processes = fs.existsSync(processesPath) ? JSON.parse(fs.readFileSync(processesPath, "utf8")) : [];
|
||
|
||
let changeLog = null;
|
||
siteSettings.Columns = siteSettings.Columns.map((col) => {
|
||
if (col.ColumnName !== "Attachments061") return col;
|
||
|
||
const before = { FieldCss: col.FieldCss, ExtendedFieldCss: col.ExtendedFieldCss };
|
||
const { FieldCss, ...rest } = col;
|
||
const after = { ...rest, ExtendedFieldCss: "code-readonly2" };
|
||
changeLog = { before, after: { FieldCss: after.FieldCss, ExtendedFieldCss: after.ExtendedFieldCss } };
|
||
return after;
|
||
});
|
||
|
||
const body = {
|
||
ApiVersion: "1.1",
|
||
ApiKey: "***(送信時にconfig.jsonから読み込み。プレビューJSONには含めません)***",
|
||
TenantId: d.TenantId,
|
||
SiteId: d.SiteId,
|
||
Title: d.Title,
|
||
ReferenceType: d.ReferenceType,
|
||
ParentId: d.ParentId,
|
||
InheritPermission: d.InheritPermission,
|
||
SiteSettings: siteSettings,
|
||
};
|
||
|
||
fs.writeFileSync(path.join(outDir, "desired_body_full.json"), JSON.stringify(body, null, 2), "utf-8");
|
||
|
||
console.log("[OK] 生成しました:", path.join(outDir, "desired_body_full.json"));
|
||
console.log("\n=== Attachments061 変更内容 ===");
|
||
console.log("変更前:", JSON.stringify(changeLog.before));
|
||
console.log("変更後:", JSON.stringify(changeLog.after));
|
||
console.log("\n次のステップ: 内容確認後、send-335411-full.js相当のスクリプトで送信してください。");
|
||
}
|
||
|
||
main();
|