Улучшения функции совместного редактирования

Мы провели дополнительные тесты на странное поведение режима совместного редактирования (в остальном отличного): shared edit mode. Вот наши выводы:

Обратите внимание: плагин сам по себе не предоставляет права на редактирование. Это означает, что если вы хотите, чтобы немодераторы могли совместно редактировать сообщение, вам также нужно сделать его вики-страницей (зелёная опциональная кнопка):

Если я включил «Общие правки», у меня появляется возможность сделать сообщение вики-страницей. Но если я делаю это через опцию «Сделать вики», надпись всё ещё остаётся «Сделать вики». Режим вики при этом активируется, однако отменить режим вики невозможно.

Модераторы могут включать и выключать общие правки в теме (красная кнопка) через значок шестерёнки на панели композера.

Мне хотелось бы видеть опцию, при которой право запускать/останавливать общие правки было бы связано с правом запускать/заканчивать вики-режим. Функциональность у них довольно схожая, так зачем выбирать разные права (только для модераторов)?

А теперь самое критичное:

  1. Я установил сообщение в режим вики и в режим общих правок.
  2. Некоторые пользователи начинают редактировать в композере общих правок.
  3. Другие пользователи одновременно используют «классический» вики-редактор — через ссылку «История изменений» на том же сообщении:

а затем внизу нажимают «Изменить сообщение»:

Далее всё быстро портится. Очень сильно. Много перезаписанных данных, изменения не сохраняются, возникают конфликты версий. Насколько я понимаю, общие правки не предназначены для работы одновременно с классическим вики-редактированием (это вполне понятно с технической точки зрения).

Я полагаю, лучшим решением было бы перенаправить кнопку «Изменить сообщение» на новый композер общих правок.

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

Можно возразить: «Просто скажите пользователям держаться подальше от значка карандаша в истории изменений», но так не работает — многие наши пользователи предпочитают этот способ вместо прокрутки вниз к концу длинного сообщения в WikiPad.

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

9 лайков

Есть какие-то новости по этому вопросу? Мы «исправили» это, добавив

div#revision-footer-buttons button:nth-of-type(1) {
    display: none !important;
}

в CSS, но, очевидно, это лишь временное решение, а не исправление…

3 лайка

Вы очень четко описали, как взаимодействуют функциональность вики и совместное редактирование. И это не очень красиво. Спасибо за обходной путь / исправление!!

Я включил это в свой небольшой Wikified Posts Component, так как это отличное улучшение функциональности вики.

1 лайк

Ах — я не знал о нашем компоненте, он очень полезен (я просто использовал старый для раскраски постов в Вики, но теперь переключусь)

2 лайка

Вы можете добавить это в раздел common > header вашей темы (или в /common/header.html в удалённом компоненте), и это добавит класс shared-edits-post к постам с совместным редактированием, если текущий пользователь имеет право их редактировать.

<script type="text/discourse-plugin" version="0.8">
  api.addPostClassesCallback((attrs) => {
    if (attrs.shared_edits_enabled && attrs.canEdit) return ["shared-edits-post"];
  });
</script>

Затем в CSS:

.shared-edits-post {
  // выполните необходимые действия
}
5 лайков

Готово!! Теперь всё объединено в Компонент викифицированных постов:


Спасибо, Джо — всё это стало возможным благодаря тебе!!

Мне действительно нужно найти первый элемент revision-footer-button (с текстом «Изменить вики») и скрыть его только для постов с совместным редактированием. Есть ли способ применить этот класс также к панели или диалогу пересмотров?

3 лайка

Я внес несколько изменений.

Это исправлено. Переключение режима вики (вкл/выкл) для поста с общими правками теперь отображает правильную метку.

Это тоже исправлено. Если вы нажмёте кнопку в модальном окне истории изменений, а пост установлен как shared-edit, откроется редактор общих правок вместо стандартного.

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

Полагаю, вам это было нужно, потому что эта кнопка раньше открывала стандартный редактор? Это теперь исправлено, так что скрывать её больше не потребуется.

6 лайков

Для нас это всё ещё критический вопрос: по соображениям конфиденциальности мы стараемся иметь как можно меньше модераторов. Поэтому мы БЫЛИ БЫ ОЧЕНЬ РАДЫ иметь опцию, при которой любой, кто может создать вики, также мог бы запускать совместное редактирование — по сути, это одно и то же. Кстати, мы назвали этот режим «WikiPad» — он звучит более ярко, чем «совместное редактирование».

4 лайка

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

8 лайков

Каковы шансы, что это удастся? Повторюсь — эта небольшая правка станет настоящим прорывом в нашей повседневной работе.

5 лайков

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

То, что я наблюдал, заключается в следующем: изменение, выполненное пользователем А, отменяется, когда пользователь Б обновляет документ, при этом оба изменения были явно сохранены с помощью кнопки «Сохранить». Я предполагаю, что это может быть вызвано проблемами с сетевым соединением, и мне удалось воспроизвести поведение следующим образом:

  • Оба браузера начинают с общего состояния документа:
  • Браузер 2 теряет соединение (но пользователь этого не замечает):
  • Браузер 1 сохраняет изменение:
  • Браузер 2 вносит изменения, оставаясь в офлайн-режиме:
  • Браузер 2 снова подключается к сети и сохраняет изменение:
  • Изменение, выполненное в браузере 2, сохраняется, отменяя предыдущее изменение, сделанное в браузере 1:

Я понимаю, что это кажется довольно искусственным сценарием, но это был единственный способ воспроизвести поведение, с которым я периодически сталкиваюсь. Сталкивался ли кто-то ещё с этой проблемой? Возможно, для неё уже существует исправление?

5 лайков

Да, я тоже наткнулся на похожую проблему из-за плохого интернет-соединения: иногда теряется довольно много правок. Это очень раздражает. Возможно, стоит добавить обнаружение разрыва соединения и переключение на буферизацию в localStorage или что-то подобное. Может быть, использовать подход «сначала localStorage, затем синхронизация»… Я не уверен, как это реализовано технически, но наверняка бывают случаи, когда задержка синхронизации на несколько миллисекунд была бы лучше, чем потеря текста.

3 лайка

Это всё ещё огромная проблема на нашем сайте. Возможно, эта информация поможет: посмотрите это изменение в истории:

«system» — это системная учетная запись root. Почему не отображается учетная запись пользователя? Другой вариант выглядит так:

Она всё ещё назначена системе, но с дополнительной информацией «отредактировано пользователем xy». Странно.

1 лайк

Привет, @Ralf_Stockmann :slight_smile:

Я разделил ваши сообщения на новую тему ux, чтобы они не исчезли из-за таймера темы. Мне кажется, здесь затронуты несколько вопросов, которые, возможно, стоит отслеживать отдельно (кажется, исправление от @Johani уже решило некоторые из них?). Если это так, дайте знать, и мы создадим для них новую тему или темы. :+1:

3 лайка

Спасибо, но теперь у меня нет сообщений от @literarymachine на эту тему (это мой коллега), где он указал на некоторые связанные с сетью условия гонки в этом плагине, которые а) до сих пор не исправлены и б) делают этот в остальном фантастический плагин совершенно бесполезным для серьезной работы…?

3 лайка

Думаю, всё в порядке. :crossed_fingers:

3 лайка

Для нас этот вопрос также актуален, и это было бы очень полезно.

Будет ли полезен PR по этой теме? Официальные PR для плагинов довольно сложны для таких хакеров, как я, так как требуют больше настроек и экспертизы, которой у меня нет под рукой!

Теперь участники с уровнем Tl4 могут включать общие правки, что даёт вам гораздо больше гибкости.

Приветствуется возможность переключения этого на настройку сайта, основанную на группах.

2 лайка

А как насчет модераторов? Или им нужно повысить уровень до TL4?

Поскольку они могут повысить свой уровень до TL4 самостоятельно, логично предоставить им всем возможность активировать совместное редактирование.

1 лайк