"미디어위키:Common.js"의 두 판 사이의 차이

태그: 되돌려진 기여
 
(같은 사용자의 중간 판 90개는 보이지 않습니다)
13번째 줄: 13번째 줄:
*/
*/


    //TOKEN
//    $.ajax({
//      type: "POST",
//      url: mw.util.wikiScript('api'),
//      data: {action: 'query', meta: 'tokens', type: 'csrf', format: 'json'},
//      dataType: 'json',
//      async: false,
//      success: function( result ){
//        var token = result.query.tokens.csrftoken;
//        console.log(token);
//      }
//    });


//동일 유형 동시 조회
var categories = document.querySelector(".menu-list");
var categories = document.querySelector(".menu-list");


41번째 줄: 54번째 줄:


     //TOKEN
     //TOKEN
    var token;
//    var token;
 
//
    $.ajax({
//    $.ajax({
      type: "POST",
//      type: "POST",
      url: mw.util.wikiScript('api'),
//      url: mw.util.wikiScript('api'),
      data: {action: 'query', meta: 'tokens', type: 'csrf', format: 'json'},
//      data: {action: 'query', meta: 'tokens', type: 'csrf', format: 'json'},
      dataType: 'json',
//      dataType: 'json',
      async: false,
//      async: false,
      success: function( result ){
//      success: function( result ){
        token = result.query.tokens.csrftoken;
//        token = result.query.tokens.csrftoken;
      }
//      }
    });
//    });
   




63번째 줄: 77번째 줄:
       link.setAttribute('href', categories.childNodes[i].childNodes[0].getAttribute('href'));
       link.setAttribute('href', categories.childNodes[i].childNodes[0].getAttribute('href'));
       link.innerText = categories.childNodes[i].innerText;
       link.innerText = categories.childNodes[i].innerText;
      link.setAttribute('style', 'color: #0645AD; font-weight: bold;');
       column1.appendChild( link );
       column1.appendChild( link );
       row.appendChild( column1 );
       row.appendChild( column1 );
68번째 줄: 83번째 줄:


       //data: {action: 'query', format: 'json', prop: 'description', titles: link.innerText},  
       //data: {action: 'query', format: 'json', prop: 'description', titles: link.innerText},  
      //data: {action: 'import', interwikisource: 'meta', interwikipage: link.innerText, token: token, format: 'json'},
      //data: {action: 'query', format: 'json', generator: 'search', gsrsearch: link.innerText, prop: 'iwlinks'},
      // SEARCH END SECTION NUMBER
      var endNum;
      $.ajax({
        type: "POST",
        url: mw.util.wikiScript('api'),
        data: {action: 'parse', format: 'json', page: link.innerText},
        dataType: 'json',
        async: false,
        success: function ( result ){
          endNum = result.parse.sections.length;
        }
      });
      // SEARCH INFO OF SECTION
      var text, textArr;
      var text1 = text2 = text4 = '';


       $.ajax({
       $.ajax({
         type: "POST",
         type: "POST",
         url: mw.util.wikiScript('api'),
         url: mw.util.wikiScript('api'),
         data: {action: 'import', interwikiprefix: 'Smart', interwikipage: link.innerText, token: token, format: 'json'},
         data: {action: 'parse', format: 'json', page: link.innerText, prop: 'wikitext', section: endNum},
         dataType: 'json',
         dataType: 'json',
         async: false,
         async: false,
         success: function ( result ){
         success: function ( result ){
           console.log( result );
           textObj = result.parse.wikitext;
          text = JSON.stringify(textObj);
          textArr = text.split('|}}');
         }
         }
       });
       });
     
      for(var j = 0; j < textArr.length; j++) {
        var indexNum = textArr[j].lastIndexOf('|') + 1;
        var temp = textArr[j].substr(indexNum);
        //console.log(temp);
        switch(j) {
          case 1:
            text1 = temp;
            break;
          case 2:
            text2 = temp;
            break;
          case 4:
            text4 = temp;
            break;
        }
      }
      //console.log("-------");


       var column2 = document.createElement( 'td' );
       var column2 = document.createElement( 'td' );
       //column2.innerText = '{{:2차 00고속도로(xx공구) 건설공사 설계변경|transcludesection=2발송사}}';
       column2.innerText = text1;
       row.appendChild( column2 );
       row.appendChild( column2 );


       var column3 = document.createElement( 'td' );
       var column3 = document.createElement( 'td' );
       //column3.innerText = '{{:2차 00고속도로(xx공구) 건설공사 설계변경|transcludesection=2수신일}}';
       column3.innerText = text2;
       row.appendChild( column3 );
       row.appendChild( column3 );


       var column4 = document.createElement( 'td' );
       var column4 = document.createElement( 'td' );
       //column4.innerText = '{{:2차 00고속도로(xx공구) 건설공사 설계변경|transcludesection=2비고}}';
       column4.innerText = text4;
       row.appendChild( column4 );
       row.appendChild( column4 );


100번째 줄: 159번째 줄:
     categories.setAttribute('style', 'display:none;');
     categories.setAttribute('style', 'display:none;');
}
}
//검색박스 한글 자동완성
'use strict';
var $input = $('#searchInput');
var $input = $('input[name=search]');
$input.keyup(function (e) {
  switch (e.key) {
    case 'ArrowUp':
    case 'ArrowRight':
    case 'ArrowDown':
    case 'ArrowLeft':
      return;
  }
  $input.trigger('keypress');
});
//신규 문서 일반 편집 고정 이동 ==> 신규 문서 테스트 폼으로 작성(폼 변경 시 '신규문서_작성'을 해당 폼 명으로 변경 ; 2022-12-02)
var $new = $('.searchresults').find('.new');
var $href = $new.attr('href');
var hrefArr = $href.split('title=');
var hrefTitle = hrefArr[1].split('&')[0];
var newTitle = '특수:데이터편집/신규문서_작성/' + hrefTitle;
var newHref = hrefArr[0] + 'title=' + newTitle;
$new.attr('href', newHref);
//문구 변경
var exHtml = $('.searchresults').find('strong').html();
var exHtmlArr = exHtml.split('"');
var startText = exHtmlArr[0];
var endText = exHtmlArr[exHtmlArr.length-1];
var midText = exHtml.split(startText)[1].split(endText)[0];
var newText = midText + ' 를 클릭해 신규 문서를 작성하세요.';
$('.searchresults').find('strong').html(newText);

2022년 12월 2일 (금) 14:01 기준 최신판

/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */

/*
var sections = document.querySelectorAll(".veaction-section");

if(sections != null){
  if(sections.length > 0){
    for(var i = 0; i < sections.length; i++){
      sections[i].children[0].setAttribute('href',sections[i].children[0].getAttribute('href') + (i+1));
    }
  }
}
*/

    //TOKEN
//    $.ajax({
//      type: "POST",
//      url: mw.util.wikiScript('api'),
//      data: {action: 'query', meta: 'tokens', type: 'csrf', format: 'json'},
//      dataType: 'json',
//      async: false,
//      success: function( result ){
//        var token = result.query.tokens.csrftoken;
//        console.log(token);
//      }
//    });

//동일 유형 동시 조회
var categories = document.querySelector(".menu-list");

if(categories != null) {
    var listTable = document.createElement( 'table' );
    
    // TITLE
    var tr = document.createElement( 'tr' );

    var th1 = document.createElement( 'th' );
    th1.innerText = '문서 제목';
    tr.appendChild( th1 );

    var th2 = document.createElement( 'th' );
    th2.innerText = '발송사';
    tr.appendChild( th2 );

    var th3 = document.createElement( 'th' );
    th3.innerText = '수신일';
    tr.appendChild( th3 );

    var th4 = document.createElement( 'th' );
    th4.innerText = '비고';
    tr.appendChild( th4 );

    listTable.appendChild( tr );

    //TOKEN
//    var token;
//
//    $.ajax({
//      type: "POST",
//      url: mw.util.wikiScript('api'),
//      data: {action: 'query', meta: 'tokens', type: 'csrf', format: 'json'},
//      dataType: 'json',
//      async: false,
//      success: function( result ){
//        token = result.query.tokens.csrftoken;
//      }
//    });
    


    // CONTENT
    for(var i = 0; i < categories.childNodes.length; i++) {
      var row = document.createElement( 'tr' );

      var column1 = document.createElement( 'td' );
      var link = document.createElement( 'a' );
      link.setAttribute('href', categories.childNodes[i].childNodes[0].getAttribute('href'));
      link.innerText = categories.childNodes[i].innerText;
      link.setAttribute('style', 'color: #0645AD; font-weight: bold;');
      column1.appendChild( link );
      row.appendChild( column1 );


      //data: {action: 'query', format: 'json', prop: 'description', titles: link.innerText}, 
      //data: {action: 'import', interwikisource: 'meta', interwikipage: link.innerText, token: token, format: 'json'},
      //data: {action: 'query', format: 'json', generator: 'search', gsrsearch: link.innerText, prop: 'iwlinks'},


      // SEARCH END SECTION NUMBER
      var endNum;
      $.ajax({
        type: "POST",
        url: mw.util.wikiScript('api'),
        data: {action: 'parse', format: 'json', page: link.innerText},
        dataType: 'json',
        async: false,
        success: function ( result ){
          endNum = result.parse.sections.length;
        }
      });


      // SEARCH INFO OF SECTION
      var text, textArr;
      var text1 = text2 = text4 = '';

      $.ajax({
        type: "POST",
        url: mw.util.wikiScript('api'),
        data: {action: 'parse', format: 'json', page: link.innerText, prop: 'wikitext', section: endNum},
        dataType: 'json',
        async: false,
        success: function ( result ){
          textObj = result.parse.wikitext;
          text = JSON.stringify(textObj);
          textArr = text.split('|}}');
        }
      });
      
      for(var j = 0; j < textArr.length; j++) {
        var indexNum = textArr[j].lastIndexOf('|') + 1;
        var temp = textArr[j].substr(indexNum);

        //console.log(temp);

        switch(j) {
          case 1:
            text1 = temp;
            break;
          case 2:
            text2 = temp;
            break;
          case 4:
            text4 = temp;
            break;
        }
      }

      //console.log("-------");

      var column2 = document.createElement( 'td' );
      column2.innerText = text1;
      row.appendChild( column2 );

      var column3 = document.createElement( 'td' );
      column3.innerText = text2;
      row.appendChild( column3 );

      var column4 = document.createElement( 'td' );
      column4.innerText = text4;
      row.appendChild( column4 );


      listTable.appendChild( row );
    }

    listTable.setAttribute('class', 'menu-list-table');
    categories.parentNode.insertBefore( listTable, categories.nextSibling );
    categories.setAttribute('style', 'display:none;');
}

//검색박스 한글 자동완성
'use strict';
var $input = $('#searchInput');
var $input = $('input[name=search]');
$input.keyup(function (e) {
  switch (e.key) {
    case 'ArrowUp':
    case 'ArrowRight':
    case 'ArrowDown':
    case 'ArrowLeft':
      return;
  }
  $input.trigger('keypress');
});

//신규 문서 일반 편집 고정 이동 ==> 신규 문서 테스트 폼으로 작성(폼 변경 시 '신규문서_작성'을 해당 폼 명으로 변경 ; 2022-12-02)
var $new = $('.searchresults').find('.new');
var $href = $new.attr('href');
var hrefArr = $href.split('title=');
var hrefTitle = hrefArr[1].split('&')[0];
var newTitle = '특수:데이터편집/신규문서_작성/' + hrefTitle;
var newHref = hrefArr[0] + 'title=' + newTitle;
$new.attr('href', newHref);

//문구 변경
var exHtml = $('.searchresults').find('strong').html();
var exHtmlArr = exHtml.split('"');

var startText = exHtmlArr[0];
var endText = exHtmlArr[exHtmlArr.length-1];
var midText = exHtml.split(startText)[1].split(endText)[0];

var newText = midText + ' 를 클릭해 신규 문서를 작성하세요.';
$('.searchresults').find('strong').html(newText);