@takagaki/cortex-decisions-viewer 0.10.3 → 0.10.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/render.js +43 -7
- package/package.json +1 -1
package/dist/render.js
CHANGED
|
@@ -2168,6 +2168,8 @@ a.ds-name:hover { text-decoration: underline; }
|
|
|
2168
2168
|
.rt-card { margin-top: 10px; }
|
|
2169
2169
|
.rt-steps { margin: 0; padding-left: 1.4em; color: var(--text); font-size: 13px; line-height: 1.9; }
|
|
2170
2170
|
.rt-steps li { margin: 2px 0; }
|
|
2171
|
+
/* 通知イベントのチェック名(10個)。1行に並べると読めないので、種別ごとに折る */
|
|
2172
|
+
.rt-steps li ul { margin: 2px 0 6px; padding-left: 1.1em; list-style: disc; color: var(--muted); line-height: 1.7; }
|
|
2171
2173
|
/* URLは長いので、入力欄を伸ばしてボタンを右に置く(折り返しても崩れないように wrap) */
|
|
2172
2174
|
.rt-url-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
2173
2175
|
.rt-copy { margin: 6px 0 10px; }
|
|
@@ -7380,20 +7382,32 @@ ${nextStateDelay.toString()}
|
|
|
7380
7382
|
*/
|
|
7381
7383
|
function realtimeSyncCard() {
|
|
7382
7384
|
var rt = LIVE_REALTIME;
|
|
7383
|
-
|
|
7384
|
-
|
|
7385
|
+
// **未対応(固定IP経由の同期)だけは、手順ではなく理由を出す。** ここは索引の状態ではなく
|
|
7386
|
+
// 経路の話で、設定しても効かないことが確定している唯一の形。黙って欠けさせない
|
|
7387
|
+
if (rt && rt.supported === false) {
|
|
7385
7388
|
return el("p", {
|
|
7386
7389
|
class: "sec-how",
|
|
7387
7390
|
text: "この案件は固定IP経由でBacklogを同期しているため、リアルタイム同期(Webhook)には未対応です。反映は毎晩の同期のタイミングになります。",
|
|
7388
7391
|
});
|
|
7389
7392
|
}
|
|
7390
7393
|
var wh = SITE.backlogWebhook;
|
|
7391
|
-
|
|
7394
|
+
// **URLが無い案件には出さない。** 貼るものが無い手順は、一番読めない形になる
|
|
7395
|
+
if (!wh || !wh.url || !wh.token) return null;
|
|
7396
|
+
// **索引に行があるか(ready)でカードごと隠さない(2026-08-24 オーナー決定)。**
|
|
7397
|
+
// それまでは「手順どおり設定すれば実際に効く案件だけに出す」としていたが、
|
|
7398
|
+
// ready の材料(ルーティング索引の行)は**設定を始める前には揃わない**ので、
|
|
7399
|
+
// これから設定する人ほど手順に辿り着けなかった。索引がまだ追いついていない案件も、
|
|
7400
|
+
// 取得前・取得失敗(rt が null)も、手順は出す——URLは案件専用で、先に貼っておいても
|
|
7401
|
+
// 困らない。ready のときだけ受信実績の行を足す
|
|
7402
|
+
var ready = !!(rt && rt.ready);
|
|
7392
7403
|
var url = wh.url + (wh.url.indexOf("?") === -1 ? "?" : "&") + "t=" + encodeURIComponent(wh.token);
|
|
7393
7404
|
// 接続先ごとの受信実績(#123)。**配列で受ける**——1案件=複数 Backlog プロジェクトは
|
|
7394
7405
|
// 確定した将来要件(#107)で、今日は必ず1件。**時刻が読めない値は稼働中に数えない**
|
|
7395
7406
|
// ——「最終受信: NaN分前」を出すくらいなら、未設定と同じ手順の画面のほうがまだ読める
|
|
7396
|
-
|
|
7407
|
+
// **ready でないうちは受信実績を読まない。** ready の材料は索引の行(=自リポ宛だと
|
|
7408
|
+
// 確かめられた行)で、それが無いのに lastEventAt だけ来ている応答を信じると、
|
|
7409
|
+
// **届いていない案件に「✓ 稼働中」を出す**——一番出してはいけない嘘になる
|
|
7410
|
+
var targets = (ready && rt.targets ? rt.targets : []).map(function (t) {
|
|
7397
7411
|
return { projectKey: t && t.projectKey ? String(t.projectKey) : "", ago: t && t.lastEventAt ? rtAgo(t.lastEventAt) : "" };
|
|
7398
7412
|
});
|
|
7399
7413
|
var live = targets.some(function (t) { return t.ago; });
|
|
@@ -7428,7 +7442,20 @@ ${nextStateDelay.toString()}
|
|
|
7428
7442
|
el("ol", { class: "rt-steps" }, [
|
|
7429
7443
|
el("li", { text: "Backlog のプロジェクト設定 → インテグレーション → Webhook を開く" }),
|
|
7430
7444
|
el("li", { text: "「WebHook URL」に下の案件専用URLを貼り付ける" }),
|
|
7431
|
-
|
|
7445
|
+
// **チェック名は受信側が処理する10種を全部並べる。** 「等」で省くと、担当者は
|
|
7446
|
+
// 課題の3つだけにチェックして「設定した」と思い、Wikiとドキュメントの更新は
|
|
7447
|
+
// 夜間まで届かない(画面は稼働中と出るので、欠けていることに気づけない)。
|
|
7448
|
+
// ここを増減するときは受信側(backlog-webhook/logic.mjs の HANDLED_TYPES)と
|
|
7449
|
+
// 揃える——ずれると realtime-sync-card.test.mjs が赤くなる。
|
|
7450
|
+
// **「他はチェック不要」とは言い切らない。** 未対応の type(ドキュメントの更新等)は
|
|
7451
|
+
// 「無視した」ログから見つける設計なので、外させると発見の経路が塞がる
|
|
7452
|
+
el("li", { text: "通知イベントで次の10個にチェックを入れて保存する(他のイベントはチェックしても取り込まれません)" }, [
|
|
7453
|
+
el("ul", {}, [
|
|
7454
|
+
el("li", { text: "課題:「課題の追加」「課題の更新」「課題にコメント」「課題の削除」「課題をまとめて更新」" }),
|
|
7455
|
+
el("li", { text: "Wiki:「Wikiページを追加」「Wikiページを更新」「Wikiページを削除」" }),
|
|
7456
|
+
el("li", { text: "ドキュメント:「ドキュメントの追加」「ドキュメントの削除」" }),
|
|
7457
|
+
]),
|
|
7458
|
+
]),
|
|
7432
7459
|
]),
|
|
7433
7460
|
el("div", { class: "rt-url-row" }, [field, copyBtn]),
|
|
7434
7461
|
msg,
|
|
@@ -7473,7 +7500,9 @@ ${nextStateDelay.toString()}
|
|
|
7473
7500
|
]);
|
|
7474
7501
|
}
|
|
7475
7502
|
|
|
7476
|
-
|
|
7503
|
+
// まだ受け入れ体制が整っていない案件(接続先がこれから・索引が追いついていない)には、
|
|
7504
|
+
// **次の一手だけを1行足す。** 担当者への連絡は促さない——この画面で完結する話だから
|
|
7505
|
+
var head = [
|
|
7477
7506
|
el("div", { class: "ops-card-head" }, [
|
|
7478
7507
|
el("span", { class: "ops-card-icon", text: "⚡" }),
|
|
7479
7508
|
// **稼働中の枝と同じ見出しにする**(上の ⚠ 参照。片方だけ直すと、
|
|
@@ -7481,7 +7510,14 @@ ${nextStateDelay.toString()}
|
|
|
7481
7510
|
el("h3", { class: "ops-card-title", text: "リアルタイム同期(任意)" }),
|
|
7482
7511
|
]),
|
|
7483
7512
|
el("p", { class: "ops-card-desc", text: "Backlog で課題やコメントが変わったときに、その内容をすぐ取り込みます(毎晩の同期を待たずに反映されます)。Backlog 側で一度だけ設定してください。" }),
|
|
7484
|
-
]
|
|
7513
|
+
];
|
|
7514
|
+
if (!ready) {
|
|
7515
|
+
head.push(el("p", {
|
|
7516
|
+
class: "sec-how",
|
|
7517
|
+
text: "上の「接続先」を先に設定してから貼り付けてください。設定した直後は、この画面が追いつくまで少し時間がかかることがあります。",
|
|
7518
|
+
}));
|
|
7519
|
+
}
|
|
7520
|
+
return el("div", { class: "ops-card rt-card" }, head.concat(steps));
|
|
7485
7521
|
}
|
|
7486
7522
|
|
|
7487
7523
|
/**
|
package/package.json
CHANGED