「利用者:Dragoniez/scripts/AN Reporter.js」の版間の差分

削除された内容 追加された内容
v2.1
v2.2: 報告試行後のボタンの表示方法を変更
2行目:
* AN Reporter (ANR)
* Author: Dragoniez
* Version: 2.12
*************************************/
//<nowiki>
396行目:
 
// For debugging
//pageToEdit = 'User利用者:Dragoniez/test';
//editSummary = 'Test edit via mediawiki API';
 
// Get the wiki pagename for link
var wikiPagename = pageToEdit + '#' + sectionToEdit;
 
// Boolean value to pass to function when edit attempt is done
var editFailed = ) {false;
 
// Get the latest revision
447 ⟶ 450行目:
'<p style="color: MediumVioletRed">取得に失敗しました</p>' +
'<p>指定されたセクションが見つかりませんでした</p>' +
'<br>' +
'<p>ページ名:</p>' +
`<a href="${mw.util.getUrl(wikiPagename)}" target="_blank">${wikiPagename}</a>` +
'<br><br>' +
'<p>考えられる原因:</p>' +
`<p>1. 編集先のページの節構成が変更された</p>` +
457 ⟶ 456行目:
'<br>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="54" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
464 ⟶ 463行目:
 
$dialog.dialog('option', 'width', width);
editDone($dialog)editFailed = true;
editDone($dialog, editFailed, wikiPagename);
 
} else { // If section title in the dropdown is found
521行目:
'に連絡をお願いします</p>' +
'<br>' +
'<p>ページ名:</p>' +
`<a href="${mw.util.getUrl(wikiPagename)}" target="_blank">${wikiPagename}</a>` +
'<br><br>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="54" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
532 ⟶ 529行目:
 
$dialog.dialog('option', 'width', width);
editDone($dialog)editFailed = true;
'<p>ページ名:</p>'editDone($dialog, +editFailed, wikiPagename);
return;
 
564 ⟶ 562行目:
// If the edit was successful
if (res4 && res4.edit && res4.edit.result == 'Success') {
'<br>' +
 
// Get diff
setTimeout(async function(){
var diffUrldiffNum = await getDiffUrlgetDiffNum(res4.curtimestamp); // Get diff number
var diff;
if (diffUrl !== undefined) {
diff = ` (<a href="${diffUrl}" target="_blank">差分</a>)`;
} else {
diff = '';
}
 
// Show message
$('.anr-editing').append($(`<p style="color: MediumSeaGreen">報告が完了しました${diff}</p>`));
$dialog.dialog('option', 'width', width);
editDone($dialog, editFailed, wikiPagename, diffNum);
}, 0);
 
588 ⟶ 579行目:
'<p style="color: MediumVioletRed">報告に失敗しました</p>' +
'<br>' +
'<p>ページ名:</p>' +
`<a href="${mw.util.getUrl(wikiPagename)}" target="_blank">${wikiPagename}</a>` +
'<br><br>' +
'<p>詳細:</p>' +
`<p>${res4.error.info}</p>` +
'<br>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="54" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
602 ⟶ 590行目:
 
$dialog.dialog('option', 'width', width);
editDone($dialog)editFailed = true;
'<br><br>' + editDone($dialog, editFailed, wikiPagename);
 
// If unknown error occurs
611 ⟶ 600行目:
'<p style="color: MediumVioletRed">不明なエラーが発生しました</p>' +
'<br>' +
'<p>ページ名:</p>' +
`<a href="${mw.util.getUrl(wikiPagename)}" target="_blank">${wikiPagename}</a>` +
'<br><br>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="54" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
622 ⟶ 608行目:
 
$dialog.dialog('option', 'width', width);
editDone($dialog)editFailed = true;
//editDone($dialog, GeteditFailed, diffwikiPagename);
}
645 ⟶ 632行目:
 
msgDone =
'<p style="color: MediumVioletRed">エラー: 編集報告先のページが存在しません</p>' +
'<br>' +
'<p>ページ名:</p>' +
`<a href="${mw.util.getUrl(wikiPagename)}" target="_blank">${wikiPagename}</a>` +
'<br><br>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="54" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
658 ⟶ 642行目:
$dialog.dialog('option', 'width', width);
editDone($dialog)editFailed = true;
editDone($dialog, editFailed, wikiPagename);
 
}
673 ⟶ 658行目:
'<p style="color: MediumVioletRed">取得に失敗しました</p>' +
'<br>' +
'<p>ページ名:</p>' +
`<a href="${mw.util.getUrl(wikiPagename)}" target="_blank">${wikiPagename}</a>` +
'<br><br>' +
'<p>手動編集用:</p>' +
`<textarea disabled rows="54" style="width: 100%">${textToSubmit}</textarea>` +
'<br>' +
'<p>要約:</p>' +
684 ⟶ 666行目:
$dialog.dialog('option', 'width', width);
editDone($dialog)editFailed = true;
editDone($dialog, editFailed, wikiPagename);
}
}
914 ⟶ 897行目:
 
// Action for when edit is done (in any way)
function editDone($dialog, editFailed, wikiPagename, diffNum) {
 
// Show close button and reloadGet the page ifname thewithout currenta usersection is on the edited pagespecifier
$dialogvar tarPage = wikiPagename.dialogsplit({ '#')[0];
'position': { my: 'center', at: 'top+20%', of: window },
// Button to jump 'buttons':to [{diff
var btns = 'text': '閉じる',[];
var diffBtn, destBtn, closeBtn;
if (diffNum !== undefined) { // Show the button only if diff number is available
diffBtn = }{
'text': '<br><br>差分' +,
'click': function(){
$window.open(this)mw.util.dialoggetUrl('close特別:差分/'); + diffNum), '_blank');
} var curPage = mw.config.get('wgPageName');
if (};
curPage === ANI || btns.push(diffBtn);
curPage === ANS ||}
curPage === AN3RR ||
curPage === '利用者:Dragoniez/test'
) {
location.reload(true);
}
 
// Button to jump to the report page
if (editFailed || mw.config.get('wgPageName') !== tarPage) { // Show the button if the edit failed or if the user is NOT on the page
destBtn = {
'text': '報告先',
'click': function(){
`<a href="${window.open(mw.util.getUrl(wikiPagename)}", target="'_blank">${wikiPagename}</a>` +');
}
}];
btns.push(destBtn);
}
 
// Button to close the dialog (always shown)
closeBtn = {
'text': '閉じる',
'click': function(){
$(this).dialog('close'); '<br><br>' +
var curPage = mw.config.get('wgPageName');
if location.reload(true);
'<p>ページ名:</p>'curPage +=== ANI ||
curPage === ANS ||
curPage === AN3RR ||
curPage === Iccic ||
curPage === ISECHIKA ||
curPage === KAGE ||
curPage === KIYOSHIMA ||
curPage === SHINJU ||
curPage === '利用者:Dragoniez/test' ||
curPage === '利用者:Dragoniez/test2'
) {
'<p>ページ名:</p>' + location.reload(true);
}
}
};
btns.push(closeBtn);
 
// Show the button(s) on the dialog
$dialog.dialog({
'position': { my: 'center', at: 'top+20%', of: window },
'buttons': btns
});
1,169 ⟶ 1,188行目:
 
// Function to get diff number and its URL after edit
async function getDiffUrlgetDiffNum(curtimestamp) {
return new Promise(function(resolve, reject) {
new mw.Api().get({
1,185 ⟶ 1,204行目:
for (let i = 0; i < revArr.length; i++) {
if (revArr[i].revisions[0].timestamp === curtimestamp) {
resolve(mw.util.getUrl('特別:差分/' + revArr[i].revisions[0].revid));
}
} if (i === revArr.length -1) {
if resolve(diffUrl !== undefined) {;
'<br><br>' +}
} '<p>ページ名:</p>' +
}
});