Перейти к содержанию

Совместная работа в реальном времени

С одним проектом и одной версией проекта могут одновременно работать несколько пользователей. Приложение поддерживает постоянное соединение с сервером, поэтому изменения одного пользователя доходят до остальных без перезагрузки страницы, а те, кто работает вместе с вами, видны в заголовке интерфейса.

Кто сейчас в проекте

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

  • Рядом отображается до трёх аватаров; на аватаре — первая буква имени пользователя, при наведении отображается имя полностью
  • Если пользователей больше, остальные сворачиваются в отметку +N; при наведении на неё отображается список их имён
  • Список обновляется при подключении и отключении пользователей

Что обновляется в реальном времени

Уведомления и обновления приходят на трёх уровнях, причём только по тому контексту, в котором вы находитесь:

Уровень О чём приходят уведомления
Компания Создание, изменение, клонирование и удаление проектов компании
Проект Изменение глобальной версии, создание и удаление версий
Версия Изменения в РПИ открытой версии: значения ячеек, добавленные и удалённые строки, обсуждения в ячейках

При переключении на другой проект или другую версию приложение отключается от предыдущих уровней и подписывается на новые. Благодаря этому приходят только уведомления, относящиеся к тому, с чем вы работаете, и информация не перетекает между проектами.

Большинство событий приходят коротким уведомлением с именем пользователя, выполнившего действие, поэтому видно, кто что изменил. Списки обновляются самостоятельно, поэтому список проектов, список версий и списки объектов остаются актуальными без перезагрузки.

Одновременное редактирование одних данных

Таблица РПИ редактируется совместно:

  • Ячейка, которую редактирует другой пользователь, обведена рамкой его цвета, поэтому видно, где уже работает кто-то другой, до того как вы начнёте вводить там значение
  • Значение, сохранённое одним пользователем, появляется в таблицах остальных на своём месте
  • Строки, добавленные одним пользователем, появляются у всех; строки, удалённые одним пользователем, исчезают у всех
  • Новое обсуждение и его сообщения отображаются в реальном времени

Таблицы фактов и канва модели данных работают иначе: изменения в них остаются локальными до сохранения. При попытке переключить проект или версию с несохранёнными изменениями приложение спрашивает, сохранить их или отменить.

Если контекст исчез во время работы

Событие Что происходит
Другой пользователь удалил открытый вами проект Приходит уведомление «Пользователь … удалил ваш активный проект. Пожалуйста, выберите другой проект или создайте новый проект», и вы переходите в состояние без активного проекта
Другой пользователь удалил открытую вами версию Приходит сообщение о том, что версия удалена другим пользователем и её данные больше не доступны, и вы переключаетесь на глобальную версию
Другой пользователь сделал глобальной другую версию Приходит уведомление «Пользователь … изменил глобальную версию проекта на …», и список версий обновляется
Ваш доступ к проекту отозван При следующем открытии страницы проекта отображается уведомление об ошибке, и вы возвращаетесь в список проектов

Длительные операции

Клонирование проекта выполняется в фоне, поэтому во время него можно продолжать работу:

  • При запуске операции отображается уведомление «Клонирование проекта … запущено»
  • По завершении появляется уведомление «Клонирование проекта … успешно завершено. Хотите переключиться на этот проект?» с кнопкой «Переключить проект»
  • Если операция не удалась, отображается уведомление «Не удалось завершить клонирование проекта …»

Результаты выполнения SQL-скриптов также доставляются через соединение реального времени, поэтому длительный запрос продолжает выполняться, пока вы перемещаетесь по приложению.