Перейти к содержимому
KAMOUniverse

Журнал изменений

Что нового.

Каждое усовершенствование платформы, как только она появится.

  1. · SecurityService

    Implement hash-based file storage for avatars

    - Generate SHA-256 hash from avatar ID after persistence - Store hash in database fileHash field - Upload files to MinIO using hash-based naming: {hash}.{fileExtension} - Update all URL generation to use hash instead of ID - Add backward compatibility: generate hash for old avatars without hash - Update photo upload, Avatar Creator creation, update, and delete operations - Prevents enumeration attacks by making file names unpredictable

  2. · kamo-shared-library

    Добавление поля fileHash в объект Avatar для безопасного хранения файлов

    Добавить колонку fileHash для хранения хэша SHA-256 идентификатора аватара Hash используется для именования файлов MinIO для предотвращения атак перечисления. Формат: {hash}.{fileExtension} вместо {id}.{fileExtension}

  3. · kamo-internal

    Rebuild avatar UI - современный, интерактивный, полированный. Backend возвращает URL напрямую

  4. · SecurityService

    Rebuild avatar system - backend generates presigned URLs directly like backgrounds

  5. · kamo-internal

    Добавьте учетные данные MinIO в k8s configmap

  6. · kamo-internal

    Создавайте URL-адреса в Next.js с помощью MinIO SDK с доменом темы

  7. · kamo-shared-library

    Добавьте метод getPresignedUrlWithEndpoint для пользовательских URL-адресов конечных точек

  8. · kamo-internal

    Добавьте создание аватара Avatar Creator, управление фоном с переупорядочением и полную поддержку библиотеки аватара / фона

  9. · SecurityService

    Add avatar and background management endpoints

  10. · kamo-shared-library

    Добавить классы AvatarPhoto и AvatarAvatar Creator, изменить структуру наследования Avatar

  11. · SecurityService

    Organize MinIO storage with folder structure and add Avatar Creator SVG support

    - Updated storage paths to use organized folder structure: * members/avatars/photos/ for photo avatars * members/avatars/vector/ for Avatar Creator SVG avatars * members/backgrounds/ for background images - Added SVG file generation and storage for Avatar Creator avatars - Avatar Creator avatar creation/update now accepts SVG string and saves to MinIO - All presigned URL generation updated to use new folder paths - SVG files are saved when Avatar Creator avatars are created or updated

  12. · SecurityService

    Add avatar, background, and member profile management endpoints

    - Added AvatarController with CRUD operations for avatars (photo and Avatar Creator) - Added UserBackgroundController for managing user background images - Extended MemberController with GET/PUT endpoints for member profile data - All endpoints support MinIO uploads to 'internal' bucket with presigned URL generation - Avatar endpoints support photo uploads and Avatar Creator avatar creation - Background endpoints support member-specific backgrounds - Member profile endpoints support updating avatar selection from user's collection

  13. · kamo-shared-library

    Добавьте репозитории Avatar и UserBackground и поддержку URL

    Добавлен AvatarRepository с методами поиска аватаров пользователем - Добавлен UserBackgroundRepository с методами поиска фонов пользователем/членом Добавлены методы getPresignedUrl в MinIOStorageService для генерации URL-адресов временного доступа Подписанные URL-адреса по умолчанию до 7 дней истечения, настраиваемое время истечения срока действия

  14. · kamo-shared-library

    Добавить UserPhoto и UserBackground субъектов отношений с пользователем / участником

    - Создан объект UserPhoto для хранения фотографий профиля пользователя и участника - Созданный объект UserBackground для хранения фоновых изображений пользователей и членов Обе организации поддерживают ассоциации пользовательского уровня (member=null) и членского уровня (member set). UserPhoto включает поле isSet, чтобы указать, какая фотография в настоящее время активна. UserBackground включает в себя поле sortId для заказа нескольких фонов Обе организации используют EmbRecordState для отслеживания создания, обновления и активного статуса. Добавлены соответствующие индексы баз данных для оптимизации производительности

  15. · kamo-internal

    Добавить общий компонент MemberHeader с аватаром / задним фоном уровня члена

    - Создан общий компонент MemberHeader с фоновыми изображениями и аватарным дисплеем - Добавлены опции переопределения уровня участника для аватара и фона (использовать пользователя по умолчанию против конкретного участника) Обновленный ProfileTab для использования компонента MemberHeader - Обновленная вкладка MembershipPermissionsTab для использования общего компонента MemberHeader Заголовок теперь появляется как на вкладках профиля, так и на вкладках членских разрешений Добавлены переключатели переключателей для «Use Default User Avatar» и «Use Default User Background» Поддерживает пользовательский URL-адрес фонового изображения при отсутствии использования фона темы по умолчанию

  16. · kamo-marketing

    Добавить сенсорную поддержку Magneticcoder для мобильных устройств

  17. · kamo-internal

    Измените сетку на автовысоту, чтобы показать все записи без прокрутки

    Установите domLayout на autoHeight, чтобы сетка расширялась, чтобы соответствовать всем рядам - Удалить переполнение: скрытые от сети контейнерные ящики - Удалить высоту: 100% ограничение от оберточной коробки сетки Сетка теперь показывает все записи на текущей странице без вертикальной прокрутки

  18. · kamo-internal

    Заменить колонку «Адрес» колонками «Государство» и «Улица»

    - Удалить колонку Адрес и AddressRenderer - Добавить колонку состояния после контакта (показывает подотдел/код состояния) Добавить колонку «Улица после штата» (показывает формат «улица, город») - Заменить адрес FilterValue на StateFilterValue и streetFilterValue Добавьте фильтр выпадения штата ко всем штатам США Добавить поле фильтра уличного текста Обновить логику фильтрации для колонок State и Street - Удалить фильтрацию адресов из ResetFilters

  19. · kamo-internal

    Обновление ширины столбца до заданных значений

    - Изменить ширину колонки идентификатора свинца с 300px до 245px - Контактная колонка остается гибкой: 1 принять оставшуюся ширину - Изменить ширину колонки статуса с 200px до 65px - Изменить ширину колонки Sub Status с 200px до 120px - Изменение ширины колонки агента от 150px до 120px - Обновление соответствующей ширины контейнера поля фильтра для соответствия столбцам Добавить явные ограничения minWidth и maxWidth там, где это необходимо

  20. · kamo-internal

    Обновление макета приводит идентификаторы к случайной буквенно-цифровой и задается столбец адресов до 170px

    Добавить генерациюRandomLeadId для создания случайных буквенно-цифровых строк длиной 13 - Изменить поддельные идентификаторы свинца с последовательных чисел на случайные буквенно-цифровые (например, '34FDK69HWGPPK') - Ширина столбца адреса обновления от 250px до 170px с явным мин/макс - Обновление адреса фильтра контейнера шириной до 170px

  21. · kamo-internal

    Обновить ширину колонки даты и заменить кнопки действия

    - Изменить ширину столбца даты с 155px до 170px (создан и назначен) - Обновление дат фильтра полевых контейнеров, чтобы соответствовать ширине 170px Заменить кнопки «Выбранный экспорт», «Поделиться» и «Удалить выбранный» на: - «Reassign Selected ({amount selected})» с иконой «Люди» - «Изменить статус избранного ({количество выбрано})» с иконой SwapHoriz Импорт иконок SwapHoriz из Material-UI Кнопки динамически показывают выбранное количество в этикетках

  22. · kamo-internal

    Добавить тонкую светло-серую границу дна во вторичные вкладки

    - Добавить BorderBottom: '1px solid rgba(0, 0, 0, 0.12)' в контейнер вкладок состояния - Соответствует стилю, найденному на /leads/view/ page Создает визуальное разделение между вкладками и контентом ниже

  23. · kamo-internal

    Добавьте серые фоны к оставшимся полям фильтра и выровняйтесь вниз

    - Изменение выравнивания строк фильтра от центра к флекс-концу (нижнее выравнивание) - Добавить серый фон (#f8fafc) ко всем остальным контейнерам поля фильтра - Добавить радиус границы и прокладку в соответствии со стилем фильтра даты - Регулярные поля фильтра выравниваются до дна, совпадая с высотой нижнего поля даты - Дата поля остаются выше с уложенной компоновкой Все поля фильтров теперь имеют последовательную обработку серого фона

  24. · kamo-internal

    Поля фильтра даты стека вертикально с изолированным серым фоном

    Изменение полей фильтра даты от горизонтальной до вертикальной компоновки (flexDirection: column) Добавьте серый фон (#f8fafc) только для датированных фильтров, а не весь ряд фильтров. - Установить явную ширину 220px для полей фильтра даты - Удалить серый фон из основного контейнера строки фильтра - Добавить пограничный радиус к дате фильтров для лучшего визуального разделения

  25. · kamo-internal

    Улучшение макета пользовательского интерфейса и увеличение макетных данных

    - Уменьшение текста для полей фильтра даты (размер шрифта: 0,75 для ввода, 0,7 для меток) Переместите быстрый поиск на ту же строку, что и вкладки статуса, выровненные справа - Увеличение макета ведет от 50 до 250 Удалить колонку Actions из сетки - Очистите макет, удалив дублированный раздел строки поиска

  26. · kamo-internal

    Добавить компоненты фильтра диапазона дат для созданных и назначенных столбцов

    Добавить переменные состояния для фильтров диапазона созданных и назначенных дат (даты начала/конца) Создание компонентов фильтра диапазона дат с полями «Дата начала» и «Дата окончания» Добавить компоненты фильтра диапазона дат в строку фильтров для созданных и назначенных столбцов Обновление фильтрованной логики RowData для фильтрации по диапазонам дат Поля пустых дат не означают никаких ограничений (все даты для этой цели). Функция ResetFilters для очистки фильтров диапазона дат Фильтры даты поддерживают частичные диапазоны (только начало, только конец или оба)

  27. · kamo-internal

    Сделайте имена контактов кликабельными ссылками и добавьте двойной клик, чтобы открыть свинец

    Обновление ContactRenderer для отображения имени и фамилии в виде подчеркнутых кликабельных ссылок - Добавить обработчик onClick к именам контактов, которые открывают лидерство через onViewLead или перемещаются в /leads/view/:id Добавьте обработчик onRowDoubleClicked в AgGridReact, чтобы открыть свинец, когда строка дважды щелкается Контактные имена теперь имеют основной цвет, подчеркивание и эффект наведения - Двойное щелчок в любом месте на ряду открывает лидерство

  28. · kamo-internal

    Добавить значки в выпадающий фильтр подстатуса и обновить отправленные контракты

    Обновить «Подписанные контракты» на «Отправленные контракты» в соответствии с Java enum - Изменить значок для контрактов, отправленных от назначения, чтобы отправить значок - Добавить значки в выпадающие элементы меню фильтра субстатуса Импортировать значок из Material-UI - Иконки отображаются рядом с каждой опцией подстатуса в выпадающем фильтре

  29. · kamo-internal

    Add unique icons for each sub-status with parent status colors

    - Add unique, relevant icons for each sub-status (e.g., PersonAdd for New Lead, Message for Left Message) - Icons maintain parent status color (green for Fresh, blue for Reckoning, orange for Farm, red for Grim, gray for Void) - Import additional Material-UI icons for sub-statuses - Update getSubStatusIcon to map each sub-status to its unique icon - Fresh: PersonAdd, Message, Event, Schedule, PlayArrow, Description, ShoppingCart, Payment - Reckoning: Sync, Assignment, AssignmentTurnedIn, Build, LocalShipping - Farm: LocalFlorist, ThumbDown, PhoneDisabled, Business, AttachMoney, AccessibilityNew, Block - Grim: Print, SignalWifiOff, PersonOff, Warning, DoNotDisturb, RestoreFromTrash - Void: Science, ContentCopy

  30. · kamo-internal

    Добавьте значки в колонку подстатуса, соответствующую цветам родительского статуса

    Добавить функцию помощника getSubStatusIcon для определения значка на основе родительского статуса Иконки субстатуса используют те же иконки и цвета, что и их родительский статус. Свежие субстатусы: зеленый значок NewReleases - Расчет субстатусов: синяя икона Гавела Подстатусы ферм: оранжевая икона сельского хозяйства - Мрачные подстатусы: икона красного ворона - Подстатусы пустоты: иконка серого отмена

Ваша вселенная ждет.

Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.

Бесплатно навсегда — не требуется кредитная карта