Mercurial > kallithea
view rhodecode/templates/files/files.html @ 3882:2c5ceb546234 beta
renamed gists routing to proper plural names
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 20 May 2013 21:40:00 +0200 |
parents | 63adb3d5233a |
children | 072a37c44f58 |
line wrap: on
line source
<%inherit file="/base/base.html"/> <%def name="title(*args)"> ${_('%s Files') % c.repo_name} %if hasattr(c,'file'): · ${h.safe_unicode(c.file.path) or '\\'} %endif · ${c.rhodecode_name} </%def> <%def name="breadcrumbs_links()"> ${_('Files')} %if c.file: @ ${h.show_id(c.changeset)} %endif </%def> <%def name="page_nav()"> ${self.menu('repositories')} </%def> <%def name="main()"> ${self.context_bar('files')} <div class="box"> <!-- box / title --> <div class="title"> ${self.breadcrumbs()} <ul class="links"> <li> <span style="text-transform: uppercase;"><a href="#">${_('Branch')}: ${c.changeset.branch}</a></span> </li> </ul> </div> <div class="table"> <div id="files_data"> <%include file='files_ypjax.html'/> </div> </div> </div> <script type="text/javascript"> var CACHE = {}; var CACHE_EXPIRE = 5*60*1000; //cache for 5*60s //used to construct links from the search list var url_base = '${h.url("files_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}'; //send the nodelist request to this url var node_list_url = '${h.url("files_nodelist_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}'; // send the node history requst to this url var node_history_url = '${h.url("files_history_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}'; var ypjax_links = function(){ YUE.on(YUQ('.ypjax-link'), 'click',function(e){ //don't do ypjax on middle click if(e.which == 2 || !History.enabled){ return true; } var el = e.currentTarget; var url = el.href; var _base_url = '${h.url("files_home",repo_name=c.repo_name,revision='',f_path='')}'; _base_url = _base_url.replace('//','/') //extract rev and the f_path from url. parts = url.split(_base_url) if(parts.length != 2){ return false; } var parts2 = parts[1].split('/'); var rev = parts2.shift(); // pop the first element which is the revision var f_path = parts2.join('/'); //page title make this consistent with title() mako function on top var title = "${_('%s Files') % c.repo_name}" + " · " + (f_path || '\\') + " · " + "${c.rhodecode_name}"; var _node_list_url = node_list_url.replace('__REV__',rev).replace('__FPATH__', f_path); var _url_base = url_base.replace('__REV__',rev); // Change our States and save some data for handling events var data = {url:url,title:title, url_base:_url_base, node_list_url:_node_list_url, rev:rev, f_path:f_path}; History.pushState(data, title, url); //now we're sure that we can do ypjax things YUE.preventDefault(e); return false; }); } var callbacks = function(State){ ypjax_links(); tooltip_activate(); fileBrowserListeners(State.url, State.data.node_list_url, State.data.url_base); if(YUD.get('hlcode')){ YUE.on('hlcode', 'mouseup', getSelectionLink); } //console.log(State); if(YUD.get('load_node_history')){ //remove all listeners due to problems of history state YUE.removeListener('load_node_history', 'click'); YUE.on('load_node_history', 'click', function(e){ var _url = node_history_url.replace('__REV__',State.data.rev).replace('__FPATH__', State.data.f_path); ypjax(_url, 'node_history', function(o){ tooltip_activate(); }) }); } // Inform Google Analytics of the change if ( typeof window.pageTracker !== 'undefined' ) { window.pageTracker._trackPageview(State.url); } } YUE.onDOMReady(function(){ ypjax_links(); var container = 'files_data'; //Bind to StateChange Event History.Adapter.bind(window,'statechange',function(){ var State = History.getState(); cache_key = State.url; //check if we have this request in cache maybe ? var _cache_obj = CACHE[cache_key]; var _cur_time = new Date().getTime(); // get from cache if it's there and not yet expired ! if(_cache_obj !== undefined && _cache_obj[0] > _cur_time){ YUD.get(container).innerHTML=_cache_obj[1]; YUD.setStyle(container,'opacity','1.0'); //callbacks after ypjax call callbacks(State); } else{ ypjax(State.url,container,function(o){ //callbacks after ypjax call callbacks(State); if (o !== undefined){ //store our request in cache var _expire_on = new Date().getTime()+CACHE_EXPIRE; CACHE[cache_key] = [_expire_on, o.responseText]; } }); } }); // init the search filter var _State = { url: "${h.url.current()}", data: { node_list_url: node_list_url.replace('__REV__',"${c.changeset.raw_id}").replace('__FPATH__', "${h.safe_unicode(c.file.path)}"), url_base: url_base.replace('__REV__',"${c.changeset.raw_id}"), rev:"${c.changeset.raw_id}", f_path: "${h.safe_unicode(c.file.path)}" } } fileBrowserListeners(_State.url, _State.data.node_list_url, _State.data.url_base); }); </script> </%def>