b0VIM 8.2�%{d�debianvps-8ced61a9/var/www/html/phpmysql/js/copy-person-shifts.jsutf-8 3210#"! UtpO ?P ‹ ”ž Ñ ÿHGYG  Rç >9Cwad cOÞ³M5Õ71î   � S 2 à ¹ ³ œ Z  ¿ � R Ý – d $ ù ë Ò Ñ Æ À ¥ o K A  Ù¬bÚlî†QÙuZC0"–e>Ö¦tjd鸑Z)ùǽ·µ´�cb let day_id = el.getAttribute("day_id")toggleCopyPersonActiveDays = (el) => {} } } change_th.setAttribute("onClick", "") change_th.classList.add("inactive") change_th.classList.remove("active") if (change_th.classList.contains("active")) { let change_th = change_ths[ih] for (let ih=0; ih { shifts.forEach((shift, s_d) => { removePersonFromShiftDay(person.id, day_id, DATE_YEAR_WEEK_TABLE_TO, true).then(() => { if (cfree === false) { checkIfPersonDayIsFree(person_id, day_id, DATE_YEAR_WEEK_TABLE_TO).then(cfree => { let shifts = PERSONS_TABLE_FROM.find(p => p.id === person_id).shifts.filter(s => s.day_id === day_id) let day_id = parseFloat(block_shift.getAttribute("day_id")) let person = PERSONS_TABLE_TO.find(p => p.id === person_id) let person_id = parseFloat(block_shift.getAttribute("person_id")) let block_shift = transfer_shifts[i] for (let i=0; i { } }) setS(shifts) } PERSONS[ppid] = new_person let ppid = PERSONS.map(p => p.id).indexOf(spid) PERSONS_ROSTER[prid] = new_person let prid = PERSONS_ROSTER.map(p => p.id).indexOf(spid) PERSONS_WEEK[pwid] = new_person let pwid = PERSONS_WEEK.map(p => p.id).indexOf(spid) if (DATE_YEAR_WEEK_TABLE_TO === DATE_YEAR_WEEK) { PERSONS_TABLE_TO[pid] = new_person let pid = PERSONS_TABLE_TO.map(p => p.id).indexOf(spid) return dbGet_person_active(DATE_YEAR_WEEK_TABLE_TO, spid).then(new_person => { let shifts = all_shifts.filter(d => d.person_id === spid) setP = (spid) => { } } reloadPersonDayData(data.person_id, data.day_id, DATE_YEAR_WEEK_TABLE_TO , "Roster-week-table-to") let data = shifts[s] for (let s=0; s { let unique_persons = [...new Set(all_shifts.map(item => item.person_id))] all_shifts = all_shifts.sort((a,b) => b.person_id-a.person_id) } all_shifts.push({person_id: parseFloat(transfer_shifts[i].getAttribute("person_id")), day_id: parseFloat(transfer_shifts[i].getAttribute("day_id"))}) let block_shift = transfer_shifts[i] for (let i=0; i {adu�C¸w=ùžXÙ ~ 9 ý ¾  : 9 « ` ô ® p  ä š D  ×�…<﫪Yó­¬n+ø÷ÈÇÁ~_É laZX8'%ÿy×ÆÄŸsKŸ�œ} document.querySelector("#Popup.roster-copy-person-table #Popup-container > h2").innerHTML = `Schichten übertragen von ${from_yw} nach ${to_yw}` let to_yw = DATE_YEAR_WEEK_TABLE_TO let from_yw = DATE_YEAR_WEEK_TABLE_FROMrenderCopyPersonPopupTitle = () => {} closePopup() changeDate(getDateOfISOWeek(year_week)) let year_week = document.querySelector("#Popup.roster-copy-person-table .item-table-to .select-roster").value if (EDITABLE_TABLES.indexOf("Roster-week-table-to") > -1) EDITABLE_TABLES.splice(EDITABLE_TABLES.indexOf("Roster-week-table-to"))closeCopyPersonPopupSelect = () => { } closePopup()closeCopyPersonPopup = () => { } }) }) hideLoading("openCopyPersonTablePopup") renderCopyPersonPopupTitle() loadCopyPersonWeekData(year_week_to, "Roster-week-table-to") loadCopyPersonWeekData(year_week_from, "Roster-week-table-from") createB().then(() => { getCopyPersonValues(year_week_from, year_week_to).then(() => { } block_container.appendChild(block_box) block_box.appendChild(block_box_roster_to) block_box_roster_to.appendChild(block_roster_to_container) block_roster_to_container.appendChild(block_table_to) block_table_to.classList.add("Roster-week-table-copy-person") let block_table_to = await createBlockRosterTableWeek(DATE_YEAR_WEEK, "Roster-week-table-to") block_box_roster_to.classList.add("item", "item-table", "item-table-to") block_box_roster_to.appendChild(block_box_to_roster_header) block_box_to_roster_header.appendChild(block_roster_to_select_label) block_roster_to_select_label.appendChild(block_roster_to_select) }) block_roster_to_select.appendChild(block_roster_to_option) block_roster_to_option.setAttribute("value", r) block_roster_to_option.innerHTML = r if (r === DATE_YEAR_WEEK) {block_roster_to_option.defaultSelected = true} let block_roster_to_option = document.createElement("option") rosters_to.forEach((r, r_id) => { block_roster_to_select.setAttribute("onchange", `changeCopyPersonDate("to", this.value)`) block_roster_to_select.classList.add("select-roster") let block_roster_to_select = document.createElement("select") block_roster_to_select_label.classList.add("select-roster-label", "chevron-down", "chevron-select") let block_roster_to_select_label = document.createElement("label") rosters_to = [ getYearWeekNewestAfterWeek(), getYearWeekNewestAfter(), ...rosters_to ] let rosters_to = [...ROSTERS_YEARWEEK] block_box_to_roster_header.appendChild(block_to_change_date) block_to_change_date.appendChild(block_to_change_next) block_to_change_date.appendChild(block_to_change_prev) block_to_change_next.classList.add("chevron-right") block_to_change_next.setAttribute("title", `Nächste Woche`) block_to_change_next.setAttribute("onClick", `changeCopyPersonDate("to", "next")`) let block_to_change_next = document.createElement("button") block_to_change_prev.classList.add("chevron-left") block_to_change_prev.setAttribute("title", `Vorherige Woche`) block_to_change_prev.setAttribute("onClick", `changeCopyPersonDate("to", "prev")`) let block_to_change_prev = document.createElement("button") block_to_change_date.classList.add("change-date") let block_to_change_date = document.createElement("div") block_box_to_roster_header.appendChild(block_edit_shift_button)adLHâ¢q9þ½À • w a O A # ë µ   e ,    ý í ë ê ¬ = Ò w " !  ñ ð ¸ – q - â·�JA<ѧMÖªvXþýÛÁp-á¿êœ’bSL }) return hideLoading("relo }) }) return hideLoading("reloadCopyPersonWeekData") } remove_classes[i].classList.remove("active", "inactive", "hover") for (i=0; i { block.removeChild(el) DATA_LAST_CREATED = undefined let shift_check = false let block_tds_inactive = el.querySelectorAll(".inactive") let block = el.parentNode let el = document.querySelector(`#${table_id}`) showLoading("reloadCopyPersonWeekData")reloadCopyPersonWeekData = async (year_week, table_id) => {} loadOption(block_select_to, rosters_to, year_week_to) rosters_to = [ getYearWeekNewestAfterWeek(), getYearWeekNewestAfter(), ...rosters_to ] let rosters_to = [...ROSTERS_YEARWEEK] loadOption(block_select_from, rosters_from, year_week_from) let rosters_from = [...ROSTERS_YEARWEEK] } }) block_select.appendChild(block_roster_option) block_roster_option.setAttribute("value", r) block_roster_option.innerHTML = r if (year_week === r) {block_roster_option.defaultSelected = true} let block_roster_option = document.createElement("option") rosters.forEach((r, r_id) => { block_select.innerHTML = "" loadOption = (block_select, rosters, year_week) => { let options_to = [] let options_from = [] if (typeof year_week_to === "undefined") { year_week_to = block_select_to.value } if (typeof year_week_from === "undefined") { year_week_from = block_select_from.value } let block_select_to = document.querySelector(".roster-copy-person-table .item-table-to .select-roster") let block_select_from = document.querySelector(".roster-copy-person-table .item-table-from .select-roster")reloadCopyPersonSelects = (year_week_from, year_week_to) => {} toggleDay() toggleName() } } } block_to_days.classList.remove("active") block_from_days.classList.remove("active") } else { block_to_days.classList.add("active") block_from_days.classList.add("active") if (set_active) { } } } break set_active = false if ((block_to) && (!block_to.classList.contains("active"))) { let block_to = document.querySelector(`#Roster-week-table-to .Roster-week-td[day_id="${day_id}"][person_id="${person_id}"]:not(.free):not(.inactive)`) let person_id = td.getAttribute("person_id") let day_id = td.getAttribute("day_id") if (!td.classList.contains("active")) { let td = blocks_from_tds_days[i] for (let i=0; i 9 )    Ù j ÿ¤ON5åÞZä®wni=þÔzA?×£…G+*î�Z3ìHÉ¿�€y }) return hideLoading("reloadCopyPersonWeekData") } remove_classes[i].classList.remove("active", "inactive", "hover") for (i=0; i { block.removeChild(el) DATA_LAST_CREATED = undefined let shift_check = false let block_tds_inactive = el.querySelectorAll(".inactive") let block = el.parentNode let el = document.querySelector(`#${table_id}`) showLoading("reloadCopyPersonWeekData")reloadCopyPersonWeekData = async (year_week, table_id) => {} loadOption(block_select_to, rosters_to, year_week_to) rosters_to = [ getYearWeekNewestAfterWeek(), getYearWeekNewestAfter(), ...rosters_to ] let rosters_to = [...ROSTERS_YEARWEEK] loadOption(block_select_from, rosters_from, year_week_from) let rosters_from = [...ROSTERS_YEARWEEK] } }) block_select.appendChild(block_roster_option) block_roster_option.setAttribute("value", r) block_roster_option.innerHTML = r if (year_week === r) {block_roster_option.defaultSelected = true} let block_roster_option = document.createElement("option") rosters.forEach((r, r_id) => { block_select.innerHTML = "" loadOption = (block_select, rosters, year_week) => { let options_to = [] let options_from = [] if (typeof year_week_to === "undefined") { year_week_to = block_select_to.value } if (typeof year_week_from === "undefined") { year_week_from = block_select_from.value } let block_select_to = document.querySelector(".roster-copy-person-table .item-table-to .select-roster") let block_select_from = document.querySelector(".roster-copy-person-table .item-table-from .select-roster")reloadCopyPersonSelects = (year_week let blocks_to_tds_days = document.querySelectorAll(`#Roster-week-table-to .Roster-week-td[day_id="${ let blocks_from_tds_days let let let blocks_from_tds_days = document.querySelectorAll(`#Roster-week-table-from .Roster-week-td[day_id="${day_id}"]:not(.free):not(.inactive)`) let block_to_days = document.querySelector(`#Roster-week-table-to .Roster-week-th[day_id="${day_id}"]`) let block_from_days = document.querySelector(`#Roster-week-table-from .Roster-week-th[day_id="${day_id}"]`) if (day_id !== null) { toggleDay = () => { } } } block_to_person.classList.remove("active") block_from_person.classList.remove("active") } else { block_to_person.classList.add("active") block_from_person.classList.add("active") if (set_active) { } } } break set_active = false if ((block_to) && (!block_to.classList.contains("active"))) { let block_to = document.querySelector(`#Roster-week-table-to .Roster-week-td[day_id="${day_id}"][person_id="${person_id}"]:not(.free):not(.inactive)`) let person_id = td_from.getAttribute("person_id") let day_id = td_from.getAttribute("day_id") if (!td_from.classList.contains("active")) {ad* r  þýüŬŠýqFr b ô c Õ ? ¶ ] W M ? - ™ 4 r²FÿŸEß�€1ÿtQD:,›7Ëš Òžnó let td_from = blocks_from_tds_person[i] for (let i=0; i {toggleCopyPersonTitleButton = (person_id, day_id) => {}ad9GþݼºšzxS*ìɽ�W´ F ç Ø ` D ñ Î x s r p < ú ¨ o  À n h g Íi¹³] ¾f ¯Mù§¥tLϽ¦‘s@Í{P™ˆf\9 year_week_from = year_week } year_week = direction } else { if (typeof year_week === "undefined") {year_week = year_weeks_all[year_weeks_all.length-1]} year_week = year_weeks_all[year_weeks_all.indexOf(year_week_is)-1] } else if (direction === "next") { if (typeof year_week === "undefined") {year_week = year_weeks_all[0]} year_week = year_weeks_all[year_weeks_all.indexOf(year_week_is)+1] if (direction === "prev") { let year_weeks_all = [...ROSTERS_YEARWEEK] if (from_to === "from") { let year_week_to let year_week_from let year_week let year_week_is = document.querySelector(`#Popup.roster-copy-person-table .item-table-${from_to} .select-roster`).value showLoading("changeCopyPersonDate")changeCopyPersonDate = (from_to, direction) => {} block_set_onclick_th_name.addEventListener('mouseout', hoverCopyPersonTdOut); block_set_onclick_th_name.addEventListener('mouseover', hoverCopyPersonTdOver); block_set_onclick_th_name.setAttribute("onClick", "toggleCopyPersonTableDayNameButton(this)") let block_set_onclick_th_name = block_table_from.querySelector(".Roster-week-th-name") } blocks_set_onclick_ths[i].addEventListener('mouseout', hoverCopyPersonTdOut); blocks_set_onclick_ths[i].addEventListener('mouseover', hoverCopyPersonTdOver); blocks_set_onclick_ths[i].setAttribute("onClick", "toggleCopyPersonTableDayButton(this)") for (let i = 0; i {} } for (let i=0; i {} hoverCopyPersonTd(e, "out")hoverCopyPersonTdOut = (e) => {} hoverCopyPersonTd(e, "over")hoverCopyPersonTdOver = (e) => {}ad)aGݹ2ýɲ¤yò á ¿ µ ” Ž K ò ° ‡ a õ   ’ b W P N  ç Ñ ž  H  Ò ‹ ^ ' ·~+ò» ‡4ªkâŸxY>'Æ«SÆx(þuHó±a` DATE_YEAR_WEEK_NEWEST = ROSTERS_YEARWEEK[0] ROSTERS_YEARWEEK = year_weeks return dbGet_rosters_yearweek().then(year_weeks => { callA = () => { return dbSet_roster(year_week_to, roster_old.time_step, [roster_old.break_60, roster_old.break_90]).then(() => { setR = (changes) => { return dbGet_roster_where_yearweek(get_yw).then(roster_old => { else { get_yw = ROSTERS_YEARWEEK.find(y => y < year_week_to)} else if (ROSTERS_YEARWEEK[ROSTERS_YEARWEEK.length-1] > year_week_to) { get_yw = ROSTERS_YEARWEEK[ROSTERS_YEARWEEK.length-1]} if (ROSTERS_YEARWEEK[0] < year_week_to) { get_yw = ROSTERS_YEARWEEK[0]} let get_yw if (ROSTERS_YEARWEEK.indexOf(year_week_to) === -1) { } } }) }) }) return hideLoading("getCopyPersonValues") ROSTER_TABLE_TO = rt return getDataRosterToRoster(year_week_to).then(rt => { ROSTER_PERSON_INFOS_TABLE_TO = rpi return dbGet_roster_info_where_yearweek(year_week_to).then(rpi => { PERSONS_TABLE_TO = pt return getSortedPersonRosterWeek(1, year_week_to).then(pt => { } else { return hideLoading("getCopyPersonValues") ROSTER_TABLE_TO = ROSTER_TABLE_FROM ROSTER_PERSON_INFOS_TABLE_TO = ROSTER_PERSON_INFOS_TABLE_FROM PERSONS_TABLE_TO = PERSONS_TABLE_TO } else if (DATE_YEAR_WEEK_TABLE_TO === DATE_YEAR_WEEK_TABLE_FROM ) { return hideLoading("getCopyPersonValues") ROSTER_TABLE_TO = ROSTER ROSTER_PERSON_INFOS_TABLE_TO = ROSTER_PERSON_INFOS PERSONS_TABLE_TO = PERSONS_WEEK if (DATE_YEAR_WEEK_TABLE_TO === DATE_YEAR_WEEK) { DATE_YEAR_WEEK_TABLE_TO = year_week_to callback = () => { if (typeof year_week_to !== "undefined") { getIfTo = () => { showLoading("getCopyPersonValues")getCopyPersonValues = async (year_week_from, year_week_to) => {} }) }) hideLoading("changeCopyPersonDate") } loadCopyPersonWeekData(year_week_to, `Roster-week-table-${from_to}`) } else { loadCopyPersonWeekData(year_week_from, `Roster-week-table-${from_to}`) if (from_to === "from") { renderCopyPersonPopupTitle() reloadCopyPersonSelects(year_week_from, year_week_to) reloadCopyPersonWeekData(year_week, `Roster-week-table-${from_to}`).then(() => { getCopyPersonValues(year_week_from, year_week_to).then(() => { } year_week_to = year_week } year_week = direction } else { year_week = getDateToRosterDate(new Date(new Date(getDateOfISOWeek(year_week_is)).getTime() + 7 * 24 * 60 * 60 * 1000))[0] } else if (direction === "next") { } return hideLoading("changeCopyPersonDate") if (year_week < DATE_YEAR_WEEK_OLDEST) { year_week = getDateToRosterDate(new Date(new Date(getDateOfISOWeek(year_week_is)).getTime() - 7 * 24 * 60 * 60 * 1000))[0] if (direction === "prev") { } else if (from_to === "to") {ad#‡R—a> ×2Þ º • f H ,  Õ i 8  Ú Ä ± œ z l Z +   Ö £ g 9 ø Ñ ´ g 4 鸛Š=¿†8 àɶ§��wqo*þ°”d/á WVÏ¡po7þÌ–on0³‡† let rosters = [...ROSTERS_YEARWEEK] block_box_rosters.classList.add("item" , "item-table", "item-table-from") addDragToScroll(block_box_rosters) let block_box_rosters = document.createElement("div") block_box.classList.add("box") let block_box = document.createElement("div") block_container.appendChild(block_header) block_header.innerHTML = `Schichten übertragen` let block_header = document.createElement("h2") block_container.appendChild(block_close) block_close.classList.add("button-x") block_close.setAttribute("onClick", "closeCopyPersonPopupSelect()") let block_close = document.createElement("button") let block_container = document.getElementById("Popup-container") block.classList.add("roster-copy-person-table","active") block.onclick = (e) => eventListenerClosePopup(e, "copypersonselect") let block = document.getElementById("Popup") document.body.classList.add("noscroll") createB = async () => { if (typeof year_week_to === "undefined") { year_week_to = DATE_YEAR_WEEK} showLoading("openCopyPersonTablePopup")openCopyPersonTablePopup = async (year_week_from, year_week_to) => {} } return getIfTo() } else { } }) }) }) return getIfTo() ROSTER_TABLE_FROM = rf return getDataRosterToRoster(year_week_from).then(rf => { ROSTER_PERSON_INFOS_TABLE_FROM = rpi return dbGet_roster_info_where_yearweek(year_week_from).then(rpi => { PERSONS_TABLE_FROM = pf return getSortedPersonRosterWeek(1, year_week_from).then(pf => { } else { return getIfTo() ROSTER_TABLE_FROM = ROSTER_TABLE_TO ROSTER_PERSON_INFOS_TABLE_FROM = ROSTER_PERSON_INFOS_TABLE_TO PERSONS_TABLE_FROM = PERSONS_TABLE_TO } else if (DATE_YEAR_WEEK_TABLE_FROM === DATE_YEAR_WEEK_TABLE_TO ) { return getIfTo() ROSTER_TABLE_FROM = ROSTER ROSTER_PERSON_INFOS_TABLE_FROM = ROSTER_PERSON_INFOS PERSONS_TABLE_FROM = PERSONS_WEEK if (DATE_YEAR_WEEK_TABLE_FROM === DATE_YEAR_WEEK) { DATE_YEAR_WEEK_TABLE_FROM = year_week_from if (typeof year_week_from !== "undefined") { } } return hideLoading("getCopyPersonValues") } else { } return callback() } else { }) } return setR() } else { }) return setR(changes) return dbGet_roster_changes_where_yearweek(DATE_YEAR_WEEK_OLDEST).then(changes => { if (year_week_to < DATE_YEAR_WEEK_OLDEST) { } }) } return callA() } else { })) if (ci === changes.length-1) { return callA() } changes.forEach((c, ci) => dbSet_roster_change_where_yearweek_and_day(year_week_to, c.day_id, c.start, c.end, c.amount).then(() => { if (year_week_to < DATE_YEAR_WEEK_OLDEST) { } }) return callback() DATE_YEAR_WEEK_OLDEST = ROSTERS_YEARWEEK[ROSTERS_YEARWEEK.length-1] adJ^>Ã<;÷ºr Æ ‹ *  ¼ l >  Ä ¹ v / . ð ¹ x  Û £ b  ÅŒSÛœ›T®f%$â±°p6 Ù‘\Ù¥^Ö•'ë^] block_edit_shift_button.setAttribute("onClick", "this.classList.toggle('active'); toggleTableWeekEditeable('Roster-week-table-to')") block_edit_shift_button.classList.add("edit-shift") block_edit_shift_button.setAttribute("title", "Hiermit kannst du in der Tabelle die Zeiten ändern.") block_edit_shift_button.innerHTML = "Tabelle bearbeiten" let block_edit_shift_button = document.createElement("button") block_box_to_roster_header.classList.add("item-header") let block_box_to_roster_header = document.createElement("div") addDragToScroll(block_roster_to_container ) block_roster_to_container.classList.add("container") let block_roster_to_container = document.createElement("div") block_box_roster_to .appendChild(block_save) block_save.setAttribute("onClick", "transferCopyPersonTable()") block_save.classList.add("button-save") block_save.innerHTML = "Übertragen" let block_save = document.createElement("button") let block_box_roster_to = document.createElement("div") block_box.appendChild(block_box_rosters) block_box_rosters.appendChild(block_table_from_container) block_table_from_container.appendChild(block_table_from) block_table_from.classList.add("Roster-week-table-copy-person") let block_table_from = await createBlockRosterTableWeek(roster_date, "Roster-week-table-from") block_table_from_container .classList.add("container") let block_table_from_container = document.createElement("div") block_box_rosters.appendChild(block_box_roster_header) block_box_roster_header.appendChild(block_change_date) block_change_date.appendChild(block_change_next) block_change_date.appendChild(block_change_prev) block_change_next.classList.add("chevron-right") block_change_next.setAttribute("title", `Vorherige Woche`) block_change_next.setAttribute("onClick", `changeCopyPersonDate("from", "next")`) let block_change_next = document.createElement("button") block_change_prev.classList.add("chevron-left") block_change_prev.setAttribute("title", `Vorherige Woche`) block_change_prev.setAttribute("onClick", `changeCopyPersonDate("from", "prev")`) let block_change_prev = document.createElement("button") block_change_date.classList.add("change-date") let block_change_date = document.createElement("div") block_box_roster_header.appendChild(block_roster_select_label) block_roster_select_label.appendChild(block_roster_select) }) block_roster_select.appendChild(block_roster_option) block_roster_option.setAttribute("value", r) block_roster_option.innerHTML = r if (roster_date === r) {block_roster_option.defaultSelected = true} let block_roster_option = document.createElement("option") rosters.forEach((r, r_id) => { block_roster_select.setAttribute("onchange", `changeCopyPersonDate("from", this.value)`) block_roster_select.classList.add("select-roster") let block_roster_select = document.createElement("select") block_roster_select_label.classList.add("select-roster-label", "chevron-down", "chevron-select") let block_roster_select_label = document.createElement("label") block_box_roster_header.classList.add("item-header") let block_box_roster_header = document.createElement("div") let roster_date = structuredClone(rosters[roster_from_id]) if (roster_from_id === rosters.length) {roster_from_id = 0} let roster_from_id = rosters.indexOf(year_week_to)+1adçÿ?å‚UôêÛ}uhc9Ç £ — v q o F  ø “ f  û ì Ž † y t J Ø ´ ¨ ‡ ‚ € ;  õ „  »] ³vIÆ©) ˆ‚€S¢ðÜÅ—e4ÿʘ¬o‡ if ((free_from !== false) || (free_to !== false)) return if (!free_to) {free_to = PERSONS_TABLE_TO.find(p => p.id === person_id).sf[day_id]} let free_to = PERSONS_TABLE_TO.find(p => p.id === person_id).freedays[day_id] if (!free_from) {free_from = PERSONS_TABLE_FROM.find(p => p.id if (el_to.classList.contains("inactive")) retu if (el_to.classList.contains("inactive")) return if (el_to.classList.contains("inactive")) return if (el_to.classList.contains("free")) return if (el.classList.contains("inactive")) return if (el.classList.contains("free")) return if (!el_to) return if (!el) return el_to = document.querySelector(`#Popup.roster-copy-person-table #Roster-week-table-to .Roster-week-td-name-${el.getAttribute("person_id")}-day-${el.getAttribute("day_id")}`) el = document.querySelector(`#Popup.roster-copy-person-table #Roster-week-table-from .Roster-week-td-name-${el.getAttribute("person_id")}-day-${el.getAttribute("day_id")}`)toggleCopyPersonTableButton = (el, set) => {} } document.querySelector(`#Roster-week-table-to .Roster-week-td-name-${person_id}-day-${day_id}`).classList.remove("active") } else if (!set_active) { document.querySelector(`#Roster-week-table-to .Roster-week-td-name-${person_id}-day-${day_id}`).classList.add("active") } else if (set_active) { document.querySelector(`#Roster-week-table-to .Roster-week-td-name-${person_id}-day-${day_id}`).classList.toggle("active") if (typeof set_active === "undefined") { if ((free_from !== false) || (free_to !== false)) return if (!free_to) {free_to = PERSONS_TABLE_TO.find(p => p.id === person_id).sf[day_id]} let free_to = PERSONS_TABLE_TO.find(p => p.id === person_id).freedays[day_id] if (!free_from) {free_from = PERSONS_TABLE_FROM.find(p => p.id === person_id).sf[day_id]} let free_from = PERSONS_TABLE_FROM.find(p => p.id === person_id).freedays[day_id] if (!document.querySelector(`#Roster-week-table-from .Roster-week-td-name-${person_id}-day-${day_id}`)) return if (!document.querySelector(`#Roster-week-table-to .Roster-week-td-name-${person_id}-day-${day_id}`)) return day_id = parseFloat(day_id) person_id = parseFloat(person_id)toggleCopyPersonTableToButton = (person_id, day_id, set_active) => {} } el.classList.add("active") } else { el.classList.remove("active") document.querySelector("#Popup.roster-copy-person .item-days button.button-all").classList.remove("active") if (el.classList.contains("active")) { } return } for (let i=0; i< block_buttons.length; i++) block_buttons[i].classList.add("active") } else { for (let i=0; i< block_buttons.length; i++) block_buttons[i].classList.remove("active") if (el.classList.contains("active")) { let block_buttons = document.querySelectorAll("#Popup.roster-copy-person .item-person button") if (person_id === "all") { let person_id = el.getAttribute("person_id")toggleCopyPersonActivePerson = (el) => {} } el.classList.add("active") } else { el.classList.remove("active") document.querySelector("#Popup.roster-copy-person .item-days button.button-all").classList.remove("active") if (el.classList.contains("active")) { } return } for (let i=0; i< block_buttons.length; i++) block_buttons[i].classList.add("active") } else { for (let i=0; i< block_buttons.length; i++) block_buttons[i].classList.remove("active") if (el.classList.contains("active")) { let block_buttons = document.querySelectorAll("#Popup.roster-copy-person .item-days button") if (day_id === "all") {ad2 ® ”“mG1ÛÕuî … ß ³ � D : , ú ¾ ´ ®  a Z Ý _ ¿�÷Ã’ ýûÌHÁÀ=ÜÇ£—vû Ÿš˜mÙfe: el.classList.remove("active") if (el.classList.contains("active")) { let block_trs = document.querySelectorAll("#Roster-week-table-from tbody tr:not(.tr-empty):not(.tr-editable)") let day_id = el.getAttribute("day_id") if (EDITABLE_TABLES.indexOf("Roster-week-table-to") > -1 && !el.classList.contains("active")) returntoggleCopyPersonTableDayButton = (el) => {} } for (let i=0; i -1 && !set_active) return let set_active = el.classList.contains("active") let block_tds = document.querySelectorAll("#Popup.roster-copy-person-table .Roster-week-table-copy-person .Roster-week-td-name")toggleCopyPersonTableDayNameButton = (el) => {} } } } toggleCopyPersonTableToButton(block_tds[i].getAttribute("person_id"), block_tds[i].getAttribute("day_id"), true) block_tds[i].classList.add("active") block_tds[i].classList.remove("active") if (!block_tds[i].classList.contains("no-shift") && !block_tds_to[i].classList.contains("free") && !block_tds[i].classList.contains("free")) { for (let i=0; i< block_tds.length; i++) { document.querySelector(`#Popup.roster-copy-person-table #Roster-week-table-to .Roster-week-tr-${person_id} .Roster-week-td-name`).classList.add("active") block_person_from.classList.add("active") } else { } } toggleCopyPersonTableToButton(block_tds[i].getAttribute("person_id"), block_tds[i].getAttribute("day_id"), false) block_tds[i].classList.remove("activ let block_tds_to = document.querySelectorAll(`#Popup.roster-copy-person-table #Roster-week-table-to .Roster-week-td[person let block_tds_to = document.querySelectorAll(`#Popup.roster-copy-person-table #Roster-week-table-to .Roster-week-td[perso let let block_tds_to = document.querySelectorAll(`#Popup.roster-copy-person-table #Roster-week-table-to .Roster-week-td[person_id="${el.getAttribute("person_id")}"]`) let block_tds_to = document.querySelectorAll(`#Popup.roster-copy-person-table #Roster-week-table-to .Roster-week-td[person_id="${el.getAttribute("person_id")}"]`) } } toggleCopyPersonTableButton(block_tds[i], true) for (let i=0; i< block_tds.length; i++) { } else { } toggleCopyPersonTableButton(block_tds[i], false) for (let i=0; i< block_tds.length; i++) { if (el.classList.contains("active")) { let block_tds = document.querySelectorAll(`#Popup.roster-copy-person-table #Roster-week-table-from .Roster-week-td[person_id="${el.getAttribute("person_id")}"]`) if (EDITABLE_TABLES.indexOf("Roster-week-table-to") > -1 && !el.classList.contains("active")) returntoggleCopyPersonTableNameButton = (el) => {} toggleCopyPersonTitleButton(el.getAttribute("person_id"), el.getAttribute("day_id")) toggleCopyPersonTableToButton(el.getAttribute("person_id"), el.getAttribute("day_id"), set) } el.classList.remove("active") } else { el.classList.add("active") } else if (set) { el.classList.toggle("active") if (typeof set === "undefined") { if (EDITABLE_TABLES.indexOf("Roster-week-table-to") > -1 && !el_to.classList.contains("active")) returnad<dÞœd0 let td_to = blocks_to_tds_person[i] let td_from = blocks_from_tds_person[i] for (let i=0; i -1 && !el.classList.contains("active")) returntoggleCopyPersonTableDayButton = (el) => {} } for (let i=0; i -1 && !set_active) return let set_active = el.classList.contains("active") let block_tds = document.querySelectorAll("#Popup.roster-copy-person-table .Roster-week-table-copy-person .Roster-week-td-name")toggleCopyPersonTableDayNameButton = (el) => {}ad™ Ù  é¬utÀnÙ Â ® if ((free_from ! if ((free_from !== if ((free_from !== false) || (free_to !== false)) return if (!free_to) {free_to = PERSONS_TABLE_TO.find(p => p.id === person_id).sf[day_id]} let free_to = PERSONS_TABLE_TO.find(p => p.id === person_id).freedays[day_id] if (!free_from) {free_from = PERSONS_TABLE_FROM.find(p => p.id === person_id).sf[day_id]} let free_from = PERSONS_TABLE_FROM.find(p => p.id === person_id).freedays[day_id] let day_id = parseFloat(el.getAttribute("day_id")) let person_id = parseFloat(el.getAttribute("person_id")) console.log("buu")