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

jelly.js « tests « record « plugins « mousetrap « node_modules - github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 57ff01a0282429720cba097652b4d15bc337b62d (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
/**
 * Peanut butter goes great with jelly.
 *
 * @author Dan Tao <daniel.tao@gmail.com>
 */
var Jelly = (function() {
    var recordButton = $("button.test-record"),
        recordResult = $("div.test-record-result");

    function _formatSequenceAsHtml(sequence) {
        var combos = [],
            i;

        for (i = 0; i < sequence.length; ++i) {
            combos.push('<span>' + _formatKeysAsHtml(sequence[i].split('+')) + '</span>');
        }

        return combos.join(' ');
    }

    function _formatKeysAsHtml(keys) {
        var htmlKeys = [],
            i;

        for (i = 0; i < keys.length; ++i) {
            htmlKeys.push('<kbd>' + keys[i] + '</kbd>');
        }

        return htmlKeys.join('+');
    }

    function _prepareRecordTest() {
        recordButton.prop('disabled', true);
        recordButton.text('Recording');

        Mousetrap.record(function(sequence) {
            recordResult.html(_formatSequenceAsHtml(sequence));
            recordButton.prop('disabled', false);
            recordButton.text('Record');
        });

        // take focus away from the button so that Mousetrap will actually
        // capture keystrokes
        recordButton.blur();
    }

    return {
        spread: function() {
            recordButton.click(_prepareRecordTest);
        }
    };

})();