Thành viên:NhacNy2412/SubpageMover.js
Giao diện
Chú ý: Sau khi lưu thay đổi trang, bạn phải xóa bộ nhớ đệm của trình duyệt để nhìn thấy các thay đổi. Google Chrome, Firefox, Internet Explorer và Safari: Giữ phím ⇧ Shift và nhấn nút Reload/Tải lại trên thanh công cụ của trình duyệt. Để biết chi tiết và hướng dẫn cho các trình duyệt khác, xem Trợ giúp:Xóa bộ nhớ đệm.
/*** Subpage Mover ***/// Easily move the subpages of a page with a single click// Documention at [[User:BrandonXLF/SubpageMover]]// By [[User:BrandonXLF]]$(function() { function moveSubpages() { var allowed = false; $.each(mw.config.get('wgUserGroups'), function(i, v) { if (v == 'eliminator') { allowed = true; var from = $('input[name=wpOldTitle]').val(), to_ns = mw.config.get('wgFormattedNamespaces')[$('select[name=wpNewTitleNs]').val()].replace(' ', '_'), to_page = $('input[name=wpNewTitleMain]').val(), to = (to_ns === '' ? to_page : to_ns + ':' + to_page), reason = $('input[name=wpReason]').val(), talk = $('input[name=wpMovetalk]').prop('checked') ? 'yes' : void 0, watch = $('input[name=wpWatch]').prop('checked') ? 'watch' : void 0; $.get(mw.config.get('wgScriptPath') + '/api.php', { action: 'query', list: 'prefixsearch', pssearch: from + '/', pslimit: '500', format: 'json' }).done(function(apiQuery) { $('#moveSubpages-log').remove(); var log = $('<span>') .appendTo($('#movepage')) .append('<br /><hr />') .attr('id', 'moveSubpages-log'); function movePage(from, to, noerror) { $.post(mw.config.get('wgScriptPath') + '/api.php', { action: 'move', from: from, to: to, reason: reason, movetalk: talk, watchlist: watch, token: mw.user.tokens.get('csrfToken'), format: 'json' }).done(function(response) { if (response.move) { if (response.move['talkmove-errors']) { var talkpage = from.match(':') ? from.replace(':', ' th%E1%BA%A3o_lu%E1%BA%ADn:') : 'Th%E1%BA%A3o_lu%E1%BA%ADn:' + from; log.append($('<p>').text('Không thể di chuyển ' + talkpage).css('color', 'red')); } else if (response.move.talkfrom) { log.append( '<p>Di chuyển thành công ' + response.move.talkfrom + ' đến ' + response.move.talkto + '.</p>' ).css('color', 'green'); } } if (response.error) { log.append($('<p>').text('Không thể di chuyển ' + from).css('color', 'red')); log.append($('<p>').append('• Nguyên nhân: ' + response.error.info + '</li>').css('color', 'red')); } else { log.append('<p>Di chuyển thành công ' + response.move.from + ' đến ' + response.move.to + '.</p>').css('color', 'green'); noerror(); } }); } movePage(from, to, function() { apiQuery.query.prefixsearch.forEach(function(info) { if (info.title === from) return; movePage(info.title, info.title.replace(from, to)); }); }); }); } }); if (!allowed) { mw.notify('You must be at least eliminator.', {title: 'Cannot move page and subpages', type: 'error'}); } } if (mw.config.get('wgCanonicalSpecialPageName') == 'Movepage') { new OO.ui.ButtonWidget({ label: 'Di chuyển trang và trang con', flags: ['primary', 'progressive'] }).$element .on('click', moveSubpages) .appendTo($('button[name=wpMove]').parent().parent()); }});