GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 134.29.175.74 / Your IP : 216.73.216.160 Web Server : nginx/1.10.2 System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586 User : Administrator ( 0) PHP Version : 7.1.0 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/nginx/html/Scheduler/Schedule/ |
Upload File : |
"use strict"; // Schedule/schedule2.js // For use by Jim Martinson. Used for multi day drag/drop to move a class with multiple meetings. let NewMeeting_scmId_Count = 0; // Begining scmId add for new meetings. // MoveClass_DialogClick(evt) // function MoveClass_DialogClick(evt) { var DEBUG = true; evt = (evt) ? evt : window.event; if ( DEBUG ) { console.group(PC+'MoveClass_DialogClick[evt.id='+evt.id+'] dragElement='+JSON.stringify(dragElement),CG); } // Get current checkbox day and status. var IsChecked = evt.checked; var WeekdayD_Original = evt.value; if ( DEBUG ) { console.log('IsChecked='+IsChecked+' WeekdayD_Original='+WeekdayD_Original); } // BEGIN Make meeting changes based on checkbox status. let i; // User for loop indexes. let scId = dragElement.scId; if ( DEBUG ) { console.log(PC+'SCMnow[scId]='+D_formatJSONstring(SCMnow[scId]),CA); } let scmId = dragElement.scmId; if ( DEBUG ) { console.log(PC+'SCMnow['+scId+'].length='+SCMnow[scId].length,CL); } let ClassMeetingIndex; // Find the ClassMeetingIndex. let classMeetingLength = SCMnow[scId].length; for ( ClassMeetingIndex=0; ClassMeetingIndex<classMeetingLength; ClassMeetingIndex++ ) { // Loop thru class meetings. if ( SCMnow[scId][ClassMeetingIndex].scmId === scmId ) { break; } } // Loop thru class meetings. if ( DEBUG ) { console.log(PC+'ClassMeetingIndex='+ClassMeetingIndex,CI); } // Fine the OriginalClassMeetingIndex. var OriginalClassMeetingIndex = null; let classMeetingOriginalLength = SCMold[scId].length; for ( OriginalClassMeetingIndex=0; ClassMeetingIndex<classMeetingOriginalLength; OriginalClassMeetingIndex++ ) { if ( SCMold[scId][OriginalClassMeetingIndex].scmId === scmId ) { break; } } let dayCount_Original = SCMold[scId][OriginalClassMeetingIndex].days.length; //if ( DEBUG ) { console.log('SCMold['+scId+']='+D_formatJSONstring(SCMold[scId])); } //if ( DEBUG ) { console.log('SCMnow['+scId+']='+D_formatJSONstring(SCMnow[scId])); } if ( DEBUG ) { console.log(PC+'SCMnow['+scId+']['+ClassMeetingIndex+']='+D_formatJSONstring(SCMnow[scId][ClassMeetingIndex]),CI); } if ( DEBUG ) { console.log(PC+'SCMnow['+scId+']['+ClassMeetingIndex+'].days='+SCMnow[scId][ClassMeetingIndex].days,CL); } let WeekdayNumber_Original = GetWeekdayNumber(WeekdayD_Original); let Weekday_NumberMoved = WeekdayNumber_Original + SCMnow[scId][ClassMeetingIndex].dayDiff; if ( DEBUG ) { console.log(PC+`WeekdayNumber_Original = ${WeekdayNumber_Original}, Weekday_NumberMoved = ${Weekday_NumberMoved}, SCMnow[${scId}][${ClassMeetingIndex}].dayDiff = ${SCMnow[scId][ClassMeetingIndex].dayDiff}`,CL); } let WeekdayD_Moved= GetWeekdayD(Weekday_NumberMoved); if ( DEBUG ) { console.log(PC+`WeekdayD_Original = ${WeekdayD_Original}, WeekdayD_Moved = ${WeekdayD_Moved}`,CL); } let mTime_Original = dragElement.original_mTime; let mTime_Moved = mTime_Original + SCMnow[scId][ClassMeetingIndex].mbTimeDiff; if ( DEBUG ) { console.log(PC+`mTime_Original = ${mTime_Original}, mTime_Moved = ${mTime_Moved}`,CL); } let bTime_Orginal = ConvertMinutesToTime(mTime_Original); let bTime_Moved = ConvertMinutesToTime(mTime_Moved); if ( DEBUG ) { console.log(PC+`bTime_Orginal = ${bTime_Orginal}, bTime_Moved = ${bTime_Moved}`,CL); } let eTime_Orginal = SCMold[scId][OriginalClassMeetingIndex].eTime; let emTime_Moved = ConvertTimeToMinutes(eTime_Orginal) + SCMnow[scId][ClassMeetingIndex].mbTimeDiff; let eTime_Moved = ConvertMinutesToTime(emTime_Moved); if ( DEBUG ) { console.log(PC+`eTime_Orginal = ${eTime_Orginal}, eTime_Moved = ${eTime_Moved}`,CL); } //let eTime_Current = SCMnow[scId][ClassMeetingIndex].eTime; //let meTime_Current = ConvertTimeToMinutes(eTime_Current); //if ( DEBUG ) { console.log(PC+`eTime_Current = ${eTime_Current}, meTime_Current = ${meTime_Current}`,CL); } // Calculate possible div ids. let divIds_Current = []; let divIds_Original = []; let divIds_Moved = []; // Add original divs. SCMold[scId][OriginalClassMeetingIndex].days.forEach(function(day) { let thisDivId = `calendar_class_${scId}_${day}${mTime_Original}`; divIds_Original.push(thisDivId); if (document.getElementById(thisDivId)) { divIds_Current.push(thisDivId); } }); // Add current divs. SCMnow[scId][ClassMeetingIndex].days.forEach(function(day) { let thisDivId = `calendar_class_${scId}_${day}${mTime_Moved}`; divIds_Moved.push(thisDivId); if (document.getElementById(thisDivId)) { divIds_Current.push(thisDivId); } }); if ( DEBUG ) { console.log(PC+`divIds_Current=${divIds_Current}`,CI); } if ( DEBUG ) { console.log(PC+`divIds_Original=${divIds_Original}`,CI); } if ( DEBUG ) { console.log(PC+`divIds_Moved=${divIds_Moved}`,CI); } // <input type="checkbox" class="movemeetingcheckbox" name="moveMeeting_2" id="chk_moveMeeting_M" onclick="MoveClass_DialogClick(this);" value="M" data-moved-day="U" checked=""> // Get meeting checkboxes. let MeetingCheckBoxes = document.querySelectorAll('input[id^="chk_moveMeeting_"]'); let MeetingCheckBoxesCount = MeetingCheckBoxes.length; let MeetingCheckBoxStates = []; // Determine which are checked or unchecked. let MeetingCheckBoxCheckedCount = 0; for( i = 0; i < MeetingCheckBoxesCount; i++ ) { let eMeetingCheckBox = MeetingCheckBoxes[i]; let MovedDay = eMeetingCheckBox.getAttribute('data-moved-day'); let OriginalDay = eMeetingCheckBox.value; let Checked = 0; if ( eMeetingCheckBox.checked ) { Checked = 1; MeetingCheckBoxCheckedCount++; } if ( DEBUG ) { console.log(PC+`MovedDay = ${MovedDay}, OriginalDay = ${OriginalDay}, Checked = ${Checked}`,CL); } MeetingCheckBoxStates[i] = { MovedDay:`${MovedDay}`, OriginalDay:`${OriginalDay}`, Checked:Checked }; } if ( DEBUG ) { console.log(PC+'MeetingCheckBoxCheckedCount = '+MeetingCheckBoxCheckedCount,CL); } if ( DEBUG ) { console.log(PC+'MeetingCheckBoxStates = '+D_formatJSONstring(MeetingCheckBoxStates),CI); } if ( DEBUG ) { console.log(PC+`MeetingCheckBoxStates[0].MovedDay = ${MeetingCheckBoxStates[0].MovedDay}, MeetingCheckBoxStates[0].OriginalDay = ${MeetingCheckBoxStates[0].OriginalDay}, MeetingCheckBoxStates[0].Checked = ${MeetingCheckBoxStates[0].Checked}`,CL); } // Update SCMnow[scId][ClassMeetingIndex]. This is the moved meeting. Simply update the days to the checked checkboxes. let CheckedDays = ''; let UncheckedDays = ''; for( i = 0; i < MeetingCheckBoxesCount; i++ ) { if ( DEBUG ) { console.log(PC+`+MeetingCheckBoxStates[${i}].Checked = ${+MeetingCheckBoxStates[i].Checked}`,CL); } if (MeetingCheckBoxStates[i].Checked) { CheckedDays += MeetingCheckBoxStates[i].MovedDay; } else { UncheckedDays += MeetingCheckBoxStates[i].OriginalDay; } } if ( DEBUG ) { console.log(PC+`CheckedDays = ${CheckedDays}, UncheckedDays = ${UncheckedDays}`,CL); } if ( MeetingCheckBoxCheckedCount > 0 ) { // Are any checkboxes checked? if ( MeetingCheckBoxCheckedCount !== MeetingCheckBoxesCount ) { // Are any unchecked? if ( DEBUG ) { console.log(PC+`dragElement.scmNewIndex = ${dragElement.scmNewIndex}`,CI); } // Some are checked. // Update the moved days. SCMnow[scId][ClassMeetingIndex].days = [...CheckedDays]; // Create a new meeting from the original. SCMnow[scId][dragElement.scmNewIndex] = JSON.parse(JSON.stringify(SCMold[scId][OriginalClassMeetingIndex])); // Update the original days. SCMnow[scId][dragElement.scmNewIndex].days = [...UncheckedDays]; } else { // Are any unchecked? // All are checked. // Update the moved days. SCMnow[scId][ClassMeetingIndex].days = [...CheckedDays]; // Set the SCMnow back to original. SCMnow[scId][ClassMeetingIndex] = CopyObject(SCMold[scId][OriginalClassMeetingIndex]); // Eliminate any added meeting. SCMnow[scId][dragElement.scmNewIndex] = {}; // Make sure there is one to eliminate. SCMnow[scId].pop(); } // Are any unchecked? } else { // Are any checkboxes checked? // None are checked. // Set the SCMnow back to original. SCMnow[scId][ClassMeetingIndex] = CopyObject(SCMold[scId][OriginalClassMeetingIndex]); // Eliminate any added meeting. SCMnow[scId][dragElement.scmNewIndex] = {}; // Make sure there is one to eliminate. SCMnow[scId].pop(); } // Are any checkboxes checked? if ( DEBUG ) { console.log(PC+'SCMnow[scId]='+D_formatJSONstring(SCMnow[scId]),CI); } //return; /** / // Determine if the following code in needed. 4/13/22 jfm // It looks like it is needed to return the class meeting to original day/time if not moved. let ClassMeetingCount; // Added for jslint. 4/13/22 jfm if ( IsChecked ) { // Is this meeting checkbox checked? // Checked. // Yes, this meeting checkbox was just checked. // Put the meeting back to the moved state. // Fix day. //let mbTime = /** / scId = dragElement.scId; scmId = dragElement.scmId; From_day = dragElement.original_day; diDay = dragElement.droppedIn_day; diMtime = dragElement.droppedIn_mTime; var diWeekdayNumber = GetWeekdayNumber(diDay); var fromWeekdayNumber = GetWeekdayNumber(From_day); Difference_day = diWeekdayNumber - fromWeekdayNumber; // Get the day difference. Difference_mTime = diMtime - Original_mTime; // Get the mTime difference. /** / } else { // Is this meeting checkbox checked? // Unchecked. // No, this meeting checkbox was just un-checked. // Remove day from current meeting. const index = SCMnow[scId][ClassMeetingIndex].days.indexOf(WeekdayD_Moved); if (index > -1) { SCMnow[scId][ClassMeetingIndex].days.splice(index, 1); } // Create a new meeting on the original day and time. if ( DEBUG ) { console.log(PC+'ClassMeetingCount = '+ClassMeetingCount,CL); } SCMnow[scId][ClassMeetingCount] = JSON.parse(SCMold[scId][OriginalClassMeetingIndex]); //SCMnow[scId][ClassMeetingCount].moveOldId = SCMnow[scId][ClassMeetingIndex].moveOldId; //SCMnow[scId][ClassMeetingCount].moveNewId = SCMnow[scId][ClassMeetingIndex].moveNewId; SCMnow[scId][ClassMeetingCount].scmId = `_${scmId}_${NewMeeting_scmId_Count}`; SCMnow[scId][ClassMeetingCount].days = [WeekdayD_Original]; // Fix the day. if ( DEBUG ) { console.log(PC+'SCMnow[scId]='+D_formatJSONstring(SCMnow[scId]),CI); } // Put the meeting back to the original state. // Fix day. } // Is this meeting checkbox checked? // Merge meetings. // Cleanup the information in the class meeting divs. // Remove moved day from moved divs. for ( let i = 0; i < dayCount_Original; i++ ) { let daysId = `days_${scmId}_${i}`; let eDays = document.getElementById(daysId); eDays.innerHTML = eDays.innerHTML.replace(WeekdayD_Moved,''); } // Add original day to original divs. //SCMnow[scId][ClassMeetingCount].days //dayCount_Original //divIds_Current bTime_442_2 eTime_442_2 //calendar_class_8_T480 `calendar_class_${scId}_${day}${eTime}` Meetings (check all) Valid Arranged --or-- Days and times /**/ /**/ if ( DEBUG ) { console.groupEnd(); } } // END MoveClass_DialogClick.