Умный многоколонный макет для формы Add Lead
Перестройте страницу в сетку верхнего уровня, чтобы разделы составляли горизонтально. Вместо растяжки отдельных полей: - Market & Assignment использует 3-цветн...
Использование /api/security/members/names для разрешения имени назначенного члена
Фильтры конечных точек для активных членов команды, отсутствуют Задания членам базы или неактивным членам. Переключитесь на имена, которые возвращает всех члено...
Добавить /names endpoint return id→name для всех участников независимо от состояния
Фильтры конечных точек для активных членов команды, но расширение Задания могут ссылаться на базовых членов или неактивных членов. Используйте /имя для Разрешен...
Лучший контакт Время свободного текстового поля
Заменить утреннее/полуденное/вечернее выпадение на Добавить свинец и свинец Просмотр форм редактирования с простым вводом текста, чтобы члены могли описать конк...
Полная ширина Добавить форму свинца и клиренс для липкого футера
Бросьте 1200px max-ширину на /leads/new, чтобы форма охватывала область страницы. и ударная нижняя обшивка, чтобы липкая панель действия больше не перекрывала П...
Добавить свинцовую форму /leads/new
Refactor Добавить свинец из многотрубной панели на странице в выделенный маршрут на /leads/new, чтобы его можно было связать напрямую. Текущий рынок прошел ?mar...
Добавить ******************* конечная точка
Возвращает SalesType, subType и customForms для рынка по рыночному принципу Форма Add Lead может отображать поля подтипа и пользовательские формы ввода без пред...
Решите имя дисплея с правильным приоритетом в конечной точке отдела
Приоритет: member.usernameAlias → user.name.formatFull() → user.alias → user.username
Добавить недостающее поле isDisplayOnIntake в интерфейс FormField и новое поле
Используйте тип строки для назначенногоMemberId для предотвращения потери точности
Сериализация длинной строки для предотвращения потери точности JS на больших идентификаторах CockroachDB
Добавить дисплей на Intake Toggle, автоблокировка при включении Required
Coerce isDisplayOnIntake=true, когда требуется=true в CustomFormService
Добавить isDisplayOnIntake для создания / обновления запроса DTO
Ссылка, присвоенная имени участника на их странице настроек телефона
Добавить отображение имени участника и кнопку unassign на вкладку расширения per-instance
Покажите имена членов и добавьте действие Unassign на вкладку расширений уровня org
Конфигурация Wire VOIP для селекторов с расширением провайдера + с обеспечением выполнения задания
Добавление типизированных DTO, удаление метода API и обновление типов MembershipPermissionsTab VOIP
Добавить конечную точку назначения DELETE в VoipExtensionsController для администратора unassign
Добавить MemberVoipConfigController для VOIP-конфигурации члена с назначением расширения
Добавить findByAssignedMemberId методы запроса в PhoneExtensionRepository
Скрыть карту ATF полностью, когда все поля заблокированы прикладной моделью
Пробная мастер-модель конечной точки и исправление AppliedModel org ID
- Заменить шлюз на основе AppliedModel.source прямым зондом /api/security/master-model on mount; r.ok=false (409) управляется типом ветви — тот же самый контрол...
Gate censorship tab options by applied model constraints
- Hide EDIT MASTER MODEL button when org is governed by a branch type (use appliedModel.source instead of unreliable org context branchTypeID) - Hide ATF fiel...
Постоянный активный почтовый ящик в парамах запросов URL
Переключение почтовых ящиков теперь обновляет URL (?mailboxType, ?mailboxId, ?mailbox) Обновление браузера восстанавливает тот же почтовый ящик. Браузер сообщен...
Mark-as-read and message fetch for shared/member mailboxes
Classic mode now loads shared mailbox messages via the correct /messages/{folder} endpoint (was calling the non-existent /conversations endpoint). Fetching a fu...
Mark-as-read for shared and member mailboxes
EmailController.setFlags now accepts an optional mailboxId query param and routes through resolveProviderWithMailbox so member-mailbox flags are set against the...
Show accurate provider connection status from isConnected field
Replaces the old logic that showed "Connected" for any provider with no sync error (including brand-new providers that were never tested). New three-state badg...
Persist connection test result to isConnected field
- test() endpoint saves isConnected=true/false to DB after every health check - update() resets isConnected to null when configJson changes (credentials may h...
Add isConnected field to VoipProviderInstance
Nullable Boolean: null = never tested, true = last test passed, false = failed. Requires KamoInitializerService schema migration to add IS_CONNECTED column.
Use extensionId as external ID, not Relay node id
FreePBX returns the same Relay id (ZXh0ZW5zaW9uOg== = "extension:") for every extension because the id field is not populated. Using it caused all extensions to...
Обработка IMAPInputStream в getMessage для предотвращения ClassCastException
JavaMail может вернуть IMAPInputStream вместо декодированной строки Part.getContent() - когда содержание сообщения не было предварительно придумано. The Прямые ...
Показать баннер с активным предложением с живым обратным отсчетом миллисекунд
Получает активную сторону сервера продвижения на главной странице и отображает HeroOfferBanner между подзаголовком и бесплатным вызовом. Баннер показывает сумму...
Доступный/недоступный переключатель для бэкэнда и исправление ошибки присутствия OFFLINE
Переименовать приостановленный/активный чип в доступный/недоступный в NavTop Получите начальную доступность на монтировке и сохраняйте переключатели через новый...
Увеличить ТТЛ с 90-х до 300-х, чтобы предотвратить ложное дросселирование на вкладке
Добавить доступно для ответов отдела и меня / конечных точек доступности
Переписать все запросы/мутации GQL на интроспекции живых схем
Проверяли каждое имя поля и тип по фактической схеме FreePBX 17. Полный набор исправлений: Вопросы: - fetchAllExtensions: удалите из расширения несуществующее ...
Pass selectedFolder to ThreadDetailView so email:folder-changed fires with a valid folder
conversation.folder всегда не определен, потому что Java ConversationEntity У него есть папки (текст), а не поле строки папки. Это привело к тому, что нагрузка ...
Исправьте имя поля GraphQL для fetchAsteriskDetails
FreePBX API возвращает «Вы имели в виду fetchAsteriskDetails?» соответственно проверить запрос и его доступ к пути передачи данных.
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.