利用者:Sakoppi/LTag.js
注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
- Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
- Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
- Internet Explorer / Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください
- Opera: Ctrl-F5を押してください
$(function(){
//ボタンの設置
if( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
$(".editButtons").append("<input id='ltag_btn' title='著作権チェック及び適切な著作権タグの選択' type='button' value='著作権タグ出力'/>");
}
//modalのチェック
$(document).on("change", "#ltag-type", function(){
$("#ltag-ryukyu").prop("checked", false);
if($(this).val() == "gov"){
//表示する項目
$("#ltag-year-area, #ltag-ryukyu-area").show();
//表示しない項目
$("#ltag-death-area").hide();
}else if($(this).val() == "org"){
//表示する項目
$("#ltag-year-area").show();
//表示しない項目
$("#ltag-death-area, #ltag-ryukyu-area").hide();
}else if($(this).val() == "people"){
//表示する項目
$("#ltag-year-area, #ltag-death-area").show();
//表示しない項目
$("#ltag-ryukyu-area").hide();
}else{
$("#ltag-year-area").show();
$("#ltag-death-area, #ltag-ryukyu-area").hide();
}
});
//modal本体
$(document).on("click", ".editButtons #ltag_btn", function(){
$("<div />").attr({"id":"ltag-dialog", "title":"著作権タグ出力(日本の著作物限定)"})
.append($("<form />")
.append($("<table />")
.attr({"class":"wikitable"})
.append($("<tr />")
.attr({"id":"ltag-type-area", "style":"padding-top:1em; padding-left:0.5em;"})
.append($("<th />")
.append($("<label />")
.attr("for", "ltag-type").text("種類")
)
)
.append($("<td />")
.append($("<select id='ltag-type' />")
.append("<option value='nothing'>選択してください</option>")
.append("<option value='gov'>法令等(著作権法第13条該当)</option>")
.append("<option value='org'>団体著作物</option>")
.append("<option value='people'>個人著作物</option>")
)
)
)
.append($("<tr />")
.attr({"id":"ltag-year-area", "style":"padding-top:1em; padding-left:0.5em;"})
.append($("<th />")
.append($("<label />")
.attr("for", "ltag-year").text("公表年")
)
)
.append($("<td />")
.append($("<input type='number' />")
.attr({"id": "ltag-year"})
)
)
)
.append($("<tr />")
.attr({"id":"ltag-death-area", "style":"padding-top:1em; padding-left:0.5em; display:none;"})
.append($("<th />")
.append($("<label />")
.attr("for", "ltag-death").text("没年(個人)")
)
)
.append($("<td />")
.append($("<input type='number' />")
.attr({"id": "ltag-death"})
)
)
)
.append($("<tr />")
.attr({"id":"ltag-ryukyu-area", "style":"padding-top:1em; padding-left:0.5em; display:none;"})
.append($("<th />")
.append($("<label />")
.attr("for", "ltag-ryukyu").text("アメリカ合衆国統治下の沖縄")
)
)
.append($("<td />")
.append($("<input type='checkbox' />")
.attr({"id":"ltag-ryukyu"})
)
)
)
)
.append($("<div />")
.text("タグ出力後プレビューを行い、表示される著作権の状態を確認してください")
)
)
.dialog({
"minHeight":200,
"width":400,
"modal":true,
"buttons":[{
"text":"生成",
"click":function(){
var $dialog = $(this);
var templateText = "{{subst:LTag" +
"|country=JP" +
"|type=" + $("#ltag-type").val() +
"|year=" + $("#ltag-year").val() +
($("#ltag-type").val() != "gov" ? "|death=" + $("#ltag-death").val() : "") +
($("#ltag-type").val() == "gov" ? "|ryukyu=" + ($("#ltag-ryukyu").prop("checked") ? "yes" : "") : "") +
"}}";
insertAtCaret("#editform textarea", templateText);
$dialog.dialog("close");
$(this).off();
}
}]
});
});
});
function insertAtCaret(target, str) {
var obj = $(target);
obj.focus();
if(navigator.userAgent.match(/MSIE/)) {
var r = document.selection.createRange();
r.text = str;
r.select();
} else {
var s = obj.val();
var p = obj.get(0).selectionStart;
var np = p + str.length;
obj.val(s.substr(0, p) + str + s.substr(p));
obj.get(0).setSelectionRange(np, np);
}
}