사용자:하늘/addbutton.js

< 사용자:하늘
하늘 (토론 | 기여)님의 2022년 9월 4일 (일) 12:39 판

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: Ctrl-F5를 입력.
/* 한국어 위키백과 미디어위키:Gadget-editsummary.js 호출 */
function esEditSummary() {
    if (typeof esEditSummaries === 'undefined') return;
    var wgAction = mw.config.get('wgAction');
    if (wgAction == 'edit' || wgAction == 'submit') {
        var wpSummary = document.getElementById('wpSummary');
        if (!wpSummary || (wpSummary.form.wpSection && wpSummary.form.wpSection.value == 'new')) return;
        wpSummaryButtons = new OO.ui.ButtonGroupWidget({id: "wpSummaryButtons"});
        $(wpSummary.parentNode).before(wpSummaryButtons.$element);
        
        console.log(wpSummary.parentNode)

        for (var i = 0; i < esEditSummaries.length; i++) esAppendButton(i);
    }
}


function esAppendButton(id) { // 버튼 추가하는 함수
    var btn = new OO.ui.ButtonOptionWidget({
        data: 1,
        label: esEditSummaries[id][0],
        title: esEditSummaries[id][2]
    });
    $(wpSummaryButtons).addItems(btn);

    btn.on('click', function () { esInsertSummary(esEditSummaries[id][1], esEditSummaries[id][3], esEditSummaries[id][4]) });
}

function esInsertSummary(text, isMinor, clear) {
    var wpSummary = document.getElementById('wpSummary');
    if (isMinor !== undefined) { $('#wpMinoredit').prop('checked', isMinor, clear); }
    if (clear == 1) {
        wpSummary.value = text;
        return;
    }
    if (wpSummary.value.indexOf(text) != -1) return;
    if (wpSummary.value.match(/[^,; \/]$/)) wpSummary.value += ',';
    if (wpSummary.value.match(/[^ ]$/)) wpSummary.value += ' ';
    wpSummary.value += text;
}

jQuery(document).ready(esEditSummary);

esEditSummaries = [
    /*
    ['버튼 이름', '입력될 편집 요약', '툴팁으로 뜨는 설명(생략 가능)', '사소한 편집 여부(0/1 혹은 true/false, 생략 가능)', '상용구 넣기 전에 요약 지우기(0/1 혹은 true/false, 생략 가능)']
    위와 같은 형식으로 새로운 버튼을 추가할 수 있습니다.
    마지막 줄을 제외한 줄 끝에 쉼표가 들어가 있는지 확인해 주세요.
    */
    ['갱신 ', '문서 정보 갱신', '오래된 문서 정보를 갱신', 0, 1],
    ['넘겨주기 ', '넘겨주기', '넘겨주기 생성', 1, 1],
    ['동음이의 ', '동음이의어 문서', '동음이의 문서를 작성', 0, 1],
    ['분류 ', '분류 추가', '분류 추가', 1, 1],
    ['삭제 신청 ', '문서 삭제 신청', '삭제 신청 틀', 1, 1],
    ['오타 ', '오타 수정', '문서에서 오타를 정정', 1, 1],
    ['답변 ', '의견에 답변', '질문이나 의견에 답변', 1, 0],
    ['분기 ', '문단 새 문서로 분기 - ', '다른 문서와의 병합을 제안하거나 실행', 0, 1],
    ['디자인 ', '디자인 수정', '디자인 개선', 0, 1],
    ['테스트', '테스트', '테스트', 0, 1],
    ['가독성', '가독성 개선', '가독성 개선', 0, 1]
];