comparison rhodecode/templates/index_base.html @ 3154:0226b6d6b2b5 beta

Use common function for generation of grid data - admin grid now has dedicated edit button, and uses changeset_cache - some small improvements to grid - all other datatables use this
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 09 Jan 2013 01:59:43 +0100
parents 68f9c216377d
children 0cb48c083c6b
comparison
equal deleted inserted replaced
3153:8046d1979674 3154:0226b6d6b2b5
125 </div> 125 </div>
126 </div> 126 </div>
127 % if c.visual.lightweight_dashboard is False: 127 % if c.visual.lightweight_dashboard is False:
128 <script> 128 <script>
129 YUD.get('repo_count').innerHTML = ${cnt+1 if cnt else 0}; 129 YUD.get('repo_count').innerHTML = ${cnt+1 if cnt else 0};
130 var func = function(node){
131 return node.parentNode.parentNode.parentNode.parentNode;
132 }
133 130
134 // groups table sorting 131 // groups table sorting
135 var myColumnDefs = [ 132 var myColumnDefs = [
136 {key:"name",label:"${_('Group name')}",sortable:true, 133 {key:"name",label:"${_('Group name')}",sortable:true,
137 sortOptions: { sortFunction: groupNameSort }}, 134 sortOptions: { sortFunction: groupNameSort }},
212 } 209 }
213 ); 210 );
214 myDataTable.subscribe('postRenderEvent',function(oArgs) { 211 myDataTable.subscribe('postRenderEvent',function(oArgs) {
215 tooltip_activate(); 212 tooltip_activate();
216 quick_repo_menu(); 213 quick_repo_menu();
214 var func = function(node){
215 return node.parentNode.parentNode.parentNode.parentNode;
216 }
217 q_filter('q_filter',YUQ('div.table tr td a.repo_name'),func); 217 q_filter('q_filter',YUQ('div.table tr td a.repo_name'),func);
218 }); 218 });
219 219
220 </script> 220 </script>
221 % else: 221 % else:
222 <script> 222 <script>
223 //var url = "${h.url('formatted_users', format='json')}";
224 var data = ${c.data|n}; 223 var data = ${c.data|n};
225 var myDataSource = new YAHOO.util.DataSource(data); 224 var myDataSource = new YAHOO.util.DataSource(data);
226 myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON; 225 myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
227 226
228 myDataSource.responseSchema = { 227 myDataSource.responseSchema = {
231 {key:"menu"}, 230 {key:"menu"},
232 {key:"raw_name"}, 231 {key:"raw_name"},
233 {key:"name"}, 232 {key:"name"},
234 {key:"desc"}, 233 {key:"desc"},
235 {key:"last_change"}, 234 {key:"last_change"},
236 {key: "tip"}, 235 {key:"last_changeset"},
237 {key:"owner"}, 236 {key:"owner"},
238 {key:"rss"}, 237 {key:"rss"},
239 {key:"atom"}, 238 {key:"atom"},
240 ] 239 ]
241 }; 240 };
265 {key:"name",label:"${_('Name')}",sortable:true, 264 {key:"name",label:"${_('Name')}",sortable:true,
266 sortOptions: { sortFunction: nameSort }}, 265 sortOptions: { sortFunction: nameSort }},
267 {key:"desc",label:"${_('Description')}",sortable:true}, 266 {key:"desc",label:"${_('Description')}",sortable:true},
268 {key:"last_change",label:"${_('Last Change')}",sortable:true, 267 {key:"last_change",label:"${_('Last Change')}",sortable:true,
269 sortOptions: { sortFunction: ageSort }}, 268 sortOptions: { sortFunction: ageSort }},
270 {key:"tip",label:"${_('Tip')}",sortable:true, 269 {key:"last_changeset",label:"${_('Tip')}",sortable:true,
271 sortOptions: { sortFunction: revisionSort }}, 270 sortOptions: { sortFunction: revisionSort }},
272 {key:"owner",label:"${_('Owner')}",sortable:true}, 271 {key:"owner",label:"${_('Owner')}",sortable:true},
273 {key:"rss",label:"",sortable:false}, 272 {key:"rss",label:"",sortable:false},
274 {key:"atom",label:"",sortable:false}, 273 {key:"atom",label:"",sortable:false},
275 ]; 274 ];
309 // Reset timeout 308 // Reset timeout
310 filterTimeout = null; 309 filterTimeout = null;
311 310
312 // Reset sort 311 // Reset sort
313 var state = myDataTable.getState(); 312 var state = myDataTable.getState();
314 state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC}; 313 state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
315 314
316 // Get filtered data 315 // Get filtered data
317 myDataSource.sendRequest(YUD.get('q_filter').value,{ 316 myDataSource.sendRequest(YUD.get('q_filter').value,{
318 success : myDataTable.onDataReturnInitializeTable, 317 success : myDataTable.onDataReturnInitializeTable,
319 failure : myDataTable.onDataReturnInitializeTable, 318 failure : myDataTable.onDataReturnInitializeTable,
321 argument: state 320 argument: state
322 }); 321 });
323 322
324 }; 323 };
325 YUE.on('q_filter','click',function(){ 324 YUE.on('q_filter','click',function(){
326 YUD.get('q_filter').value = ''; 325 if(!YUD.hasClass('q_filter', 'loaded')){
326 YUD.get('q_filter').value = '';
327 //TODO: load here full list later to do search within groups
328 YUD.addClass('q_filter', 'loaded');
329 }
327 }); 330 });
328 331
329 YUE.on('q_filter','keyup',function (e) { 332 YUE.on('q_filter','keyup',function (e) {
330 clearTimeout(filterTimeout); 333 clearTimeout(filterTimeout);
331 filterTimeout = setTimeout(updateFilter,600); 334 filterTimeout = setTimeout(updateFilter,600);