Bump version
[gitphp.git] / js / blame.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
 * GitPHP Javascript blame
 * 
 * Load blame data into blob page asynchronously
 * 
 * @author Christopher Han <xiphux@gmail.com>
 * @copyright Copyright (c) 2010 Christopher Han
 * @package GitPHP
 */
 
function initBlame() {
 
        var url = window.location.href.match(/^([^\?]+\/)/);
        if (!url) {
                return;
        }
        url = url[1];
 
        var blameLink = $('a#blameLink');
 
        blameLink.toggle(function() {
 
                var blameCol = $('table#blobData td#blameData');
                if (blameCol && blameCol.size() > 0) {
                        blameCol.show('fast');
                } else {
                        var col = jQuery(document.createElement('td'));
                        col.attr('id', 'blameData');
                        col.css('display', 'none');
 
                        var p = jQuery(document.createElement('p'));
                        p.text(GITPHP_RES_LOADING_BLAME_DATA);
                        p.appendTo(col);
 
                        var div = jQuery(document.createElement('div'));
                        div.css('text-align', 'center');
 
                        var img = jQuery(document.createElement('img'));
                        img.attr('src', url + "images/blame-loader.gif");
                        img.attr('alt', GITPHP_RES_LOADING);
                        img.appendTo(div);
 
                        div.appendTo(col);
 
                        $('table#blobData tr:first').prepend(col);
                        col.show('fast');
 
                        $.get(blameLink.attr('href'), { o: 'js' },
                        function(data) {
 
                                blameCol = $('td#blameData');
                                
                                var insertBlame = function() {
                                        blameCol.html(data).addClass('de1');
                                        initCommitTips();
                                }
 
                                if (blameCol.css('display') == 'none') {
                                        insertBlame();
                                } else {
                                        blameCol.fadeOut('fast', function() {
                                                insertBlame();
                                                blameCol.fadeIn('fast');
                                        });
                                }
                        });
                }
 
                return false;
        },
        function() {
                $('table#blobData td#blameData').hide('fast');
 
                return false;
        });
};
 
$(document).ready(function() {
        initBlame();
});
 
comments