참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.
- 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
- 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
- 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
- 오페라: Ctrl-F5를 입력.
if (mw.config.get('wgPageName') == "특수:이메일보내기") {
(function() {
if (document.querySelector('p.error')) return;
// Keybase id 입력 칸과 체크박스 추가
mw.loader.load("jquery.ui.autocomplete")
// id 입력칸
var keybaseIdRow = document.createElement("tr");
keybaseIdRow.className = "mw-htmlform-field-HTMLTextField";
keybaseIdRow.innerHTML = '<td class="mw-label"><label for="input-keybase-id">Keybase 아이디</label></td><td class="mw-input"><input id="input-keybase-id" maxlength="100" title="암호화에 사용할 Keybase Id"></input></td>';
document.querySelector('table tbody').insertBefore(keybaseIdRow, document.querySelector('table tr.mw-htmlform-field-HTMLTextAreaField'));
// id 입력칸 자동입력
$(keybaseIdRow.querySelector('input')).autocomplete({
source: function(acreq, acres) {
var req = new XMLHttpRequest();
req.open('GET', 'https://keybase.io/_/api/1.0/user/lookup.json?user=' + encodeURIComponent(acreq.term));
req.onreadystatechange = function(evt) {
if (req.readyState == 4 && req.status == 200) {
var obj = JSON.parse(req.responseText);
if (obj.status.code == 0) {
var result = [];
for (var i = 0; i < obj.them.length; i++) {
result.push(obj.them[i].basics.username);
}
acres(result);
} // end of if (obj.status.code == .....
} // end of if (req.readyState == .....
} // end of onreadystatechanged handler
req.send(null);
}
});
// 체크박스
var encryptWithKeybase = document.createElement("tr");
encryptWithKeybase.className = "mw-htmlform-field-HTMLCheckField";
encryptWithKeybase.innerHTML = '<td class="mw-label"><label></label></td><td class="mw-input"><input id="input-encrypt-with-gpg" type="checkbox" value="0"></input> <label for="input-encrypt-with-gpg">Keybase id로 얻은 공개키로 GPG 암호화</label></td>';
document.querySelector('.mw-htmlform-field-HTMLCheckField').parentNode.insertBefore(encryptWithKeybase, document.querySelector('.mw-htmlform-field-HTMLCheckField'));
// 이벤트 핸들러 추가
document.querySelector('form.visualClear').addEventListener('submit', function() {
if (encryptWithKeybase.querySelector('input').checked) {
if (keybaseIdRow.querySelector('input').value.trim().length == 0) {
alert('Keybase Id를 입력해주세요.');
return false;
}
// 디버그용
alert('!');
}
return true;
});
})();
}