@takagaki/cortex-decisions-viewer 0.12.215 → 0.12.217
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 +21 -4
- package/package.json +1 -1
package/dist/render.js
CHANGED
|
@@ -10503,6 +10503,9 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
10503
10503
|
* 知らない値は 「DS_GATE」 と同じく「不明」(engine が新しい語を足したのに画面が知らない、
|
|
10504
10504
|
* という事実を黙って消さない)。
|
|
10505
10505
|
*/
|
|
10506
|
+
/** 接続の状態と[接続を確認]を鍵の部品が持つ能力か(Backlog=issues・Figma=design)。行はこの 2 つを持たない(便 KU) */
|
|
10507
|
+
function keyCardOwnsStatus(capId) { return capId === "issues" || capId === "design"; }
|
|
10508
|
+
|
|
10506
10509
|
function dsGateForCap(capId, status) {
|
|
10507
10510
|
var byCap = DS_GATE_CAP[capId];
|
|
10508
10511
|
if (byCap && byCap[status]) return byCap[status];
|
|
@@ -15973,6 +15976,8 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
15973
15976
|
* 行の組み立ての最後に 「appendReachableReason」 を呼ぶ。
|
|
15974
15977
|
*/
|
|
15975
15978
|
function appendReachableChip(row, capId, ref, workspace) {
|
|
15979
|
+
// 🔴 鍵で読む能力(Backlog・Figma)の接続の状態は、鍵の部品(secretCard)の札 1 か所だけ(便 KU)。行にも出すと同じ材料の札が窓の中で 2 か所に見える
|
|
15980
|
+
if (keyCardOwnsStatus(capId)) return row;
|
|
15976
15981
|
var r = reachableStateOf(capId, ref, workspace);
|
|
15977
15982
|
if (!r) return row;
|
|
15978
15983
|
var gate = dsGateForCap(capId, r.status);
|
|
@@ -16167,7 +16172,8 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
16167
16172
|
// 🔴 表の案件(組み直した案件)には起こす同期が無い(押すと「確認を開始できませんでした」になる)。2 つとも出さない。
|
|
16168
16173
|
// 見分けは設定の画面と同じ 1 か所(viewMode)。今までの案件(file)はここを素通り=画面は 1 バイトも変わらない
|
|
16169
16174
|
if (viewMode() === "table") return row;
|
|
16170
|
-
|
|
16175
|
+
// 鍵で読む能力の[接続を確認]は鍵の部品の[保存して接続を確認]だけ(便 KU)。行には[今すぐ同期]だけ残す
|
|
16176
|
+
var checkBtn = keyCardOwnsStatus(capId) ? null : el("button", { class: "ds-toggle-btn", type: "button", text: "接続を確認" });
|
|
16171
16177
|
var syncBtn = el("button", { class: "ds-toggle-btn", type: "button", text: "今すぐ同期" });
|
|
16172
16178
|
var note = el("p", { class: "ds-probe-wait" });
|
|
16173
16179
|
var phase = probeWaitPhaseOf(capId, ref);
|
|
@@ -16176,7 +16182,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
16176
16182
|
else if (phase === "timeout") note.textContent = PROBE_WAIT_TIMEOUT_TEXT;
|
|
16177
16183
|
else note.hidden = true;
|
|
16178
16184
|
|
|
16179
|
-
checkBtn.addEventListener("click", async function () {
|
|
16185
|
+
if (checkBtn) checkBtn.addEventListener("click", async function () {
|
|
16180
16186
|
// 押している間は**ボタンだけ**が「確認中…」になる。行の中身は変えない(#1328)。
|
|
16181
16187
|
// 前回の返事(「同期を開始しました」等)は押した時点で消す
|
|
16182
16188
|
var endBusy = beginBusy(checkBtn, "確認中…");
|
|
@@ -16243,7 +16249,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
16243
16249
|
endBusy();
|
|
16244
16250
|
});
|
|
16245
16251
|
|
|
16246
|
-
row.appendChild(checkBtn);
|
|
16252
|
+
if (checkBtn) row.appendChild(checkBtn);
|
|
16247
16253
|
row.appendChild(syncBtn);
|
|
16248
16254
|
row.appendChild(note);
|
|
16249
16255
|
return row;
|
|
@@ -19463,6 +19469,8 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19463
19469
|
"figma": {
|
|
19464
19470
|
icon: "🎨",
|
|
19465
19471
|
title: "Figma のトークン",
|
|
19472
|
+
// 欄の案内(placeholder)。窓の他の文言・発行のしかたと同じ語(便 KU)
|
|
19473
|
+
paste: "アクセストークンを貼り付け",
|
|
19466
19474
|
// **必要なスコープは実装が叩くAPIから決まる。** sync-designs は
|
|
19467
19475
|
// GET /v1/files/{key} → file_content:read(画面インベントリ)
|
|
19468
19476
|
// GET /v1/files/{key}/comments → file_comments:read(指摘の同期)
|
|
@@ -19552,6 +19560,8 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19552
19560
|
"backlog": {
|
|
19553
19561
|
icon: "📋",
|
|
19554
19562
|
title: "Backlog のAPIキー",
|
|
19563
|
+
// 欄の案内(placeholder)。窓の他の文言・発行のしかたと同じ語(便 KU)
|
|
19564
|
+
paste: "API キーを貼り付け",
|
|
19555
19565
|
how: "Backlog → 個人設定 → API で発行(同期先の Backlog プロジェクトが見えるアカウントで)",
|
|
19556
19566
|
// ⚠ **desc は足さない。** 「毎晩同期するために使います」の 1 行は「カードが長すぎる」で
|
|
19557
19567
|
// 外した経緯があり、secret-card-guidance.test.mjs が空の段落ごと見張っている。
|
|
@@ -19786,7 +19796,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19786
19796
|
// 同じ鍵の[入れる]が行の一手・「その他」・畳みの 3 か所にあった。いまは 状態の札 → 伏せ字の欄(空のまま)→ [保存して接続を確認]。
|
|
19787
19797
|
// 保存した値は読み戻さない(書き込み専用)。登録済みでも欄は空で、入れ直すときだけ貼る(伏せ字を欄に入れて伏せ字ごと保存する事故を避ける)
|
|
19788
19798
|
var cap = kind === "backlog" ? "issues" : "design";
|
|
19789
|
-
var input = el("input", { class: "sec-input", type: "password", placeholder: "トークンを貼り付け", autocomplete: "off", spellcheck: "false" });
|
|
19799
|
+
var input = el("input", { class: "sec-input", type: "password", placeholder: meta.paste || "トークンを貼り付け", autocomplete: "off", spellcheck: "false" });
|
|
19790
19800
|
var btn = el("button", { class: "ds-toggle-btn", type: "button", text: "保存" });
|
|
19791
19801
|
var msg = el("div", { class: "ds-toggle-msg" });
|
|
19792
19802
|
var savedNote = el("p", { class: "sec-note sec-saved" });
|
|
@@ -19871,7 +19881,9 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19871
19881
|
}
|
|
19872
19882
|
}
|
|
19873
19883
|
/** 保存のあとの接続の確認。結果は行と同じ形で置く(applyProbeResult)。返すのは添える 1 文(無ければ空) */
|
|
19884
|
+
var ipReason = false;
|
|
19874
19885
|
async function checkAfterSave() {
|
|
19886
|
+
ipReason = false;
|
|
19875
19887
|
var type = dispatchProbeTypeOf(cap);
|
|
19876
19888
|
// Figma は回数制限(1 分あたりの枠)に収まるよう先頭の 2 ファイルだけ。残りは各行の[接続を確認]
|
|
19877
19889
|
var refs = refsNow().slice(0, kind === "figma" ? 2 : 20);
|
|
@@ -19887,6 +19899,10 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19887
19899
|
applyProbeResult(cap, refs[i], "", { gate: j.gate, checkedAt: j.checkedAt, needed: "", detail: j.detail || "" });
|
|
19888
19900
|
} else if (!res.ok) {
|
|
19889
19901
|
return "接続の確認はできませんでした:" + ((j && j.message) || "少し待ってからもう一度お試しください。");
|
|
19902
|
+
} else if (j.reason === "ip-restricted") {
|
|
19903
|
+
// 原因が分かる応答は、固定文ではなく原因の文を出す。[切り替える]は呼び出し側が添える
|
|
19904
|
+
ipReason = true;
|
|
19905
|
+
return j.message || "この場では確認できませんでした(IP 制限の可能性)。";
|
|
19890
19906
|
} else {
|
|
19891
19907
|
return "接続の確認は少し後に札へ出ます。";
|
|
19892
19908
|
}
|
|
@@ -19943,6 +19959,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19943
19959
|
if (willCheck) {
|
|
19944
19960
|
var note = await checkAfterSave();
|
|
19945
19961
|
if (note) msg.appendChild(document.createTextNode(" " + note));
|
|
19962
|
+
if (ipReason) appendBacklogProbeSwitch(msg, cap, { reason: "ip-restricted" });
|
|
19946
19963
|
}
|
|
19947
19964
|
ent.checking = false;
|
|
19948
19965
|
endBusy();
|
package/package.json
CHANGED