##// END OF EJS Templates
#43 main page quick filter
marcink -
r646:fdb984a9 beta
parent child Browse files
Show More
@@ -2309,4 +2309,11 b' div#legend_container table td,div#legend'
2309 border:none !important;
2309 border:none !important;
2310 height:20px !important;
2310 height:20px !important;
2311 padding:0 !important;
2311 padding:0 !important;
2312 } No newline at end of file
2312 }
2313
2314 #q_filter{
2315 border: 0px;
2316 color:#CDCDCD;
2317 padding-left:3px
2318 }
2319
@@ -270,8 +270,10 b''
270 ##<script type="text/javascript" src="/js/yui/container/container.js"></script>
270 ##<script type="text/javascript" src="/js/yui/container/container.js"></script>
271 ##<script type="text/javascript" src="/js/yui/datasource/datasource.js"></script>
271 ##<script type="text/javascript" src="/js/yui/datasource/datasource.js"></script>
272 ##<script type="text/javascript" src="/js/yui/autocomplete/autocomplete.js"></script>
272 ##<script type="text/javascript" src="/js/yui/autocomplete/autocomplete.js"></script>
273 ##<script type="text/javascript" src="/js/yui/selector/selector-min.js"></script>
273
274
274 <script type="text/javascript" src="/js/yui2.js"></script>
275 <script type="text/javascript" src="/js/yui2.js"></script>
276 <script type="text/javascript" src="/js/yui/selector/selector-min.js"></script>
275 <!--[if IE]><script language="javascript" type="text/javascript" src="/js/excanvas.min.js"></script><![endif]-->
277 <!--[if IE]><script language="javascript" type="text/javascript" src="/js/excanvas.min.js"></script><![endif]-->
276 <script type="text/javascript" src="/js/yui.flot.js"></script>
278 <script type="text/javascript" src="/js/yui.flot.js"></script>
277 </%def>
279 </%def>
@@ -27,7 +27,9 b''
27 <div class="box">
27 <div class="box">
28 <!-- box / title -->
28 <!-- box / title -->
29 <div class="title">
29 <div class="title">
30 <h5>${_('Dashboard')}</h5>
30 <h5>${_('Dashboard')}
31 <input class="top-right-rounded-corner top-left-rounded-corner bottom-left-rounded-corner bottom-right-rounded-corner" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
32 </h5>
31 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
33 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
32 <ul class="links">
34 <ul class="links">
33 <li>
35 <li>
@@ -38,7 +40,7 b''
38 </div>
40 </div>
39 <!-- end box / title -->
41 <!-- end box / title -->
40 <div class="table">
42 <div class="table">
41 <table>
43 <table>
42 <thead>
44 <thead>
43 <tr>
45 <tr>
44 <th class="left">${get_sort(_('Name'))}</th>
46 <th class="left">${get_sort(_('Name'))}</th>
@@ -50,61 +52,108 b''
50 <th class="left">${_('Atom')}</th>
52 <th class="left">${_('Atom')}</th>
51 </tr>
53 </tr>
52 </thead>
54 </thead>
53 <tbody>
55 <tbody>
54 %for cnt,repo in enumerate(c.repos_list):
56 %for cnt,repo in enumerate(c.repos_list):
55 %if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(repo['name'],'main page check'):
57 %if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(repo['name'],'main page check'):
56 <tr class="parity${cnt%2}">
58 <tr class="parity${cnt%2}">
57 <td>
59 <td>
58 %if repo['repo'].dbrepo.repo_type =='hg':
60 %if repo['repo'].dbrepo.repo_type =='hg':
59 <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="/images/icons/hgicon.png"/>
61 <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="/images/icons/hgicon.png"/>
60 %elif repo['repo'].dbrepo.repo_type =='git':
62 %elif repo['repo'].dbrepo.repo_type =='git':
61 <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="/images/icons/giticon.png"/>
63 <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="/images/icons/giticon.png"/>
62 %else:
64 %else:
63
65
64 %endif
66 %endif
65
67
66 %if repo['repo'].dbrepo.private:
68 %if repo['repo'].dbrepo.private:
67 <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="/images/icons/lock.png"/>
69 <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="/images/icons/lock.png"/>
68 %else:
70 %else:
69 <img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="/images/icons/lock_open.png"/>
71 <img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="/images/icons/lock_open.png"/>
70 %endif
72 %endif
71 ${h.link_to(repo['name'],
73 ${h.link_to(repo['name'],
72 h.url('summary_home',repo_name=repo['name']))}
74 h.url('summary_home',repo_name=repo['name']),class_="repo_name")}
73 %if repo['repo'].dbrepo.fork:
75 %if repo['repo'].dbrepo.fork:
74 <a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
76 <a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
75 <img class="icon" alt="${_('fork')}"
77 <img class="icon" alt="${_('fork')}"
76 title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}"
78 title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}"
77 src="/images/icons/arrow_divide.png"/></a>
79 src="/images/icons/arrow_divide.png"/></a>
78 %endif
80 %endif
79 </td>
81 </td>
80 <td><span class="tooltip" tooltip_title="${repo['description']}">
82 <td><span class="tooltip" tooltip_title="${repo['description']}">
81 ${h.truncate(repo['description'],60)}</span>
83 ${h.truncate(repo['description'],60)}</span>
82 </td>
84 </td>
83 <td><span class="tooltip" tooltip_title="${repo['last_change']}">
85 <td><span class="tooltip" tooltip_title="${repo['last_change']}">
84 ${h.age(repo['last_change'])} </span>
86 ${h.age(repo['last_change'])} </span>
85 </td>
87 </td>
86 <td>
88 <td>
87 %if repo['rev']>=0:
89 %if repo['rev']>=0:
88 ${h.link_to('r%s:%s' % (repo['rev'],h.short_id(repo['tip'])),
90 ${h.link_to('r%s:%s' % (repo['rev'],h.short_id(repo['tip'])),
89 h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
91 h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
90 class_="tooltip",
92 class_="tooltip",
91 tooltip_title=h.tooltip(repo['last_msg']))}
93 tooltip_title=h.tooltip(repo['last_msg']))}
92 %else:
94 %else:
93 ${_('No changesets yet')}
95 ${_('No changesets yet')}
94 %endif
96 %endif
95 </td>
97 </td>
96 <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
98 <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
97 <td>
99 <td>
98 <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon" href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
100 <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon" href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
99 </td>
101 </td>
100 <td>
102 <td>
101 <a title="${_('Subscribe to %s atom feed')%repo['name']}" class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'])}"></a>
103 <a title="${_('Subscribe to %s atom feed')%repo['name']}" class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'])}"></a>
102 </td>
104 </td>
103 </tr>
105 </tr>
104 %endif
106 %endif
105 %endfor
107 %endfor
106 </tbody>
108 </tbody>
107 </table>
109 </table>
108 </div>
110 </div>
109 </div>
111 </div>
112
113
114 <script type="text/javascript">
115 var D = YAHOO.util.Dom;
116 var E = YAHOO.util.Event;
117 var S = YAHOO.util.Selector;
118
119 var q_filter = D.get('q_filter');
120 var F = YAHOO.namespace('q_filter');
121
122 E.on(q_filter,'click',function(){
123 q_filter.value = '';
124 });
125
126 F.filterTimeout = null;
127
128 F.updateFilter = function() {
129 // Reset timeout
130 F.filterTimeout = null;
131
132 var obsolete = [];
133 var nodes = S.query('div.table tr td a.repo_name');
134 var req = D.get('q_filter').value;
135 for (n in nodes){
136 D.setStyle(nodes[n].parentNode.parentNode,'display','')
137 }
138 if (req){
139 for (n in nodes){
140 if (nodes[n].innerHTML.toLowerCase().indexOf(req) == -1) {
141 obsolete.push(nodes[n]);
142 }
143 }
144 if(obsolete){
145 for (n in obsolete){
146 D.setStyle(obsolete[n].parentNode.parentNode,'display','none');
147 }
148 }
149 }
150 }
151
152 E.on(q_filter,'keyup',function(e){
153 clearTimeout(F.filterTimeout);
154 setTimeout(F.updateFilter,600);
155 });
156
157 </script>
158
110 </%def>
159 </%def>
General Comments 0
You need to be logged in to leave comments. Login now