Files @ 301773d07012
Branch filter:

Location: kallithea/rhodecode/templates/journal/journal.html - annotation

Marcin Kuzminski
Lazy loading on my journal page
d14723711d17
d14723711d17
d14723711d17
d14723711d17
d14723711d17
d14723711d17
d14723711d17
d14723711d17
d14723711d17
d14723711d17
d14723711d17
6bef2a9f73e2
6bef2a9f73e2
6bef2a9f73e2
6bef2a9f73e2
d14723711d17
f91d3f9b7230
d14723711d17
d14723711d17
d14723711d17
d14723711d17
753aeb4a5c58
753aeb4a5c58
d815d617eb5e
f91d3f9b7230
d815d617eb5e
708f70d4f8ef
d815d617eb5e
d815d617eb5e
6bef2a9f73e2
761e00380370
f91d3f9b7230
f91d3f9b7230
d14723711d17
d14723711d17
d14723711d17
d14723711d17
d14723711d17
f91d3f9b7230
f91d3f9b7230
301773d07012
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
184557472f5c
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
fcbc35ecb024
fcbc35ecb024
301773d07012
301773d07012
301773d07012
d14723711d17
f91d3f9b7230
301773d07012
fcbc35ecb024
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
f91d3f9b7230
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
f91d3f9b7230
fcbc35ecb024
f91d3f9b7230
7a7ffe24b82c
fcbc35ecb024
7a7ffe24b82c
fcbc35ecb024
f91d3f9b7230
f91d3f9b7230
a221706dab50
fcbc35ecb024
a221706dab50
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
753aeb4a5c58
fcbc35ecb024
753aeb4a5c58
fcbc35ecb024
753aeb4a5c58
f91d3f9b7230
f91d3f9b7230
753aeb4a5c58
f91d3f9b7230
fcbc35ecb024
301773d07012
fcbc35ecb024
fcbc35ecb024
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
fcbc35ecb024
301773d07012
301773d07012
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
fcbc35ecb024
f91d3f9b7230
301773d07012
301773d07012
301773d07012
fcbc35ecb024
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
301773d07012
753aeb4a5c58
a3ee2611e6e8
753aeb4a5c58
9edd6ac132f0
f91d3f9b7230
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
f91d3f9b7230
9edd6ac132f0
f91d3f9b7230
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
b9539c4df92f
b9539c4df92f
b9539c4df92f
b9539c4df92f
b9539c4df92f
f91d3f9b7230
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
f91d3f9b7230
9edd6ac132f0
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
    ${_('Journal')} - ${c.rhodecode_name}
</%def>
<%def name="breadcrumbs()">
	${c.rhodecode_name}
</%def>
<%def name="page_nav()">
	${self.menu('home')}
</%def>
<%def name="head_extra()">
<link href="${h.url('journal_atom', api_key=c.rhodecode_user.api_key)}" rel="alternate" title="${_('ATOM journal feed')}" type="application/atom+xml" />
<link href="${h.url('journal_rss', api_key=c.rhodecode_user.api_key)}" rel="alternate" title="${_('RSS journal feed')}" type="application/rss+xml" />
</%def>
<%def name="main()">

    <div class="box box-left">
	    <!-- box / title -->
	    <div class="title">
	        <h5>${_('Journal')}</h5>
             <ul class="links">
               <li>
                 <span><a id="refresh" href="${h.url('journal')}"><img class="icon" title="${_('Refresh')}" alt="${_('Refresh')}" src="${h.url('/images/icons/arrow_refresh.png')}"/></a></span>
               </li>
               <li>
                 <span><a href="${h.url('journal_rss', api_key=c.rhodecode_user.api_key)}"><img class="icon" title="${_('RSS feed')}" alt="${_('RSS feed')}" src="${h.url('/images/icons/rss_16.png')}"/></a></span>
               </li>
               <li>
                 <span><a href="${h.url('journal_atom', api_key=c.rhodecode_user.api_key)}"><img class="icon" title="${_('ATOM feed')}" alt="${_('ATOM feed')}" src="${h.url('/images/icons/atom.png')}"/></a></span>
               </li>
             </ul>
	    </div>
	    <div id="journal">${c.journal_data}</div>
    </div>
    <div class="box box-right">
        <!-- box / title -->
        <div class="title">
            <h5>
            <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
            <a id="show_watched" class="link-white" href="#watched">${_('Watched')}</a> / <a id="show_my" class="link-white" href="#my">${_('My repos')}</a> 
            </h5>
             %if h.HasPermissionAny('hg.admin','hg.create.repository')():
             <ul class="links">
               <li>
                 <span>${h.link_to(_('ADD'),h.url('admin_settings_create_repository'))}</span>
               </li>
             </ul>
             %endif
        </div>
        <!-- end box / title -->
        <div id="my" class="table" style="display:none">
        ## loaded via AJAX
        ${_('Loading...')}
        </div>

        <div id="watched" class="table">
          %if c.following:
            <table>
            <thead>
                <tr>
                <th class="left">${_('Name')}</th>
            </thead>
             <tbody>
                %for entry in c.following:
                  <tr>
                    <td>
                      %if entry.follows_user_id:
                        <img title="${_('following user')}" alt="${_('user')}" src="${h.url('/images/icons/user.png')}"/>
                        ${entry.follows_user.full_contact}
                      %endif

                      %if entry.follows_repo_id:
                        <div style="float:right;padding-right:5px">
                        <span id="follow_toggle_${entry.follows_repository.repo_id}" class="following" title="${_('Stop following this repository')}"
                              onclick="javascript:toggleFollowingRepo(this,${entry.follows_repository.repo_id},'${str(h.get_token())}')">
                        </span>
                        </div>

                         %if h.is_hg(entry.follows_repository):
                           <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
                         %elif h.is_git(entry.follows_repository):
                           <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
                         %endif

                        %if entry.follows_repository.private and c.visual.show_private_icon:
                          <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
                        %elif not entry.follows_repository.private and c.visual.show_public_icon:
                          <img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
                        %endif
                        <span class="watched_repo">
                            ${h.link_to(entry.follows_repository.repo_name,h.url('summary_home',repo_name=entry.follows_repository.repo_name))}
                        </span>
                      %endif
                    </td>
                  </tr>
                %endfor
            </tbody>
            </table>
          %else:
              <div style="padding:5px 0px 10px 0px;">
              ${_('You are not following any users or repositories')}
              </div>
          %endif
        </div>
    </div>

    <script type="text/javascript">
    var show_my = function(e){
        YUD.setStyle('watched','display','none');
        YUD.setStyle('my','display','');

        var url = "${h.url('admin_settings_my_repos')}";
        ypjax(url, 'my', function(){
            tooltip_activate();
            quick_repo_menu();
            var nodes = YUQ('#my tr td a.repo_name');
            var func = function(node){
                return node.parentNode.parentNode.parentNode;
            }            
            q_filter('q_filter',nodes,func);
        });        
        
    }
    YUE.on('show_my','click',function(e){
        show_my(e);
    })
    var show_watched = function(e){
    	YUD.setStyle('my','display','none');
        YUD.setStyle('watched','display','');
        var nodes = YUQ('#watched .watched_repo a');
        var target = 'q_filter';
        var func = function(node){
            return node.parentNode.parentNode;
        }
        q_filter(target,nodes,func);
    }
    YUE.on('show_watched','click',function(e){
        show_watched(e);
    })
    //init watched
    show_watched();
    
    var tabs = {
        'watched': show_watched,
        'my': show_my,
    }
    var url = location.href.split('#');
    if (url[1]) {
        //We have a hash
        var tabHash = url[1];
        tabs[tabHash]();
    }    
    
    YUE.on('refresh','click',function(e){
        ypjax(e.currentTarget.href,"journal",function(){show_more_event();tooltip_activate();});
        YUE.preventDefault(e);
    });


    // main table sorting
    var myColumnDefs = [
        {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
        {key:"name",label:"${_('Name')}",sortable:true,
            sortOptions: { sortFunction: nameSort }},
        {key:"tip",label:"${_('Tip')}",sortable:true,
            sortOptions: { sortFunction: revisionSort }},
        {key:"action1",label:"",sortable:false},
        {key:"action2",label:"",sortable:false},
    ];

    var myDataSource = new YAHOO.util.DataSource(YUD.get("repos_list"));

    myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;

    myDataSource.responseSchema = {
        fields: [
            {key:"menu"},
            {key:"name"},
            {key:"tip"},
            {key:"action1"},
            {key:"action2"}
        ]
    };

    var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,
            {
              sortedBy:{key:"name",dir:"asc"},
              MSG_SORTASC:"${_('Click to sort ascending')}",
              MSG_SORTDESC:"${_('Click to sort descending')}",
              MSG_EMPTY:"${_('No records found.')}",
              MSG_ERROR:"${_('Data error.')}",
              MSG_LOADING:"${_('Loading...')}",
            }
    );
    myDataTable.subscribe('postRenderEvent',function(oArgs) {
        tooltip_activate();
        quick_repo_menu();
        var func = function(node){
            return node.parentNode.parentNode.parentNode.parentNode;
        }
        q_filter('q_filter',YUQ('#my tr td a.repo_name'),func);
    });

    </script>
</%def>