Mercurial > kallithea
view rhodecode/templates/files/files.html @ 3026:ff9e0cbfcd7f beta
fixed tests for databases that have FKs. Thank you sqlite...
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 24 Nov 2012 02:12:48 +0100 |
parents | adf8ee7b8f2a |
children | 685ebc84c2e9 |
line wrap: on
line source
<%inherit file="/base/base.html"/> <%def name="title()"> ${_('%s files') % c.repo_name} - ${c.rhodecode_name} </%def> <%def name="breadcrumbs_links()"> ${h.link_to(_(u'Home'),h.url('/'))} » ${h.link_to(c.repo_name,h.url('files_home',repo_name=c.repo_name))} » ${_('files')} %if c.file: @ r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)} %endif </%def> <%def name="page_nav()"> ${self.menu('files')} </%def> <%def name="main()"> <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('/'); var title = "${_('%s files') % c.repo_name}" + " - " + f_path; 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>