Changeset - 8cca07df79dd
[Not reviewed]
beta
0 1 0
Marcin Kuzminski - 15 years ago 2011-05-08 20:11:26
marcin@python-works.com
fixed small bug in selection links when sorting messes up for <10 numbers
1 file changed with 3 insertions and 2 deletions:
0 comments (0 inline, 0 general)
rhodecode/templates/files/files_source.html
Show inline comments
 
@@ -39,135 +39,136 @@
 
<div id="body" class="codeblock">
 
	<div class="code-header">
 
		<div class="revision">${c.files_list.name}@r${c.files_list.last_changeset.revision}:${h.short_id(c.files_list.last_changeset.raw_id)}</div>
 
		<div class="commit">"${c.files_list.last_changeset.message}"</div>
 
	</div>
 
	<div class="code-body">
 
	   %if c.files_list.is_binary:
 
	       ${_('Binary file (%s)') % c.files_list.mimetype}
 
	   %else:
 
		% if c.files_list.size < c.cut_off_limit:
 
			${h.pygmentize(c.files_list,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.changeset.raw_id,f_path=c.f_path))}
 
		%endif
 
       <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">
 
YUE.onDOMReady(function(){
 
    YUE.on('show_rev','click',function(e){
 
    	YUE.preventDefault(e);
 
        var cs = YAHOO.util.Dom.get('diff1').value;
 
        var url = "${h.url('files_home',repo_name=c.repo_name,revision='__CS__',f_path=c.f_path)}".replace('__CS__',cs);
 
        window.location = url;
 
    });
 
    
 
    function getIdentNode(n){
 
    	//iterate thru nodes untill matched interesting node !
 
    	
 
    	if (typeof n == 'undefined'){
 
    		return -1
 
    	}
 
    	
 
    	if(typeof n.id != "undefined" && n.id.match('L[0-9]+')){
 
   			return n
 
   		}
 
    	else{
 
    		return getIdentNode(n.parentNode);
 
    	}
 
    }
 
    
 
    function getSelectionLink() {
 
        //get selection from start/to nodes    	
 
        if (typeof window.getSelection != "undefined") {
 
        	s = window.getSelection();
 

	
 
           	from = getIdentNode(s.anchorNode);
 
           	till = getIdentNode(s.focusNode);
 
            
 
            f_int = parseInt(from.id.replace('L',''));
 
            t_int = parseInt(till.id.replace('L',''));
 
            
 
            if (f_int > t_int){
 
            	//highlight from bottom 
 
            	offset = -35;
 
            	ranges = [t_int,f_int];
 
            	
 
            }
 
            else{
 
            	//highligth from top 
 
            	offset = 35;
 
            	ranges = [f_int,t_int];
 
            }
 
            
 
            ranges = [f_int,t_int].sort();
 
            
 
            if (ranges[0] != ranges[1]){
 
	            if(YUD.get('linktt') == null){
 
	                hl_div = document.createElement('div');
 
	                hl_div.id = 'linktt';
 
	            }
 
	            anchor = '#L'+ranges[0]+'-'+ranges[1];
 
	            hl_div.innerHTML = '';
 
	            l = document.createElement('a');
 
	            l.href = location.href.substring(0,location.href.indexOf('#'))+anchor;
 
	            l.innerHTML = "${_('Selection link')}"
 
	            hl_div.appendChild(l);
 
	            
 
	            YUD.get('body').appendChild(hl_div);
 
	            
 
	            xy = YUD.getXY(till.id);
 
	            
 
	            YUD.addClass('linktt','yui-tt');
 
	            YUD.setStyle('linktt','top',xy[1]+offset+'px');
 
	            YUD.setStyle('linktt','left',xy[0]+'px');
 
	            YUD.setStyle('linktt','visibility','visible');
 
            }
 
            else{
 
            	YUD.setStyle('linktt','visibility','hidden');
 
            }
 
        }
 
   }
 
    
 
    YUE.on('hlcode','mouseup',getSelectionLink)
 
    
 
   });
 
</script>
 
\ No newline at end of file
0 comments (0 inline, 0 general)