Difference between revisions of "MediaWiki:Common.js"

m (Fixed typo)
(Testing new audio for pinyin chart)
Line 1: Line 1:
 
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* 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()[1].play();
 +
    };
 +
    $(this).remove();
 +
    if ($audioDiv.children().length>1) {
 +
        $audioDiv.children()[1].pause();
 +
        $audioDiv.children()[1].load();
 +
    };
 +
};
  
 
/*pinyin table scripts*/
 
/*pinyin table scripts*/
 
$(document).ready( function() {
 
$(document).ready( function() {
    console.log('2015-1-13 11:26');
+
 
 
     $('.table-ipa').hide();
 
     $('.table-ipa').hide();
 
     $('.table-zhuyin').hide();
 
     $('.table-zhuyin').hide();
 
     $('.table-wade-giles').hide();
 
     $('.table-wade-giles').hide();
 
     $('.col-placeholder').hide();
 
     $('.col-placeholder').hide();
 
    $('.pinyin-table-audio')[0].addEventListener("ended",function() {
 
        var $player = $('.pinyin-table-audio')
 
        if ($player.children().length) {
 
            $('.pinyin-table-audio').children().first().remove();
 
        };
 
        if ($player.children().length) {
 
            $player[0].pause();
 
            $player[0].load();
 
            $player[0].play();
 
        };
 
    });
 
  
 
     $('#pinyin-chart-settings .additional-settings').children().hide();
 
     $('#pinyin-chart-settings .additional-settings').children().hide();
Line 48: Line 48:
 
         if ($(this).children('div.table-pinyin').length) {
 
         if ($(this).children('div.table-pinyin').length) {
 
             var tones=$('input[name=\'tone\']:checked').val();
 
             var tones=$('input[name=\'tone\']:checked').val();
             var $player = $('.pinyin-table-audio');
+
             var $audioDiv = $('.pinyin-table-audio-container');
             $player.empty();
+
             $audioDiv.empty();
 
             for (var i=0; i<tones.length; i++) {
 
             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"
 
                 var sound_url = "http://resources.allsetlearning.com/pronwiki/resources/pinyin-audio/" + $(this).attr('id') + tones[i] + ".mp3"
                 $player.append("<source src=\"" + sound_url + "\" type=\"audio/mpeg\"></source>");
+
                 $audioDiv.append("<audio src=\"" + sound_url + "\" type=\"audio/mpeg\"></audio>");
 
                 console.log(sound_url,0);
 
                 console.log(sound_url,0);
 
             };
 
             };
             $player[0].pause();
+
             for (var i=0; i<$audioDiv.children().length; i++) {
             $player[0].load();
+
                $audioDiv.children()[i].addListener("ended",audioListenerFunc);
             $player[0].play();
+
            };
 +
            $audioDiv.children()[0].pause();
 +
             $audioDiv.children()[0].load();
 +
             $audioDiv.children()[0].play()
 +
            if ($audioDiv.children().length>1) {
 +
                $audioDiv.children()[1].pause();
 +
                $audioDiv.children()[1].load();
 +
            };
 
         };
 
         };
 
     });
 
     });

Revision as of 05:15, 14 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()[1].play();
    };
    $(this).remove();
    if ($audioDiv.children().length>1) {
        $audioDiv.children()[1].pause();
        $audioDiv.children()[1].load();
    };
};

/*pinyin table scripts*/
$(document).ready( function() {

    $('.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"
                $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()[i].addListener("ended",audioListenerFunc);
            };
            $audioDiv.children()[0].pause();
            $audioDiv.children()[0].load();
            $audioDiv.children()[0].play()
            if ($audioDiv.children().length>1) {
                $audioDiv.children()[1].pause();
                $audioDiv.children()[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();
        };
    });

    //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();
        };
    });
});