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.2 KiB
200 lines
6.2 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();
|
|
} |