Add book buttons per source, remove redundant manage icon
- Remove redundant "+" manage sources icon from sources view header (already accessible via bottom "Manage Contact Sources" button) - Add "Add book" icon butt...
編集モード、タイトルフィールド、ライブステータスをソース管理に追加
- ManageSourcesDialogは、タイトルを編集するためのソースごとの編集ボタンを持っています 認証情報(CalDAV/CardDAV URL、ユーザー名、パスワード) - 新しいソースを追加するときにタイトルフィールドを追加して、ユーザーがそれらを区別できるように - WebSocketの統合によって運転...
[連絡先のソースの管理] ダイアログでソースを追加置換
- AddSourceDialog → ManageSourcesDialogをフルCRUD(リスト)で名前変更する 既存のソースをステータス + 削除, プラスインラインフォームを追加) - 左パネルの下部に「コンタクトソースの管理」ボタンを移動、ピン留め 上記のフッターを同期(またはソースが存在しない場合にのみ) ...
チップ、オートコンプリート、コンタクトピッカーで近代的な受信フィールドを追加
基本テキスト入力をEメールに置き換えて、To/CC/BCCフィールドをリッチに構成 受信コンポーネント: ボタンを取除いたチップベースのディスプレイ、非バウンス 連絡先と最近の受信者を検索するオートコンプリート、ホバー/クリック 連絡先の詳細と行動(電子メール、連絡先の表示、 Add コンタクト)、ミニモードでドラッグ...
Add sync toggle, source management, and WebSocket status
- Overhaul ContactsLeftPanel with 3 display modes: org-only books, sources with nested books (sync off), and flat org books (sync on) - Add SyncFooter with re...
Add Create Contact dialog with multi-tab form
Adds a fully-featured Create Contact dialog accessible via a "New" chip in the contacts toolbar. The dialog supports all contact sub-entities (emails, phones, a...
Show actionable error when SIP credentials fail (missing VoipCalling permission)
Only show connection error after failed registration attempt; use overlay to avoid layout shift
Wire SoftphonePanel to useSoftphone hook; remove all mock state; add capability guards
Send and display image attachments in chat
- SmsChatTab: read file as base64 via FileReader, pass to API, render <img> in message bubble - voipApi: add attachment params to sendSms
Add useSoftphone hook with WebPhone SDK, STOMP events, and REST data loading
Use string conversationId throughout SMS tool to handle 64-bit IDs
Backend now serializes Long as string; update all conversationId types from number to string to match. Also enable send button when an attachment is present wit...
Remove duplicate Back button from RingCentralConfig
Parent PhoneProviderSetup already renders an IconButton with ArrowLeft in the config view header, making the Back button inside RingCentralConfig a duplicate.
Replace JWT config with OAuth connect UI for RingCentral
- RingCentralConfig: OAuth connect/disconnect button with status indicator, main phone number field, test connection (only when connected) - voipApi: add getO...
Equal-height feature cards and Kazoo-aware provider descriptions
- Set height: 100% on FeatureCard motion wrapper so cards in the same row match the tallest card - Update KamoPBX description to highlight Kazoo as a carrier-gr...
Use plain img tags for local SVG provider logos
next/image does not reliably serve local SVGs without unoptimized flag. Plain img tags load /public assets directly with no issues.
Add SmsChatTab with search, emoji, attach, timestamps, quick replies
Remove Client ID and Secret fields from RingCentral UI
These are platform-level credentials set once in the K8s secret. Customers only need to provide their JWT Key and main phone number.
Always show softphone and SMS buttons in NavTop
Removed isVoip gate so the buttons are always visible regardless of feature flag state.
Use feature type name as key before numeric id in org feature preprocessing
Java returns features with `type: "VOIP"` and a numeric `id`. The preprocessing chain had `obj.id` before `obj.type`, causing all features to get numeric string...
Add SMS tool button to NavTop, gate softphone + SMS on organization.isVoip
Redesign phone provider setup to match email provider format with logos, help tips, and correct nav tabs
- Rewrite PhoneProviderSetup to match EmailProviderSetup pattern: list/config view split, AnimatePresence transitions, back button with provider name in header,...
Show Phone System(s) settings unconditionally so orgs can configure VOIP before enabling it
- Remove isVoip gate from phone section on /settings page — Provider Setup card has no condition so it always appears; Agents and Dial Plans still gated by isVo...
Guard against non-array API responses in useContacts hook
setBooks, fetchContacts, and searchContacts now safely handle error objects and Spring paginated wrappers instead of crashing with 'e.map is not a function'.
Add Personal Calendars & Contacts section to member membership-permissions tab
Add PersonalProviderSection component for member CalDav/CardDav integrations
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
