aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/templates/files/files_source.html
blob: d63f29e1f6361f89e66670342b530bfe8d0e1cbf (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<div id="node_history">
%if c.load_full_history:
    <%include file='files_history_box.html'/>
%else:
    <div style="padding-bottom:10px">
        <span id="load_node_history" class="ui-btn">${_('Load file history')}</span>
    </div>
%endif
</div>


<div id="body" class="codeblock">
	<div class="code-header">
        <div class="stats">
            <div class="left img"><img src="${h.url('/images/icons/file.png')}"/></div>
            <div class="left item"><pre class="tooltip" title="${h.tooltip(h.fmt_date(c.file_changeset.date))}">${h.link_to("r%s:%s" % (c.file_changeset.revision,h.short_id(c.file_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id))}</pre></div>
            <div class="left item"><pre>${h.format_byte_size(c.file.size,binary=True)}</pre></div>
            <div class="left item last"><pre>${c.file.mimetype}</pre></div>
            <div class="buttons">
              %if c.annotate:
                ${h.link_to(_('show source'),    h.url('files_home',         repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
              %else:
                ${h.link_to(_('show annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
              %endif
              ${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
              ${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
              % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
               % if not c.file.is_binary:
                ${h.link_to(_('edit'),h.url('files_edit_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path),class_="ui-btn")}
               % endif
              % endif
            </div>
        </div>
        <div class="author">
            <div class="gravatar">
                <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(c.file_changeset.author),16)}"/>
            </div>
            <div title="${c.file_changeset.author}" class="user">${h.person(c.file_changeset.author)}</div>
        </div>
		<div class="commit">${h.urlify_commit(c.file_changeset.message,c.repo_name)}</div>
	</div>
	<div class="code-body">
	   %if c.file.is_binary:
	       ${_('Binary file (%s)') % c.file.mimetype}
	   %else:
		% if c.file.size < c.cut_off_limit:
            %if c.annotate:
              ${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
            %else:
			  ${h.pygmentize(c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
            %endif
		%else:
			${_('File is too big to display')} ${h.link_to(_('show as raw'),
			h.url('files_raw_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path))}
		%endif
     %endif
	</div>
</div>

<script type="text/javascript">
YUE.onDOMReady(function(){
    function highlight_lines(lines){
        for(pos in lines){
          YUD.setStyle('L'+lines[pos],'background-color','#FFFFBE');
        }
    }
    page_highlights = location.href.substring(location.href.indexOf('#')+1).split('L');
    if (page_highlights.length == 2){
       highlight_ranges  = page_highlights[1].split(",");

       var h_lines = [];
       for (pos in highlight_ranges){
            var _range = highlight_ranges[pos].split('-');
            if(_range.length == 2){
                var start = parseInt(_range[0]);
                var end = parseInt(_range[1]);
                if (start < end){
                    for(var i=start;i<=end;i++){
                        h_lines.push(i);
                    }
                }
            }
            else{
                h_lines.push(parseInt(highlight_ranges[pos]));
            }
      }
    highlight_lines(h_lines);

    //remember original location
    var old_hash  = location.href.substring(location.href.indexOf('#'));

    // this makes a jump to anchor moved by 3 posstions for padding
    window.location.hash = '#L'+Math.max(parseInt(h_lines[0])-3,1);

    //sets old anchor
    window.location.hash = old_hash;

    }

    // select code link event
    YUE.on('hlcode', 'mouseup', getSelectionLink);

    //load history of file
    YUE.on('load_node_history', 'click', function(e){
        var _url = node_history_url.replace('__REV__','${c.file_changeset.raw_id}').replace('__FPATH__', '${c.f_path}');
        ypjax(_url, 'node_history', function(o){
        	tooltip_activate();
        })
    });

   });

</script>