mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 17:36:40 +00:00
Sorting now seems to work correctly
This commit is contained in:
1 parent
fe35d208d0
commit
72a0ec1d9d
3 files changed
+48
-16
No files matched your search
@@ -543,6 +543,7 @@ def moderatorLiveData(context, request):
|
||||
sortby = request.params.get('sortby', 'name')
|
||||
race_range = request.params.get('races', '1:3')
|
||||
competitor_range = request.params.get('competitors', '1:20')
|
||||
direction = request.params.get('direction', 'asc');
|
||||
|
||||
if race_range in ['null', 'undefined']:
|
||||
race_range = '1:3'
|
||||
@@ -552,6 +553,9 @@ def moderatorLiveData(context, request):
|
||||
|
||||
competitors = view.competitorsSortedBy(event.name, sortby.strip())
|
||||
|
||||
if direction == 'asc':
|
||||
competitors.reverse()
|
||||
|
||||
races = []
|
||||
for racename in races_list:
|
||||
races.append(model.RaceImpl.queryOneBy(name=racename, event=event.name))
|
||||
@@ -592,5 +596,6 @@ def moderatorLiveData(context, request):
|
||||
data.append({'name': competitor.name, 'raceranks': racedata, 'markranks': markranks, 'legvalues': legvalues,
|
||||
'nationality': competitor.nationality, 'global_rank': competitor.total})
|
||||
|
||||
return data
|
||||
c_range_start, c_range_end = competitor_range.split(':')
|
||||
return data[int(c_range_start)-1:int(c_range_end)]
|
||||
|
||||
@@ -1,20 +1,47 @@
|
||||
|
||||
var global_sortkey = 'name';
|
||||
var global_direction = 'desc';
|
||||
var global_race = '1:3';
|
||||
var global_competitors = '1:20';
|
||||
|
||||
var loader_image = "<img style='margin: 3px 0px 3px 3px' src='/static/images/ajax-loader-greybg.gif'/>";
|
||||
|
||||
/*
|
||||
* Loads leaderboard data. Parameters:
|
||||
*
|
||||
* races: Slice that indicates which data to load (e.g. "0:2")
|
||||
* races: Slice that indicates which data to load (e.g. "1:3")
|
||||
* sortby: Sorting parameters (e.g "1,1,1")
|
||||
* competitors: Slice indicating which competitors to show (e.g. "0:20")
|
||||
* competitors: Slice indicating which competitors to show (e.g. "1:20")
|
||||
*/
|
||||
function loadLeaderboard(races, sortby, competitors) {
|
||||
function loadLeaderboard(races, sortby, competitors, direction) {
|
||||
showLoader();
|
||||
$.getJSON('/++/moderatorLiveData',
|
||||
{races:races, sortby:sortby, competitors:competitors},
|
||||
{races:races, sortby:sortby, competitors:competitors, direction:direction},
|
||||
function(data) {
|
||||
displayLeaderboard(data);
|
||||
hideLoader();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function showLoader() {
|
||||
$('.refresh-btn').html(loader_image);
|
||||
}
|
||||
|
||||
function hideLoader() {
|
||||
$('.refresh-btn').html('');
|
||||
}
|
||||
function sortBy(param, element) {
|
||||
element.toggleClass('sort-asc').toggleClass('sort-desc');
|
||||
|
||||
if (element.hasClass('sort-asc'))
|
||||
global_direction = 'asc';
|
||||
else global_direction = 'desc';
|
||||
|
||||
global_sortkey = param;
|
||||
loadLeaderboard(global_race, param, global_competitors, global_direction);
|
||||
}
|
||||
|
||||
function yieldValue(element, newvalue) {
|
||||
element.html(newvalue);
|
||||
}
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
<!-- / MAIN INTERFACE -->
|
||||
<div id='main-interface'>
|
||||
<div class='blue-table'>
|
||||
<a class='refresh-btn' href='javascript:;' onclick='loadLeaderboard(null, "1,1");'></a>
|
||||
<a class='sort-rank sort-asc' href='#'></a>
|
||||
<a class='refresh-btn' href='javascript:;' onclick=''><img src='/static/images/ajax-loader-greybg.gif'/></a>
|
||||
<a class='sort-rank sort-asc' href='javascript:;' onclick='sortBy("total", $(this))'></a>
|
||||
<table id='overall-clipping'>
|
||||
<tbody>
|
||||
<tal:for repeat="clpos range(1,21)">
|
||||
@@ -77,7 +77,7 @@
|
||||
</ul>
|
||||
<span>1</span>
|
||||
</a>
|
||||
<a class='main-box-sort sort-asc' href='#'></a>
|
||||
<a class='main-box-sort sort-asc' href='javascript:;' onclick='sortBy("${raceid}", $(this))'></a>
|
||||
</div>
|
||||
|
||||
<tal:for repeat="leg event.marks[int(raceid)-1]">
|
||||
@@ -85,7 +85,7 @@
|
||||
<!-- / SECOND ELEMENT WITH LIST -->
|
||||
<div class='leg-box'>
|
||||
<span>M${markid}</span>
|
||||
<a class='leg-box-sort sort-asc' href='#'></a>
|
||||
<a class='leg-box-sort sort-asc' href='javascript:;' onclick='sortBy("${raceid},${markid}", $(this))'></a>
|
||||
<a class='leg-box-active' href='javascript:;' onclick='$(this).closest(".leg-wrap").find(".table-box, .race-table").toggle();'>
|
||||
<ul>
|
||||
<tal:for repeat="markrow range(1,21)">
|
||||
@@ -100,7 +100,7 @@
|
||||
<li id='race-${raceid}-mark-${markid}-legrow-${legrow}'></li>
|
||||
</tal:for>
|
||||
</ul>
|
||||
<a class='table-box-sort sort-asc' href='#'></a>
|
||||
<a class='table-box-sort sort-asc' href='javascript:;' onclick='sortBy("${raceid},${markid},1", $(this))'></a>
|
||||
</div>
|
||||
<table class='race-table' id='r1-m1' style="display:none;">
|
||||
<thead>
|
||||
@@ -128,22 +128,22 @@
|
||||
<tbody>
|
||||
<tr rowid='0'>
|
||||
<td class='table-sorting' colid='1'>
|
||||
<a class='sort-asc' href='#'></a>
|
||||
<a class='sort-asc' href='javascript:;' onclick='sortBy("${raceid},${markid},3", $(this))'></a>
|
||||
</td>
|
||||
<td class='table-sorting' colid='2'>
|
||||
<a class='sort-asc' href='#'></a>
|
||||
<a class='sort-asc' href='javascript:;' onclick='sortBy("${raceid},${markid},2", $(this))'></a>
|
||||
</td>
|
||||
<td class='table-sorting' colid='3'>
|
||||
<a class='sort-asc' href='#'></a>
|
||||
<a class='sort-asc' href='javascript:;' onclick='sortBy("${raceid},${markid},4", $(this))'></a>
|
||||
</td>
|
||||
<td class='table-sorting' colid='4'>
|
||||
<a class='sort-asc' href='#'></a>
|
||||
<a class='sort-asc' href='javascript:;' onclick='sortBy("${raceid},${markid},6", $(this))'></a>
|
||||
</td>
|
||||
<td class='table-sorting' colid='5'>
|
||||
<a class='sort-asc' href='#'></a>
|
||||
<a class='sort-asc' href='javascript:;' onclick='sortBy("${raceid},${markid},8", $(this))'></a>
|
||||
</td>
|
||||
<td class='table-sorting' colid='6'>
|
||||
<a class='sort-asc' href='#'></a>
|
||||
<a class='sort-asc' href='javascript:;' onclick='sortBy("${raceid},${markid},7", $(this))'></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tal:for repeat="valrow range(1,21)">
|
||||
|
||||
Reference in new issue
Block a user