ワイドな commit log translations.title から TEXT まで、DB 列にマッチ
列は、アノテーションとDBのVARCHAR(512)で、 長い翻訳タイトルに失敗する翻訳インサート。 DB カラムは 今、ストリング(直接適用)。このアノテーションの変更は、組織を維持します 一貫した.
バックエンド応答封筒からのUnwrapカタログと計算
getSubscriptionCatalog は { カタログ {...} を返しましたが、直接キャストされました サブスクリプションカタログとして、カタログを残します。undefinedとプラン 選択ステップ空白。 計算のための同じ問題サブスクリプション 価格 その { 計算: {...} } ラップパーは未処理でし...
@JsonProperty を is*-prefixed boolean DTO フィールドに追加
Lombok は isXxx() を生成します。 isXxx() は boolean フィールドの isXxx() を生成します。 ジャクソンは「is」のリーディングをイジェッタから取り除き、それらをシリアライズします 'xxx' ではなく 'isXxx' なので、'accountManager' になった JSON ...
Fuser の代わりに s を使用して、ストール ポートフォワード (k0m1) をキルします
ランナーのホストにfuserとlsofがインストールされていない。 ss -tlnp を使う PID 保持ポート 18080 を抽出し、直接それを殺すために grep。 その他 pkillをSIGKILL(-KILL)に切り替えるので、階段プロセスに依存しない 優雅な信号を調達する.
スタンドポートをクリーンアップするので、キャンセルされた翻訳ジョブは、次の実行をブロックしない
バッシュは背景のプロセスに信号を転送しないので、kubectl ポートフォワードアウトライブ解除ワークフローの実行と保有ポート 18080, その後のtranslate and rebuildジョブをブロックします。 修正: 結合する前に 18080 で既存のポートフォワードをキル (pkill + fuser/ls...
ページ全体ですべての壊れたプレースホルダーの値を復元する
Salvage-keys スクリプトは CSS classNames、インラインスタイル、JS をつかみました 114メッセージの元の英語テキストの代わりにテンプレートリテラル メモ、kb、コマース、アカウント、レポート、リード、設定、 ダッシュボードページ.
セットアップを表示 請求ボタン なしのアカウントを持つorgの所有者
Orgの所有者が計画ビルティングタブを開き、請求アカウントを開くとき 存在し、ジェネリックの代わりにbootstrapプロンプトを表示 "あなたの連絡先 orgの所有者"メッセージ。 ボタンは POST /api/security/account/ を呼び出します。 boottrap-billing (idempote...
リードページを復元 英雄のタイトルとgit履歴からのサブタイトル
ヒーロータイトルは「ヒーロータイトル」(プレースホルダ)、ヒーローサブタイトルは「フレックスギャップ2」でした (salvage-keys は誤って隣接する CSS クラス名をつかむ)。 コミット10f4e4bから回復された正しい値.
既存のorgsにbootstrap-billingエンドポイントを追加
メニュー 同じトリガー サブオーガニゼーション・ホック(BillingSetupService)としての意図的なセットアップ .setupForSubOrgCreation はオーガナイザーのオーナーがオンデマンドと呼ぶことができます。 課金レファクタの前に作成されたorgsを扱います。 そのため、アカウント+アカウン...
ウィジェットをポーリングすることでフィニッシュボタンを有効にします。getState() と auto=onload への切り替え
ステートチェンジイベントリスナーは、フィニッシュボタンが確実に有効になっていない 確認後。 2つの根本原因: 1。 ドレインロジックはウィジェットを読み込みます。 ウィジェットに存在しない状態 — ウィジェットは .state プロパティではなく getState() を公開しているため、ドレインは常に 確認後にリス...
Orgリストにサブスクリプションターゲットアカウントを含める
listForOrg では、サブスクリプションがターゲットとなるアカウントも返します。 リクエスト org — 直接所有するアカウントだけではありません。 マルチオーガニゼーション ペイメントアカウントは、カモCRMのトップレベルのorgに住んでいます サブスクリプション対象サブオーガナイザー。このカモクラブのオーガナ...
StatusWindow ラベルの名前空間を追加し、すべての設定のプレースホルダを修正
- Add****************(50キー)設定 navサイドバーは、キーパスの代わりに実際のテキストを表示します - BranchTypesLabel ICUフォーマットを修正:\${branchLabel} → {branch} - Fix tr()フォールバックガード:next-intlは、代わりにキー...
ウェーブ3変換、フォールバック修正、自動翻訳CI
- すべてのハードコードされた英語の文字列をt()の呼び出しを波3を渡して置き換える コンポーネント(チャット、クラブハウス、サポート、メモ、パイプライン、リード、ナビゲーションなど) - メッセージ/en.json (+19 キー) に 3 つのフラグメントをマージします。 - en.json(welcome、tag...
他のツールウィンドウのサイズ+カラースキームに一致
- defaultSize と minSize は現在 320x650, 再利用可能な: false (Softphone、チャット、電卓、SMS、AIチャットと一致します) - ダークスレートグラデーションから標準ライトグラデーション(#fafbfc -> #f5f7fa)にSoftphonePanelで使用 - H...
Locale のソースとして、Member.language と次の intl のワイヤ
URLなしでカモインタナル全体で次のインテルベースの国際化を追加します。 locale プレフィックス。 アクティブなロケールは、kamo-locale Cookie から読み込まれます。 認証されたメンバーの「言語設定」をミラーリングします。 地域設定カード************************ インフラ...
Forward Range header so audio playback can scrub
Without this the VOIPService recording-streaming endpoint always returns the full file (Range header is dropped by buildForwardHeaders), which works for play-fr...
Drop language search filter on My Language step
The supported language list is short enough to scan visually; the search input added complexity without user value.
Rewrite /etc/odbc.ini to point at $MARIADB_HOST on every boot
The escomputers/freepbx:17 image bakes /etc/odbc.ini with Server=db (the docker-compose link target). On this Kubernetes deployment MariaDB lives at \$MARIADB_H...
Fall back to imaging recordings for call history + voicemails
FreePBX 17 doesn't expose voicemail messages over REST or GraphQL on this install (the GraphQL voiceMail type returns mailbox config, not messages, and /admin/a...
Paginated Recording lookup by (instance, extension, isVm)
Used by the softphone tabs as the canonical source of truth for call recordings and voicemails when the upstream provider can't list them — e.g. FreePBX 17 has ...
Resolve member→extension before VM/CDR provider lookup
CallController was passing memberId where FreePBX (and other PBX-style providers) expect an extension number — voicemail listing returned empty because no PBX e...
デッドマスターをドロップAccountHolder/isMaster UI、ステープルコメントをリフレッシュ
口座スキーマは、マスターアカウントホルダーまたはパーメンバーがマスターされていない フラグ — これらは、Account-as-billing-principal と一緒に削除されました リファクタ。 AccountViewClient は、常に未定義の「マスター」をレンダリングを停止します。 ホルダー/メール"行とパ...
自動座席は床、より広いorgの無効として、床として、放します
BillingSetupService は、作成者の最初のオープンライセンススロットを有効にします。 サブ・オーガナイゼーション(およびプロモート・トゥ・ビルリング・オーナーと同じ)を見るとき — そうでなければ、新鮮なサブオーガニの所有者は、あるにもかかわらず、無料のベースラインを参照してください シードプランのライ...
BillingGroup-eraコメント+未使用サブスクリプション会員のクエリをドロップする
左上の doc ブロックを AppliedModelEnforcementService でストライプします。 長期のBillingGroupの概念に、および取除きます ***************************************************************************...
トップレベルのorgメンバーはプラットフォームオーナープラン、バイパス課金ゲートを受け取ります
KamoCRM (トップレベル) orgのメンバーは、課金システムではなく、 OWNER UNLIMITEDプランの機能行列アウトライト(無料) 所有者の計画が欠落している場合の防御的なフォールバック)、プラスは、活動的なライセンス と has-Kamo-CRM-access true なので、すべての UI ゲート ...
トップレベルのorgバイパス+サブなしでorgsのための無料のベースラインフォールバック
Org-level リファレンスチェック ******************** orgをターゲットとするサブスクリプションを歩きます。 新しい target org モデルを使うと、その ターゲットを絞るアカウントサブスクリプションは、すべての非コアアプリが拒否されたのを見たわけではありません。 2つの修正: -...