diff rhodecode/templates/journal/journal.html @ 2031:82a88013a3fd

merge 1.3 into stable
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 26 Feb 2012 17:25:09 +0200
parents bf263968da47 7a7ffe24b82c
children dc2584ba5fbc
line wrap: on
line diff
--- a/rhodecode/templates/journal/journal.html	Sun Feb 19 20:21:14 2012 +0200
+++ b/rhodecode/templates/journal/journal.html	Sun Feb 26 17:25:09 2012 +0200
@@ -10,60 +10,211 @@
 	${self.menu('home')}
 </%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>
+             </ul>
 	    </div>
-		<script type="text/javascript">
-		function show_more_event(){
-		YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
-		    var el = e.target;
-		    YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
-		    YUD.setStyle(el.parentNode,'display','none');
-		});
-		}
-		</script> 	    
 	    <div id="journal">${c.journal_data}</div>
     </div>
-    
     <div class="box box-right">
         <!-- box / title -->
         <div class="title">
-            <h5>${_('Following')}</h5>
+            <h5>
+            <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
+            <a id="show_my" class="link-white" href="#my">${_('My repos')}</a> / <a id="show_watched" class="link-white" href="#watched">${_('Watched')}</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">
+            %if c.user_repos:
+            <div id='repos_list_wrap' class="yui-skin-sam">
+            <table id="repos_list">
+             <thead>
+                  <tr>
+                  <th></th>
+                  <th class="left">${_('Name')}</th>
+                  <th class="left">${_('Tip')}</th>
+                  <th class="left">${_('Action')}</th>
+                  <th class="left">${_('Action')}</th>
+             </thead>
+             <tbody>
+                 <%namespace name="dt" file="/_data_table/_dt_elements.html"/>
+                 %for repo in c.user_repos:
+                    <tr>
+                        ##QUICK MENU
+                        <td class="quick_repo_menu">
+                          ${dt.quick_menu(repo['name'])}
+                        </td>
+                        ##REPO NAME AND ICONS
+                        <td class="reponame">
+                          ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],repo['dbrepo_fork'].get('repo_name'))}
+                        </td>
+                        ##LAST REVISION
+                        <td>
+                            ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])}
+                        </td>
+                        ##
+                        <td><a href="${h.url('repo_settings_home',repo_name=repo['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url('/images/icons/application_form_edit.png')}"/></a></td>
+                        <td>
+                          ${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')}
+                            ${h.submit('remove_%s' % repo['name'],'',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
+                          ${h.end_form()}
+                        </td>
+                    </tr>
+                 %endfor
+             </tbody>
+             </table>
+             </div>
+             %else:
+                <div style="padding:5px 0px 10px 0px;">
+                ${_('No repositories yet')}
+                %if h.HasPermissionAny('hg.admin','hg.create.repository')():
+                    ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'),class_="ui-btn")}
+                %endif
+                </div>
+             %endif
         </div>
-        <div>
-		%if c.following:
-		    %for entry in c.following:
-		        <div class="currently_following">
-		            %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:left;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 entry.follows_repository.private:
-		                <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url("/images/icons/lock.png")}"/>
-		              %else:
-		                <img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url("/images/icons/lock_open.png")}"/>
-		              %endif
-		              
-		              ${h.link_to(entry.follows_repository.repo_name,h.url('summary_home',
-		                repo_name=entry.follows_repository.repo_name))}
-		              
-		            %endif
-		        </div>
-		    %endfor
-		%else:
-		    ${_('You are not following any users or repositories')}
-		%endif
+
+        <div id="watched" class="table" style="display:none">
+          %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:
+                          <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
+                        %else:
+                          <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>    
-</%def>    
+    </div>
+
+    <script type="text/javascript">
+
+    YUE.on('show_my','click',function(e){
+        YUD.setStyle('watched','display','none');
+        YUD.setStyle('my','display','');
+        var nodes = YUQ('#my tr td a.repo_name');
+        var target = 'q_filter';
+        var func = function(node){
+            return node.parentNode.parentNode.parentNode.parentNode;
+        }
+        q_filter(target,nodes,func);
+        YUE.preventDefault(e);
+    })
+    YUE.on('show_watched','click',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.preventDefault(e);
+    })
+    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>