# Справка: контекст сабмита
В коде доступны:
assets
- массив объектов Asset - отправляемые файлы. См. раздел Описание объекта AssetsubmitContext
- информация о процессе сабмита. См. раздел Описание объекта submitContextwindow.imshost
- глобальные функции, обеспечивающие взаимодействие с IMS Studio. См. раздел Описание объекта window.imshost
# Описание объекта Asset
type Asset = {
// Уникальный идентификатор ассета
assetId: string,
// Отображаемое название ассета
title: string,
// Под каким именем был загружен на FTP (без расширения)
uploadedBasename: string,
// Тип ассета
type: string,
// Метаданные ассета
metadata: {[prop:string]: any},
// Перечень файлов, входящих в ассет
files: AssetFile[],
// Основной файл ассета
get mainFile(): AssetFile | undefined,
// Статусы, назначенные ассету
markers: AssetMarker[],
// Добавить новый статус ассету
// markerName - служебное имя статуса
// subject - связанный микросток, если требуется
// data - привязанные данные к статусу (необяз.)
addMarker: (markerName: string, subject: string | null, data?: object) => Promise<void>
// Ассету назначен результат
processed: boolean,
// Добавить сообщение в лог ассета
log: (message: string) => void,
// Добавить предупреждение в лог ассета
warn: (message: string) => void,
// Установить значение програсса для текущего блока
// progress - значение в пределах 0..1
// prepare - статус "подготовки"
progress: (progress: number, prepare: boolean) => void,
// Установить результат ассету - ошибка
markFailed: (message: string) => void,
// Установить результат ассету - файл не найден
markNotFound: () => void,
// Установить результат ассету - обработан успешно
// data - объект, который записывается в статус
markDone: (data: object) => void,
// Установить результат ассету - пользователь не обработан
markUnauthorized: () => void,
// Установить результат ассету - файл будет обработан позже
// Используется, когда необходимо делать скрипт, который
// переключается между страницами
markPostponed: () => void,
}
type AssetFile = {
// Имя файла
name: string,
// Роль файла в ассете
role: string
// Получить содержимое файла
getBlob: () => Promise<Blob>
}
type AssetMarker = {
// Служебное имя маркера
name: string,
// Связанный микросток
subject: string | null,
// Записанные в статус данные
data: any
}
# Описание объекта submitContext
type SubmitContext = {
// Настройки процесса сабмита
settings: {[prop: string]: any},
// Переданные в процесс сабмита словари
dictionaries: object
}
# Описание объекта window.imshost
type ImsHost = {
// Загрузить ассет из программы по его идентификатору
loadAsset(assetId: string): Promise<Asset>,
// Получить общее состояние процесса сабмита
getProcessSharedState(): Promise<{
[step: string]: {[prop:string]: any}
}>
}