Mercurial > kallithea
diff rhodecode/templates/files/files_annotate.html @ 1320:09c3fb460fcb beta
Fixed problem with anchor link positioning when passed in ranges.
Added anchor link tooltip for code selection
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 08 May 2011 19:58:42 +0200 |
parents | 856be614d9a4 |
children | aaec08ad9daf |
line wrap: on
line diff
--- a/rhodecode/templates/files/files_annotate.html Sat May 07 16:21:53 2011 +0200 +++ b/rhodecode/templates/files/files_annotate.html Sun May 08 19:58:42 2011 +0200 @@ -73,24 +73,63 @@ ${_('Binary file (%s)') % c.file.mimetype} %else: % if c.file.size < c.cut_off_limit: - ${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='S',cssclass="code-highlight")} + ${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")} %else: ${_('File is to big to display')} ${h.link_to(_('show as raw'), h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.revision,f_path=c.f_path))} %endif - <script type="text/javascript"> - YAHOO.util.Event.onDOMReady(function(){ - YAHOO.util.Event.addListener('show_rev','click',function(e){ - YAHOO.util.Event.preventDefault(e); - var cs = YAHOO.util.Dom.get('diff1').value; - var url = "${h.url('files_annotate_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs); - window.location = url; - }); - }); - </script> + <script type="text/javascript"> + 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; + + } + </script> %endif </div> </div> + <script type="text/javascript"> + YAHOO.util.Event.onDOMReady(function(){ + YUE.on('show_rev','click',function(e){ + YAHOO.util.Event.preventDefault(e); + var cs = YAHOO.util.Dom.get('diff1').value; + var url = "${h.url('files_annotate_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs); + window.location = url; + }); + }); + </script> </div> </div> </div>