>島田「にかい」 |
>島田「にかい」 |
1行目: |
1行目: |
| // 即時削除入力補助スクリプト | | // ページ名の左に保護状態を表示する |
| // 最終更新:2019-12-22 | | $(function() |
| //
| | { |
| // 即時削除タグの基準番号を確認するのが煩わしいので、プルダウンメニューを使ってタグを貼り付けできるようにしたもの
| | // 編集状態の規定値 |
| // ツールボックスのリンクをクリックしたときのみ、ページ上部にプルダウンメニューが表示される
| | var editptext = '無'; |
| // 即時削除マシーン遊びをやられると困るので、既に即時削除タグが貼られている場合には反応しない
| | var moveptext = '無'; |
| | var editpcolor = 'cccccc'; |
| | var editpcolor = 'cccccc'; |
| | var protected = false; |
| | var wgRestrictionMove = mw.config.get( 'wgRestrictionMove', [] ); |
| | var wgRestrictionEdit = mw.config.get('wgRestrictionEdit', []); |
|
| |
|
| $(function() {
| | // 編集保護状態 |
| // 未作成のページに反応させない
| | switch(wgRestrictionEdit[0]) |
| if(mw.config.get("wgArticleId") != "0") {
| | { |
| // 編集画面以外であれば反応する
| | // 半保護 |
| if(mw.config.get("wgAction") != "edit" && mw.config.get('wgRestrictionEdit')[0] != "sysop") {
| | case 'autoconfirmed': |
|
| | editptext = '半'; |
| // 編集タブのURLを取得する
| | editpcolor = 'ffff55'; |
| if(mw.config.get("skin") !== "minerva") {
| | protected = true; |
| $editlink = $("#ca-edit>a").attr("href");
| | break; |
| }
| | |
|
| | // 全保護 |
| // ツールボックスに即時削除リンクを追加する
| | case 'sysop': |
| if(mw.config.get("skin") !== "minerva") {
| | editptext = '全'; |
| mw.util.addPortletLink("p-tb", $editlink + "&csdhelper=true", "このページを即時削除依頼" , "t-csd", "編集画面を開き、即時削除タグを貼り付ける");
| | editpcolor = 'ff5555'; |
| }
| | protected = true; |
| }
| | break; |
| }
| | } |
|
| | |
| // ツールボックスから編集画面を開いたときの処理、パラメータが渡された場合のみ処理を実行する
| | // 移動保護状態 |
| if(mw.config.get("wgAction") == "edit" && $(location).attr("search").indexOf("csdhelper=true") > -1 && mw.config.get("skin") !== "minerva") {
| | switch(wgRestrictionMove[0]) |
|
| | { |
| // 編集画面上部にプルダウンメニューを追加する
| | // 半保護 |
| $("#editform")
| | case 'autoconfirmed': |
| .prepend(
| | moveptext = '半'; |
| $("\x3Cselect/\x3E")
| | movepcolor = 'ffff55'; |
| .attr({"name": "csdList"})
| | protected = true; |
| .append(
| | break; |
| $("\x3Coption/\x3E")
| | |
| .attr({"value": ""})
| | // 全保護 |
| .append("選択してください"),
| | case 'sysop': |
| $("\x3Coption/\x3E")
| | moveptext = '全'; |
| .attr({"value": "全般1"})
| | movepcolor = 'ff5555'; |
| .append("全般1 意味不明な内容のページ"),
| | protected = true; |
| $("\x3Coption/\x3E")
| | break; |
| .attr({"value": "全般2"})
| | } |
| .append("全般2 テスト投稿"),
| | |
| $("\x3Coption/\x3E")
| | |
| .attr({"value": "全般3"})
| | // 保護されていれば |
| .append("全般3 荒らしもしくはいたずら"),
| | if(protected) |
| $("\x3Coption/\x3E")
| | { |
| .attr({"value": "全般4"})
| | |
| .append("全般4 露骨な宣伝・広告のみが目的"),
| | // 表生成 |
| $("\x3Coption/\x3E")
| | var table = document.createElement('table'); |
| .attr({"value": "全般5"})
| |
| .append("全般5 削除されたページの改善なき再作成"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "全般6"})
| |
| .append("全般6 ウィキペディア内のコピペによる作成"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "全般8"})
| |
| .append("全般8 初版投稿者による依頼または白紙化"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "全般9"})
| |
| .append("全般9 明白な著作権侵害"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "記事1"})
| |
| .append("記事1 定義なし"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "記事2"})
| |
| .append("記事2 言語間リンク・カテゴリ・外部リンクのみ"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト1-1"})
| |
| .append("リダイレクト1-1 直接関係のないページへのリダイレクト"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト1-2"})
| |
| .append("リダイレクト1-2 単純な書き誤り"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト1-3"})
| |
| .append("リダイレクト1-3 転送先がないリダイレクト"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト1-4"})
| |
| .append("リダイレクト1-4 他言語版へのリダイレクト"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト2-1"})
| |
| .append("リダイレクト2-1 半角と全角の使い分け違反"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト2-2"})
| |
| .append("リダイレクト2-2 作品名を鍵括弧等でくくったもの"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト2-3"})
| |
| .append("リダイレクト2-3 作品名以外の記事名における読み・別表記等の併記"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト2-5"})
| |
| .append("リダイレクト2-5 曖昧さ回避括弧の使い方違反"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト2-6"})
| |
| .append("リダイレクト2-6 漢字表記人名の姓名間の空白"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト3-1"})
| |
| .append("リダイレクト3-1 改名提案を経た曖昧さ回避括弧付きの移動の残骸"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト3-2"})
| |
| .append("リダイレクト3-2 移動依頼を経た曖昧さ回避括弧付きの移動の残骸"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "リダイレクト4"})
| |
| .append("リダイレクト4 唯一の投稿者による移動の残骸で本人依頼のもの"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル1-2"})
| |
| .append("ファイル1-2 コモンズと重複(コピー)"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル1-3"})
| |
| .append("ファイル1-3 コモンズと重複(他プロジェクト由来)"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル1-4"})
| |
| .append("ファイル1-4 コモンズと重複(同一投稿者)"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル1-5"})
| |
| .append("ファイル1-5 コモンズへ移動"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル3"})
| |
| .append("ファイル3 重複ファイル"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル5"})
| |
| .append("ファイル5 出典またはライセンス不明のまま1週間経過"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル6"})
| |
| .append("ファイル6 自由利用できないファイル"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル7"})
| |
| .append("ファイル7 コモンズのファイルページ"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル8"})
| |
| .append("ファイル8 存在しないファイルのファイルページ"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "ファイル9"})
| |
| .append("ファイル9 初版投稿後7日以内の投稿者による依頼"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "カテゴリ1"})
| |
| .append("カテゴリ1 初版からリダイレクト"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "カテゴリ3"})
| |
| .append("カテゴリ3 私的カテゴリ"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "カテゴリ6"})
| |
| .append("カテゴリ6 改名提案を経て未使用となったカテゴリ"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "利用者ページ1"})
| |
| .append("利用者ページ1 本人希望"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "利用者ページ2"})
| |
| .append("利用者ページ2 登録されていない利用者の利用者ページ"),
| |
| $("\x3Coption/\x3E")
| |
| .attr({"value": "利用者ページ3"})
| |
| .append("利用者ページ3 IPユーザーの利用者ページ")
| |
| ),
| |
|
| |
| // 念のため、方針へのリンクも用意しておく
| |
| $("\x3Csmall/\x3E")
| |
| .append("(" ,
| |
|
| |
| $("\x3Ca/\x3E")
| |
| .attr({"href": "/wiki/Wikipedia:%E5%8D%B3%E6%99%82%E5%89%8A%E9%99%A4%E3%81%AE%E6%96%B9%E9%87%9D", "target": "_blank", "title": "別画面で方針ページを開きます"})
| |
| .append("即時削除の方針")
| |
|
| |
| , ")"),
| |
|
| |
| // 2のパラメータ入力欄を無効化した状態で配置しておく
| |
| $("\x3Cbr/\x3E"),
| |
| $("\x3Cinput/\x3E")
| |
| .attr({"type": "text" , "name": "txtReason", "size": "65", "disabled": "disabled"}),
| |
| $("\x3Cinput/\x3E")
| |
| .attr({"type": "button", "name": "btnReason", "value": "入力完了!", "disabled": "disabled", "onclick": "$csdTagDone()"}),
| |
| $("\x3Cbr/\x3E")
| |
| );
| |
| }
| |
| });
| |
|
| |
|
| | // class, id およびスタイルを設定 |
| | table.setAttribute("class", "noprint"); |
| | table.setAttribute("id", "protectionStatus"); |
| | table.setAttribute("style", "font-size: 45%; float: left; line-height: 60%;"); |
| | table.setAttribute("cellspacing", 0); |
|
| |
|
| $(function() {
| | // 中身を生成 |
| //セレクトボックスが切り替わったら処理を実行する
| | table.innerHTML = '<tbody><tr style=\"background-color: #' |
| $("select[name=csdList]").change(function() {
| | + editpcolor |
| // テキストエリアの内容を取得する
| | + '\" id=\"LWeditprtected\"><th style="padding: 4px; font-weight: normal;\">編集</th><td style=\"padding: 4px;\">' |
| var $wikiTxt = $("textarea#wpTextbox1").val();
| | + editptext |
|
| | + '</td></tr><tr style=\"background-color: #' |
| // 即時削除タグの有無を確認する
| | + movepcolor |
| if($wikiTxt.indexOf("{{即時削除") > -1 || $wikiTxt.indexOf("{{sd") > -1) {
| | + '\" id=\"LWmoveprtected\"><th style=\"padding: 4px; font-weight: normal;\">移動</th><td style=\"padding: 4px;\">' |
| // 既にタグが貼られている場合、二段目のテキストボックスを無効化
| | + moveptext |
| $("input[name=btnReason]").prop("disabled", true);
| | + '</td></tr></tbody></table>'; |
| $("input[name=txtReason]").prop("disabled", true);
| |
| $("input[name=txtReason]").val("");
| |
|
| |
| // タグが貼られている場合は処理を抜ける
| |
| return false;
| |
| }
| |
|
| |
|
| |
| // 即時削除タグがなければ続行する
| |
|
| |
| // 2のパラメータが必要な番号と、入力欄に出す説明
| |
| var $delReason = {
| |
| "全般4":"説明を記入してください",
| |
| "全般5":"削除依頼のサブページ名",
| |
| "全般6":"コピペ元ページ名",
| |
| "全般9":"コピー元URL",
| |
| "記事1":"説明を記入してください",
| |
| "リダイレクト1-2":"書き誤りの箇所を説明してください",
| |
| "リダイレクト2-1":"使い分けが間違っている文字を説明してください",
| |
| "リダイレクト2-5":"使い方の違反内容を説明してください",
| |
| "リダイレクト3-1":"改名提案へのリンクを記入してください",
| |
| "リダイレクト3-2":"移動依頼の該当節へのリンクを示してください",
| |
| "ファイル1-2":"コモンズのファイル名",
| |
| "ファイル1-3":"コモンズのファイル名",
| |
| "ファイル1-4":"コモンズのファイル名",
| |
| "ファイル1-5":"コモンズのファイル名",
| |
| "ファイル3":"コモンズのファイル名",
| |
| "ファイル5":"投稿者への通知先",
| |
| "ファイル6":"自由利用ができない根拠",
| |
| "カテゴリ6":"改名提案へのリンク"
| |
| };
| |
|
| |
| // 選択肢が一番上だった場合、何もしない
| |
| if($("select[name=csdList]").val() === "") {
| |
| // 空白
| |
| }
| |
| // 2のパラメータが必要な場合の処理
| |
| else if(Object.keys($delReason).includes($(this).val())) {
| |
| // 二段目のテキストボックスとボタンを有効化する
| |
| $("input[name=btnReason]").prop("disabled", false);
| |
| $("input[name=txtReason]").prop("disabled", false);
| |
|
| |
| // 配列からパラメータの説明を読み出して出力、全選択状態にする
| |
| $("input[name=txtReason]").val($delReason[$(this).val()]);
| |
| $("input[name=txtReason]").focus();
| |
| $("input[name=txtReason]").select();
| |
| }
| |
| // 2のパラメータが不要であれば、選択したvalue値を即時削除タグに含めた状態で出力
| |
| else {
| |
| $("textarea#wpTextbox1").val("\x7B\x7B即時削除|" + $(this).val() + "\x7D\x7D\r\n" + $("textarea#wpTextbox1").val());
| |
|
| |
| // 年のためテキストボックスとボタンの無効化処理を行っておく
| |
| $("input[name=btnReason]").prop("disabled", true);
| |
| $("input[name=txtReason]").prop("disabled", true);
| |
| $("input[name=txtReason]").val("");
| |
| }
| |
| });
| |
| });
| |
|
| |
|
|
| |
|
| // 二段目のテキストボックスを使う場合、入力完了ボタンを押したときに出力 | | // ページ名<h1>取得 |
| function $csdTagDone() {
| | var firstHeading = document.getElementById("firstHeading"); |
|
| | |
| // 全般6のみ3のパラメータ追加
| | // ページ名の左に表を表示 |
| if($("select[name=csdList]").val() == "全般6") {
| | firstHeading.insertBefore(table, firstHeading.firstNode); |
| $("textarea#wpTextbox1").val("\x7B\x7B即時削除|" + $("select[name=csdList]").val() + "|2=" + $("input[name=txtReason]").val() + "|3=\x3C!-- 言語コード --\x3E\x7D\x7D\r\n" + $("textarea#wpTextbox1").val());
| | } |
| }
| | }); |
| // 全般6以外は一段目と二段目のvalue値を取得するだけ
| |
| else {
| |
| $("textarea#wpTextbox1").val("\x7B\x7B即時削除|" + $("select[name=csdList]").val() + "|2=" + $("input[name=txtReason]").val() + "\x7D\x7D\r\n" + $("textarea#wpTextbox1").val());
| |
| }
| |
|
| |
| // 二段目のテキストボックスとボタンを空欄にして無効化する
| |
| $("input[name=btnReason]").prop("disabled", true);
| |
| $("input[name=txtReason]").prop("disabled", true);
| |
| $("input[name=txtReason]").val("");
| |
| }
| |