Welcome to mirror list, hosted at ThFree Co, Russian Federation.

languageSelector.js « templates « LanguagesManager « plugins - github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: cebd8d54a5891a2a72327b2c3a2908cbdbec3c6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*!
 * Piwik - Web Analytics
 *
 * @link http://piwik.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */

$(document).ready(function () {
    // no Language sector on the page
    if ($("#languageSelection").size() == 0) return false;

    $("#languageSelection input").hide();
    var select = $("#language").hide();
    var langSelect = $("<a>")
        .insertAfter(select)
        .text(select.children(':selected').text())
        .autocomplete({
            delay: 0,
            minLength: 0,
            appendTo: '#languageSelection',
            source: function (request, response) {
                response(select.children("option").map(function () {
                    var text = $(this).text();
                    return {
                        label: text,
                        value: this.value,
                        title: $(this).attr('title'),
                        href: $(this).attr('href'),
                        option: this
                    };
                }));
            },
            select: function (event, ui) {
                ui.item.option.selected = true;
                if (ui.item.value) {
                    langSelect.text(ui.item.label);
                    $('#languageSelection form').submit();
                } else if (ui.item.href) {
                    window.open(ui.item.href);
                }
            }
        })
        .click(function () {
            // close if already visible
            if ($(this).autocomplete("widget").is(":visible")) {
                $(this).autocomplete("close");
                return;
            }

            // pass empty string as value to search for, displaying all results
            $(this).autocomplete("search", "");
        });

    langSelect.data("autocomplete")._renderItem = function (ul, item) {
        $(ul).attr('id', 'languageSelect');
        return $("<li></li>")
            .data("item.autocomplete", item)
            .append("<a title=\"" + item.title + "\" href=\"" + $('#languageSelection form').attr('action') + "&language=" + item.value + "\">" + item.label + "</a>")
            .appendTo(ul);
    };

    $('body').on('mouseup', function (e) {
        if (!$(e.target).parents('#languageSelection').length && !$(e.target).is('#languageSelection') && !$(e.target).parents('#languageSelect').length) {
            langSelect.autocomplete("close");
        }
    });
});