Плагин

Файловый менеджер

Для включения файлового менеджера необходимо в конфигурации инициализации указать параметры:

emailmaker.init({
  storageProvider: ..., // реализация интерфейса StorageProvider
  config: {
    imageCenterFileManagerView: true
  }
});

Секция fileManager управляет возможностями файлового менеджера. Все поля необязательные; если не заданы или false, соответствующая функция отключена.

Basic Operations

  • enableTrash — включает функциональность корзины для удаленных файлов. При включении файлы перемещаются в корзину вместо полного удаления. По умолчанию true
  • enableRenameFolder — разрешает переименование папок. По умолчанию true
  • enableRenameFile — разрешает переименование файлов. По умолчанию true
  • enableUpdateFile — разрешает обновление содержимого или метаданных файлов. По умолчанию true
  • enableEdit — разрешает редактирование файлов (изменение содержимого или свойств). По умолчанию true
  • enableMoveFile — разрешает перемещение файлов между папками. По умолчанию true
  • enableMoveFolder — разрешает перемещение папок. По умолчанию true
  • enableCopyFile — разрешает копирование файлов. По умолчанию true
  • enableCopyFolder — разрешает копирование папок. По умолчанию true
  • enableDelete — разрешает удаление файлов и папок. При включенной корзине файлы перемещаются в корзину. По умолчанию true
  • multiSelect — разрешает множественный выбор файлов и папок для групповых операций. По умолчанию true
  • defaultFolderName — Имя папки по умолчанию
  • sortOptions — белый список значений сортировки в дропдауне списка файлов ('date-desc' \| 'date-asc' \| 'size-desc' \| 'size-asc' \| 'name-asc' \| 'name-desc' \| 'type-asc'). Если не задан или массив пустой — доступны все варианты, которые отображает file-manager. Пример: ['date-desc', 'name-asc'] — скрыть сортировки по размеру и типу, если платформа их не реализует.

Pagination & Display

  • enablePagination — разрешает постраничную навигацию. Если отключено, все элементы загружаются сразу. По умолчанию true

Client-Side Processing

  • clientSideSorting — клиентская сортировка файлов.
    • Если true, применяется стандартная сортировка (по имени по возрастанию).
    • Если указана функция, она принимает текущий массив файлов, необязательные sortBy и sortOrder, и возвращает отсортированный массив.
  • clientSidePaging — клиентская пагинация файлов.
    • Если true, применяется стандартная нарезка массива по page и limit.
    • Если указана функция, она принимает массив файлов, page и limit, и возвращает массив только для нужной страницы.
  • clientSideFilter — клиентская фильтрация файлов.
    • Если true, применяется стандартная фильтрация по тексту search.
    • Если указана функция, она принимает массив файлов и необязательный search, и возвращает отфильтрованный массив.

Cache Strategy

  • cacheStrategy — стратегия кэширования для оптимизации производительности.
    • ttl — время жизни кэша в миллисекундах. По умолчанию 300000 (5 минут)
    • errorTtl — время жизни кэша для ошибок в миллисекундах. По умолчанию 60000 (1 минута)
    • allowSortedInsert — разрешает вставку элемента в отсортированный массив без полной инвалидации кэша. По умолчанию false
    • allowSearchInsert — разрешает вставку элемента в массив с фильтрами без полной инвалидации кэша. По умолчанию false
    • invalidateOnPaginationFull — если страница полная, кэш помечается как устаревший при вставке нового элемента. По умолчанию true
    • comparator — функция сравнения двух файлов для сортировки. По умолчанию сравнение по имени
    • filterMatch — функция проверки, проходит ли файл текущий фильтр. По умолчанию поиск по имени

Интерфейс StorageProvider

Свойства

СвойствоТипОписаниеПо умолчанию
pathModebooleanИспользовать путь как идентификатор для папок
rootIdstringПользовательский идентификатор корневой папки''
trashPathstringПуть к корзине/папке для удаленных файлов
tempPathstringПуть к временной папке для загрузок
useSoftDeletebooleanВключить программное мягкое удалениеfalse
ensureFolderTrailingSlashbooleanДобавлять к путям папок завершающий слэшtrue
validateDuplicatesbooleanПроверка на существование при операциях с файлами и папками

Методы

МетодПараметрыВозвращаетОписание
getItemsoptions:
— folderId?: string
— search?: string
— sortBy?: string
— sortOrder?: 'asc'|'desc'
— page?: number
— limit?: number
— itemType: 'all'|'file'|'folder'
{ items: FileSystemItem[], pagination?: Partial<ApiPaginationResponse> }Получить список файлов и папок с фильтрацией, сортировкой, пагинацией
createFoldername: stringparentid?: stringFileSystemItemСоздать новую папку
uploadFilefile:
— name: string
— size: number
— type: string
— folderId?: string
— data: Blob | string
— thumbnail?: string
— dimensions?: string
— aspectRatio?: string
— extension?: string
FileSystemItemUpdateЗагрузить файл с метаданными
uploadFilesrequest:
— items: массив объектов:
    — requestId?: string — необязательный идентификатор для сопоставления результата
    — name: string — имя файла
    — size: number — размер файла в байтах
    — type: string — MIME-тип файла
    — folderId?: string | null — целевая папка
    — data: Blob | string — содержимое файла
    — extension?: string — расширение файла
— folderId?: string | null — папка для загрузки по умолчанию
BatchResult<UploadFileResultData>Загрузить несколько файлов. Порядок элементов важен — при отсутствии requestId результаты сопоставляются по индексу
uploadFileByUrlurl: stringfolderId?: stringFileSystemItemЗагрузить файл по URL (проверять существующие файлы)
findItemByPathpath: stringFileSystemItem | undefinedНайти системные файлы/папки по пути
setControllercontroller: StorageProviderControllervoidУстановить контроллер управления кэшем
getFileDatafile: FileSystemItemBlobПолучить содержимое файла как blob
getUrlfile: FileSystemItemstringПолучить URL для доступа к файлу
getThumbnailUrlfile: FileSystemItemstringПолучить URL миниатюры
renameItemitem: FileSystemItemnewName: stringFileSystemItemUpdateПереименовать файл/папку
deleteItemitem: FileSystemItemvoidУдалить один элемент (перемещает в корзину при мягком удалении)
deleteItemsitems: FileSystemItem[]BatchResult<never>Удалить несколько элементов
moveItemitem: FileSystemItemtargetFolderId?: stringFileSystemItemUpdateПереместить один элемент
moveItemsitems: FileSystemItem[]targetFolderId?: stringBatchResult<FileSystemItemUpdate>Переместить несколько элементов
copyItemitem: FileSystemItemtargetFolderId?: stringFileSystemItemUpdateКопировать один элемент
copyItemsitems: FileSystemItem[]targetFolderId?: stringBatchResult<FileSystemItemUpdate>Копировать несколько элементов
updateFilefile: FileSystemItemupdates: объект с метаданнымиFileSystemItemUpdateОбновить метаданные/содержимое файла
Определения типов
  • MayBePromise<T>T | Promise<T>
  • FileSystemItem: Объект файла или папки
  • FileSystemItemUpdate: Элемент с измененными полями
  • BatchResult<T>: Результат с деталями успеха/ошибки
  • ApiPaginationResponse: Метаданные пагинации
Важные примечания
  • Мягкое удаление: Когда useSoftDelete=true, операции удаления перемещают элементы в trashPath
  • Корневая папка: Используйте rootId или пустую строку для операций с корневой папкой
  • Разрешение путейtrashPath и tempPath преобразуются в реальные идентификаторы папок
  • Загрузка по URL: Должна проверять, существует ли файл уже на текущем сервере
  • Управление кэшем: Используйте setController для запросов инвалидации кэша
  • Двойное мягкое удаление: Если бэкенд уже реализует мягкое удаление, оставьте useSoftDelete=false