]>
iEval git - gruntmaster-page.git/blob - 90-tracker.js
aac598e6bf571d547b8925aaee3474d08ac0e9da
4 function tick() { return $('<span class="tick tracker-mark">✔</span>') }
5 function xmark() { return $('<span class="x tracker-mark">✘</span>') }
7 function clean_tracker(){
8 $('.tracker-mark').detach();
9 $('.tracker-info').removeClass('tracker-info info');
12 function update_tracker(){
13 var data
= localStorage
.getItem('tracker_data');
14 var user
= localStorage
.getItem('tracker_username');
17 data
= JSON
.parse(data
);
22 data
.problems
.forEach(function(e
){
24 solved
[e
.problem
] = 1;
27 attempted
[e
.problem
] = 1;
33 data
.contests
.forEach(function(e
){
34 contests
[e
.contest
] = 1;
38 $('#tracker_userlink').html(data
.name
);
39 $('#tracker_solved').html(solvednr
);
40 $('#tracker_attempted').html(attemptednr
);
41 $('#tracker_contests').html(data
.contests
.length
);
43 if(location
.pathname
== '/pb/')
44 $('table').find('.name').find('a').each(function() {
45 var id
= $(this).attr('href').split('?', 2)[0];
47 $(this).parent().append(tick());
48 else if(attempted
[id
])
49 $(this).parent().append(xmark());
52 if(location
.pathname
== '/ct/')
53 $('table').find('.name').find('a').each(function() {
54 var id
= $(this).attr('href').substr(4);
56 $(this).parent().append(tick());
59 if(location
.pathname
== '/log/')
60 $('table').find('tbody').find('tr').each(function() {
61 if($(this).find('.owner').find('a').attr('href') != '/us/' + user
)
63 $(this).find('.id').append($(this).find('.r0').size() ? tick() : xmark());
66 if(location
.pathname
.match(/^\/st\//) || location
.pathname
== '/us/')
67 $('table').find('tbody').find('tr').each(function() {
68 if($(this).find('.user').find('a').attr('href') == '/us/' + user
)
69 $(this).addClass('info tracker-info');
73 function start_tracking(user
){
74 localStorage
.setItem('tracker_username', user
);
75 $('#tracker_userlink').attr('href', '/us/' + user
).html(user
);
76 $('#tracker_tracking').removeClass('hidden');
77 $('#tracker_form').addClass('hidden');
79 var xhr
= new XMLHttpRequest();
80 xhr
.open('GET', '/us/' + user
+ '?format=json');
81 xhr
.onload = function () {
82 localStorage
.setItem('tracker_data', this.responseText
);
87 window
.start_tracking
= start_tracking
;
89 function stop_tracking(){
91 localStorage
.removeItem('tracker_username');
92 localStorage
.removeItem('tracker_data');
93 $('#tracker_tracking').addClass('hidden');
94 $('#tracker_form').removeClass('hidden');
97 $( document
).ready(function(){
98 $('#tracker').detach().prependTo($('#sidebar')).removeClass('hidden');
99 $('#tracker_button').on('click', function() { start_tracking($('#tracker_username').val()) });
100 $('#tracker_stop').on('click', stop_tracking
);
101 $('#track_user').removeClass('hidden');
102 $('#track_user').on('click', function() { stop_tracking(); start_tracking($(this).data('user')) });
104 if(localStorage
.getItem('tracker_username'))
105 start_tracking(localStorage
.getItem('tracker_username'));
This page took 0.056404 seconds and 3 git commands to generate.