Senior9324 (토론 | 기여) (...) |
편집 요약 없음 |
||
(사용자 2명의 중간 판 19개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
/* 1.35 */ | |||
(function() { | (function() { | ||
var temp = {}, maps = { | var temp = {}, maps = { | ||
"conditions": { | "conditions": { | ||
"border1": "---비자유 저작물---", | "border1": "---비자유 저작물---", | ||
" | "공정 이용": {value: "독점적 저작권이 있는 비자유 저작물을 가져왔습니다.", own: false}, | ||
"사용 허락": {value: "독점적 저작권이 있는 비자유 저작물을 허락받고 가져왔습니다.", own: false}, | |||
"border2": "---크리에이티브 커먼즈 라이선스---", | "border2": "---크리에이티브 커먼즈 라이선스---", | ||
" | "BY": {value: "저작자표시(BY)"}, | ||
" | "BY-SA": {value: "저작자표시-동일조건변경허락(BY-SA)"}, | ||
" | "BY-ND": {value: "저작자표시-변경금지(BY-ND)"}, | ||
" | "BY-NC": {value: "저작자표시-비영리(BY-NC)"}, | ||
" | "BY-NC-SA": {value: "저작자표시-비영리-동일조건변경허락(BY-NC-SA)"}, | ||
" | "BY-NC-ND": {value: "저작자표시-비영리-변경금지(BY-NC-ND)"}, | ||
"border3": "---기타 라이선스---", | "border3": "---기타 라이선스---", | ||
"GPL": {value: "GNU 일반 공중 사용 허가서", own: false}, | "GPL": {value: "GNU 일반 공중 사용 허가서", own: false}, | ||
"GFDL": {value: "GNU 자유 문서 사용 허가서"}, | "GFDL": {value: "GNU 자유 문서 사용 허가서"}, | ||
"공공누리 제1유형": {value: "공공누리 제1유형: 출처표시", own: false}, | "공공누리 제1유형": {value: "공공누리 제1유형: 출처표시", own: false}, | ||
"border4": "---퍼블릭 도메인---", | "border4": "---퍼블릭 도메인---", | ||
" | "CC-0": {value: "CC0 1.0 퍼블릭 도메인"}, | ||
"PD- | "PD-author": {value: "저작자가 저작권을 포기하여 퍼블릭 도메인으로 배포"}, | ||
"PD-old": {value: "저작권 보호기간이 만료되어 저작권이 소멸됨", own: false}, | "PD-old": {value: "저작권 보호기간이 만료되어 저작권이 소멸됨", own: false}, | ||
"PD-ineligible": {value: "창작성이 결여되어 보호에 부적격합니다.", own: false}, | "PD-ineligible": {value: "창작성이 결여되어 보호에 부적격합니다.", own: false}, | ||
" | "PD-대한민국": {value: "법령, 고시, 사실 전달에 불과한 시사보도입니다.", own: false}, | ||
"국가 상징": {value: "어떤 국가의 상징물입니다.", own: false} | "PD-국가 상징": {value: "어떤 국가의 상징물입니다.", own: false} | ||
}, | }, | ||
"versions": { | "versions": { | ||
"2.0": "2.0 일반", | "2.0": "2.0 일반", | ||
"2.0- | "2.0-KR": "2.0 대한민국", | ||
"2.5": "2.5 일반", | "2.5": "2.5 일반", | ||
"3.0": "3.0 Unported", | "3.0": "3.0 Unported", | ||
72번째 줄: | 72번째 줄: | ||
var applyValue = function(value) { | var applyValue = function(value) { | ||
if (ownCheckBox.is(":checked") && value !== "") { | if (ownCheckBox.is(":checked") && value !== "") { | ||
licenseElem.val("자작 | licenseElem.val("자작}}\n{{" + value).trigger("change"); | ||
} else { | } else { | ||
licenseElem.val(value).trigger("change"); | licenseElem.val(value).trigger("change"); | ||
79번째 줄: | 79번째 줄: | ||
licenseDropdown.change(function() { | licenseDropdown.change(function() { | ||
var condition = licenseDropdown.val(); | var condition = licenseDropdown.val(); | ||
if (condition.indexOf(" | if (condition.indexOf("BY") == 0) { | ||
versionDropdown.prop("disabled", false); | versionDropdown.prop("disabled", false); | ||
if (!versionDropdown.val()) { | if (!versionDropdown.val()) { | ||
86번째 줄: | 86번째 줄: | ||
} | } | ||
applyValue(" | applyValue("CC-" + condition + "-" + versionDropdown.val()); | ||
} else { | } else { | ||
versionDropdown.prop("disabled", true); | versionDropdown.prop("disabled", true); | ||
94번째 줄: | 94번째 줄: | ||
versionDropdown.change(function() { | versionDropdown.change(function() { | ||
var condition = licenseDropdown.val(); | var condition = licenseDropdown.val(); | ||
if (condition.indexOf(" | if (condition.indexOf("BY") == 0) { | ||
versionDropdown.prop("disabled", false); | versionDropdown.prop("disabled", false); | ||
if (!versionDropdown.val()) { | if (!versionDropdown.val()) { | ||
101번째 줄: | 101번째 줄: | ||
} | } | ||
applyValue(" | applyValue("CC-" + condition + "-" + versionDropdown.val()); | ||
} | } | ||
}); | }); | ||
144번째 줄: | 144번째 줄: | ||
e.preventDefault(); | e.preventDefault(); | ||
} else { | } else { | ||
licenseElem.val(" | licenseElem.val("공정 이용"); | ||
} | } | ||
} | } |
2024년 1월 24일 (수) 20:40 기준 최신판
/* 1.35 */
(function() {
var temp = {}, maps = {
"conditions": {
"border1": "---비자유 저작물---",
"공정 이용": {value: "독점적 저작권이 있는 비자유 저작물을 가져왔습니다.", own: false},
"사용 허락": {value: "독점적 저작권이 있는 비자유 저작물을 허락받고 가져왔습니다.", own: false},
"border2": "---크리에이티브 커먼즈 라이선스---",
"BY": {value: "저작자표시(BY)"},
"BY-SA": {value: "저작자표시-동일조건변경허락(BY-SA)"},
"BY-ND": {value: "저작자표시-변경금지(BY-ND)"},
"BY-NC": {value: "저작자표시-비영리(BY-NC)"},
"BY-NC-SA": {value: "저작자표시-비영리-동일조건변경허락(BY-NC-SA)"},
"BY-NC-ND": {value: "저작자표시-비영리-변경금지(BY-NC-ND)"},
"border3": "---기타 라이선스---",
"GPL": {value: "GNU 일반 공중 사용 허가서", own: false},
"GFDL": {value: "GNU 자유 문서 사용 허가서"},
"공공누리 제1유형": {value: "공공누리 제1유형: 출처표시", own: false},
"border4": "---퍼블릭 도메인---",
"CC-0": {value: "CC0 1.0 퍼블릭 도메인"},
"PD-author": {value: "저작자가 저작권을 포기하여 퍼블릭 도메인으로 배포"},
"PD-old": {value: "저작권 보호기간이 만료되어 저작권이 소멸됨", own: false},
"PD-ineligible": {value: "창작성이 결여되어 보호에 부적격합니다.", own: false},
"PD-대한민국": {value: "법령, 고시, 사실 전달에 불과한 시사보도입니다.", own: false},
"PD-국가 상징": {value: "어떤 국가의 상징물입니다.", own: false}
},
"versions": {
"2.0": "2.0 일반",
"2.0-KR": "2.0 대한민국",
"2.5": "2.5 일반",
"3.0": "3.0 Unported",
"4.0": "4.0 국제"
}
};
function makeDropdown(map) {
var dropdown = $("<select>");
dropdown.append('<option value="">기본값</option>');
for (var i in map) {
if (map.hasOwnProperty(i)) {
if (i.indexOf("border") > -1) {
dropdown.append($("<option>").prop("disabled", true).attr("value", "").css("color", "gray").text(map[i]));
} else if (map[i].constructor === String) {
dropdown.append($("<option>").attr("value", i).text(map[i]));
} else {
dropdown.append($("<option>").attr("data-own", map[i].own).attr("value", i).text(map[i].value));
}
}
}
return dropdown;
}
function LicenseDropdown() {
var licenseElem = $("<input>").attr("id", "wpLicense").attr("type", "hidden").attr("name", "wpLicense");
var licenseDropdown, versionDropdown;
var ownCheckBox = $("<input>").attr("type", "checkbox").change(function() {
licenseDropdown.val("");
applyValue("");
if (ownCheckBox.is(":checked")) {
licenseDropdown.find("[data-own=true]").prop("disabled", false);
licenseDropdown.find("[data-own=false]").prop("disabled", true);
} else {
licenseDropdown.find("[data-own=true]").prop("disabled", true);
licenseDropdown.find("[data-own=false]").prop("disabled", false);
}
});
$("#wpLicense").replaceWith(licenseElem);
licenseDropdown = makeDropdown(maps.conditions).css("width", "70%");
licenseDropdown.find("[data-own=true]").prop("disabled", true);
versionDropdown = makeDropdown(maps.versions).css("width", "30%").prop("disabled", true);
var applyValue = function(value) {
if (ownCheckBox.is(":checked") && value !== "") {
licenseElem.val("자작}}\n{{" + value).trigger("change");
} else {
licenseElem.val(value).trigger("change");
}
};
licenseDropdown.change(function() {
var condition = licenseDropdown.val();
if (condition.indexOf("BY") == 0) {
versionDropdown.prop("disabled", false);
if (!versionDropdown.val()) {
applyValue("");
return;
}
applyValue("CC-" + condition + "-" + versionDropdown.val());
} else {
versionDropdown.prop("disabled", true);
applyValue(condition);
}
});
versionDropdown.change(function() {
var condition = licenseDropdown.val();
if (condition.indexOf("BY") == 0) {
versionDropdown.prop("disabled", false);
if (!versionDropdown.val()) {
applyValue("");
return;
}
applyValue("CC-" + condition + "-" + versionDropdown.val());
}
});
licenseDropdown.insertAfter(licenseElem);
versionDropdown.insertAfter(licenseDropdown);
$("<label>").append(ownCheckBox).append(document.createTextNode(" 자작")).insertAfter(versionDropdown);
licenseElem.change(function() {
var tempname = licenseElem.val();
if (!tempname) {
$("#mw-license-preview").html("");
return;
}
if (temp[tempname]) {
$("#mw-license-preview").html(temp[tempname]);
} else {
$.ajax({
type: "GET",
url: mw.util.wikiScript("api"),
data: {
action: "parse",
format: "json",
text: "{{" + tempname + "}}",
contentmodel: "wikitext",
prop: "text"
},
success: function(resp) {
temp[tempname] = resp.parse.text["*"];
$("#mw-license-preview").html(temp[tempname]);
}
});
}
});
$("#mw-upload-form").submit(function(e) {
if (licenseElem.val() == "") {
if (versionDropdown && !versionDropdown.prop("disabled") && !versionDropdown.val()) {
alert("라이선스 버전을 선택해주세요.");
e.preventDefault();
} else if (ownCheckBox.is(":checked")) {
alert("올바른 라이선스가 아닙니다.");
e.preventDefault();
} else {
licenseElem.val("공정 이용");
}
}
});
}
$(function() {
if (document.location.href.indexOf("&wpForReUpload=1") > -1) return;
LicenseDropdown();
});
})();