Обсуждение MediaWiki:Antier.js
MediaWiki:Antier.js — скрипт для экономии трафика, времени и нервов при конфликтах редактировиня. Он меняет поведение кнопки «Записать страницу» так, что она производит автоматическую проверку и разрешение конфликтов правок без перезагрузки страницы.
По всем вопросам, связанным с использоованием скипта обрщайтесь в User talk:Afinogenoff.
Документация[править код]
Поведение скрипта[править код]
По окончании загрузки страницы скрипт добавляет многоточие к кнопке сохранения, чтобы показать, что всё готово.
После нажатия кнопки «Записать страницу» скрипт загружает с сервера правки, сделанные после начала редактирования и отключает кнопку сохранения, чтобы избежать случайных двойных щелчков. Если правок за этот период сделано не было, сохранение просто продолжается обычным способом. А если правки есть, начинается самое интересное.
Скрипт выводит сообщение вверху страницы и в фоновом режиме подгружает дифф, отображающий изменения, сделанные во время редактирования (причём введённый вами текст, в отличие от стандартного окна конфликта редактирования, в сравнении не участвует). После этого нужно внести показанные изменения в окно редактирования, нажать ссылку в красном сообщении и снова попытаться сохранить страницу. При этой попытке сохранения также проверяется история правок, так что даже при нескольких конфликтах подряд никакие правки не потеряются. А если конфликтов больше нет, сохранение происходит так же гладко, как будто никакого конфликта и не было.
Преимущества[править код]
Преимущества такого метода разрешения конфликтов правок очевидны:
- При конфликтах редактирования расходуется гораздо меньше трафика (на огромных страницах форумов и обсуждений экономия может достигать двадцати и более раз);
- Как следствие, загрузка происходит гораздо быстрее. Кроме того, во время загрузки можно продолжать редактирование;
- Поле редактирования «помнит» изменения — можно использовать комбинацию Ctrl+Z.
Ситуации, когда MediaWiki сама устраняет конфликт[править код]
Ввиду некоторых технических особенностей скрипт показывает все правки, которые были сделаны на странице с момента начала редактирования. В некоторых из этих ситуаций конфликты по умолчанию (то есть без скрипта) устраняет сам движок:
- Редактирование одной секции в то время, как редактировались другие;
- Добавление новой темы в конец обсуждения;
- Добавление одного сообщения в обсуждение (срабатывает не всегда);
- Конфликты с самим собой (правки из-под одной учётной записи с разных окон).
Во всех данных ситуациях скрипт среагирует, как будто произошёл конфликт редактирования — покажет изменения, сделанные во время редактирования. Вы можете просто принять их к сведению или переобдумать свою правку, смысл которой при наличии сделанных до вас изменений может исчезнуть.
Как установить[править код]
Для простой установки достаточно поместить себе в monobook.js строчку
importScript('MediaWiki:Antier.js')
Для установки из других инсталляций MediaWiki можно воспользоваться строчкой
document.write(<script type="text/javascript" src="http://www.traditio.ru/index.php'+
'?title=MediaWiki:Antier.js&action=raw&ctype=text/javascript"><\/script>)
Если вам не нравится многоточие на кнопке сохранения, напишите
acoNoEllipsis = true
importScript('MediaWiki:Antier.js')
Персональное оформление[править код]
Оформление сообщений скрипта может быть полностью управляемо при помощи персонального оформления. Для этого созданы идентификаторы и классы:
#acoConflictNotice
— сообщение с общей информацией о конфликте редактирования;#acoDiffHolder
— элемент-контейнер для сравнения версий;#acoDiv
— сообщение под кнопкой «Записать страницу»:.acoUnknown
— Загрузка истории правок….acoClear
— Конфликтов правок не обнаружено. Сохранение….acoFailed
— Не удаётся загрузить данные. Всё равно сохранить.acoConflicted
— Обнаружен конфликт правок. Внесите показанные выше правки и нажмите сюда.acoReadyToSave
— Страница готова к сохранению
Известные проблемы[править код]
- Отмечается некорректная работа скрипта в той (редкой) ситуации, если за время создания новой страницы она была создана кем-то другим. Для восстановления работоспособности требуется перезагрузить страницу редактирования.
Примечания[править код]
- Скрипт был проверен в Opera 9.24, Mozilla Firefox 2.0.0.9, Internet Explorer 6.0.
- Скрипт может работать не только в Традиции, но и в других инсталляциях MediaWiki. Для этого достаточно работоспособности API.