مدیاویکی:IndexForm.js

از ویکی‌نبشته

نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر/ Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های 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('نویسنده'),     value, 1, 1, 0, 1, 0);
	set_index_field( ws_msg('مترجم'), value, 1, 1, 0, 0, 0);
	set_index_field( ws_msg('ویراستار'),     value, 1, 1, 1, 0, 1);
	set_index_field( ws_msg('جای ناشر'),      value, 1, 1, 1, 0, 1);
	set_index_field( ws_msg('ناشر'),     value, 1, 1, 1, 0, 1);
	set_index_field( ws_msg('جلد'),     value, 1, 1, 1, 0, 1);
	set_index_field( ws_msg('مدرسه'),     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);