Система пользовательских полей
Создание пользовательских полей
Добавление пользовательских полей в формы контактов
Система пользовательских полей позволяет адаптировать формы контактов под ваши бизнес-потребности:
Процесс создания полей:
- Пользовательские поля создаются через специальный модальный интерфейс
- Поля автоматически связываются с текущей командой
- Каждое поле требует указания имени и типа
- Поля связаны с конкретными моделями (например, контакты)
Обязательная информация:
- Имя поля: Описательное имя для пользовательского поля (обязательно, максимум 255 символов)
- Тип поля: Тип данных для поля (текст или число)
- Целевая модель: Автоматически устанавливается в "App\Models\Contact" для полей контактов
Интерфейс создания:
- Создание на основе модального окна для легкого добавления полей
- Валидация требований полей в реальном времени
- Автоматическое назначение команды для правильного контроля доступа
- Интеграция с формами создания и редактирования контактов
Управление и организация полей
Пользовательские поля организованы систематически в рамках команд:
Организация на основе команды:
- Все пользовательские поля ограничены конкретными командами
- Изоляция команды обеспечивает, что поля видны только участникам команды
- Поля фильтруются по ID команды во всех запросах
- Доступ к полям между командами предотвращен
Поля для конкретных моделей:
- Поля связаны с конкретными моделями через атрибут "fieldable"
- Пользовательские поля контактов отделены от полей других моделей
- Полиморфные отношения позволяют использовать поля в разных моделях
- Фильтрация для конкретных моделей обеспечивает появление релевантных полей в правильных формах
Типы полей и валидация
Доступные типы полей
Система поддерживает множественные типы полей для разных требований данных:
Базовые типы полей:
- Текстовые поля: Для ввода строковых данных со стандартной валидацией текста
- Числовые поля: Для числовых данных с валидацией, специфичной для чисел
- Булевы поля: Для данных true/false (упоминается в комментариях миграции)
- Поля дат: Для ввода данных, специфичных для дат (упоминается в комментариях миграции)
Реализация типов полей:
- Валидация типов обеспечивает использование только поддерживаемых типов
- Фронтенд-компоненты рендерят соответствующие типы ввода на основе типа поля
- Текстовые поля используют стандартные текстовые компоненты ввода
- Числовые поля используют HTML-ввод чисел с числовой валидацией
Правила валидации:
- Имена полей обязательны и ограничены 255 символами
- Типы полей должны быть действительными поддерживаемыми типами
- Ассоциация с командой требуется для всех полей
- Ассоциация с моделью (fieldable) требуется для правильной организации
Управление значениями полей
Значения пользовательских полей управляются через отдельную систему значений:
Хранение значений:
- Значения хранятся в специальной таблице custom_field_values
- Полиморфные отношения связывают значения с конкретными записями (контакты)
- Каждое значение связано с пользовательским полем через custom_field_id
- Значения поддерживают текстовое хранение с nullable значениями
Операции со значениями:
- Создание: Значения создаются при создании контактов с данными пользовательских полей
- Обновление: Значения используют updateOrCreate для эффективного управления значениями
- Чтение: Значения загружаются с контактами для отображения в формах
- Удаление: Значения каскадно удаляются при удалении пользовательских полей
Значения пользовательских полей
Управление данными полей
Значения пользовательских полей интегрированы в рабочие процессы управления контактами:
Создание значений:
- Значения создаются во время создания контактов, если предоставлены данные пользовательских полей
- Каждое значение пользовательского поля связывается с конкретным пользовательским полем и контактом
- Значения могут быть null/пустыми для опциональных полей
- Автоматическое создание значений для всех определенных пользовательских полей
Обновление значений:
- Редактирование контактов включает обновление значений пользовательских полей
- Паттерн UpdateOrCreate обеспечивает правильное поддержание значений
- Существующие значения обновляются, новые значения создаются по мере необходимости
- Удаление полей из форм не удаляет существующие значения
Отображение значений:
- Значения пользовательских полей загружаются с данными контактов для редактирования
- Значения сопоставляются с пользовательскими полями для правильного заполнения форм
- Отображение включает имена полей и текущие значения
- Компоненты форм рендерят соответствующие типы ввода на основе типов полей
Интеграция значений с формами контактов
Значения пользовательских полей бесшовно интегрируются с формами контактов:
Интеграция форм:
- Пользовательские поля появляются в формах создания контактов
- Существующие значения автоматически заполняют формы редактирования
- Валидация форм включает требования пользовательских полей
- Значения отправляются как часть данных контактов
Структура данных:
- Значения передаются как массив custom_field_values в формах
- Каждое значение включает custom_field_id и данные значения
- Компоненты форм сопоставляют значения с соответствующими типами полей
- Валидация происходит как на фронтенд, так и на бэкенд уровнях
Организация полей
Организация по командам и назначению
Пользовательские поля организованы систематически для эффективного управления:
Разделение на основе команды:
- Все пользовательские поля ограничены конкретными командами через team_id
- Фильтрация команды обеспечивает, что поля видны только соответствующим пользователям
- Доступ к полям между командами полностью предотвращен
- Управление и организация полей для конкретной команды
Организация для конкретных моделей:
- Поля организованы по целевой модели через атрибут "fieldable"
- Поля контактов отделены от полей сделок или других полей моделей
- Запросы для конкретных моделей обеспечивают появление релевантных полей в правильных контекстах
- Полиморфные отношения поддерживают гибкое использование полей
Использование на основе назначения:
- Поля могут быть организованы по деловому назначению или типу данных
- Имена полей поддерживают описательную организацию
- Генерация меток предоставляет удобное для пользователя отображение полей
- Поддержка последовательности и упорядочивания запланирована для будущей организации
Отображение и управление полями
Пользовательские поля представлены в организованных, удобных для пользователя интерфейсах:
Функции отображения:
- Автоматическая генерация меток из имен полей с использованием заглавных букв
- Типы полей определяют соответствующие компоненты ввода
- Организованная презентация в формах и списках контактов
- Интеграция с существующими интерфейсами управления контактами
Интерфейс управления:
- Создание полей на основе модального окна для оптимизированного управления
- Список и организация полей в контексте команды
- Интеграция со страницами индекса и управления контактами
- Добавление полей в реальном времени и обновления форм
Интеграция пользовательских полей
Интеграция с рабочими процессами контактов
Пользовательские поля глубоко интегрируются с процессами управления контактами:
Интеграция создания контактов:
- Пользовательские поля появляются в формах создания контактов
- Значения полей сохраняются во время процесса создания контактов
- Валидация включает требования пользовательских полей
- Автоматическое создание отношений поле-значение
Интеграция редактирования контактов:
- Существующие значения пользовательских полей заполняют формы редактирования
- Значения могут быть изменены через стандартный процесс редактирования
- Паттерн UpdateOrCreate обеспечивает согласованность данных
- Изменения полей отслеживаются с обновлениями контактов
Интеграция отображения контактов:
- Пользовательские поля появляются в детальных видах контактов
- Значения полей отображаются с соответствующим форматированием
- Интеграция с возможностями поиска и фильтрации контактов
- Данные полей включены в экспорт и отчетность контактов
Системная интеграция
Пользовательские поля интегрируются с более широкой функциональностью системы:
Интеграция поиска:
- Значения пользовательских полей включены в поиск контактов
- Данные полей поддерживают фильтрацию и организацию
- Интеграция с возможностями глобального поиска
- Организация и группировка контактов на основе полей
Интеграция отчетности:
- Данные пользовательских полей доступны для отчетности и аналитики
- Значения полей включены в экспорт данных контактов
- Интеграция с инструментами отчетности и анализа команды
- Метрики и отслеживание использования пользовательских полей
Сотрудничество команды:
- Пользовательские поля поддерживают управление контактами всей команды
- Определения полей разделяются между участниками команды
- Согласованное использование полей в рабочих процессах команды
- Организация и назначение контактов на основе полей
