WikiDer > MediaWiki: Gadget-watchlist-notice-core.js - Википедия
Примечание: После сохранения вам нужно обойти кеш браузера, чтобы увидеть изменения. Гугл Хром, Fire Fox, Microsoft Edge и Сафари: Удерживайте ⇧ Shift ключ и щелкните Перезагрузить кнопка на панели инструментов. Подробные сведения и инструкции о других браузерах см. В разделе Википедия: Обход кеша.
/** * Добавьте кнопки отклонения в список просмотра-сообщение, затем покажите его * Позволяет несколько кнопок закрытия на [[MediaWiki: Watchlist-messages]] с изменяемыми идентификаторами файлов cookie (теперь используется для LS). * Примечание: HTML обратно совместим со старой версией, новая версия игнорирует старый синтаксис, за исключением отклоненных идентификаторов. * @author: [[: en: Пользователь: Ruud Koot]] * @author: [[: en: Пользователь: MZMcBride]] *// * jslint white: true, regexp: true * // * глобальный jQuery, mediaWiki * /( функция ( mw, $ ) {'использовать строго';вар storageKey = 'hidewatchlistmessages';функция getDismissedNotices () { вар hiddenNotices = mw.место хранения.получать( storageKey ) || mw.место хранения.сессия.получать( storageKey ); пытаться { возвращаться JSON.разбирать( hiddenNotices ) || []; } ловить (е) { возвращаться []; }}функция saveDismissedNotices ( уведомления ) { уведомления = JSON.стягивать( уведомления ); mw.место хранения.набор( storageKey, уведомления ) || mw.место хранения.сессия.набор( storageKey, уведомления );}// Удаляем идентификаторы, которые больше не определеныфункция expungeOldNotices ( currentList ) { вар отклонен = getDismissedNotices(), originalLength = отклонен.длина; за ( вар я = отклонен.длина - 1; я >= 0; я--) { если( !( отклонен[я] в currentList ) ) { отклонен.сращивание( я, 0 ); } } если( originalLength !== отклонен.длина ) { saveDismissedNotices( отклонен ); }}функция dismissWatchlistMessage( мероприятие ) { вар $ сообщение = $( это ).ближайший( '.watchlist-сообщение' ); вар Сид = $( это ).данные( 'список наблюдения' ).Сид; вар уведомления = getDismissedNotices(); $ сообщение.Спрятать(); уведомления.толкать( Сид ); saveDismissedNotices( уведомления ); мероприятие.preventDefault();}функция addDismissButton() { вар watchItems = $( 'div.watchlist-сообщение' ); вар watchItemIds = []; вар отклонен = getDismissedNotices(); вар отклоненныйNoticesLength = отклонен.длина; если ( watchItems.длина === 0) { watchItems = $( 'li.watchlist-message' ); } если ( watchItems.длина === 0) { возвращаться; } за ( вар я = 0; я < watchItems.длина; я++ ) { вар список наблюдения = parseInt( watchItems[я].className.заменять( /.*cookie-ID\_(d*).*/ig, '$1' ) ); если ( isNaN( список наблюдения ) ) { Продолжить; } watchItemIds.толкать( список наблюдения ); если ( отклонен.индекс( список наблюдения ) !== -1 ) { watchItems[я].стиль.отображать = 'никто'; Продолжить; } вар Кнопка = документ.createElement( 'охватывать' ); вар ButtonLink = документ.createElement( 'а' ); вар ButtonText = документ.createTextNode( 'увольнять' ); ButtonLink.className = 'dismissButton'; ButtonLink.setAttribute( 'href', '#' ); ButtonLink.setAttribute( 'заглавие', "Скрыть это сообщение" ); ButtonLink.appendChild( ButtonText ); $( ButtonLink ).данные( 'список наблюдения', { индекс: я, Сид: список наблюдения } ); $( ButtonLink ).щелкнуть( dismissWatchlistMessage ); Кнопка.appendChild( документ.createTextNode(' [' ) ); Кнопка.appendChild( ButtonLink ); Кнопка.appendChild( документ.createTextNode( ']' ) ); watchItems[я].appendChild( Кнопка ); } expungeOldNotices( watchItemIds ); $( '# список-сообщение' ).Показать();}$( addDismissButton );}( mediaWiki, jQuery ) );