@takagaki/cortex-decisions-viewer 0.12.28 → 0.12.29
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 +91 -3
- package/package.json +1 -1
package/dist/render.js
CHANGED
|
@@ -5027,8 +5027,8 @@ ${deriveCapTile.toString()}
|
|
|
5027
5027
|
};
|
|
5028
5028
|
/**
|
|
5029
5029
|
* 表を引くときのアダプタ種別。**probeTypeOf を使わない**——あちらは「op=probe の受け口」の
|
|
5030
|
-
*
|
|
5031
|
-
*
|
|
5030
|
+
* 語彙で、「github-issues」 / 「github-discussions」 を 「github」 に畳むところまでは同じだが、
|
|
5031
|
+
* **実測の口が無い種別に空文字を返す**(この表は実測の有無と無関係にエントリを置く)
|
|
5032
5032
|
*/
|
|
5033
5033
|
function helpTypeOf(type) {
|
|
5034
5034
|
var t = String(type || "");
|
|
@@ -5395,6 +5395,18 @@ ${deriveCapTile.toString()}
|
|
|
5395
5395
|
* 読み取れない——下の説明文は「誰が承認できるか」の話しかしていない。
|
|
5396
5396
|
* 1行だけ添える口を開けておく。**見出しは付けない**(節を増やすと一覧が遠くなる)。
|
|
5397
5397
|
*
|
|
5398
|
+
* ## 承認画面から戻ってきたとき(#343)
|
|
5399
|
+
*
|
|
5400
|
+
* 成功経路は同じタブで遷移するので、**このハンドラには戻す機会が無い**——
|
|
5401
|
+
* 「準備しています…」と disabled を立てたまま画面を離れる。ブラウザバックで
|
|
5402
|
+
* 戻ると bfcache が**離脱直前の DOM とスクリプトの状態をそのまま復元する**ので、
|
|
5403
|
+
* その固まった見た目が再現し、もう一度押せなくなる。だから復帰は
|
|
5404
|
+
* bfcache 復元でだけ発火する pageshow(persisted)で受ける。
|
|
5405
|
+
* 戻す口は**起動時に1本だけ張った listener が data-leaving を DOM から探す**形にした
|
|
5406
|
+
* ——モーダルを開くたびにこのボタンは作り直されるので、登録簿に貯めると
|
|
5407
|
+
* 閉じたモーダルの DOM を掴み続ける。印を付けるのは遷移が確定した瞬間だけで、
|
|
5408
|
+
* 失敗経路(その場でボタンを戻す)には付けない。
|
|
5409
|
+
*
|
|
5398
5410
|
* @param lead 省略可。押す理由の1行(案内の中から呼ぶときは渡さない)
|
|
5399
5411
|
*/
|
|
5400
5412
|
function slackConnectButton(lead) {
|
|
@@ -5423,6 +5435,11 @@ ${deriveCapTile.toString()}
|
|
|
5423
5435
|
}
|
|
5424
5436
|
// **同じタブで遷移する。** 別タブだと、承認後の「接続しました」を見た人が
|
|
5425
5437
|
// 元のタブに戻る動線を自分で見つけることになる
|
|
5438
|
+
//
|
|
5439
|
+
// **遷移が確定したこの瞬間にだけ印を付ける(#343)。** ブラウザバックで
|
|
5440
|
+
// bfcache から復元されたとき、起動時の pageshow の listener がこの印を頼りに
|
|
5441
|
+
// ボタンと「準備しています…」を素の状態へ戻す(restoreLeavingButtons)
|
|
5442
|
+
btn.setAttribute("data-leaving", "1");
|
|
5426
5443
|
location.href = j.url;
|
|
5427
5444
|
} catch (e) {
|
|
5428
5445
|
msg.className = "ds-toggle-msg is-error";
|
|
@@ -7861,6 +7878,10 @@ ${deriveCapTile.toString()}
|
|
|
7861
7878
|
* **開発(GitHub)は #234 で足した。** 判定は shared/github-gate.mjs、次の一手は
|
|
7862
7879
|
* サーバの needed(理由と設定ページのURLを1文で持つ)をそのまま出している
|
|
7863
7880
|
* ——画面に分岐が生まれないよう、言い分けを全部あちらに置いた
|
|
7881
|
+
*
|
|
7882
|
+
* **Google Chat は #347 で足した。** 判定は shared/google-chat-gate.mjs で、夜間の実測と
|
|
7883
|
+
* 同じ叩き先・同じスコープで測る。次の一手(googleChatProbeHelpNodes)は行の常時表示と
|
|
7884
|
+
* 同じ表(DS_GATE の help)から引くだけで、画面に判定の分岐は無い
|
|
7864
7885
|
* ------------------------------------------------------------------------- */
|
|
7865
7886
|
|
|
7866
7887
|
/**
|
|
@@ -7879,9 +7900,13 @@ ${deriveCapTile.toString()}
|
|
|
7879
7900
|
* 確認したいアダプタの種別(「op=probe」 の 「type」)。**画面の種別をそのまま送らない**
|
|
7880
7901
|
* ——「github-issues」 / 「github-discussions」 は同じ1つのリポジトリの読み取りで、
|
|
7881
7902
|
* サーバの受け口は 「github」 の1種別しか知らない(「PROBE_REF_RULES」)。
|
|
7903
|
+
*
|
|
7904
|
+
* **空文字を返した種別にはボタンが出ない**(下の 「extSourceCard」 の条件)。
|
|
7905
|
+
* Google Chat は #347 で足した——サーバの受け口の綴りがそのまま種別になる。
|
|
7882
7906
|
*/
|
|
7883
7907
|
function probeTypeOf(type) {
|
|
7884
7908
|
if (String(type || "").indexOf("github") === 0) return "github";
|
|
7909
|
+
if (type === "google-chat") return "google-chat";
|
|
7885
7910
|
return type === "slack" ? "slack" : "";
|
|
7886
7911
|
}
|
|
7887
7912
|
|
|
@@ -7936,6 +7961,36 @@ ${deriveCapTile.toString()}
|
|
|
7936
7961
|
return [el("p", { class: "ds-probe-help", text: "GitHub の応答:" + (r.error || "不明") + "。時間をおいて再度お試しください。" })];
|
|
7937
7962
|
}
|
|
7938
7963
|
|
|
7964
|
+
/**
|
|
7965
|
+
* Google Chat の確認結果の本文(#347)。
|
|
7966
|
+
*
|
|
7967
|
+
* **判定は infra/lambda/shared/google-chat-gate.mjs にしか無い。** ここが返すのは
|
|
7968
|
+
* 「次の一手」だけで、状態の語(バッジ)は probeVerdict が dsGateOf から取る。
|
|
7969
|
+
*
|
|
7970
|
+
* **文を書き写さない。** 「アプリと統合から追加してください」「管理者の設定が済むと…」は
|
|
7971
|
+
* 行の常時表示(DS_GATE の 「help」)が既に持っている——写経すると、同じ行の常時表示と
|
|
7972
|
+
* 押した結果で語が割れる(この節が何度も直してきた形)。DS_GATE から引いて1文だけ出す。
|
|
7973
|
+
*
|
|
7974
|
+
* ⚠ **403(Workspace 管理者の承認待ち)は Phase 0 の採取まで 「unknown」。** その回は
|
|
7975
|
+
* サーバの機械語(「permission_denied」)をそのまま出す。**「時間をおいて」と言わない**
|
|
7976
|
+
* ——待っても直らない(管理者が承認するまで同じ応答が返る)。
|
|
7977
|
+
*/
|
|
7978
|
+
function googleChatProbeHelpNodes(s, r) {
|
|
7979
|
+
var p = function (t) { return el("p", { class: "ds-probe-help", text: t }); };
|
|
7980
|
+
// 成功。**1行で終わり**(状態の語が既に「接続OK」と出ている)
|
|
7981
|
+
if (r.gate === "ok") return [];
|
|
7982
|
+
// not_in_space / no_credentials は行の常時表示と同じ1文(DS_GATE から引く)。
|
|
7983
|
+
// 押した瞬間に行側の 「.ds-gate-help」 は隠れるので、二重には出ない
|
|
7984
|
+
var help = dsGateOf({ type: s.type, gate: r.gate }).help;
|
|
7985
|
+
if (help) return [p(help)];
|
|
7986
|
+
if (r.gate === "unreachable") {
|
|
7987
|
+
// 帯(「アクセス不可」)が症状を言っている。**ここは一手だけ**
|
|
7988
|
+
return [p("時間をおいて、もう一度「接続を確認」を押してください。")];
|
|
7989
|
+
}
|
|
7990
|
+
// unknown。**生の機械語を隠さない**——「不明」だけだと切り分けが始められない
|
|
7991
|
+
return [p("Google Chat の応答:" + (r.error || "不明") + "。cortex の担当者にこの語をお伝えください。")];
|
|
7992
|
+
}
|
|
7993
|
+
|
|
7939
7994
|
/**
|
|
7940
7995
|
* 「アクセス不可」の次の一手(0.12.2・実オンボーディングで踏んだ)。
|
|
7941
7996
|
*
|
|
@@ -8012,6 +8067,7 @@ ${deriveCapTile.toString()}
|
|
|
8012
8067
|
function probeHelpNodes(s, r) {
|
|
8013
8068
|
var p = function (t) { return el("p", { class: "ds-probe-help", text: t }); };
|
|
8014
8069
|
if (probeTypeOf(s.type) === "github") return githubProbeHelpNodes(r);
|
|
8070
|
+
if (probeTypeOf(s.type) === "google-chat") return googleChatProbeHelpNodes(s, r);
|
|
8015
8071
|
// 成功。**1行で終わり。** 状態の語(「接続OK」)が既に出ているので本文は空
|
|
8016
8072
|
if (r.gate === "ok") return [];
|
|
8017
8073
|
if (r.gate === "not_in_channel") {
|
|
@@ -10204,10 +10260,12 @@ ${deriveCapTile.toString()}
|
|
|
10204
10260
|
// 気づいた人がその場で確かめられるほうがよい(オーナー判断)。書き込みになる
|
|
10205
10261
|
// 「表示名を更新する」は、押した結果の中から別のボタンとして出る(probeSection)。
|
|
10206
10262
|
//
|
|
10207
|
-
// **いまは Slack
|
|
10263
|
+
// **いまは Slack・開発(GitHub)・Google Chat。** GitHub は #234 で足した——「アクセス不可 →
|
|
10208
10264
|
// App の Configure でリポジトリを追加 → 直ったか確かめる」が、それまで**翌朝まで
|
|
10209
10265
|
// 待つしかなかった**(受け入れテストでは fleet-status.yml を手で起動して確かめた)。
|
|
10210
10266
|
// 判定と文面は infra/lambda/shared/github-gate.mjs 側(画面に分岐を持たせない)。
|
|
10267
|
+
// **Google Chat は #347(同じ理由)。** スペースにアプリを追加した人が、その場で
|
|
10268
|
+
// 直ったことを確かめられる。判定は infra/lambda/shared/google-chat-gate.mjs 側。
|
|
10211
10269
|
// Backlog / Figma / Drive は実測そのものが新規なので、まだ出さない。
|
|
10212
10270
|
//
|
|
10213
10271
|
// **origin === "explicit" でも出す。** 確認は読むだけで、どの登録ファイル由来かに
|
|
@@ -13618,6 +13676,36 @@ ${deriveCapTile.toString()}
|
|
|
13618
13676
|
a.setAttribute("title", "案件一覧へ");
|
|
13619
13677
|
a.classList.add("site-title-portal");
|
|
13620
13678
|
})();
|
|
13679
|
+
/**
|
|
13680
|
+
* 外部の承認画面へ送り出したボタンを、戻ってきたときに押せる状態へ戻す(#343)。
|
|
13681
|
+
*
|
|
13682
|
+
* **live DOM を走査する。** 押した時点で登録簿に貯める形にすると、モーダルの
|
|
13683
|
+
* 開閉ごとに作り直されるボタンの、閉じた側の DOM を掴み続ける。
|
|
13684
|
+
* 戻す先は**素の初期状態**——「中断しました」のような文言は足さない
|
|
13685
|
+
*(戻ってきた人が知りたいのは「もう一度押せる」ことで、それは見た目で分かる)。
|
|
13686
|
+
*/
|
|
13687
|
+
function restoreLeavingButtons() {
|
|
13688
|
+
var marked = document.querySelectorAll("[data-leaving]");
|
|
13689
|
+
for (var i = 0; i < marked.length; i++) {
|
|
13690
|
+
var btn = marked[i];
|
|
13691
|
+
btn.disabled = false;
|
|
13692
|
+
btn.removeAttribute("data-leaving");
|
|
13693
|
+
// 「準備しています…」を消すのは**同じ箱の中の**行だけ(他のボタンの結果を消さない)。
|
|
13694
|
+
// 箱が見つからなければボタンだけ戻す
|
|
13695
|
+
var wrap = btn.closest ? btn.closest(".ds-toggle") : null;
|
|
13696
|
+
var msg = wrap ? wrap.querySelector(".ds-toggle-msg") : null;
|
|
13697
|
+
if (msg) {
|
|
13698
|
+
msg.className = "ds-toggle-msg";
|
|
13699
|
+
msg.textContent = "";
|
|
13700
|
+
}
|
|
13701
|
+
}
|
|
13702
|
+
}
|
|
13703
|
+
// **bfcache から復元されたときだけ走る。** 通常のロード(persisted が false)では
|
|
13704
|
+
// DOM ごと作り直されるので、戻すものは無い
|
|
13705
|
+
window.addEventListener("pageshow", function (e) {
|
|
13706
|
+
if (!e.persisted) return;
|
|
13707
|
+
restoreLeavingButtons();
|
|
13708
|
+
});
|
|
13621
13709
|
// ヘッダーの案件アイコン(#348)は #app の外なので、**起動時に1回だけ描く**。
|
|
13622
13710
|
// route() はタブを替えるたびに走るが、ヘッダーは描き替えない——描き直すと
|
|
13623
13711
|
// 保存直後の mirror とメニューの開閉が、タブを移るたびに畳まれる
|
package/package.json
CHANGED