🚧

places (1)

Сервер BOOCO Meteor (v 1.x) / Примеры добавления коллекций

Введение

Коллекция places:

  • хранит список офисов/зданий/локаций, которые используются в системе BOOCO Meteor на страницах Карта офисаПереговорные комнатыРабочие места и др.;
  • загружается в файле places.json в разделе Инструменты администратора.

place, к которому относится ресурс, указывается в Карточке ресурса в поле Расположение.

Добавление коллекции places

  1. Настройте права для работы с коллекцией places. Для этого в разделе Инструменты администратораРедактор прав:
    • для роли admin добавьте ресурс place;
    • в строке ресурса place установите доступы:
      • any для действий read, create и update — разрешают просматривать, добавлять и обновлять любые коллекции;
      • own для действия delete — разрешает удалять коллекции, которые добавил сам пользователь;
      • own для действия execute — доступ на исполнение действий с коллекциями, которые добавил сам пользователь.
  2. Создайте файл places.json. Для этого:
    • скачайте шаблон:
    • places_template.json0.4KB
    • укажите нужные данные и сохраните файл с именем places.json.
  3. Загрузите на сервер BOOCO содержимое файла places.json. Для этого:
    • нажмите на значок шестеренки и выберите REST API;
    • на странице отправки REST API-запроса в поле Данные скопируйте содержимое файла places.json и сделайте POST-запрос для загрузки на сервер. В поле REST API URL должен быть следующий адрес: http(s)://<адрес сервера>/api/v1/places
      1. После отправки POST-запроса под кнопками в строке status отобразится результат загрузки данных:

      2. success — данные загружены;
      3. access denied — данные не загружены. Проверьте, корректно ли настроены доступы для работы с коллекцией places. Настройте доступы так, как показано в п. 1, и повторите POST-запрос.
  4. Сбросьте коллекцию places в разделе Инструменты администратора → Операции с коллекциями.
  5. 💡
    После добавления коллекции places на сервер BOOCO каждому place будет автоматически присвоен уникальный id.
    ⚠️
    Чтобы добавить новый place или сегмент — измените измените places и импортируйте обновленный файл places.json.

Создание файла places.json

Разделы файла places.json

Название
Тип
Описание
Вопросы (позже удалю)
object

Настройки place. Должен быть хотя бы 1 place (при инициализации создается дефолтная локация)

1. “при инициализации создается дефолтная локация” - что имеется в виду? 2. Правильно ли указан тип?

object

Настройки сегмента в составе данного place. Должен быть хотя бы 1 сегмент. Примеры сегментов: этаж, левое крыло здания и др.

1. Всё ли верно в колонке “Описание”? 2. Правильно ли указан тип?

Данные в разделе interface IPlace extends IWithTitles

Название
Тип
Описание
Вопросы (позжде удалю)
string

Уникальный идентификатор place

1. Есть ли требования к количеству символов в uuid? 2. В каком формате указывается uuid (латиница, цифры, дефис и др.)?

string

Уникальное имя place

Всё ли верно в колонке “Описание”?

string

Адрес place

string

Дополнительная информация о place

list

Список сегментов в составе place. Указывается в формате: IPlaceSegment[segment_name1, segment_name2, segment_name3]

Всё ли верно в колонке “Описание”, в том числе в примере формата?

Данные в разделе interface ISegment extends IWithTitle

Название
Тип
Описание
Вопросы (позжде удалю)
string

Уникальный идентификатор сегмента в составе place

1. Есть ли требования к количеству символов в uuid сегмента? 2. В каком формате указывается uuid (латиница, цифры, дефис и др.)?

string

Уникальное имя сегмента

string

Имя файла с картой сегмента. Указывается в формате name-map.svg

Всё ли верно в колонке “Описание”?

string

Дополнительная информация о сегменте

number

Ранг сортировки: приоритет при отображении в списке с выбором place в поле Расположение в Карточке ресурса (чем ниже, тем ближе к началу списка)

Всё ли верно в колонке “Описание”?

💡
Сегменты можно не описывать (даже если они есть).

Пример файла places.json:

interface IPlace extends IWithTitles {
  uuid: Company-center1;
  name: Москва;
  address?: Москва, ул. Тестовая, 1;
  description?: Центральный офис;  
  segments?: IPlaceSegment[Сектор A, Сектор B];
}

interface ISegment extends IWithTitles {
  uuid: sector-A;
  name: Сектор A; 
  map?: sectorA-map.svg;
  description?: Сектор A с переговорными комнатами;
  rang?: 1;
}

interface ISegment extends IWithTitles {
  uuid: sector-B;
  name: Сектор B; 
  map?: sectorB-map.svg;
  description?: Сектор B - опенспейс на 2-м этаже;
  rang?: 2;
}

interface IPlace extends IWithTitles {
  uuid: Company-regions2;
  name: Региональные офисы;
  address?: Россия;
  description?: Офисы в Пензе и Нижнем Новгороде;  
  segments?: IPlaceSegment[Пенза, Нижний Новгород];
}

interface ISegment extends IWithTitles {
  uuid: penza;
  name: Пенза; 
  map?: penza-map.svg;
  description?: Пенза, ул. Западная, д. 100, этаж 2, каб. 2-12;
  rang?: 1;
}

interface ISegment extends IWithTitles {
  uuid: nn;
  name: Нижний Новгород; 
  map?: nn-map.svg;
  description?: Нижний Новгород, ул. Восточная, д. 99, этаж 3;
  rang?: 2;
}