function initialize_timetable_container_TEST() {
$.ajax({
url: "actions_timetable.php",
data: {
action: "load_stage_number"
},
type: 'post',
success: function (data, textStatus) {
stages = data;
$("#outer_timetable_container").width($(window).width() - 30);
// $("#outer_timetable_container").height($("#outer_timetable_container").height()+100);
container_width = ($(".dance_block_container").outerWidth(true)) * stages;
container_height = ($(".dance_block_container").outerHeight(true));
$("").appendTo("head");
$(".inner_timetable_container").width(container_width);
block_height = 0;
for (i = 0; i < ($(".inner_timetable_container").length); i++) {
comp_number = ($("#" + $($(".inner_timetable_container")[i]).attr('id') + " .dance_block_container").length);
height_multiply = (Math.ceil(comp_number / stages));
$($(".inner_timetable_container")[i]).height(container_height * height_multiply + $(".container_header").height());
max_num = (height_multiply * stages) - comp_number;
//!!!!!!!!!!!
for (j = 0; j < max_num; j++) {
$(".dance_block_container_dummy").clone().attr({
class: "dance_block_container dance_block_container_" + ($($(".inner_timetable_container")[i]).attr('name').split("_")[3])
}).appendTo($($(".inner_timetable_container")[i]));
}
flag = 0;
flag2 = 0;
no_empty = 0;
$($(".inner_timetable_container")[i]).find(".dance_block_container").each(function () {
flag++;
flag2++;
if ($(this).find(".timetable_competition").length == 1) {
flag = 0;
no_empty = 1;
}
//console.log(stages);
if ((flag2 % stages == 0) && (flag >= stages) && (no_empty != 1)) {
flag = 0;
console.log("PLACE HERE!");
remove_empty_block_id = ($($(".inner_timetable_container")[i]).attr('id').split("_")[3]);
$(".remove_empty_block_dummy").clone().attr({
class: "remove_empty_block remove_empty_block_" + remove_empty_block_id,
id: "remove_empty_block_" + remove_empty_block_id + "_" + flag2
}).appendTo($(this)).position({
my: "center center",
at: "left+15 top+15.5",
of: $(".inner_timetable_container")[i],
within: $(".inner_timetable_container")[i],
});
$("#remove_empty_block_" + remove_empty_block_id + "_" + flag2).bind("click", {
stages: stages
}, function (event) {
bind_remove_empty_block($(this), stages); //!!!!!!
});
}
});
if ($($(".inner_timetable_container")[i]).find(".timetable_competition").length == comp_number) {
// console.log($(".inner_timetable_container")[i].attr('id'));
}
if (Math.ceil($($(".inner_timetable_container")[i]).find(".timetable_competition").length / stages) > 0) {
split_block_id = ($($(".inner_timetable_container")[i]).attr('id').split("_")[3]);
$(".split_block_dummy").clone().attr({
class: "split_block",
id: "split_block_" + split_block_id
}).appendTo($($(".inner_timetable_container")[i]));
$("#split_block_" + split_block_id).bind("click", {
stages: stages
}, function (event) {
bind_split_block($(this), event.data.stages); //!!!!!!
});
delimiter_block_id = ($($(".inner_timetable_container")[i]).attr('id').split("_")[3]);
$(".delimiter_block_dummy").clone().attr({
class: "delimiter_block",
id: "delimiter_block_" + delimiter_block_id
}).appendTo($($(".inner_timetable_container")[i]));
$("#delimiter_block_" + delimiter_block_id).bind("click", {
stages: stages
}, function (event) {
bind_delimiter_block($(this), event.data.stages); //!!!!!!
});
}
block_height += $($(".inner_timetable_container")[i]).outerHeight(true);
}
$('.inner_timetable_container').each(function () {
if ($(this).hasClass("change_ages")) {
var rel = $(this).attr('name');
$(this).nextAll('div[name="' + rel + '"]').remove();
}
});
$('.inner_timetable_container').each(function () {
if ($(this).hasClass("change_ages")) {
$(this).children(".dance_block_container").remove();
$.ajax({
url: "actions_timetable.php",
data: {
action: "get_new_age_groups",
container_id: $(this).attr('id')
},
type: 'post',
context: $(this),
success: function (data, textStatus) {
$(data).appendTo($(this)).hide();
comp_number = $(this).children(".dance_block_container").length;
height_multiply = (Math.ceil(comp_number / stages));
$(this).animate({
height: (container_height * height_multiply + $(".container_header").height())
}, 1000);
max_num = (height_multiply * stages) - comp_number;
for (j = 0; j < max_num; j++) {
$(".dance_block_container_dummy").clone().hide().attr({
class: "dance_block_container dance_block_container_" + $(this).attr('name').split("_")[3]
}).appendTo($(this));
}
$(this).children(".dance_block_container").fadeIn(1500);
if (Math.ceil($(this).find(".timetable_competition").length / stages) > 0) {
split_block_id = $(this).attr('id').split("_")[3];
$(".split_block_dummy").clone().attr({
class: "split_block",
id: "split_block_" + split_block_id
}).appendTo($(this));
$("#split_block_" + split_block_id).bind("click", {
stages: stages
}, function (event) {
bind_split_block($(this), event.data.stages); //!!!!!!
});
}
}
});
}
});
}
});
}
function initialize_sortable_TEST() {
var selectedBlocks = [];
/*
$(".danceBlock").click(function(event) {
if (event.ctrlKey) {
$(this).toggleClass("selectedBlock");
} else {
$(".danceBlock").removeClass("selectedBlock");
$(this).addClass("selectedBlock");
}
selectedBlocks = $(".danceBlock.selectedBlock");
});
$(".selectedBlock").draggable({
stack: ".selectedBlock",
containment: "parent"
});
*/
timetable_sortable = $(".timetable_column").sortable({
placeholder: "timetable_placeholder",
connectWith: '.timetable_column',
opacity: 0.5,
items: '.danceBlock, .selectedBlock',
delay: 150,
cancel: '.spinner_container, .ag_block',
create: function (event, ui) {
$(".timetable_table td:not(.tech_column)").bind('mouseover', function () {
$(this).addClass('td_hover');
});
$(".timetable_table td:not(.tech_column)").bind('mouseout', function () {
$(this).removeClass('td_hover');
});
},
start: function (event, ui) {
$(".danceBlock_pressed").removeClass('danceBlock_pressed');
$(".stage_list_tr").fadeOut(300, function () {
$(".stage_list_tr").remove();
});
$(".td_hover").removeClass('td_hover');
$(".timetable_table td").unbind('mouseover');
$(".timetable_table td").unbind('mouseout');
senderclasses=$(event.target).attr('class').split(/\s+/);
senderclass='';
$.each(senderclasses,function(index,value){
if (value.indexOf('level_')>=0){
senderclass=value;
}
});
// $(this).removeClass(oldclass);
},
sort: function (event, ui) {
$("[class*='timetable_column.level_']:empty").removeClass(senderclass);
},
receive: function (event, ui) {
targetclass='';
targetclasses=$(event.target).attr('class').split(/\s+/);
$.each(targetclasses,function(index,value){
if (value.indexOf('level_')>=0){
targetclass=value;
}
});
// $(ui.sender).removeClass(senderclass).addClass(targetclass);
save_dance_blocks('all');
save_tech_blocks();
// save_dance_blocks($(ui.sender).find('.danceBlock'));
// save_dance_blocks($(event.target).find('.danceBlock'));
$(ui.sender).removeClass("td_sender");
if ($(ui.sender).parents('table').hasClass('new_ags')) {
$(ui.sender).remove();
}
tmp=$(ui.sender).closest('tr').find('.danceBlock')[0];
$(ui.sender).closest('tr').find('td').removeClass('conflictRow_dashed');
if (tmp!==undefined) {
tmp=$(tmp).data('category_id').toString()+$(tmp).data('level_id').toString()+$(tmp).data('dance_id').toString();
$.each($(ui.sender).closest('tr').find('.danceBlock'), function(index,value){
tmp2=$(value).data('category_id').toString()+$(value).data('level_id').toString()+$(value).data('dance_id').toString();
if (tmp2!=tmp){
$(ui.sender).closest('tr').find('td').addClass('conflictRow_dashed');
}
});
}
tmp=$(ui.item).closest('tr').find('.danceBlock')[0];
tmp=$(tmp).data('category_id').toString()+$(tmp).data('level_id').toString()+$(tmp).data('dance_id').toString();
$(ui.item).closest('tr').find('td').removeClass('conflictRow_dashed');
$.each($(ui.item).closest('tr').find('.danceBlock'), function(index,value){
tmp2=$(value).data('category_id').toString()+$(value).data('level_id').toString()+$(value).data('dance_id').toString();
if (tmp2!=tmp){
$(ui.item).closest('tr').find('td').addClass('conflictRow_dashed');
}
});
$(ui.item).closest('.timetable_column').removeClass(targetclass).addClass(senderclass);
$(ui.sender).removeClass(senderclass).addClass(targetclass);
$(".target").removeClass("target");
$(".movedFromTarget").removeClass("movedFromTarget");
console.log('calculating time...');
calculate_time();
},
over: function (event, ui) {
$(ui.sender).addClass("td_sender");
$(".movedFromTarget").appendTo($(".target")).removeClass("movedFromTarget");
$(".target").removeClass("target");
if ($(ui.placeholder).closest('td').find('.danceBlock').length>0){
$(ui.placeholder).closest('td').addClass('target');
$(ui.placeholder).closest('td').find('.danceBlock').addClass('movedFromTarget').appendTo($(ui.sender));
}
targetclass='';
targetclasses=$(ui.placeholder).closest('td').attr('class').split(/\s+/);
$.each(targetclasses,function(index,value){
if (value.indexOf('level_')>=0){
targetclass=value;
}
});
$(ui.placeholder).addClass(senderclass).addClass('level_beginner');
},
stop: function (event, ui) {
$(".td_sender").removeClass('td_sender');
$(".timetable_table td").bind('mouseover', function () {
$(this).addClass('td_hover');
});
$(".timetable_table td").bind('mouseout', function () {
$(this).removeClass('td_hover');
});
update_row_indexes($('.timetable_table'));
}
}).disableSelection();
$(".timetable_table").sortable({
handle: ".timetable_handle",
placeholder: "timetable_placeholder",
helper: "original",
items: "tr:not( .table_head, .handle_row)",
opacity: 0.5,
delay: 150,
update: function (event, ui) {
update_row_indexes($(ui.item).closest('table'));
if ($(ui.item).find('.tech_column').length != 0) {
id = $(ui.item).find('.tech_column').data('id');
$.ajax({
url: "actions_timetable.php",
async: true,
data: {
action: "delete_single_tech_block",
id: id
},
type: 'post',
});
}
save_dance_blocks('all');
save_tech_blocks();
// save_timetable_TEST();
console.log("Re-calculating time...");
calculate_time();
//console.log("!");
},
});
}
function row_handle(elem, close) {
isEmpty=!(elem.parents('tr').find('td').is(':has(*, :empty)'));
if (close == 'close') {
console.log(elem.parents('tr'));
if (elem.parents('tr').hasClass('tech_empty_true')){
$('.tech_empty_true').removeClass('tech_empty_true');
add_row(elem,'',1,'',0);
}else{
$('.tech_empty_false').removeClass('tech_empty_false');
$(".handle_row").remove();
}
} else {
elem.parents('tr').addClass('tech_empty_'+isEmpty+'');
clspn = $(elem).parents(".hall_container").find('.timetable_column_head').length;
$(".handle_row").remove();
buttons = "";
if (!isEmpty){
buttons+= "";
}else{
buttons+= "";
}
buttons+="";
buttons+="";
// buttons+="";
addBlockButton="
";
addBlockButton+=" ";
addBlockButton+=" ";
addBlockButton+="
";
if (isEmpty){
return elem.parents('tr').replaceWith($(" | " + buttons + addBlockButton +" |
"));
}else{
return $(" | " + buttons + addBlockButton +" |
").insertAfter(elem.parents('tr'));
}
}
}
/*
function showAddBlockButton (elem,close){
elem.prop("onclick", null).off("click");
if (close == 'close') {
elem.parents('tr').remove();
} else {
addBlockButton=" ";
addBlockButton+=" ";
addBlockButton+=" ";
addBlockButton+="
";
return $(""+ addBlockButton +"
").appendTo(elem);
}
}
*/
async function add_row(elem, func,quantity=1,addClass,add=1) {
if (addClass==''){addClass='newBlock';}
$('.tech_empty_false').removeClass('tech_empty_false');
$('.tech_empty_true').removeClass('tech_empty_true');
// return new Promise((resolve, reject) => {
cols = $(elem).parents(".hall_container").find('.timetable_column_head').length
new_row = " | ";
if (func == 'time') {
tech_div = "time
";
new_row += "" + tech_div + " | ";
} else if (func == 'break') {
tech_div = "break
";
new_row += "" + tech_div + " | ";
} else {
for (j = 0; j < cols; j++) {
new_row += " | ";
}
}
new_row += "
";
table = $(elem).closest('table');
if (add==0){
elem.parents('tr').replaceWith(new_row);
}else{
// console.log(elem.parents('tr'));
// console.log(new_row);
elem.parents('tr').after(new_row);
// $('.handle_row').replaceWith(new_row);
//
}
if (quantity>1){
console.log("Quantity: "+quantity);
console.log($("."+addClass).first().parents('tr'));
newRow=$("."+addClass).first().parents('tr');
for (j=1;j= r;
// }), function (i, val) {
// $(val).attr('data-row', $(val).data('row') - 1).removeClass('tr-' + $(val).data('row')).addClass('tr-' + ($(val).data('row') - 1)).data('row', ($(val).data('row') - 1));
// });
// elem.parents('tr').prev().remove();
// elem.parents('tr').remove();
update_row_indexes(table);
save_dance_blocks('all');
save_tech_blocks();
// save_timetable_TEST();
} else {
if (elem.parents('tr').prev().find('.tech_column').length != 0) {
tech_blocks = new Array();
hall = elem.parents('.hall_container').data('hall');
col = elem.parents('tr').prev().find('.tech_column').data('column');
row = elem.parents('tr').prev().data('row');
type = elem.parents('tr').prev().find('.tech_column').find('div').attr('class');
tech_blocks[0] = col;
tech_blocks[1] = row;
tech_blocks[2] = type;
tech_blocks[3] = hall;
$.ajax({
url: "actions_timetable.php",
async: true,
type: 'post',
data: {
action: "delete_tech_blocks",
tech_blocks: tech_blocks
},
dataType: 'json',
success: function (data, textStatus) {}
});
table = elem.closest('table');
elem.parents('tr').prev().remove();
elem.parents('tr').remove();
load_time_blocks();
update_row_indexes(table);
save_dance_blocks('all');
save_tech_blocks();
// save_timetable_TEST();
} else {
alert("Can't remove row with dance blocks");
}
}
}
async function save_tech_blocks() {
console.log("Saving tech blocks...");
// return new Promise((resolve, reject) => {
// var deff = [];
tech_blocks = new Array();
jQuery.each($(".tech_column"), function (i, dance) {
hall = $(dance).parents('.hall_container').data('hall');
col = 0;//$(dance).data('column');
row = $(dance).parents('tr').data('row');
type = $(dance).find('div').attr('class').trim();
tech_blocks[i] = new Array();
tech_blocks[i][0] = col;
tech_blocks[i][1] = row;
tech_blocks[i][2] = type;
tech_blocks[i][3] = hall;
/*
if (type == 'timetable_break') {
tech_blocks[i][4] = $(dance).find('.break_type').val();
tech_blocks[i][5] = 0;
tech_blocks[i][6] = 0;
tech_blocks[i][7] = Number(($(dance).find('.break_time_hour').val()) * 60) + Number($(dance).find('.break_time_min').val());
}
*/
if (type == 'timetable_time') {
tech_blocks[i][4] = $(dance).find('.break_type').val();
tech_blocks[i][5] = $(dance).find('.man_time_hour').val();
tech_blocks[i][6] = $(dance).find('.man_time_min').val();
}
});
// deff.push(
try {
const result= await $.ajax({
url: "actions_timetable.php",
data: {
action: "save_tech_blocks",
tech_blocks: tech_blocks,
},
type:'post',
})
return result;
} catch (error) {
console.error('save_tech_blocks: an error occurred:', error);
}
// );
// $.when.apply($, deff).done(function () {
// load_tech_blocks()
// $(".newBlock").removeClass('newBlock');
// });
// });
}
async function save_dance_blocks(selector) {
// return new Promise(function(resolve, reject) {
console.log("Saving dance blocks...");
var ags = [];
if (selector == 'all') {
obj = $(".danceBlock");
blocks = new Array();
i=0;
obj.each(function () {
hall = $(this).parents('.hall_container').data('hall');
col = $(this).parents('td').data('column');
row = $(this).parents('tr').data('row');
listRow=$(this).parents('tr').find('.timetable_handle').text();
ag_id = $(this).data('ag_id');
ags.push(ag_id);
blocks[i] = new Array();
blocks[i][0] = col;
blocks[i][1] = row;
blocks[i][2] = ag_id;
blocks[i][3] = hall;
blocks[i][4] = listRow;
i++;
});
}else{
blocks=selector;
}
// console.log("Blocks:");
// console.log(blocks);
// console.log("Selector:");
// console.log(selector);
// console.log("Ags:");
// console.log(ags);
try {
const result= await $.ajax({
url: "actions_timetable.php",
data: {
action: "save_dance_blocks",
blocks: blocks,
selector:selector
},
type:'post',
success: function (data, textStatus) {
// console.log(data);
// load_tech_blocks();
// $(".newBlock").removeClass('newBlock');
// load_timetable(ags)
// console.log("1");
}
});
return result;
} catch (error) {
console.error('save_dance_blocks: an error occurred:', error);
}
// });
}
async function addBlockToTimetable(elem){
var blocks = new Array();
var numNewRows=0;
var agVals = [];
elem.parent().find('.agSelectionMenu').find('.agSelectionCheckbox').each(function(){
if ($(this).attr('checked')=='checked'){
agVals.push($(this).val());
}
});
console.log("1");
try {
const result= await $.ajax({
url: "/organizer/actions_timetable.php",
data: {
action: 'getAgeGroupData',
agVals:agVals,
},
});
console.log(result);
data=JSON.parse(result);
cols = $(elem).parents(".hall_container").find('.timetable_column_head').length
numNewRows=Math.ceil(data.length/cols);
if ((elem.closest('tr').find('.timetable_column').not('.dirty').length+1)==(elem.closest('tr').children('td').length)){
numNewRows=numNewRows-1;
}
const result_add_row= await add_row(elem,'',numNewRows,'newBlock');
console.log(numNewRows+' empty rows added');
k=0;
$(".newBlock").each(function () {
if (data[k]!==undefined){
// newDiv=""+data[k]['name'] + ", " + data[k]['ages']+"
";
hall = $(this).parents('.hall_container').data('hall');
col = $(this).data('column');
row = $(this).parents('tr').data('row');
ag_id = data[k]['ag_id'];
blocks[k] = new Array();
blocks[k][0] = col;
blocks[k][1] = row;
blocks[k][2] = ag_id;
blocks[k][3] = hall;
// $(this).append(newDiv);
k++;
}
});
// console.log(blocks);
const result_save_blocks=await save_dance_blocks(blocks);
// console.log(result_save_blocks);
console.log("New blocks saved");
const result_load= await load_timetable(agVals);
// console.log(result_load);
console.log("All done!");
} catch (error) {
console.error('getAgeGroupData: an error occurred:', error);
}
//
//
// console.log(save_dance_blocks(blocks));
//console.log("!!!");
//console.log(ags);
//console.log("!!!");
// await
// save_tech_blocks();
// console.log("5");
}
function delete_column(elem) {
$(".handle_row").remove();
column = elem.parent().data('column');
if ((elem.parents('table').find('.tc-' + column + ':empty').length == elem.parents('table').find('.tc-' + column).length) && (column != 0)) {
elem.parents('table').find('.tc-' + column).remove();
elem.parents('table').find('.th-' + column).remove();
} else {
alert("Column not empty or single");
}
save_dance_blocks('all');
save_tech_blocks();
// save_timetable_TEST();
}
function add_column(elem) {
$(".handle_row").remove();
column = elem.parent().prev().data('column');
elem.parents('table').find('.th-' + column).after(elem.parents('table').find('.th-' + column).clone().attr("data-column", (column + 1)).removeClass('th-' + column).addClass('th-' + (column + 1)));
// $('.tc-'+column).after($('.tc-'+column).clone().removeClass('tc-'+column).addClass('tc-'+(column+1)));
jQuery.each(elem.parents('table').find('.tc-' + column), function (i, val) {
$(val).after($(val).clone().empty().removeClass('tc-' + column).addClass('tc-' + (column + 1)).attr("data-column", (column + 1)));
});
// save_timetable_TEST();
save_dance_blocks('all');
save_tech_blocks();
initialize_sortable_TEST();
}
function add_hall(elem) {
hall = $(".hall_container:last").data('hall');
// $(".hall_container:first-child").after($(".hall_container:first-child").clone().);
$(".hall_container:last").after($(".hall_container:last").clone());
$(".hall_container:last").find('.timetable_column_head').filter(function () {
return $(this).data('column') > 0;
}).remove();
$(".hall_container:last").find('.timetable_column').filter(function () {
return $(this).data('column') > 0;
}).remove();
$(".hall_container:last").attr("data-hall", (hall + 1));
$(".hall_container:last").find('.hall_name').html("Hall " + (hall + 1));
$(".hall_container:last").find('.timetable_column').empty();
//console.log($(".hall_container:last").find('.timetable_column').filter(function () { return $(this).data('column') > 0;}));
// save_timetable_TEST();
}
function delete_hall(elem) {
hall = elem.parents('.hall_container').data('hall');
if (hall != 1) {
if (elem.parents('.hall_container').find('table').find('.timetable_column:empty').length == elem.parents('.hall_container').find('table').find('.timetable_column').length) {
elem.parents('.hall_container').remove();
} else {
alert('Can`t remove non-empty hall');
}
} else {
alert('Can`t remove first hall');
}
save_dance_blocks('all');
save_tech_blocks();
}
function generate_timetable() {
if (confirm("Are you sure?")) {
empty_timetable();
$.ajax({
url: "actions_timetable.php",
async: true,
data: {
action: "first_load_timetable"
},
type: 'post',
success: function (data, textStatus) {
// console.log(data);
load_timetable();
}
});
}
}
/*
function load_colors() {
$('.timetable_column').each(function () {
switch($(this).find('.dance_block').data('level_id')) {
case 1:
$(this).css('background-color','#c3fff9');
break;
case 2:
$(this).css('background-color','#cbffcb');
break;
case 3:
$(this).css('background-color','#ebcbff');
break;
case 4:
$(this).css('background-color','#ffcbd7');
break;
}
});
}
*/
function deleteBlock(elem){
event.stopPropagation();
ag_id=elem.closest('.danceBlock').data('ag_id');
elemToDelete=elem.closest('td');
$.ajax({
url: "/organizer/actions_timetable.php",
async: true,
data: {
action: 'deleteBlock',
ag_id: ag_id,
},
type: 'post',
success: function (data, textStatus) {
elemToDelete.empty().removeClassWild('level_*');
calculate_time();
}
});
}
async function load_timetable(range) {
console.log("Loading...");
$('.handle_row').remove();
$('.tech_empty_false').removeClass('tech_empty_false');
try {
const result= await $.ajax({
url: "actions_timetable.php",
async: true,
data: {
action: "load_timetable",
range: range
},
type: 'post',
beforeSend: function() {
if (range===undefined){
empty_timetable();
}else{
// $(".newBlock").empty().removeClass('newBlock');
}
},
success: function (data, textStatus) {
// elem.val(text);
timetable_data = JSON.parse(data);
if (timetable_data!==null){
for (counter = 0; counter < timetable_data.length; counter++) {
var addLvl='';
if (((timetable_data[counter].level).split(" ")[1])!=undefined){
addLvl= ((timetable_data[counter].level).split(" ")[1]);
}
level = ((timetable_data[counter].level).split(" ")[0]).substring(0, 3);
if (addLvl!=''){
level=level+" "+addLvl;
}
if (((timetable_data[counter].level).split("-")[1]) != undefined) {
level += "-" + ((timetable_data[counter].level).split("-")[1]).substring(0, 3);
}
if (timetable_data[counter].level=='Open'){
level = ((timetable_data[counter].level).split("-")[0]).substring(0, 4);
}
if (timetable_data[counter].level=='All levels'){
level = "All Lvl";
}
// if ((timetable_data[counter].category_id == 1) || (timetable_data[counter].category_id == 3)) {
// }
if ((timetable_data[counter].category_id == 1) || (timetable_data[counter].category_id == 4) || (timetable_data[counter].category_id == 6) || (timetable_data[counter].category_id == 7)) {
dance = timetable_data[counter].dance;
}
if ((timetable_data[counter].category_id == 2) || (timetable_data[counter].category_id == 3) || (timetable_data[counter].category_id == 5)) {
dance = timetable_data[counter].human_name;
}
if ((timetable_data[counter].category_id == 4) || (timetable_data[counter].category_id == 8)){
dance = timetable_data[counter].dance;
}
if ((timetable_data[counter].category_id == 4)){
level='';
}
ag = timetable_data[counter].lower + "_" + timetable_data[counter].upper;
if (timetable_data[counter].lower == 0) {
if (timetable_data[counter].upper != 999) {
ag = "U" + timetable_data[counter].upper;
} else {
ag = "∞";
}
} else if ((timetable_data[counter].upper == 999) && (timetable_data[counter].lower != 0)) {
ag = "O" + timetable_data[counter].lower;
} else if ((timetable_data[counter].upper == "999") && (timetable_data[counter].lower == 0)){
ag = "∞";
} else {
ag = timetable_data[counter].lower + "—" + timetable_data[counter].upper;
}
if (timetable_data[counter].lower=='all'){timetable_data[counter].lower="all ages";}
if (timetable_data[counter].upper=='all'){timetable_data[counter].upper="all ages";}
colorClass='';
if (timetable_data[counter].total>10){colorClass='redBold';}
dance_block = "";
dance_block+="
" + level + " " + dance + "
" + ag + "
" + timetable_data[counter].total + "
";
addLevelClass='';
switch ( timetable_data[counter].level_id)
{
case "1":
case "20":
case "21":
addLevelClass='level_beginner';break;
case "2": case "16": case "17":
addLevelClass='level_primary';break;
case "3": case "14": case "15":
addLevelClass='level_intermediate';break;
case "4":
addLevelClass='level_beg-prim';break;
case "5":
addLevelClass='level_prim-inter';break;
case "6":
addLevelClass='level_inter-open';break;
case "7":
addLevelClass='level_alllevels';break;
case "8":
addLevelClass='level_open';break;
}
//console.log($(".timetable_container").find("[data-hall=" + timetable_data[counter].hall + "]").find("[data-row=" + timetable_data[counter].row + "]").find("[data-column=" + timetable_data[counter].col + "]"));
$(".timetable_container").find("[data-hall=" + timetable_data[counter].hall + "]").find("[data-row=" + timetable_data[counter].row + "]").find("[data-column=" + timetable_data[counter].col + "]").html(dance_block).addClass(addLevelClass);
}
/*
$( function() {
$( "#dialog-confirm" ).dialog({
autoOpen: false,
resizable: false,
height: "auto",
width: 400,
modal: true,
buttons: {
"Delete age group": function() {
ag_id=elem.closest('.danceBlock').data('ag_id');
elemToDelete=elem.closest('td');
$.ajax({
url: "/organizer/actions_timetable.php",
async: true,
data: {
action: 'deleteBlock',
ag_id: ag_id,
},
type: 'post',
success: function (data, textStatus) {
elemToDelete.empty().removeClassWild('level_*');
calculate_time();
}
});
$( this ).dialog( "close" );
},
"Remove from timetable": function() {
ag_id=elem.closest('.danceBlock').data('ag_id');
elemToDelete=elem.closest('td');
$.ajax({
url: "/organizer/actions_timetable.php",
async: true,
data: {
action: 'deleteBlock',
ag_id: ag_id,
},
type: 'post',
success: function (data, textStatus) {
elemToDelete.empty().removeClassWild('level_*');
calculate_time();
}
});
$( this ).dialog( "close" );
},
}
});
} );
$('.delete_button').click(function( event ) {
elem=$(this);
event.stopPropagation();
$( "#dialog-confirm" ).dialog('open');
});
*/
}
$.each($('.timetable_row'),function(i,row){
tmp=$(row).find('.danceBlock')[0];
// console.log(tmp);
if (tmp!==undefined) {
//console.log($(tmp));
tmp=$(tmp).data('category_id').toString()+$(tmp).data('level_id').toString()+$(tmp).data('dance_id').toString();
$.each($(row).find('.danceBlock'), function(index,value){
tmp2=$(value).data('category_id').toString()+$(value).data('level_id').toString()+$(value).data('dance_id').toString();
if (tmp2!=tmp){
$(row).find('td').addClass('conflictRow_dashed');
}
});
}
});
calculate_time();
update_row_indexes($(".timetable_table"));
$(".newBlock").removeClass("newBlock");
console.log("Loading completed");
},
complete: function (data,textStatus) {
onLongPress($('.danceBlock'), function(element) {
// console.log($(element).parents('.danceBlock'));
$(".age_edit_block").remove();
$(".danceBlock").children().show();
ageEditBlock=$('.age_edit_dummy').clone().removeClass('age_edit_dummy').addClass('age_edit_block');
$(element).parents('.danceBlock').css('position','relative').children().end().prepend(ageEditBlock);
ageEditBlock.find('input').addClass('ageEditInput');
currentLower=$(element).parents('.danceBlock').data('lower');
currentUpper=$(element).parents('.danceBlock').data('upper');
ag_id=$(element).parents('.danceBlock').data('ag_id');
var soloComponent=''; //initLower='';initUpper='';
if (currentLower==0){
soloComponent=new Array();
soloComponent=[0,currentUpper];
}else if (currentUpper==999){
soloComponent=new Array();
soloComponent=[currentLower,60];
}
$.ajax({
url: "actions_timetable.php",
data: {
action: "getSideAges",
category_id:$(element).parents('.danceBlock').data('category_id'),
level_id:$(element).parents('.danceBlock').data('level_id'),
dance_id:$(element).parents('.danceBlock').data('dance_id'),
ag_id:ag_id,
currentLower:currentLower,
currentUpper:currentUpper
},
type: 'post',
success: function (data, textStatus) {
;
ages=JSON.parse(data);
if (soloComponent!=''){
// console.log(ages[0]['upper']-1,ages[0]['lower']);
if ((ages[0]['lower']!='0') || (ages[0]['upper']!='999')) {
agData_1 = new Array();
if (soloComponent[0]==0){
soloComponent[0]++;
bottomBorder=soloComponent[0];
topBorder=parseInt(ages[0]['upper']);
}else{
bottomBorder=parseInt(ages[0]['lower'])+1;
topBorder=60;
}
console.log(parseInt(ages[0]['lower'])+1);
for (i=bottomBorder-1;iРазделить поровну по возрастам
Разделить поровну по количеству
Разделить на группы по 10 участников
Удалить возрастную группу");
},
onHidePicker: function(){
$('.age_edit_block').remove();
},
onChange: cfOnChange,
buttonClicked: function(buttonType)
{
// console.log(buttonType);
},
setOutput: cfSetOutput,
mode: "select",
components: ageComponents,
dataSource: ageDataSource,
i18n:
{
headerTitle: "Управление возрастной группой",
cancelButton: "Отмена",
setButton: "Сохранить"
},
onSetOutput: function(sOutput, oArrSelectedValues)
{
sOut = sOutput;
}
});
}
});
});
}
});
await load_tech_blocks();
initialize_sortable_TEST();
function cfSetOutput(label,oSelectedValues)
{
apo=this;
ag_id=$(apo['elem']).parents('.danceBlock').data('ag_id');
newLower=oSelectedValues.values[0].val;
newUpper=''
if (oSelectedValues.values.length>1){
newUpper=oSelectedValues.values[1].val;
}
$.ajax({
url: "actions_timetable.php",
data: {
action: "setNewSideAges",
ag_id:ag_id,
newLower:newLower,
newUpper:newUpper,
category_id:$(apo['elem']).parents('.danceBlock').data('category_id'),
level_id:$(apo['elem']).parents('.danceBlock').data('level_id'),
dance_id:$(apo['elem']).parents('.danceBlock').data('dance_id'),
},
type: 'post',
success: function (data, textStatus) {
// console.log(data);
load_timetable();
load_tech_blocks();
}
});
}
function cfOnChange(iComp, iRow, oSelectedValues, sSource)
{
var apo = this;
// console.log(apo.tmp);
if (oSelectedValues.values.length==2){
sSelected0 = oSelectedValues.values[0].val;
sSelected1 = oSelectedValues.values[1].val;
newAgData = new Array();
if(iComp === 0){
for (i=(sSelected0+1);i=apo.setting.dataSource[Math.abs(iComp-1)].data.length){console.log(init_IndexUpper,apo.setting.dataSource[Math.abs(iComp-1)].data.length);init_IndexUpper=apo.setting.dataSource[Math.abs(iComp-1)].data.length-1;}
apo.setting.dataSource[Math.abs(iComp-1)].data[init_IndexUpper].selected=true
apo.reloadComponent(1, true);
//
}
}
}
return result;
} catch (error) {
console.error('load_timetable: an error occurred:', error);
}
// ДОБАВЛЕННЫЕ ПОЗЖЕ
/*
cols = $(".hall_container:first").find('.timetable_column_head').length;
level_tmp = '';
category_tmp = '';
dance_tmp = '';
$(".new_ags").remove();
$.ajax({
url: "actions.php",
async: true,
data: {
action: "load_new_ags"
},
type: 'post',
success: function (data, textStatus) {
// elem.val(text);
timetable_data = JSON.parse(data.replace(/\r|\n/g, ""));
category_tmp = '';
col = 0;
if (timetable_data !== null) {
new_ags_table = "Newly added age groups:";
$(".hall_container").before(new_ags_table);
initialize_sortable_TEST();
}
}
});
$.ajax({
url: "actions.php",
async: true,
data: {
action: "load_tech_timetable"
},
type: 'post',
success: function (data, textStatus) {
timetable_tech_data = JSON.parse(data);
if (timetable_tech_data!=null){
for (c = 0; c < timetable_tech_data.length; c++) {
cols = $(".timetable_container").find(".timetable_column_head").length;
$(".timetable_container").find("[data-hall=" + timetable_tech_data[c].hall + "]").find("[data-row=" + timetable_tech_data[c].row + "]").find(".timetable_column").remove();
tech_block = "" + timetable_tech_data[c].type + "
";
tech_td = "" + tech_block + " | ";
$(".timetable_container").find("[data-hall=" + timetable_tech_data[c].hall + "]").find("[data-row=" + timetable_tech_data[c].row + "]").append(tech_td);
}
}
}
}).always(function () {
load_time_blocks();
load_break_blocks();
calculate_time();
});
$('.timetable_column').on('click', function () {
if ($(this).is(':empty')) {
empty_cell();
}
});
*/
}
async function splitAg(){
elem = $(".age_edit_block").parents('.danceBlock');
deff=await add_row(elem,'',1,'',1);
$.when.apply($, deff).done(function () {
$(".ageEditInput").AnyPicker().showOrHidePicker();
ag_id=elem.data('ag_id');
curLower=elem.data('lower');
curUpper=elem.data('upper');
$.ajax({
url: "actions_timetable.php",
data: {
action: "splitAg",
ag_id:ag_id,
curLower:curLower,
curUpper:curUpper,
category_id:elem.data('category_id'),
level_id:elem.data('level_id'),
dance_id:elem.data('dance_id'),
},
type: 'post',
success: function (data, textStatus) {
console.log(data);
load_timetable();
load_tech_blocks();
},
stop: function (data, textStatus) {
}
});
});
}
async function splitAgEven_byTotal(){
elem = $(".age_edit_block").parents('.danceBlock');
$(".ageEditInput").AnyPicker().showOrHidePicker();
deff=await add_row(elem,'',1,'',1);
$.when.apply($, deff).done(function () {
ag_id=elem.data('ag_id');
curLower=elem.data('lower');
curUpper=elem.data('upper');
$.ajax({
url: "actions_timetable.php",
data: {
action: "splitAgEven_byTotal",
ag_id:ag_id,
curLower:curLower,
curUpper:curUpper,
category_id:elem.data('category_id'),
level_id:elem.data('level_id'),
dance_id:elem.data('dance_id'),
},
type: 'post',
success: function (data, textStatus) {
console.log(data);
load_timetable();
load_tech_blocks();
},
stop: function (data, textStatus) {
}
});
});
}
async function splitAgEven_Several(){
elem = $(".age_edit_block").parents('.danceBlock');
$(".ageEditInput").AnyPicker().showOrHidePicker();
// deff=await add_row(elem,'',data,'',1);
// $.when.apply($, deff).done(function () {
ag_id=elem.data('ag_id');
curLower=elem.data('lower');
curUpper=elem.data('upper');
const addRowResult= await $.ajax({
url: "actions_timetable.php",
data: {
action: "splitAgEven_Several",
ag_id:ag_id,
curLower:curLower,
curUpper:curUpper,
category_id:elem.data('category_id'),
level_id:elem.data('level_id'),
dance_id:elem.data('dance_id'),
},
type: 'post',
success: function (data, textStatus) {
},
});
// });
result=JSON.parse(addRowResult);
await add_row(elem,'',parseInt(result.length),'',1);
await $.ajax({
url: "actions_timetable.php",
data: {
action: "updateSplittedAgs",
ags:result,
},
type: 'post',
});
//$.when.apply($, deff).done(function () {
load_timetable();
load_tech_blocks();
//});
}
function deleteAg(elem){
elem = $(".age_edit_block").parents('.danceBlock');
ag_id=elem.data('ag_id');
newLower=elem.data('upper');
newUpper=elem.data('lower');
$(".ageEditInput").AnyPicker().showOrHidePicker();
$.ajax({
url: "actions_timetable.php",
data: {
action: "deleteAgTimetable",
ag_id:ag_id,
category_id:elem.data('category_id'),
level_id:elem.data('level_id'),
dance_id:elem.data('dance_id'),
},
type: 'post',
success: function (data, textStatus) {
console.log(data);
load_timetable();
load_tech_blocks();
}
});
}
function load_tech_blocks(){
$.ajax({
url: "actions_timetable.php",
async: true,
data: {
action: "load_tech_blocks",
},
type: 'post',
success: function (data, textStatus) {
tech_data=JSON.parse(data);
$(".tech_column").empty();
if (tech_data!==null){
for (i=0;i");
}
}
load_time_blocks();
}
});
}
function load_break_blocks() {
let requests = [];
jQuery.each($('.timetable_break'), function (i, val) {
let requestPromise = new Promise((resolve, reject) => {
$.ajax({
url: "actions_timetable.php",
async: true,
data: {
action: "load_tech_settings",
id: $(val).data('id')
},
type: 'post',
success: function (data, textStatus) {
data = JSON.parse(data.replace(/\r|\n/g, ""));
// console.log(data);
if (data != null) {
min = data.length;
time_h = Math.floor(min / 60);
time_m = min % 60;
} else {
time_h = 0;
time_m = 0;
}
display='';
$(val).data('mins', min).attr('data-mins', min);
est_block = "";
man_block = "Указ. событие: ";
man_block += "Длительность: ";
man_block += "";
if ($(val).find('.man_time').length == 0) {
$(val).empty().append(est_block).append(man_block);
}
resolve();
}
});
});
requests.push(requestPromise);
});
Promise.all(requests).then(() => {
console.log ( "2");
// calculate_time();
})
}
async function load_time_blocks() {
let requests = [];
jQuery.each($('.timetable_time'), function (i, val) {
let requestPromise = new Promise((resolve, reject) => {
$.ajax({
url: "actions_timetable.php",
data: {
action: "load_tech_settings",
id: $(val).data('id')
},
success: function (data, textStatus) {
data = JSON.parse(data.replace(/\r|\n/g, ""));
if (data != null) {
hour = data.man_time_hour;
min = data.man_time_min;
} else {
hour = 0;
min = 0;
}
est_block = "";
display='';
man_block = "Указ. событие: ";
if ($(val).find('.man_time').length == 0) {
$(val).empty().append(est_block).append(man_block);
}
man_block = "Начало блока: ";
man_block += "";
if ($(val).find('.man_time').length == 0) {
$(val).append(man_block);
}
resolve();
},
});
});
requests.push(requestPromise);
});
Promise.all(requests).then(() => {
calculate_time();
// load_break_blocks();
})
}
function calculate_time(refresh) {
$(".recom_time").remove();
SUM_ET = 0;
$('.est_time').empty();
console.log("cleared");
start_h = $('.timetable_time:first').find('.man_time_hour').val();
start_m = $('.timetable_time:first').find('.man_time_min').val();
time = Number(start_h) * 60 + Number(start_m);
var block;
jQuery.each($(".timetable_row"), function (i, val) {
// $(val).find('.timetable_handle ').html(SUM_ET + " min");
ET = 0;
if ($(val).children('.tech_column').length == 0) {
var totalMax = 0;
$(val).find('.danceBlock').each(function() {
// console.log($(this));
var value = parseInt($(this).data('total'));
if (value>totalMax){
totalMax=value;
block = $(this);
}
});
if (block!==undefined){
if ($(block).data('category_id') == 4) {
seconds = 120;
rounds = 3;
dancers = 2;
}
if (($(block).data('category_id') == 2) || ($(block).data('category_id') == 5)) {
seconds = 25;
rounds = 1;
dancers = 1;
}
if (($(block).data('category_id') == 1)) {
seconds = 40;
rounds = 1;
dancers = 2;
}
if (($(block).data('category_id') == 7)) {
seconds = 30;
rounds = 1;
dancers = 2;
}
if (($(block).data('category_id') == 3)) {
seconds = 45;
rounds = 1;
dancers = 2;
}
if (($(block).data('category_id') == 6)) {
seconds = 50;
rounds = 1;
dancers = 2;
}
tmp = totalMax * rounds / dancers * seconds / 60;
if (ET < tmp) {
ET = tmp;
}
SUM_ET += Math.round(ET);
if (ET>0){SUM_ET +=3;}
}
/* } else if ($(val).find('.timetable_break').length != 0) {
if ($(val).find('.timetable_column').hasClass('dayEnd')){
SUM_ET=0;ET=0;
start_h = $(val).next($('.timetable_time')).find('.man_time_hour').val();
start_m = $(val).next($('.timetable_time')).find('.man_time_min').val();
time = Number(start_h) * 60 + Number(start_m);
}else{
hour = $(val).find('.timetable_break').find('.break_time_hour').val();
min = $(val).find('.timetable_break').find('.break_time_min').val();
if (min===undefined){min=0;}
if (hour===undefined){hour=0;}
min = Number(min) + (Number(hour) * 60);
SUM_ET += min;
}
*/
} else if ($(val).find('.timetable_time').length != 0) {
if ($(val).find('.timetable_column').hasClass('dayEnd')){
SUM_ET=0;ET=0;
start_h = $(val).next($('.timetable_time')).find('.man_time_hour').val();
start_m = $(val).next($('.timetable_time')).find('.man_time_min').val();
time = Number(start_h) * 60 + Number(start_m);
}else{
if ( SUM_ET!= 0) {
$(val).find('.timetable_time').find('.est_time').html(SUM_ET + " min");
time = Number(time) + Number(SUM_ET);
time = (Math.ceil(time / 10 * 2) / 2 * 10);
time_h = Math.floor(time / 60);
time_m = time % 60;
if (time_h.toString().length==1){time_h="0"+time_h.toString()}
if (time_m.toString().length==1){time_m="0"+time_m.toString()}
recom_time = "Примерно: " + time_h + ":" + time_m + "
";
if (parseInt($(val).find('.timetable_time').find('.man_time_hour').val()+$(val).find('.timetable_time').find('.man_time_min').val())" + Number(val1) + "";
$("#overunder_span").remove();
} else {
val0 = $("#ag_spinner_0").val();
val1 = $("#ag_spinner_1").val();
ag_block_span = "" + Number(val0) + "—" + Number(val1) + "";
}
if ($("#ag_spinner_0").length == 1) {
$("#ag_spinner_0").replaceWith(ag_block_span);
$("#ag_spinner_1").remove();
} else {
$("#ag_spinner_1").replaceWith(ag_block_span);
}
$("#spinner_container_0").remove();
$("#spinner_container_1").remove();
$("#long_dash").remove();
}
$(".split_ag").remove();
$(".remove_ag").remove();
}
function show_ag_spinner(elem) {
disable_spinners();
$(".timetable_container").on('click', function () {
$target = $(event.target);
if ((!$target.hasClass('ag_block')) && (!$target.hasClass('picker-item')) && (!$target.hasClass('ag_control'))) {
disable_spinners();
}
});
old_ag_block = elem.clone('withDataAndEvents');
lower = Number(elem.parents(".dance_block").data('lower'));
upper = Number(elem.parents(".dance_block").data('upper'));
category_id = elem.parents(".dance_block").data('category_id');
level_id = elem.parents(".dance_block").data('level_id');
dance_id = elem.parents(".dance_block").data('dance_id');
siblings = "";
siblings = get_siblings(lower, upper);
if (upper == 999) {
ag_spinner = "O +
x
";
} else if (lower == 0) {
ag_spinner = "U +
x
";
} else {
ag_spinner = "+
x
";
}
var closest_ag = new Array();
if ($(siblings[0]).data('lower') == upper) {
closest_ag[0] = $(siblings[1]);
closest_ag[1] = $(siblings[0]);
} else {
closest_ag[0] = $(siblings[0]);
closest_ag[1] = $(siblings[1]);
}
min = (Number(closest_ag[0].data('lower')) + 1);
max = (Number(closest_ag[1].data('upper')) - 1);
if (closest_ag[0].data('lower') == undefined) {
min = 0;
}
if (closest_ag[1].data('upper') == undefined) {
max = 999;
}
if ((((min != lower) || (max != upper)) || (min == 0)) && (min < max)) {
elem.replaceWith(ag_spinner);
if ($('#ag_spinner_0').length == 1) {
var picker0 = new Picker($('#ag_spinner_0')[0], {
format: 'YY',
container: $("#spinner_container_0")[0],
inline: true,
rows: 1,
});
$("#ag_spinner_0").on('change', function () {
update_age_groups($(this), siblings, picker0)
});
}
if ($('#ag_spinner_1').length == 1) {
var picker1 = new Picker($('#ag_spinner_1')[0], {
format: 'YY',
container: $("#spinner_container_1")[0],
inline: true,
rows: 1,
});
$("#ag_spinner_1").on('change', function () {
update_age_groups($(this), siblings, picker1)
});
}
$(".split_ag").on('click', function () {
split_age_group($(this));
});
$(".remove_ag").on('click', function () {
remove_age_group($(this), siblings);
});
}
}
function get_siblings(lower, upper) {
siblings = $(".timetable_container").find(".dance_block").filter(function () {
if (($(this).data('category_id') == category_id) && ($(this).data('level_id') == level_id)) {
if ((category_id == 2) || (category_id == 3)) {
if (($(this).data('upper') == lower) || ($(this).data('lower') == upper)) {
return $(this);
}
} else {
if ($(this).data('dance_id') == dance_id) {
if (($(this).data('upper') == lower) || ($(this).data('lower') == upper)) {
return $(this);
}
}
}
}
})
return siblings;
}
function update_age_groups(elem, siblings, picker) {
if (elem.data('id') == 0) {
if (Number(elem.val()) == $(siblings[0]).data('lower')) {
newdate = Number(elem.val()) + 1;
picker.setDate(String(newdate));
elem.val(newdate)
}
if (Number(elem.val()) == $("#ag_spinner_1").val()) {
newdate = Number(elem.val()) - 1;
picker.setDate(String(newdate));
elem.val(newdate)
}
if (elem.val() == '00') {
newdate = 99;
picker.setDate(String(newdate));
elem.val(newdate)
}
$(siblings[0]).find('.upper').html(Number(elem.val()));
$(siblings[0]).data('upper', Number(elem.val()));
$(siblings[0]).attr('data-upper', Number(elem.val()));
elem.parents('.dance_block').find('.lower').html(Number(elem.val()));
elem.parents('.dance_block').data('lower', Number(elem.val()));
elem.parents('.dance_block').attr('data-lower', Number(elem.val()));
age_data = new Array();
age_data['category_id'] = $(siblings[0]).data('category_id');
age_data['level_id'] = $(siblings[0]).data('level_id');
age_data['dance_id'] = $(siblings[0]).data('dance_id');
age_data['ag0'] = $(siblings[0]).data('lower');
age_data['ag1'] = $(siblings[0]).data('upper');
age_data['ag2'] = elem.parents('.dance_block').data('upper');
age_data['ag_id'] = $(siblings[0]).data('ag_id');
age_data['siblings'] = $(siblings[0]);
get_total_by_age_spin(elem, age_data);
}
if (elem.data('id') == 1) {
if (siblings.length == 1) {
sibl = $(siblings[0]);
} else {
sibl = $(siblings[1]);
}
if (Number(elem.val()) == sibl.data('upper')) {
newdate = Number(elem.val()) - 1;
picker.setDate(String(newdate));
elem.val(newdate)
}
if (Number(elem.val()) == $("#ag_spinner_0").val()) {
newdate = Number(elem.val()) + 1;
picker.setDate(String(newdate));
elem.val(newdate)
}
if (Number(elem.val()) == 0) {
newdate = Number(elem.val()) + 1;
picker.setDate(String(newdate));
elem.val(newdate)
}
sibl.find('.lower').html(Number(elem.val()));
sibl.data('lower', Number(elem.val()));
sibl.attr('data-lower', Number(elem.val()));
elem.parents('.dance_block').find('.upper').html(Number(elem.val()));
elem.parents('.dance_block').data('upper', Number(elem.val()));
elem.parents('.dance_block').attr('data-upper', Number(elem.val()));
age_data = new Array();
age_data['category_id'] = sibl.data('category_id');
age_data['level_id'] = sibl.data('level_id');
age_data['dance_id'] = sibl.data('dance_id');
age_data['ag0'] = elem.parents('.dance_block').data('lower');
age_data['ag1'] = elem.parents('.dance_block').data('upper')
age_data['ag2'] = sibl.data('upper');
age_data['ag_id'] = sibl.data('ag_id');
age_data['siblings'] = sibl;
get_total_by_age_spin(elem, age_data);
}
}
function get_total_by_age_id(ag_id) {
$.ajax({
url: "actions.php",
async: true,
data: {
action: "get_total_by_age_group",
ag_id: ag_id
},
type: 'post',
success: function (data, textStatus) {
// ЗАГОТОВКА
}
});
}
function get_total_by_age_spin(elem, age_data) {
age = age_data['ag0'] + "_" + age_data['ag1'] + "_" + age_data['ag2'];
category = age_data['category_id'];
level = age_data['level_id'];
dance = age_data['dance_id'];
$.ajax({
url: "actions.php",
async: true,
data: {
action: "get_total_by_age_move",
age: age,
category: category,
level: level,
dance: dance
},
type: 'post',
success: function (data, textStatus) {
if (elem.hasClass('dance_block')) {
elem.find('.ag_total').html(data.split("_")[0]);
age_data['siblings'].find('.ag_total').html(data.split("_")[1]);
} else {
if (elem.data('id') == 1) {
elem.parents('.dance_block').find('.ag_total').html(data.split("_")[0]);
age_data['siblings'].find('.ag_total').html(data.split("_")[1]);
age0 = age_data['ag0'] + "_" + age_data['ag1'];
age1 = age_data['ag1'] + "_" + age_data['ag2'];
} else {
elem.parents('.dance_block').find('.ag_total').html(data.split("_")[1]);
age_data['siblings'].find('.ag_total').html(data.split("_")[0]);
age1 = age_data['ag0'] + "_" + age_data['ag1'];
age0 = age_data['ag1'] + "_" + age_data['ag2'];
}
id0 = elem.parents('.dance_block').data('ag_id');
id1 = age_data['siblings'].data('ag_id');
$.ajax({
url: "actions.php",
async: true,
data: {
action: "save_spinned_age_groups",
id0: id0,
id1: id1,
age0: age0,
age1: age1
},
type: 'post',
success: function (data, textStatus) {}
});
}
}
});
}
function split_age_group(elem) {
ag_id = elem.parents('.dance_block').data('ag_id');
lower = elem.parents('.dance_block').data('lower');
upper = elem.parents('.dance_block').data('upper');
dance_block = elem.parents('.dance_block');
if (Number(upper) - Number(lower) > 1) {
if (Number(upper) == 999) {
new_mid = Number(lower) + 10;
} else {
new_mid = Math.round((Number(lower) + Number(upper)) / 2);
}
ags = new Array();
ags[0] = Number(lower);
ags[1] = Number(new_mid);
ags[2] = Number(upper);
siblings = get_siblings(lower, upper);
$.ajax({
url: "actions.php",
async: true,
data: {
action: "split_age_group",
ag_id: ag_id,
ags: ags
},
type: 'post',
success: function (data, textStatus) {
data = data.replace(/\r|\n/g, "");
disable_spinners();
if (siblings.length == 1) {
new_block = $(siblings[0]).clone(1).insertAfter(dance_block);
if (lower == 0) {
new_block.data('lower', new_mid).attr('data-lower', new_mid);
new_block.find('.lower').html(new_mid);
new_block.data('upper', upper).attr('data-upper', upper);
new_block.find('.upper').html(upper);
dance_block.data('upper', new_mid).attr('data-upper', new_mid);
dance_block.find('.upper').html(new_mid);
}
if (upper == 999) {
new_block.data('upper', new_mid).attr('data-upper', new_mid);
new_block.find('.upper').html(new_mid);
new_block.data('lower', upper).attr('data-upper', lower);
new_block.find('.lower').html(lower);
dance_block.data('lower', new_mid).attr('data-lower', new_mid);
dance_block.find('.lower').html(new_mid);
}
new_block.data('ag_id', data).attr('data-ag_id', data);
} else {
new_block = dance_block.clone(1).insertAfter(dance_block);
new_block.data('lower', new_mid).attr('data-lower', new_mid);
new_block.find('.lower').html(new_mid);
new_block.data('ag_id', data).attr('data-ag_id', data);
dance_block.data('upper', new_mid).attr('data-upper', new_mid);
dance_block.find('.upper').html(new_mid);
}
age_data = new Array();
age_data['category_id'] = dance_block.data('category_id');
age_data['level_id'] = dance_block.data('level_id');
age_data['dance_id'] = dance_block.data('dance_id');
age_data['ag0'] = ags[0];
age_data['ag1'] = ags[1]
age_data['ag2'] = ags[2]
age_data['ag_id'] = dance_block.data('ag_id');
age_data['siblings'] = new_block;
get_total_by_age_spin(dance_block, age_data);
calculate_time();
}
});
} else {
alert("Can't split");
}
}
function remove_age_group(elem, siblings) {
ag_id = elem.parents('.dance_block').data('ag_id');
lower = elem.parents('.dance_block').data('lower');
upper = elem.parents('.dance_block').data('upper');
new_mid = Math.round((Number(lower) + Number(upper)) / 2);
ags = new Array();
ags[0] = $(siblings[0]).data('ag_id');
ags[1] = $(siblings[1]).data('ag_id');
ags[2] = Number(new_mid);
$.ajax({
url: "actions.php",
async: true,
data: {
action: "remove_age_group",
ag_id: ag_id,
ags: ags
},
type: 'post',
success: function (data, textStatus) {
$(siblings[0]).data('upper', new_mid).attr('data-upper', new_mid);
$(siblings[0]).find('.upper').html(new_mid);
$(siblings[1]).data('lower', new_mid).attr('data-lower', new_mid);
$(siblings[1]).find('.lower').html(new_mid);
elem.parent('.dance_block').remove();
}
});
}
*/
function addCategoryBlock(elem){
$.ajax({
url: "/organizer/actions_timetable.php",
async: true,
data: {
action: 'addBlockMenu',
},
type: 'post',
success: function (data, textStatus) {
menu=$('#addBlock').parents('.dropdown').children('.agSelectionMenu');
menu.html(data);
menu.find('.dropdown-toggle-split').each(function (){
agCount=$(this).parent('.btn-group').find('.agSelectionMenu .agSelectionLabel').length;
$(this).find('.agCount').html(agCount);
if (agCount==0){
$(this).parent('.btn-group').remove();
}
});
menu.find('.agCount').html();
}
});
}
/*
function addCategoryBlock(elem,row,col){
$.ajax({
url: "/organizer/actions_timetable.php",
async: true,
data: {
action: 'addBlockMenu',
},
type: 'post',
success: function (data, textStatus) {
menu=$('#addBlock_'+row+'_'+col).parents('.dropdown').children('.agSelectionMenu');
menu.html(data);
}
});
}
*/
function getBlocksData(elem){
/* $.when.apply($,saving).done(function () {
console.log("1");
console.log("New rows num:"+numNewRows);
console.log("3");
});
*/
}
function openDropdown(elem) {
parent = elem.closest('tr');
ag_id=elem.closest('.danceBlock').data('ag_id');
if ($(".stage_list_tr").length != 0) {
$(".danceBlock_pressed").removeClass('danceBlock_pressed');
$(".stage_list_tr").fadeOut(300, function () {
$(".stage_list_tr").remove();
});
} else {
// width=$(elem).closest('tr').width();
// console.log(width);
$(elem).parents(".timetable_column").addClass('danceBlock_pressed');
clspn = $(elem).parents(".hall_container").find('.timetable_column_head').length;
$(" | |
").insertAfter(parent);
if (elem.data('category_id')==6){
$('.stage_list_tr').find('td:last').html(
$(".timetable_team_stage_list_dummy").clone().hide().attr({
class: "dropdown_stage_list",
id: 'timetable_stage_list_' + ag_id
})
);
}else{
$('.stage_list_tr').find('td:last').html(
$(".timetable_stage_list_dummy").clone().hide().attr({
class: "dropdown_stage_list",
id: 'timetable_stage_list_' + ag_id
})
);
}
$('.dropdown_stage_list').children('.comment_div_dummy').attr("class", "display comment_div").css('display', 'block');
$('.dropdown_stage_list').children('.timetable_stage_list_table_dummy').attr("class", "display timetable_stage_list_table");
// $('.dropdown_stage_list').css('width', stage_list_width);
// $('.dropdown_stage_list').css('position',"absolute");
$('.dropdown_stage_list').fadeIn("slow");
round_cond='';
init_dropdown_list(elem, round_cond);
}
}
/*
function openDropdown_old($this) {
// console.log($this.parents('.inner_timetable_container').children('.dance_block_container').last());
$parent = $this.parents('.inner_timetable_container');
id = $this.attr('id').split("_")[2];
//timetable_stage_list
if ($("#timetable_stage_list_" + id).length != 0) {
$("#timetable_stage_list_" + id).fadeOut(600, function () {
$("#timetable_stage_list_" + id).remove();
// $this.parent().removeClass("roll_down_stage_list_active_button");
$this.removeClass("roll_down_stage_list_active_button");
});
$this.closest('.timetable_competition').removeClass('yellow_block');
} else {
if ($.fn.dataTable.isDataTable('.timetable_stage_list_table')) {
table = $('.timetable_stage_list_table').DataTable();
table.destroy();
}
$('.timetable_competition').removeClass('yellow_block');
$this.closest('.timetable_competition').addClass('yellow_block');
$(".roll_down_stage_list").removeClass("roll_down_stage_list_active_button");
// $this.parent().addClass("roll_down_stage_list_active");
$this.addClass("roll_down_stage_list_active_button");
$('.timetable_stage_list_table').remove();
$('.timetable_stage_list').remove();
stage_list_width = $parent.outerWidth();
dance_data = $parent.children('.container_header').attr('name');
age_group = $this.parent().attr('name');
if ((dance_data.split("_")[0] == 6)) {
$(".timetable_team_stage_list_dummy").clone().hide().attr({
class: "timetable_stage_list",
id: 'timetable_stage_list_' + id
}).insertAfter($parent.last());
$('.timetable_stage_list').children('.comment_div_dummy').attr("class", "display comment_div").css('display', 'block');
$('.timetable_stage_list').children('.timetable_stage_list_table_dummy').attr("class", "display timetable_stage_list_table");
$('.timetable_stage_list').css('width', stage_list_width);
// $('.timetable_stage_list').css('position',"absolute");
$('.timetable_stage_list').fadeIn("slow");
$('.timetable_stage_list').position({
my: 'left top',
at: 'left bottom+1',
of: $parent,
within: $parent,
});
// initialize_datatables_timetables_stage_list_team($this, dance_data, age_group);
} else {
round_cond = $this.closest('.timetable_competition').attr('id').split("_")[3];
$(".timetable_stage_list_dummy").clone().hide().attr({
class: "timetable_stage_list",
id: 'timetable_stage_list_' + id
}).insertAfter($parent.last());
$('.timetable_stage_list').children('.comment_div_dummy').attr("class", "display comment_div").css('display', 'block');
$('.timetable_stage_list').children('.timetable_stage_list_table_dummy').attr("class", "display timetable_stage_list_table");
$('.timetable_stage_list').css('width', stage_list_width);
// $('.timetable_stage_list').css('position',"absolute");
$('.timetable_stage_list').fadeIn("slow");
$('.timetable_stage_list').position({
my: 'left top',
at: 'left bottom+1',
of: $parent,
within: $parent,
});
// initialize_datatables_timetables_stage_list($this, dance_data, age_group, round_cond);
}
block = $this.parents('.timetable_competition').parents('.inner_timetable_container ').attr('id');
age = $this.parents('.timetable_competition').attr('name');
comment = $this.parents('.timetable_competition').parents('.inner_timetable_container ').next('.timetable_stage_list').find('.stage_comment');
$.ajax({
url: "actions.php",
async: true,
data: {
action: "load_comment",
block: block,
age: age
},
type: 'post',
success: function (data, textStatus) {
comment.val(data.replace(/\n+/g, ''));
}
});
}
}
*/
function init_dropdown_list(element, round_cound) {
dance_data = element.closest('.danceBlock').data('category_id')+"_"+element.closest('.danceBlock').data('level_id')+"_"+element.closest('.danceBlock').data('dance_id');
age_group = element.closest('.danceBlock').data('lower')+"_"+element.closest('.danceBlock').data('upper');
// ag_id = element.closest('.danceBlock').data('ag_id');
category=element.closest('.danceBlock').data('category_id');
var dance = false;
if ((category == 2) || (category == 3) || (category == 4)) {
dance = {
dataSrc: "dance",
};
}
if (category==6){
$('.timetable_stage_list_table').dataTable({
"lengthChange": false,
"searching": false,
"paging": false,
"ajax": {
"url": "entries_datatable.php",
"data": function (d) {
d.group_type = "team_list";
d.dance_data = dance_data;
d.age_group = age_group;
},
},
"columns": [{
"data": "number"
},
{
"data": "type"
},
{
"data": "names"
},
],
});
}else{
$('.timetable_stage_list_table').dataTable({
"lengthChange": false,
"searching": false,
"paging": false,
"ajax": {
"url": "entries_datatable.php",
"data": function (d) {
d.round_cound = round_cound;
d.group_type = 'stage_list';
d.dance_data = dance_data;
d.age_group = age_group;
},
},
"responsive": {
details: {
renderer: function ( api, rowIdx, columns ) {
var data = $.map( columns, function ( col, i ) {
return col.hidden ?
''+
''+col.title+':'+' | '+
''+col.data+' | '+
'
' :
'';
} ).join('');
return data ?
$("").append( data ) :
false;
},
"type": 'column',
"target": 'tr',
}
},
"order": [
[0, "asc"]
],
"columns": [
{
"data": "feisnumber",
"responsivePriority": "1",
},
{
"data": "last_name",
"responsivePriority": "1",
},
{
"data": "age",
"responsivePriority": "1",
},
{
"data": "school",
"responsivePriority": "1",
},
{
"data": "setround",
"responsivePriority": "2",
},
{
"data": "dance",
"visible": false
},
{
"data": "dance_id",
"visible": false
},
],
"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
// Bold the grade for all 'A' grade browsers
if ((aData['round'] != 3) && (aData['round'] != 0) && (aData['category'] != 2)) {
$(nRow).css({
'background-color': '#dec5d6',
'opacity': '0.7'
});
$('td:eq(0)', nRow).css({
'background-color': '#dec5d6 !important',
'opacity': '0.7'
});
// $(nRow).css( 'background-color:rgb(251, 76, 76)' );
// $('td:eq(0)', nRow).css({'background-color':'rgb(251, 76, 76)','opacity':'0.7'});
}
},
"initComplete": function () {
// table = $('.timetable_stage_list_table').DataTable();
// table.columns.adjust().draw();
// $(".timetable_stage_list_table").find('thead').hide();
},
"drawCallback": function () {
},
rowGroup: dance,
});
table_list = $('.timetable_stage_list_table').DataTable();
$('.timetable_stage_list_table tbody').on('click', 'tr.group', function () {
var currentOrder = table_list.order()[0];
if (currentOrder[0] === 12 && currentOrder[1] === 'asc') {
table_list.order([12, 'desc']).draw();
} else {
table_list.order([12, 'asc']).draw();
}
});
var table = $('.timetable_stage_list_table').DataTable();
}
}
(function($) {
$.fn.removeClassWild = function(mask) {
return this.removeClass(function(index, cls) {
var re = mask.replace(/\*/g, '\\S+');
return (cls.match(new RegExp('\\b' + re + '', 'g')) || []).join(' ');
});
};
})(jQuery);
function onLongPress(element, callback) {
var moved='';
element.bind('touchstart', function(e) {
timeoutId = setTimeout(function() {
timeoutId = null;
e.stopPropagation();
callback(e.target);
}, 500);
});
element.bind('contextmenu', function(e) {
e.preventDefault();
timeoutId = setTimeout(function() {
timeoutId = null;
e.stopPropagation();
callback(e.target);
}, 0);
});
element.bind('touchend click', function (e) {
console.log(typeof timeoutId);
if ((typeof timeoutId !== 'undefined')) {
console.log(timeoutId);
if (timeoutId) {
clearTimeout(timeoutId)
if (moved!=1){
openDropdown($(this))
event.stopPropagation();
event.preventDefault();
};
moved=0;
}else{
openDropdown($(this))
}
}else{
openDropdown($(this))
}
});
element.bind('touchmove', function (e) {
moved=1;
if (timeoutId) {
clearTimeout(timeoutId);
}
});
}
function download_timetable(quantity) {
// $("#timetable_message").html("Loading...");
$.ajax({
url: "download_timetable.php",
async: true,
data: {
quantity:quantity,
},
type: 'post',
success: function (data, textStatus) {
// $("#timetable_message").html("");
window.open('/downloads/timetable_'+data+'.xls', "_blank")
}
});
}