「利用者:Dragoniez/scripts/AN Reporter.js」の版間の差分
削除された内容 追加された内容
m v1.6.1 |
v1.6.2 外部スクリプトを先に全て読み込む方式に変更 |
||
2行目:
* AN Reporter (ANR)
* Author: Dragoniez
* Version: 1.6.
**************************************/
//<nowiki>
$.when(
$.getScript('https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js'),
mw.loader.using('jquery.ui'),
$.ready
).then(function(){
// Load
$('head').
$('head').append($(
'<style>' +
' .select2-selection__rendered {' +
' padding: 1px 2px;' +
' font-size: 1em;' +
' }' +
' .select2-results__option, .select2-results__group {' +
' padding: 1px 8px;' +
' font-size: 0.9em;' +
' margin: 0;' +
' }' +
'</style>'
));
// Run the script only if the user is autoconfirmed and the page is not an edit page
if (userIsInGroup('autoconfirmed') && mw.config.get('wgAction') !== 'edit') {
// Add ANR tab
$(mw.util.addPortletLink('p-views', '#', '報告', 'ca-anr', '管理者伝言板に利用者を報告', null, '#ca-move'))
.click(function(e){
//
//
// CSS
var labelCSS = 'display: inline-block; width: 8ch;'; // style="${labelCSS}"
var marginCSS = 'margin: 1em 0;'; // style="${marginCSS}"
const url = 'https://ja.wikipedia.org/wiki/';
const ANI = 'Wikipedia:管理者伝言板/投稿ブロック';
const ANS = 'Wikipedia:管理者伝言板/投稿ブロック/ソックパペット';
const AN3RR = 'Wikipedia:管理者伝言板/3RR';
const Iccic = 'Wikipedia:進行中の荒らし行為/長期/Iccic/投稿ブロック依頼';
const ISECHIKA = 'Wikipedia:管理者伝言板/投稿ブロック/いせちか';
const KAGE = 'Wikipedia:管理者伝言板/投稿ブロック/影武者';
const KIYOSHIMA = 'Wikipedia:管理者伝言板/投稿ブロック/清島達郎';
const SHINJU = 'Wikipedia:管理者伝言板/投稿ブロック/真珠王子';
var
` <label for="anr-section-options-i" style="${labelCSS}">節</label>` +
` <select id="anr-section-options-i">` +
` <option selected disabled hidden>選択してください</option>` +
` <option>${getSectionI()}</option>` +
` <option>不適切な利用者名</option>` +
` <option>公開アカウント</option>` +
` <option>公開プロキシ・ゾンビマシン・ボット・不特定多数</option>` +
` <option>犯罪行為またはその疑いのある投稿</option>` +
` </select>`;
// Sections on WP:AN/S
var sectionsS =
` <label for="anr-section-options-s" style="${labelCSS}">名称</label>` +
` <select id="anr-section-options-s">` +
` <option selected disabled hidden>選択してください</option>` +
` <optgroup label="系列が立てられていないもの">` +
` <option>著作権侵害・犯罪予告</option>` +
` <option>名誉毀損・なりすまし・個人情報</option>` +
` <option>妨害編集・いたずら</option>` +
` <option>その他</option>` +
` </optgroup>` +
` <optgroup label="LTA">` +
` <option>声優・特撮関連荒らし系 (203)</option>` +
` <option>Audia3sb系 (3SB)</option>` +
` <option>愛知@nifty荒らし系(AICHI)</option>` +
` <option>秋田ぷらら可変IP系(AKITAPLALA)</option>` +
` <option>Akoyano系 (AKY)</option>` +
` <option>Asaklira系(ASA)</option>` +
` <option>麻原英太系 (ASACOV)</option>` +
` <option>アジアンビ系 (ASIANB)</option>` +
` <option>Bulut系 (Asperger、ASPE)</option>` +
` <option>백돌系(BAEG)</option>` +
` <option>ぼかんてぃん系(BOQ)</option>` +
` <option>ブリッ系 (BUR)</option>` +
` <option>Bz.i.yqs系(BZIYQS)</option>` +
` <option>中央アジア史サブスタブ濫造系(CASTUB)</option>` +
` <option>ダルメーター系(DARU)</option>` +
` <option>X-enon147系 (DOI)</option>` +
` <option>ドラえもん・ギャンブル関連のIP系(DORA)</option>` +
` <option>Ellsiemall系 (ELLS)</option>` +
` <option>イギリス可変IP系(ENS)</option>` +
` <option>EricNeedles3系 (ERIC3)</option>` +
` <option>IUCNレッドリスト関連荒らし系(FRL)</option>` +
` <option>Gamui系 (GAMUI)</option>` +
` <option>極楽サタン系 (GOKURAKU)</option>` +
` <option>Gordon S系(GORDON)</option>` +
` <option>Greaseno系 (GREA)</option>` +
` <option>Grimm系 (GRIMM)</option>` +
` <option>はー先輩系 (HAASEN)</option>` +
` <option>HAT系 (HAT)</option>` +
` <option>ヒースロー系 (HEATHROW)</option>` +
` <option>おぉたむすねィく探検隊系(HEBI)</option>` +
` <option>Hero123系 (HERO123)</option>` +
` <option>Iccic系 (Iccic)</option>` + // Has an independent page
` <option>池沼ガイジ系 (IKE)</option>` +
` <option>いせちか系 (ISECHIKA)</option>` + // Has an independent page
` <option>天体名プロジェクト系(JANNET)</option>` +
` <option>Jj9系 (JJ9)</option>` +
` <option>課代さん系(KADAI)</option>` +
` <option>影武者系(KAGE)</option>` + // Has an independent page
` <option>かめでぃー系(KAMEDY)</option>` +
` <option>かなべえコバトン系 (KANAKOBA)</option>` +
` <option>Nbckfkh系(KFKH)</option>` +
` <option>清島達郎系 (清島、KIYOSHIMA)</option>` + // Has an independent page
` <option>木崎妃系 (KIZAKI)</option>` +
` <option>韓国KT系 (KKT)</option>` +
` <option>Masato Koizumi系(KOIZUMI、M.K.)</option>` +
` <option>Konbudon系(KONBU)</option>` +
` <option>テレビ局関連記事を荒らす韓国IP系(KORTV)</option>` +
` <option>久保帯人関連荒らし系 (KUBOREL)</option>` +
` <option>M21系 (M21)</option>` +
` <option>MASA系 (Mr.ちゅらさん、CHURASAN、MASA)</option>` +
` <option>マヤオ系 (MAYAO)</option>` +
` <option>Mikihisa系(MIKI)</option>` +
` <option>Milky palace系 (Milky)</option>` +
` <option>水戸ソフトバンク可変IP系 (MITO)</option>` +
` <option>猛烈な勢いで赤リンクを無差別除去するアカウント群系(MOUAKA)</option>` +
` <option>MShared系 (MShared)</option>` +
` <option>名取の納豆系(NATO)</option>` +
` <option>Die ndbtk系 (NDBTK)</option>` +
` <option>NoSaito・みそかつおにんにく系 (NMT)</option>` +
` <option>NODA系 (NODA)</option>` +
` <option>Notsu (NOTSU)</option>` +
` <option>カテゴリ・リダイレクト・サブスタブ濫造を行うIP系(NTTPC)</option>` +
` <option>(内部リンク除去)大阪ZAQ可変IP系(OSAKAZAQ)</option>` +
` <option>親子他人丼系(OYAKO)</option>` +
` <option>Pingpongpang (PPP)</option>` +
` <option>川野名 倫系(RIN、DEARU)</option>` +
` <option>さんさんさんさん系 (SAN)</option>` +
` <option>詐称コピペ系 (SASHO)</option>` +
` <option>沙耶奈系(SAYANA)</option>` +
` <option>整数関連荒らしIP系 (SEISU)</option>` +
` <option>荒らし自己差し戻しIP系 (SELFREVERT)</option>` +
` <option>真珠王子系(SHINJU)</option>` + // Has an independent page
` <option>すらいむさん系(SLIME)</option>` +
` <option>新川温泉系 (SNKW)</option>` +
` <option>ソウ系(SOH)</option>` +
` <option>埼玉楽天モバイルIP系 (STRM)</option>` +
` <option>Suzukitaro系 (ツバル、SUZU)</option>` +
` <option>Syun respect for music系 (SYUN)</option>` +
` <option>涼宮ハルヒ20062009系 (SZMY)</option>` +
` <option>TANS系 (TANS)</option>` +
` <option>ゼロタロス系 (TAROSU)</option>` +
` <option>多摩ケーブルネットワークIP系 (T-NET)</option>` +
` <option>若いナマケモノは不要系(WAK)</option>` +
` <option>ホワイト・ジャック系 (カダフィ元帥、WHITE)</option>` +
` <option>Wpcon abuse系 (WPCON)</option>` +
` <option>Yanajin33系(YAN)</option>` +
` <option>揶揄リダイレクト作成荒らし系(YAYURE)</option>` +
` <option>黄色関係のIP系 (YELLOW)</option>` +
` <option>Yqm系(YQM)</option>` +
` <option>隊士蘭堂系</option>` +
` </optgroup>` +
` </select>`;
var userHtml =
// <div class="anr-user-div">
`
` <label id="anr-user1-label" for="anr-user1-input" style="${labelCSS}">利用者</label>` +
` <input id="anr-user1-input" style="width: 31ch;">` +
` <select disabled id="anr-user1-select">` +
` <option class="anr-opt-UNL">UNL</option>` +
` <option class="anr-opt-User2">User2</option>` +
` <option class="anr-opt-IP2">IP2</option>` +
` <option class="anr-opt-logid">logid</option>` +
` <option class="anr-opt-diff">diff</option>` +
` <option selected class="anr-opt-none">none</option>` +
` </select>` +
` </div>` +
` <div id="anr-user1-checkbox-div" style="display: none;">` +
` <label class="anr-emptylabel" style="${labelCSS}"></label>` +
` <input type="checkbox" id="anr-user1-checkbox">` +
` <label id="anr-user1-checkbox-hide" for="anr-user1-checkbox">利用者名を隠す</label>` +
` </div>` +
` <div id="anr-user1-a-div" style="display: none;">` +
` <label id="anr-user1-label" for="anr-user1-a" style="${labelCSS}"></label>` +
` <a id="anr-user1-a" href="" target="_blank"></a>` +
` </div>`;
// </div>
`
`
`
`
`
`
`
` <option selected disabled hidden>選択してください</option>` +
`
//`
`
`
`
`
`
`
`
`
//
`
`
`
`
`
`
`
`
`
`
`
`
`
` <textarea id="anr-summary-text" rows="3" style="width: 100%; display: none;"></textarea>` +
`
// Add the frame
$('body').append($('<div class="anr-modal-dialog" title="AN Reporter" style="max-height: 80vh;"/>'));
// Create html elements
'minHeight': 50,
'minWidth': 300,
'width': 'auto',
'modal': true,
'position': { my: 'center', at: 'top+20%', of: window },
'open': function(){
//
if (!username || username === mw.config.get('wgUserName')) {
username = '';
}
$('#anr-user1-input').val(username);
typeDropdown('#anr-user1-input', '#anr-user1-select');
if (username === mw.config.get('wgRelevantUserName') && !mw.util.isIPAddress(username, true)) {
$('#anr-user1-checkbox-div').css('display', 'block'); // Show 'hide username' if the name obtained is a user's
}
'
'click':
// Check if at least one username
var users = [];
var types = [];
for (let i = 1; i < Infinity; i++) { // Loop through all inputs
if ($(`#anr-user${i}-input`).length === 0) { // if selector is not found
break; // exit for
} else { // if selector is found
if (trimA($(`#anr-user${i}-input`).val()) !== '') { // if input is not empty
users.push(trimA($(`#anr-user${i}-input`).val())); // Push the username into the array
types.push($(`#anr-user${i}-select`).children('option').filter(':selected').text()); // Push the UserAN type into the array
}
}
}
var sectionToEdit = '選択してください';
if (pageToEdit === ANI) {
sectionToEdit = $('#anr-section-options-i').children('option').filter(':selected').text();
} else if (pageToEdit === ANS) {
sectionToEdit = $('#anr-section-options-s').children('option').filter(':selected').text();
} else if (pageToEdit === AN3RR) {
sectionToEdit = '3RR';
}
pageToEdit === '選択してください' || // The page dropdown's remained 選択してください
sectionToEdit === '
trimA($('#anr-reason-text').val()) === '' || // No reason is given
users.length === 0 // No username is given
) {
alert('必須項目が入力・選択されていません'); // Show error and cancel the edit
return;
}
//
var width = $dialog.width();
var msgEditing =
' <div class="anr-editing">' +
' <p>セクション情報を取得中</p>' +
' </div>';
$dialog.find('form').css('display', 'none'); // Hide dialog content
$dialog.dialog('option', 'width', width);
$dialog.dialog({'buttons': [] }); // Hide the button
$dialog.append($(msgEditing));
// Get UserAN information
const UserAN = '{{UserAN|t=TYPE|USER}}';
var reason = trimA($('#anr-reason-text').val());
const scriptAd = ' ([[User:Dragoniez/AN Reporter|AN Reporter]])';
const editSummarySection = '/*' + sectionToEdit + '*/';
var editSummary =
trimA($('#anr-summary-text').val()) === '' ?
genEditSummary() + scriptAd:
trimA($('#anr-summary-text').val()) + scriptAd;
if (reason.substring(reason.length - 4)
var
if (users.length < 2) { // If user
textToSubmit = '* '
} else
for (let i = 0; i < users.length; i++) {
}
textToSubmit += ': ' + reason;
}
// Get section
var
var msgDone = '';
new
action: 'parse',
page: pageToEdit,
formatversion: 2
}).done(function(response){
//
}
console.log('sectionsAPI: ' + sectionsAPI);
var sectionNum = sectionsAPI[sectionToEdit];
if (sectionNum === undefined) { // If section is not found, show error
//
'<p style="color: MediumVioletRed">報告に失敗しました (指定されたセクションが見つかりませんでした)</p>' +
`<p>3. スクリプトのバグ</p>` +
'<br>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="5" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
`<textarea disabled rows="2" style="width: 100%">${editSummary.replace(scriptAd, '')}</textarea>`;
$('.anr-editing').append($(msgDone));
} else { //
//
' <p
new mw.Api().get({
var latestRv = res.query.pages[0].revisions[0];
// Edit the page
$.ajax({
url: mw.util.wikiScript('api'),
data: {
format: 'json',
action: 'edit',
title: pageToEdit,
section: sectionNum,
summary: editSummarySection + editSummary,
basetimestamp: latestRv.timestamp,
curtimestamp: true,
appendtext: '\n\n' + textToSubmit,
token: mw.user.tokens.get('csrfToken')
},
dataType: 'json',
type: 'POST',
success: function(result) {
// If the edit was successful
if(result && result.edit && result.edit.result == 'Success') {
//
//
'<p style="color: MediumVioletRed">報告に失敗しました</p>' +
'<br>' +
'<p>ページ名:</p>' +
`<p>${pageToEdit}</p>` +
'<br>' +
'<p>詳細:</p>' +
`<p>${result.error.info}</p>` +
'<br>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="5" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
`<textarea disabled rows="2" style="width: 100%">${editSummary.replace(scriptAd, '')}</textarea>`;
$('.anr-editing').append($(msgDone));
// Show
msgDone =
'<p style="color: MediumVioletRed">不明なエラーが発生しました</p>' +
'<br>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="5" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
`<textarea disabled rows="2" style="width: 100%">${editSummary.replace(scriptAd, '')}</textarea>`;
$('.anr-editing').append($(msgDone));
}
} else { // If the page
msgDone =
'<p style="color: MediumVioletRed">エラー: 編集先のページ
'<br>' +
'<p>ページ名:</p>' +
`<p>${pageToEdit}</p>` +
'<br>' +
'<p>手動編集用:</p>' +
523 ⟶ 504行目:
$dialog.dialog('option', 'width', width);
editDone($dialog);
}
}
'<p style="color: MediumVioletRed">ページ情報の取得に失敗しました</p>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="5" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
`<textarea disabled rows="2" style="width: 100%">${editSummary.replace(scriptAd, '')}</textarea>`;
$('.anr-editing').append($(msgDone));
$dialog.dialog('option', 'width', width);
editDone($dialog);
}
});
}
});
}
}]
});
// ********** EVENT HANDLERS **********
// Reset dialog when closed
var selectedTar = $(this).children('option').filter(':selected').text();
switch(selectedTar) {
case ANI:
$('.anr-section-div').empty();
$('.anr-section-div').append(sectionsI);
$('.anr-section-div').css('display', 'block');
$('.anr-target-a-div').css('display', 'block');
$('#anr-target-a').attr('href',url + ANI);
break;
case ANS:
$('.anr-section-div').empty();
$('.anr-section-div').append(sectionsS);
var widthS = $('#anr-target-options').width();
$('#anr-section-options-s').select2({'width': widthS}); // Adjust the width of Select2
$('.anr-section-div').css('display', 'block');
$('.anr-target-a-div').css('display', 'block');
$('#anr-target-a').attr('href', url + ANS);
break;
case AN3RR:
$('.anr-section-div').empty();
$('.anr-section-div').css('display', 'none');
$('.anr-target-a-div').css('display', 'block');
$('#anr-target-a').attr('href', url + AN3RR);
break;
}
});
// Dynamically change the display of the form depending on the UserAN type
$(document).on('change','.anr-user-div select', function(e){
var
var valSelected = $(selectID).children('option').filter(':selected').text(); // Selected type
var checkboxDivID = selectID.replace('select', 'checkbox-div'); // ID of div containing <input type="checkbox"> tag
var checkboxID = selectID.replace('select', 'checkbox'); // ID of checkbox
var aDivID = selectID.replace('select', 'a-div'); // ID of div containing <a> tag
var aID = selectID.replace('select', 'a'); // ID of a
var valInput = trimA($(selectID.replace('select', 'input')).val()); // The input value
if (valSelected === 'UNL' || valSelected ===
$(checkboxDivID).css('display', 'block');
$(checkboxID).prop('checked', true);
$(aDivID).css('display', 'block');
$(aID).attr('href', url + 'Special:redirect/logid/' + valInput).text('特別:転送/logid/' + valInput);
} else if (valSelected === 'diff' ) {
$(aDivID).css('display',
} else { //
$(aDivID).css('display', 'none');
}
});
}
var logid;
console.log('objLogid[inputVal]:' + objLogid[inputVal]);
if (objLogid[inputVal] !== undefined) {
$(inputID).val(objLogid[inputVal]); // if the object knows the logid for the user, retrieve the data
updateDropdown(objLogid[inputVal]);
} else {
// if the object doesn't know the logid for the user, ask the API
setTimeout(async function(){
// Get logid from the API
logid = await getLogid(inputVal);
// Check the obtained logid
if (logid === undefined) { // If undefined is returned, reject the checking of the checkbox
alert('エラー\n\n取得可能なlogidが存在しません。Logidを手動で入力するか、type=diff または none を使用してください');
$(checkboxID).prop('checked', true);
return;
} else { // If a valid logid is returned, update type dropdown
updateDropdown(logid);
}
// Set the logid to the input
$(inputID).val(logid);
// Push username and logid into object if it doesn't have them
if (objLogid[inputVal] === undefined) {
objLogid[inputVal] = logid;
}
if (objLogid[logid] === undefined) {
objLogid[logid] = inputVal;
}
}, 0);
}
} else { // if the checkbox is unchecked
console.log('objLogid[inputVal]:' + objLogid[inputVal]);
if (objLogid[inputVal] !== undefined) {
$(inputID).val(objLogid[inputVal]); // if the object knows the username for the logid, retrieve the data
$(selectID).children('.anr-opt-UNL').prop('hidden', false).prop('selected', true);
$(selectID).children('.anr-opt-User2').prop('hidden', false);
$(selectID).children('.anr-opt-IP2').prop('hidden', true);
$(selectID).children('.anr-opt-logid').prop('hidden', true);
$(selectID).children('.anr-opt-diff').prop('hidden', true);
$(selectID).children('.anr-opt-none').prop('hidden', false);
$(aDivID).css('display', 'none');
} else {
alert('エラー\n\nLogidにはアカウント作成記録以外のものも含まれるため、logidからユーザー名への変換機能は実装していません。' +
'テキストボックス下のリンク先からユーザー名を取得するか、手動入力してください。なお、ユーザー名からlogidへの変換が行われた' +
'場合のみ、その逆の変換が可能です');
$(checkboxID).prop('checked', true);
}
}
// Show close button and reload the page if the current user is on the edited page
$dialog.dialog({
'position': { my: 'center', at: 'top+20%', of: window },
'buttons': [{
'text': '閉じる',
'click': function(){
$(this).dialog('close');
var curPage = mw.config.get('wgPageName');
if (
curPage === ANI ||
curPage === ANS ||
curPage === AN3RR ||
curPage === '利用者:Dragoniez/test'
) {
location.reload(true);
}
function
var inputRemains = true;
let i = 1;
var arrOfContribs = [];
var contribs = '';
var type = '';
var reportee = '';
// Check content of all inputs into which usernames are typed
while
if
} else {
type =
reportee = trimA($(`#anr-user${i}-input`).val()); // input
if (reportee !== '')
// Get appropriate links depending on the UserAN
switch(type)
case 'UNL':
case 'User2':
case 'IP2':
contribs = `[[特別:投稿記録/${reportee}|${reportee}]]`;
break;
case 'logid':
contribs = `[[特別:転送/logid/${reportee}|Logid/${reportee}]]`;
break;
case 'diff':
contribs = `[[特別:差分/${reportee}|差分/${reportee}]]の投稿者`;
break;
default:
contribs = reportee;
}
arrOfContribs.push(contribs);
}
}
i++;
}
// Get edit
var textToShow = '';
if (arrOfContribs.length === 0) {
// Do nothing
} else if (arrOfContribs.length === 1) {
textToShow += '+' + arrOfContribs[0];
} else {
textToShow += '+' + arrOfContribs.join(', ');
}
}
});
var lastDay
return new Date(y, m
// Function to get the current date and the section name to which to report
function getSectionI(){
var d = new
var curSection;
switch(true) {
case (1 <= d.getDate() && d.getDate() <=
break;
case (6 <= d.getDate() && d.getDate() <=
break;
case (11 <= d.getDate() && d.getDate() <=
break;
case (16 <= d.getDate() && d.getDate() <=
break;
case (21 <= d.getDate() && d.getDate() <=
curSection = `${d.getFullYear()}年${d.getMonth()+1}月21日 - 25日新規報告`;
case (26 <= d.getDate() && d.getDate() <= lastDay(d.getFullYear(), d.getMonth())):
curSection = `${d.getFullYear()}年${d.getMonth()+1}月26日 - ${lastDay(d.getFullYear(), d.getMonth())}日新規報告`;
break;
default:
undefined;
}
return curSection;
}
});
});
}
// Function to manipulate dropdown options for UserAN types (also maniputes show/hide of checkbox)
var typeDropdownTimeout;
function typeDropdown(inputID, selectID, setNone) {
// Optional parameter: if false, the function doesn't select 'none' when random numbers or strings are typed into the input
if (setNone === undefined) {
setNone = true;
}
var tarVal = trimA($(inputID).val()); // The value typed into the input
var checkboxDivID = selectID.replace('select', 'checkbox-div');
var checkboxID = selectID.replace('select', 'checkbox');
clearTimeout(typeDropdownTimeout); // Run the async function only once when there's been no input change for 0.35 seconds
$(selectID).prop('disabled', true); // disable dropdown
$(checkboxDivID).css('display', 'none'); // hide 'hide username' checkbox
$(checkboxID).prop('checked', false); // uncheck the checkbox
}
if (mw.util.isIPAddress(tarVal, true)) { // if IP
$(selectID).children('.anr-opt-UNL').prop('hidden', true);
$(selectID).children('.anr-opt-User2').prop('hidden', true);
$(selectID).children('.anr-opt-IP2').prop('hidden', false).prop('selected', true);
$(selectID).children('.anr-opt-logid').prop('hidden', true);
$(selectID).children('.anr-opt-diff').prop('hidden', true);
$(selectID).children('.anr-opt-none').prop('hidden', false);
$(checkboxDivID).css('display', 'none'); // hide 'hide username' checkbox
$(checkboxID).prop('checked', false); // uncheck the checkbox
} else if (await userExists(tarVal)) { // if
$(selectID).children('.anr-opt-UNL').prop('
$(selectID).children('.anr-opt-User2').prop('hidden', false);
$(selectID).children('.anr-opt-IP2').prop('hidden', true);
$(selectID).children('.anr-opt-logid').prop('hidden', true);
$(selectID).children('.anr-opt-diff').prop('hidden', true);
$(selectID).children('.anr-opt-none').prop('hidden', false);
$(checkboxDivID).css('display', 'block'); // show 'hide username' checkbox
$(checkboxID).prop('checked', false); // uncheck the checkbox
} else { // if something else (
if (setNone) {
$(selectID).children('.anr-opt-none').prop('hidden', false).prop('selected', true);
} else {
$(selectID).children('.anr-opt-none').prop('hidden', false);
}
$(checkboxDivID).css('display', 'none'); // hide 'hide username' checkbox }
}
}, 350);
}
var checkboxDivID = selectID.replace('select', 'checkbox-div'); // ID of div containing <input type="checkbox"> tag
var aDivID = selectID.replace('select', 'a-div'); // ID of div containing <a> tag
if (trimA($(inputID).val()) === '') {
$(selectID).children('.anr-opt-none').prop('selected', true);
$(checkboxDivID).css('display', 'none');
$(aDivID).css('display', 'none');
}
}
// Function to get account creation logid });
});
} }
}
}
}
// Function to check what user group the current user belongs to
function userIsInGroup(group) {
if (isInArray(group, mw.config.get('wgUserGroups'))) {
return true;
} else {
return false;
}
}
});
|