사용자:IRTC1015/qSig.js
참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다. 구글 크롬, 파이어폭스, 마이크로소프트 엣지, 사파리: ⇧ Shift 키를 누른 채 "새로 고침" 버튼을 클릭하십시오. 더 자세한 정보를 보려면 위키백과:캐시 무시하기 항목을 참고하십시오.
/***
* 서명 누락 경고 스크립트(개발판)
*
* 지뢰주의.
*
* 설명:
* 정해진 문서에서 편집창에 서명(물결표 넷)이 입력되지 않았을 경우,
* 변경사항 게시 버튼을 눌렀을 때 서명 누락을 사용자에게 경고
*
* 사용자 설정:
* window.nsaIgnoreNoTime: boolean, 물결표 셋만 입력한 경우(=시간을 자동
* 입력하지 않는 경우)에 경고하지 않음
* window.nsaNoAlertMinor: boolean, “사소한 편집”이 체크되면 경고하지 않음
* window.nsaCustom: object, 프로젝트 및 이름공간별로 동작할 문서를 사용자 지정
*
* window.nsaCustom 설정 예시:
* window.nsaCustom = {'en.wikipedia.org': {
* 4: 'Village pump|Help desk', // Wikipedia:
* 12: 'Books/Feedback' //Help
* },
* 'meta.wikimedia.org': {
* 0: 'Stewards/Elections \d{4}/Questions',
* 4: 'Requests|' // Meta:
* }
* }
***/
function noSignAlert() {
var project = document.location.hostname;
var lang = mw.config.get( 'wgUserLanguage' );
var msg = {
'en': ['You don\'t have any new signature in your edit.', 'It seems that you don\'t have a timestamp with your signature.', ' Are you sure you want to proceed?'],
'ko': ['서명이 입력되지 않았습니다.', '서명에 시간이 입력되지 않은 것 같습니다.', ' 계속하시겠습니까?']
};
//동작할 문서 지정
//wgNamespaceNumber: RegExp
//RegExp가 ''이면 해당 이름공간에서는 항상 동작
var titleList = {
'ko.wikipedia.org': {
4: '사랑방 \\((일반|기술|정책)\\)/|삭제 토론/|' +
'문서 관리 요청/|문서 이동 요청/|사용자 관리 요청/|' +
'사용자 권한 신청/|계정 이름 변경 요청|봇/|봇 편집 요청/|' +
'관리자 알림판|질문방/|방명록|함께 검토하기|' +
'위키프로젝트/제안|중재 요청/|의견 요청/|편집 필터/오동작|' +
'관리자 선거/|사무장 선거/|검사관 선거/|중재위원회 선거/|' +
'관리자 권한 회수/|파일 업로드 요청|다중 계정 검사 요청|' +
'알찬 글 후보/|좋은 글 후보/|알찬 목록 후보/',
102: '위키백과 토막글/제안'
}
};
var wgNamespaceNumber = mw.config.get('wgNamespaceNumber');
var wgTitle = mw.config.get('wgTitle');
var wpSave = document.getElementById('wpSave');
if (!wpSave) return;
//fallback
if (typeof msg[lang] === 'undefined' ) {
lang = 'en';
}
// 사용자 패턴 추가
if (typeof window.nsaCustom === 'object') {
for ( var id in window.nsaCustom[project] ) {
if ( typeof titleList[project] === 'undefined' ) {
titleList[project] = window.nsaCustom[project];
}
else {
if (typeof titleList[project][id] === 'undefined') {
titleList[project][id] = window.nsaCustom[project][id];
}
else if (window.nsaCustom[project][id] === '' ) {
titleList[project][id] = '';
}
else {
titleList[project][id] += '|' + window.nsaCustom[project][id];
}
}
}
}
//토론 문서에서는 무조건 동작
if (wgNamespaceNumber % 2 !== 1) {
//토론이 아닌 경우
//titleList[project][wgNamespaceNumber] === undefined 인 경우 항상
// !wgTitle.match(titleList[project][wgNamespaceNumber]) === false
if (typeof titleList[project][wgNamespaceNumber] === 'undefined' ||
!wgTitle.match('^(' + titleList[project][wgNamespaceNumber] + ')')) return;
}
//서명 안 했을 때 경고
wpSave.onclick = function(){
var wpTextbox1val = document.editform.wpTextbox1.value;
var minor = false;
if ( typeof $('#wpMinoredit')[0] === 'object' ) {
minor = $('#wpMinoredit')[0].checked;
}
if ( minor && window.nsaNoAlertMinor )
return;
else if (wpTextbox1val.indexOf('~~\~~') < 0 && wpTextbox1val.indexOf('~\~~') >= 0 && !window.nsaIgnoreNoTime )
return confirm( msg[lang][1] + msg[lang][2] );
else if (wpTextbox1val.indexOf('~\~~') < 0 )
return confirm( msg[lang][0] + msg[lang][2] );
else
return;
};
}
jQuery( document ).ready( function( $ ) {
if ($.inArray( mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
noSignAlert();
}
});