# Resource Field Ресурсы являются умными указателями появившимися в рамках проекта "Управление каналами". Их основное назначение - предоставление унифицированного метода адресации произвольных записей в базе (или их компонент). Идентификатор ресурса представляет собой строку вида: * `<схема>:<id>` * `<схема>:<id>:<путь>` Где: * ` <схема>` - тип ресурса, см. далее * `<id>` - идентификатор ресурса в базе * `<путь>` - дополнительная детализация внутри ресурса Некоторые типы ресурсов поддерживают дополнительный путь, некоторые - нет. На настоящий момент используется только один вид ресурса: | Схема | Модель | Путь? | | --- | --- | --- | | `o` | `inv.Object` | Да | Пример: ``` o:123456789012345678901234:Gi1 ``` Слот `Gi1` объекта с id `123456789012345678901234` В связи с этим возникает необходимость в разработке универсального типа поля, которое будет использоваться для отображения и редактирования ресурсов в UI. Поле должно: * Работать на показ в grid (NOC.render.Lookup) * Работать на показ и редактирование в форме * Работать как inline editor в Grid. * Ограничивать выбор отдельным видом ресурса и отдельной областью. Показ в grid и формах можно реализовать по тому же принципу, что и для LookupField: backend генерирует внутреннее поле с суффиксом `__label` и заполняет его самостоятельно. Frontend его отображает. Процесс заполнения формы пользователем происходит в 3 шага: * Пользователь выбирает тип ресурса. Если допустимые типы ресурсов ограничены в настройках поля только одним значением, тип должен быть выбран автоматически * Пользователь выбирает ресурс. Разные типы ресурсов организованы по-разному, процесс выбора может меняться * Если выбранный ресурс содержит дополнительные компоненты, пользователь должен выбрать нужный компонент из списка Значение поля всегда - id ресурса. ## Вопросы * Отдельное приложение для работы с ресурсами? ## Prior Art Форма выбора интерфейса для ручного создания линков.