公告
:本站正处于条目建设期。编辑前请阅读
编辑原则
;事务讨论请至
管理员告示板
。
或许你可以看看这个
致全体读者的一封信
查看“︁MediaWiki:Gadget-OneClickPatrol.js”︁的源代码
←
MediaWiki:Gadget-OneClickPatrol.js
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。 如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此JavaScript页面,因为编辑此页面可能会影响所有访问者。
此页面已受到保护,以防止编辑或其他操作。
您可以查看和复制此页面的源代码。
/* OneClickPatrol — 最近更改 / 监视列表一键巡查 (MediaWiki 1.39) * 仅对拥有 patrol 权限的用户(sysop / patroller)生效。 * 作用:在每条「未巡查」变更右侧加一个「✓ 巡查」按钮, * 覆盖核心本不显示按钮的日志/上传类条目; * 页面顶部另提供「✓ 巡查本页全部未巡查」一键处理整页。 */ (function () { 'use strict'; var page = mw.config.get('wgCanonicalSpecialPageName'); if (page !== 'Recentchanges' && page !== 'Watchlist') { return; } mw.loader.using(['mediawiki.api', 'mediawiki.util']).done(function () { var api = new mw.Api(); mw.util.addCSS( '.mw-ocp-btn{margin-left:6px;padding:0 6px;border:1px solid #a2a9b1;' + 'background:#f8f9fa;color:#202122;border-radius:2px;cursor:pointer;font-size:11px;}' + '.mw-ocp-btn:hover{background:#eaecf0;}' + '.mw-ocp-btn:disabled{opacity:.6;cursor:default;}' + '.mw-ocp-all{margin:6px 0;padding:3px 10px;border:1px solid #14866d;' + 'background:#eaf3ff;color:#14866d;border-radius:2px;cursor:pointer;}' ); // 从一行的标题链接 + 用户链接构造与 API 一致的 key function rowKey($li) { var $title = $li.find('.mw-changeslist-title').first(); var title = ''; if ($title.length) { var href = $title.attr('href') || ''; var m = href.match(/[?&]title=([^&]+)/) || href.match(/\/([^?]+)$/); if (m) { title = decodeURIComponent(m[1].replace(/\+/g, ' ')); } } var $user = $li.find('.mw-userlink').first(); var user = ''; if ($user.length) { var uh = $user.attr('href') || ''; var um = uh.match(/User:([^?&]+)/); if (um) { user = decodeURIComponent(um[1].replace(/_/g, ' ')); } } return title + '|' + user; } function patrol(rcid, $btn, $li) { $btn.prop('disabled', true).text('巡查中…'); api.postWithToken('patrol', { action: 'patrol', rcid: String(rcid), formatversion: 2 }).done(function () { $li.removeClass('unpatrolled').addClass('mw-patrolled-ok'); $btn.text('✓ 已巡查').css({ color: '#14866d', borderColor: '#14866d' }); }).fail(function (code, data) { var msg = (data && data.error && data.error.info) ? data.error.info : (code || '失败'); $btn.prop('disabled', false).text('✗ 失败').attr('title', msg); }); } function addButtons(map) { $('#mw-content-text .mw-changeslist').find('li').each(function () { var $li = $(this); if ($li.data('ocp-done')) { return; } var key = rowKey($li); var rcid = null; // 1) 核心已渲染的巡逻链接(他人普通编辑/新建) var $patrol = $li.find('a[href*="action=patrol"]').first(); if ($patrol.length) { var pm = $patrol.attr('href').match(/rcid=(\d+)/); if (pm) { rcid = pm[1]; } } // 2) 通过 API 未巡查列表匹配(覆盖日志/上传等核心不给按钮的条目) if (!rcid && map[key]) { rcid = map[key]; } if (!rcid) { return; } $li.data('ocp-done', true); var $btn = $('<button>') .addClass('mw-ocp-btn') .attr('type', 'button') .text('✓ 巡查') .on('click', function (e) { e.preventDefault(); patrol(rcid, $btn, $li); return false; }); var $box = $li.find('.mw-changeslist-buttons, .mw-changeslist-links').first(); if ($box.length) { $box.append($('<span> </span>').append($btn)); } else { $li.append($('<span> </span>').append($btn)); } }); } function buildMap() { return api.get({ action: 'query', list: 'recentchanges', rcprop: 'ids|title|user', rcshow: '!patrolled', rclimit: 100, formatversion: 2 }).then(function (data) { var map = {}; var list = (data && data.query && data.query.recentchanges) || []; list.forEach(function (rc) { map[rc.title + '|' + rc.user] = rc.rcid; }); return map; }, function () { return {}; }); } $(function () { buildMap().then(function (map) { addButtons(map); mw.hook('wikipage.content').add(function () { addButtons(map); }); var $all = $('<button>') .addClass('mw-ocp-all') .attr('type', 'button') .text('✓ 巡查本页全部未巡查') .on('click', function () { $('#mw-content-text .mw-changeslist').find('button.mw-ocp-btn').each(function () { var $b = $(this); if ($b.text() === '✓ 巡查') { $b.click(); } }); }); $('#firstHeading').after($all); }); }); }); })();
返回
MediaWiki:Gadget-OneClickPatrol.js
。
导航菜单
个人工具
创建账号
登录
命名空间
系统消息
讨论
English
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
站务
管理员告示板
编辑原则
术语表
沙盒
分类索引
所有页面
待撰条目
未归类页面
分类
事件
人物
地点
基地
建筑
服务器
漏洞
物品
组织
工具
链入页面
相关更改
特殊页面
页面信息