User:Hotaru Natsumi/js/substub track helper b.js
外观
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
/* ============================================================ *
* [[User:Hotaru_Natsumi/小小作品状态追踪]] Helper Alter
* @author: Hotaru Natsumi
* @version: 1.1b
*
* 该脚本协助[[User:Hotaru_Natsumi/小小作品状态追踪]]页面的使用
* 需要手动加载,不加载该脚本不会影响页面的功能,仍可逐个手动移除项目
*
* 相较于普通版,b版不会锚定已有的链接单元格,而是在每行的最后添加一个复选框
*
* 该脚本仅在[[User:Hotaru_Natsumi/小小作品状态追踪]]页面生效
* ============================================================ */
(function($, mw){
if(mw.config.values.wgPageName !== 'User:Hotaru_Natsumi/小小作品状态追踪') return;
var $table = $('#mw-content-text table.wikitable');
var $rows = $table.find('tr');
var $header = $rows.eq(0);
var $headerCells = $header.find('th');
var $body = $rows.slice(1);
var $bodyCells = $body.find('td');
$body.each(function(i, row){
var $row = $(row);
var $firstCell = $row.find('td').eq(0);
var $lastCell = $row.find('td').eq(-1);
var title = $firstCell.find('span').text();
var $checkbox = $('<td><input type="checkbox" name="' + title + '"></td>');
$lastCell.after($checkbox);
});
var $removeButton = $('<th><a href="javascript:;">批量移除</a></th>');
$removeButton.click(function(){
var payload = ''
$body.each(function(i, row){
var $row = $(row);
var $checkbox = $row.find('input[type="checkbox"]');
if($checkbox.prop('checked')){
payload += $checkbox.attr('name') + '|';
}
});
if(payload==''){
$('.mw-parser-output').after('<div id="hnsel-substub-result" style="border:solid #eaeaea; padding:5px; margin:3px; background:#efefef; border-radius: 3px">未选择选项</div>')
var result = document.getElementById('hnsel-substub-result')
result.scrollIntoView()
return;
}
if (payload.slice(-1) == '|') payload = payload.slice(0, -1)
$.ajax({
url: 'https://hnatsumi-bot.toolforge.org/pop',
type: 'POST',
data: {
'titles': payload
},
success: function(response){
$('.mw-parser-output').after('<div id="hnsel-substub-result" style="border:solid #eaeaea; padding:5px; margin:3px; background:#efefef; border-radius: 3px">API返回:\r\n' + response + '</div>')
var result = document.getElementById('hnsel-substub-result')
result.scrollIntoView()
}
})
});
$headerCells.eq(-1).after($removeButton);
})(jQuery, mediaWiki)