미디어위키:IndexForm.js

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

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: Ctrl-F5를 입력.
/********************************
  enhanced form for index pages
*********************************/


function set_index_field(name,value,on_book,on_collection,on_journal,on_phdthesis, on_dictionary){
	var f = document.getElementsByName('wpprpindex-' + name)[0];
	if(!f) return;
	f = f[0];
	if(f) {
		if( (value=="book" && on_book) || (value=="journal" && on_journal) || (value=="collection" && on_collection) || (value=="phdthesis" && on_phdthesis) || value=="dictionary" && on_dictionary ) {
			f.disabled=false;
			f.parentNode.parentNode.style.display="";
		} else {
			f.disabled=true;
			f.parentNode.parentNode.style.display="none";
		}
	}
}



function type_changed(f,value) {
	//see http://www.easybib.com/reference/guide/apa/dictionary
	set_index_field( ws_msg('author'),     value, 1, 1, 0, 1, 0);
	set_index_field( ws_msg('translator'), value, 1, 1, 0, 0, 0);
	set_index_field( ws_msg('editor'),     value, 1, 1, 1, 0, 1);
	set_index_field( ws_msg('place'),      value, 1, 1, 1, 0, 1);
	set_index_field( ws_msg('publisher'),     value, 1, 1, 1, 0, 1);
	set_index_field( ws_msg('volume'),     value, 1, 1, 1, 0, 1);
	set_index_field( ws_msg('school'),     value, 0, 0, 0, 1, 0);
}

function progress_select_value() {
    var select;
    if (!self.ws_messages || !self.ws_messages['progress_select']) {
        select = "<option value='' selected=true></option>" + 
                 "<option value='T'>" + ws_msg('progress_T') + "</option>" +
                 "<option value='V'>" + ws_msg('progress_V') + "</option>" +
                 "<option value='C'>" + ws_msg('progress_C') + "</option>" +
                 "<option value='MS'>"+ ws_msg('progress_MS')+ "</option>" +
                 "<option value='OCR'>"+ws_msg('progress_OCR')+"</option>" +
                 "<option value='X'>" + ws_msg('progress_X') + "</option>" +
                 "<option value='L'>" + ws_msg('progress_L') + "</option>";
   } else {
        select = self.ws_messages['progress_select'];
   }

   return select;
}

function index_choices(){
	if( mw.config.get( 'wgCanonicalNamespace' ) == "Index" ) {
		var f = document.editform;
		var value = "book";
		if(f) {
			var a = f['wpprpindex-Type'];
			if(a) {

				value = a.value;
				a.parentNode.innerHTML="<select onchange=\"type_changed(this.form,this.options[this.selectedIndex].value);\" name=\"wpprpindex-Type\">"
+"<option value=\"book\" selected=true>" + ws_msg('book') + "</option>"
+"<option value=\"collection\">" + ws_msg('collection') + "</option>"
+"<option value=\"journal\">" + ws_msg('journal') + "</option>"
+"<option value=\"phdthesis\">" + ws_msg('phdthesis') + "</option>"
+"<option value=\"dictionary\">" + ws_msg('dictionary') + "</option>"
+"</select>";
				a = f['wpprpindex-Type'];
				for (var i=0; i < a.length; i++) {
					if (a[i].value == value) a[i].selected = true;
				}
				if(value=="") value="book";
				type_changed(f,value);
			}
			var page = mw.config.get( 'wgPageName' );
			var suffix = page.substring( 'page.length-4', 'page.length' ).toLowerCase();
			if( suffix=='djvu' || suffix=='.pdf' ) {
				var m_source = 'wpprpindex-' + ws_msg('Source');
				set_index_field( m_source, value, 0, 0, 0, 0, 0);
				f = document.getElementsByName(m_source)[0];
				if(f) {
				 if( suffix=='djvu' ) f.value='djvu';
				 if( suffix=='.pdf' ) f.value='pdf';
                                }
				f = document.getElementsByName( 'wpprpindex-' + ws_msg('Image'))[0];
				if(f && f.value=="") f.value="1";
				f = document.getElementsByName( 'wpprpindex-' + ws_msg('Pages'))[0];
				if(f && f.value=="") f.value="<pagelist />";
			}
			var a = document.getElementsByName('wpprpindex-' + ws_msg('progress'))[0];
			if(a) {
				value = a.value;
				a.parentNode.innerHTML= "<select name='"+ 'wpprpindex-' + ws_msg('progress') + "'>" + 
							progress_select_value() + 
							"</select>";
				a = document.getElementsByName('wpprpindex-' + ws_msg('progress'))[0];
				for (var i=0; i < a.length; i++) {
					if (a[i].value == value) a[i].selected = true;
				}
			}

		}
	}
}
$(index_choices);