Difference between revisions of "MediaWiki:Common.js"
Mscottmoore (talk | contribs) (Added script for changing pinyin table size) |
Mscottmoore (talk | contribs) (typo fix) |
||
Line 56: | Line 56: | ||
/*pinyin table scripts*/ | /*pinyin table scripts*/ | ||
$(document).ready( function() { | $(document).ready( function() { | ||
− | console.log('2015-01-20-11: | + | console.log('2015-01-20-11:46'); |
− | |||
$('.table-ipa').hide(); | $('.table-ipa').hide(); | ||
$('.table-zhuyin').hide(); | $('.table-zhuyin').hide(); | ||
Line 144: | Line 143: | ||
var new_size = $('input[name="text-size"]:checked').val(); | var new_size = $('input[name="text-size"]:checked').val(); | ||
console.log('Changing table size to '+new_size); | console.log('Changing table size to '+new_size); | ||
− | $('.pinyin-table').removeClass('small').removeClass('medium') | + | $('.pinyin-table').removeClass('small').removeClass('medium').removeClass('large'); |
$('.pinyin-table').addClass(new_size); | $('.pinyin-table').addClass(new_size); | ||
}); | }); |
Revision as of 03:50, 20 January 2015
/* Any JavaScript here will be loaded for all users on every page load. */
var audioListenerFunc = function() {
var $audioDiv = $('.pinyin-table-audio-container');
if ($audioDiv.children().length>1) {
$audioDiv.children().get(1).play();
};
$(this).remove();
if ($audioDiv.children().length>1) {
$audioDiv.children().get(1).pause();
$audioDiv.children().get(1).load();
};
};
/* Add tone marks */
var vowelAddTone = function(vowel,number) {
var tones = ['āēīōūǖ',
'áéíóúǘ',
'ǎěǐǒǔǚ',
'àèìòùǜ'][number-1]
return tones['aeiouü'.indexOf(vowel)]
};
var syllableAddTone = function(syllable,number) {
if (syllable.indexOf("a")!==-1) {
return syllable.substr(0,syllable.indexOf("a")) + vowelAddTone('a',number) + syllable.substr(syllable.indexOf("a")+1,syllable.length);
} else if (syllable.indexOf("e")!==-1) {
return syllable.substr(0,syllable.indexOf("e")) + vowelAddTone('e',number) + syllable.substr(syllable.indexOf("e")+1,syllable.length);
} else if (syllable.indexOf("ou")!==-1) {
return syllable.substr(0,syllable.indexOf("o")) + vowelAddTone('e',number) + syllable.substr(syllable.indexOf("o")+1,syllable.length);
} else {
var vowels = 'aeiouü';
var vowelCount = 0
for (var i=0; i<syllable.length; i++) {
if (vowels.indexOf(syllable[i])!==-1) {
vowelCount++;
}
}
if (vowelCount===1) {
for (var i=0; i<vowels.length; i++) {
if (syllable.indexOf(vowels[i])!==-1) {
return syllable.substr(0,syllable.indexOf(vowels[i])) + vowelAddTone(syllable[syllable.indexOf(vowels[i])],number) + syllable.substr(syllable.indexOf(vowels[i])+1,syllable.length);
}
}
} else {
var first_vowel_index = 1000;
for (var i=0; i<vowels.length; i++) {
if (syllable.indexOf(vowels[i])!==-1 && syllable.indexOf(vowels[i])<first_vowel_index) {
first_vowel_index = syllable.indexOf(vowels[i])
}
}
return syllable.substr(0,first_vowel_index+1) + vowelAddTone(syllable[first_vowel_index+1],number) + syllable.substr(first_vowel_index+2,syllable.length);
}
}
};
/*pinyin table scripts*/
$(document).ready( function() {
console.log('2015-01-20-11:46');
$('.table-ipa').hide();
$('.table-zhuyin').hide();
$('.table-wade-giles').hide();
$('.col-placeholder').hide();
$('#pinyin-chart-settings .additional-settings').children().hide();
//Toggle additional settings
$('#pinyin-chart-settings .additional-settings-label').hover( function() {
$(this).css('background-color','rgba(0,0,0,0.15)');
$(this).css('cursor','pointer');
}, function () {
$(this).css('background-color','#F5F5F5');
$(this).css('cursor','initial');
}).click( function() {
$('#pinyin-chart-settings .additional-settings').children().slideToggle();
});
//highlight row and col of hovered cell
$('#pinyin-table td').hover( function() {
if ($(this).children('div.table-pinyin').length) {
$(this).addClass('table-extra-highlight');
$(this).siblings().addClass('table-highlight');
var rowIndex = $(this).prevAll().length+1;
$('#pinyin-table tr :nth-child('+rowIndex+')').addClass('table-highlight');
};
}, function() {
$(this).removeClass('table-extra-highlight')
$('.table-highlight').removeClass('table-highlight');
}).click( function() {
if ($(this).children('div.table-pinyin').length) {
var tones=$('input[name=\'tone\']:checked').val();
var $audioDiv = $('.pinyin-table-audio-container');
$audioDiv.empty();
for (var i=0; i<tones.length; i++) {
var sound_url = "http://resources.allsetlearning.com/pronwiki/resources/pinyin-audio/" + $(this).attr('id') + tones[i] + ".mp3"
if (sound_url.indexOf('.C3.BC')!==-1) {
sound_url = sound_url.substr(0,sound_url.indexOf('.C3.BC'))+'u%CC%88'+sound_url.substr(sound_url.indexOf('.C3.BC')+6,sound_url.length);
};
$audioDiv.append("<audio src=\"" + sound_url + "\" type=\"audio/mpeg\"></audio>");
console.log(sound_url,0);
};
for (var i=0; i<$audioDiv.children().length; i++) {
$audioDiv.children().get(i).addEventListener("ended",audioListenerFunc);
};
$audioDiv.children().get(0).pause();
$audioDiv.children().get(0).load();
$audioDiv.children().get(0).play()
if ($audioDiv.children().length>1) {
$audioDiv.children().get(1).pause();
$audioDiv.children().get(1).load();
};
};
});
//collapse column groups
$('th.col-a, th.col-e, th.col-o, th.col-i, th.col-u, th.col-v').hover( function() {
if ($(this).hasClass('col-a')) { var thClass='col-a'; } else
if ($(this).hasClass('col-e')) { var thClass='col-e'; } else
if ($(this).hasClass('col-o')) { var thClass='col-o'; } else
if ($(this).hasClass('col-i')) { var thClass='col-i'; } else
if ($(this).hasClass('col-u')) { var thClass='col-u'; } else
if ($(this).hasClass('col-v')) { var thClass='col-v'; };
$('th.'+thClass).addClass('table-selected');
}, function() {
$('.table-selected').removeClass('table-selected');
}).click( function() {
if ($(this).hasClass('col-a')) { var thClass='col-a'; } else
if ($(this).hasClass('col-e')) { var thClass='col-e'; } else
if ($(this).hasClass('col-o')) { var thClass='col-o'; } else
if ($(this).hasClass('col-i')) { var thClass='col-i'; } else
if ($(this).hasClass('col-u')) { var thClass='col-u'; } else
if ($(this).hasClass('col-v')) { var thClass='col-v'; };
if ($(this).hasClass('col-placeholder')) {
$('#pinyin-table .'+thClass).show();
$('#pinyin-table .'+thClass+'.col-placeholder').hide();
} else {
$('#pinyin-table .'+thClass).hide();
$('#pinyin-table .'+thClass+'.col-placeholder').show();
};
});
//change text size
$('div#pinyin-chart-settings div.additional-settings input[name="text-size"]').click( function() {
var new_size = $('input[name="text-size"]:checked').val();
console.log('Changing table size to '+new_size);
$('.pinyin-table').removeClass('small').removeClass('medium').removeClass('large');
$('.pinyin-table').addClass(new_size);
});
//toggle showing ipa, zhuyin, wade-giles
$('#table-toggle-ipa').click( function() {
if ($(this).prop('checked')) {
$('.table-ipa').show();
} else {
$('.table-ipa').hide();
};
});
$('#table-toggle-zhuyin').click( function() {
if ($(this).prop('checked')) {
$('.table-zhuyin').show();
} else {
$('.table-zhuyin').hide();
};
});
$('#table-toggle-wade-giles').click( function() {
if ($(this).prop('checked')) {
$('.table-wade-giles').show();
} else {
$('.table-wade-giles').hide();
};
});
});