Start implementing requirejs
[gitphp.git] / js / tooltip.snapshot.js
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
/*
 * GitPHP Javascript snapshot tooltip
 * 
 * Displays choices of snapshot format in a tooltip
 * 
 * @author Christopher Han <xiphux@gmail.com>
 * @copyright Copyright (c) 2011 Christopher Han
 * @package GitPHP
 * @subpackage Javascript
 */
 
define(["jquery", "ext/jquery.qtip.min"],
        function($) {
                
                function buildTipContent(href) {
                        var content = '<div>' + GITPHP_RES_SNAPSHOT + ': ';
                        var first = true;
                        for (var type in GITPHP_SNAPSHOT_FORMATS) {
                                if (!first) {
                                        content += ' | ';
                                }
                                content += '<a href="' + href + '&fmt=' + type + '">' + GITPHP_SNAPSHOT_FORMATS[type] + '</a>';
                                first = false;
                        }
                        content += '</div>';
                        return content;
                }
 
                function buildTipConfig(content) {
                        return {
                                content: {
                                        text: content
                                },
                                show: {
                                        event: 'click'
                                },
                                hide: {
                                        fixed: true,
                                        delay: 150
                                },
                                style: {
                                        classes: 'ui-tooltip-light ui-tooltip-shadow'
                                },
                                position: {
                                        adjust: {
                                                screen: true
                                        }
                                }
                        }
                }
 
                return function(elements) {
                        elements.each(function(){
                                var jThis = $(this);
                                var href = jThis.attr('href');
                                var content = buildTipContent(href);
                                var config = buildTipConfig(content);
                                jThis.qtip(config);
                                jThis.click(function() { return false; });
                        });
                }
        }
);
 
comments