Совместная работа в реальном времени
С одним проектом и одной версией проекта могут одновременно работать несколько пользователей. Приложение поддерживает постоянное соединение с сервером, поэтому изменения одного пользователя доходят до остальных без перезагрузки страницы, а те, кто работает вместе с вами, видны в заголовке интерфейса.
Кто сейчас в проекте
В заголовке отображается аватар каждого пользователя, работающего в том же контексте; ваш собственный аватар там не показывается. Каждому пользователю присваивается цвет, который используется и для его аватара, и для ячеек, которые он редактирует.
- Рядом отображается до трёх аватаров; на аватаре — первая буква имени пользователя, при наведении отображается имя полностью
- Если пользователей больше, остальные сворачиваются в отметку +N; при наведении на неё отображается список их имён
- Список обновляется при подключении и отключении пользователей
Что обновляется в реальном времени
Уведомления и обновления приходят на трёх уровнях, причём только по тому контексту, в котором вы находитесь:
| Уровень | О чём приходят уведомления |
|---|---|
| Компания | Создание, изменение, клонирование и удаление проектов компании |
| Проект | Изменение глобальной версии, создание и удаление версий |
| Версия | Изменения в РПИ открытой версии: значения ячеек, добавленные и удалённые строки, обсуждения в ячейках |
При переключении на другой проект или другую версию приложение отключается от предыдущих уровней и подписывается на новые. Благодаря этому приходят только уведомления, относящиеся к тому, с чем вы работаете, и информация не перетекает между проектами.
Большинство событий приходят коротким уведомлением с именем пользователя, выполнившего действие, поэтому видно, кто что изменил. Списки обновляются самостоятельно, поэтому список проектов, список версий и списки объектов остаются актуальными без перезагрузки.
Одновременное редактирование одних данных
Таблица РПИ редактируется совместно:
- Ячейка, которую редактирует другой пользователь, обведена рамкой его цвета, поэтому видно, где уже работает кто-то другой, до того как вы начнёте вводить там значение
- Значение, сохранённое одним пользователем, появляется в таблицах остальных на своём месте
- Строки, добавленные одним пользователем, появляются у всех; строки, удалённые одним пользователем, исчезают у всех
- Новое обсуждение и его сообщения отображаются в реальном времени
Таблицы фактов и канва модели данных работают иначе: изменения в них остаются локальными до сохранения. При попытке переключить проект или версию с несохранёнными изменениями приложение спрашивает, сохранить их или отменить.
Если контекст исчез во время работы
| Событие | Что происходит |
|---|---|
| Другой пользователь удалил открытый вами проект | Приходит уведомление «Пользователь … удалил ваш активный проект. Пожалуйста, выберите другой проект или создайте новый проект», и вы переходите в состояние без активного проекта |
| Другой пользователь удалил открытую вами версию | Приходит сообщение о том, что версия удалена другим пользователем и её данные больше не доступны, и вы переключаетесь на глобальную версию |
| Другой пользователь сделал глобальной другую версию | Приходит уведомление «Пользователь … изменил глобальную версию проекта на …», и список версий обновляется |
| Ваш доступ к проекту отозван | При следующем открытии страницы проекта отображается уведомление об ошибке, и вы возвращаетесь в список проектов |
Длительные операции
Клонирование проекта выполняется в фоне, поэтому во время него можно продолжать работу:
- При запуске операции отображается уведомление «Клонирование проекта … запущено»
- По завершении появляется уведомление «Клонирование проекта … успешно завершено. Хотите переключиться на этот проект?» с кнопкой «Переключить проект»
- Если операция не удалась, отображается уведомление «Не удалось завершить клонирование проекта …»
Результаты выполнения SQL-скриптов также доставляются через соединение реального времени, поэтому длительный запрос продолжает выполняться, пока вы перемещаетесь по приложению.