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=" "; 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=" "; 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:"; new_ags_table += ""; for (counter = 0; counter < timetable_data.length; counter++) { col++; if (category_tmp != timetable_data[counter].category_id) { if (category_tmp != '') { new_ags_table += ""; col = 0; } category_tmp = timetable_data[counter].category_id; } if (level_tmp != timetable_data[counter].level_id) { if (level_tmp != '') { new_ags_table += ""; col = 0; } level_tmp = timetable_data[counter].level_id; } if (dance_tmp != timetable_data[counter].dance_id) { if (dance_tmp != '') { new_ags_table += ""; col = 0; } dance_tmp = timetable_data[counter].dance_id; } if (col == cols + 1) { new_ags_table += ""; } if ((timetable_data[counter].category_id == 1) || (timetable_data[counter].category_id == 2) || (timetable_data[counter].category_id == 3)) { level = ((timetable_data[counter].level).split("-")[0]).substring(0, 3); if (((timetable_data[counter].level).split("-")[1]) != undefined) { level += "-" + ((timetable_data[counter].level).split("-")[1]).substring(0, 3); } } if ((timetable_data[counter].category_id == 1) || (timetable_data[counter].category_id == 4)) { dance = timetable_data[counter].dance; } if ((timetable_data[counter].category_id == 2) || (timetable_data[counter].category_id == 5)) { dance = timetable_data[counter].human_name; } 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 != 0) { ag = "U " + "" + timetable_data[counter].upper + ""; } else { ag = "All"; } } else if (timetable_data[counter].upper == 999) { ag = "O " + "" + timetable_data[counter].lower + ""; } else if (timetable_data[counter].upper == "all ages") { ag = "All"; } else { ag = "" + timetable_data[counter].lower + "" + "—" + "" + timetable_data[counter].upper + ""; } dance_block = "
" + level + " " + dance + " " + ag + " " + timetable_data[counter].total + "
"; new_ags_table += ""; } new_ags_table += ""; new_ags_table += "
" + dance_block + "
"; $(".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") } }); }