利用者:鈴音雨/insituUndo.js
< 利用者:鈴音雨
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
/** insituUndo - 取り消しを履歴ページ内で完結させるスクリプト* Author - User:鈴音雨*/(function () { function init() { var $undoLinks = $(".mw-history-undo a, .mw-diff-undo a"); $undoLinks.each(function () { var $this = $(this); var href = $this.attr("href"); $this.on("click", function (e) { e.preventDefault(); var c = prompt("コメントを入力してください"); if (c === null) { return; } var $parent = $this.parent(); $this.css("display", "none"); var $spinner = $("<img src='//upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif' alt='loading' class='insitu-undo-spinner' />"); $parent.append($spinner); $parent.append("<span>取り消し中...</span>"); var undo = href.match(/&undo=(\d+)/)[1]; var undoafter = href.match(/&undoafter=(\d+)/); var api = new mw.Api(); api.postWithEditToken({ action: "edit", title: mw.config.get("wgPageName"), undo: undo, undoafter: undoafter ? undoafter[1] : "", summary: c || undefined, }).done(function () { $spinner.remove(); $parent.find("span").text("取り消しました"); $parent.css("background-color", "#86f8a6"); //$insituUndo.css("display", "inline"); }).fail(function (e) { console.error(e); $spinner.remove(); $parent.find("span").text("取り消しに失敗しました (" + e.toString() + ")"); $parent.css("background-color", "#ffad8f") //$insituUndo.css("display", "inline"); }); }); }); } mw.loader.using(["mediawiki.api", "mediawiki.util"], function () { if (mw.config.get("wgAction") == "history" || location.href.includes("diff=")) { init(); } });})();