You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

200 lines
6.4 KiB

window.from_date = null;
window.to_date = null;
window.student_ids = [];
window.course_id = 1;
window.to_draw = [];
window.load_draw_interval = null;
window.load_students_interval = null;
window.load_date_interval - null;
window.in_draw = false;
window.students = {};
window.change_color_index = 0;
function start_load() {
window.load_students_interval = null;
load_students();
$('[name=load_button]').fadeOut(function () {
$('[name=preloader]').fadeIn();
$('[name=stop_button]').fadeIn();
});
}
function stop_load() {
clearInterval(window.load_students_interval);
clearInterval(window.load_draw_interval);
$('[name=stop_button]').fadeOut();
$('[name=preloader]').fadeOut(function () {
$('[name=load_button]').fadeIn();
});
}
function load_students(){
// Загрузить карту по
if (!window.load_students_interval){
start_load();
}
function start_load(){
window.student_ids = [];
window.load_students_interval = setInterval( function(){load_map();}, 300);
}
function stop_load_process(){
clearInterval(window.load_students_interval);
window.load_students_interval = null;
draw_interval()
}
function load_map(){
if (check_load_finish()){
console.log('Остановка');
stop_load_process();
} else {
get_students();
console.log('Получаю');
}
}
}
function draw_interval(){
// Загрузить карту по
if (!window.load_draw_interval){
start_load();
}
function start_load(){
window.student_ids = [];
window.load_draw_interval = setInterval( function(){draw_map();}, 1000);
}
function stop_load_process(){
clearInterval(window.load_draw_interval);
window.load_draw_interval = null;
console.log('Остановил');
$('[name=date_block]').fadeIn('slow');
stop_load();
}
function draw_map(){
if (window.in_draw){
console.log('Пропускаю событие')
} else if (window.to_draw.length == 0){
console.log('Остановка');
stop_load_process();
} else {
draw_raw(window.to_draw.pop());
$('[name=preload_status]').html('Отрисовка:' +window.to_draw.length);
console.log('Рисую');
}
}
}
function change_date_color(){
// Загрузить карту по
if (!window.load_date_interval){
start_load();
}
function start_load(){
window.load_date_interval = setInterval( function(){load_map();}, 100);
}
function stop_load_process(){
clearInterval(window.load_date_interval);
window.load_date_interval = null;
window.students = {};
}
function load_map(){
if (!window.change_color.length <= window.change_color_index){
draw_date(window.change_color[window.change_color_index]);
window.change_color_index += 1;
} else {
stop_load_process()
}
}
}
function refactor_exclude() {
var result = '';
for (var i in window.student_ids){
result += window.student_ids[i];
result += '_';
}
return result
}
function draw_raw(data) {
window.in_draw = true;
for (var point in data){
var p = $('[point='+data[point]['point']+']');
p.attr('s_date', data[point]['s_date']).attr('f_date', data[point]['f_date']).attr('tp', data[point]['type']).show();
if (data[point]['type'] == 'H'){
p.css('border-top', '3px solid #999')
} else if (data[point]['type'] == 'E'){
p.css('border-top', '3px solid #ff1')
}
}
window.in_draw = false;
}
function draw_date(data) {
var result = false;
var ob = $(data);
if (window.from_date){
if (!parseInt(ob.attr('s_date'), 10) >= window.from_date){
console.log('Ставлю от'+ parseInt(ob.attr('s_date'), 10));
result = true
} else {
console.log('Пропускаю от'+ parseInt(ob.attr('s_date'), 10));
}
}
if (window.to_date){
if (!parseInt(ob.attr('f_date'), 10) <= window.from_date){
console.log('Ставлю до'+ parseInt(ob.attr('f_date'), 10));
result = true
} else {
console.log('Пропускаю до'+ parseInt(ob.attr('f_date'), 10));
}
}
if (result){
$(ob).css('background', 'green')
} else {
$(ob).css('background', '#ccc')
}
}
function get_students(){
var response = '';
$.ajax({
type: 'GET',
url: '/management/reports/get_course_students/',
data: {'course': window.course_id, 'exc': refactor_exclude()},
success: function(data){
if(data.code == '1'){
window.to_draw.push(data['data'])
if (!in_array(data['response'], window.student_ids)){
window.student_ids.push(data['response'])
window.students[data['response']] = data['data'];
}
$('[name=preload_status]').html('Загрузка: ' + (window.student_ids.length*100/parseInt($('[name=course_'+window.course_id+'_length]').html(), 10)).toFixed(2) + '%')
} else {
response = null;
}
}
});
return response
}
function check_load_finish() {
var response = '';
$.ajax({
type: 'GET',
url: '/management/reports/progress_check_result/',
data: {'course': window.course_id, 'len': window.student_ids.length},
async: false,
success: function(data){
if (data['code'] == '1'){
response = true
} else {
response = false
}
}
});
return response
}
function change_progress_color() {
window.change_color = $('td[course='+window.course_id+']');
change_date_color();
}