「利用者:Ansui/js/csdAssist.js」の版間の差分

削除された内容 追加された内容
Ansui (トーク | 投稿記録)
w:利用者:Marine-Blue/csdAssist.js oldid=75459737からソースをいただきました。jsはど素人なので結局使えないかも。
(相違点なし)

2020年8月6日 (木) 16:37時点における版

//即時削除入力補助(途中)
//ツールボックスのリンクをクリックしたときに依頼を簡単に行えるようにしたもの。
//jawpで使っている[[w:利用者:Marine-Blue/csdAssist.js]]というとても便利なツール(感謝)、ぜひこちらでも使いたいので勝手ながらソースをお借りしこちらに合わせて改変しました。
//素人が無理やり背伸びして頑張ってるのでもしかしたら無理かも。;;

$(function() {
	// 未作成のページに反応させない
	if(mw.config.get("wgArticleId") != "0") {
		// 編集画面以外であれば反応する
		if(mw.config.get("wgAction") != "edit" && mw.config.get('wgRestrictionEdit')[0] != "sysop") {
			
			// 編集タブのURLを取得する
			if(mw.config.get("skin") !== "minerva") {
				$editlink = $("#ca-edit>a").attr("href");
			}
			
			// ツールボックスに即時削除リンクを追加する
			if(mw.config.get("skin") !== "minerva") {
				mw.util.addPortletLink("p-tb", $editlink + "&csdhelper=true", "このページを即時削除依頼" , "t-csd", "編集画面を開き、即時削除タグを貼り付ける");
			}
		}
	}
	
	// ツールボックスから編集画面を開いたときの処理、パラメータが渡された場合のみ処理を実行する
	if(mw.config.get("wgAction") == "edit" && $(location).attr("search").indexOf("csdhelper=true") > -1 && mw.config.get("skin") !== "minerva") {
	
		// 編集画面上部にプルダウンメニューを追加する
		$("#editform")
			.prepend(
				$("\x3Cselect/\x3E")
					.attr({"name": "csdList"})
						.append(
							$("\x3Coption/\x3E")
								.attr({"value": ""})
								.append("選択してください"),
							$("\x3Coption/\x3E")
								.attr({"value": "明らかに意味を成さないもの"})
								.append("明らかに意味を成さないもの"),
							$("\x3Coption/\x3E")
								.attr({"value": "プロジェクトの趣旨に反するもの"})
								.append("プロジェクトの趣旨に反するもの"),
							$("\x3Coption/\x3E")
								.attr({"value": "技術的理由によるもの"})
								.append("技術的理由によるもの"),
							$("\x3Coption/\x3E")
								.attr({"value": "著作権侵害が明白であるもの"})
								.append("著作権侵害が明白であるもの"),
							$("\x3Coption/\x3E")
								.attr({"value": "コミュニティとして特に合意するもの"})
								.append("コミュニティとして特に合意するもの"),
						),
				
				// 念のため、方針へのリンクも用意しておく
				$("\x3Csmall/\x3E")
					.append("(" ,
					
						$("\x3Ca/\x3E")
							.attr({"href": "/wiki/Wiktionary:%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")
			);
	}
});


$(function() {
	//セレクトボックスが切り替わったら処理を実行する
	$("select[name=csdList]").change(function() {
		// テキストエリアの内容を取得する
		var $wikiTxt = $("textarea#wpTextbox1").val();
		
		// 即時削除タグの有無を確認する
		if($wikiTxt.indexOf("{{即時削除") > -1 || $wikiTxt.indexOf("{{csd") > -1) {
			// 既にタグが貼られている場合、二段目のテキストボックスを無効化
			$("input[name=btnReason]").prop("disabled", true);
			$("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("");
		//}
	});
});


// 二段目のテキストボックスを使う場合、入力完了ボタンを押したときに出力
//function $csdTagDone() {
	
	// 全般6のみ3のパラメータ追加
	//if($("select[name=csdList]").val() == "全般6") {
	//	$("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("");
//}