1var calendar = { 2 init: function () { 3 /** 4 * Set week days and get current date 5 */ 6 var sun = 'Sun', 7 mon = 'Mon', 8 tue = 'Tue', 9 wed = 'Wed', 10 thu = 'Thu', 11 fri = 'Fri', 12 sat = 'Sat'; 13 14 var d = new Date(); 15 16 var yearNumber = (new Date).getFullYear(); 17 var strDate = yearNumber + "/" + (d.getMonth() + 1) + "/" + d.getDate(); 18 19 /** 20 * Get current month and set as '.current-month' in title 21 */ 22 var monthNumber = d.getMonth() + 1; 23 24 function GetMonthName(monthNumber) { 25 var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; 26 return months[monthNumber - 1]; 27 } 28 29 function setMonth(monthNumber, sun, mon, tue, wed, thu, fri, sat) { 30 jQuery('.month').text(GetMonthName(monthNumber) + ' ' + yearNumber); 31 jQuery('.month').attr('data-month', monthNumber); 32 printDateNumber(monthNumber, sun, mon, tue, wed, thu, fri, sat); 33 } 34 35 setMonth(monthNumber, sun, mon, tue, wed, thu, fri, sat); 36 37 jQuery('.qcc-btn-next').on('click', function (e) { 38 var monthNumber = parseInt(jQuery('.month').attr('data-month')); 39 if (monthNumber > 11) { 40 monthNumber = 1; 41 yearNumber++; 42 } else { 43 monthNumber++; 44 } 45 jQuery('.month').attr('data-month', monthNumber); 46 setMonth(monthNumber, sun, mon, tue, wed, thu, fri, sat); 47 e.preventDefault(); 48 }); 49 50 jQuery('.qcc-btn-prev').on('click', function (e) { 51 var monthNumber = parseInt(jQuery('.month').attr('data-month')); 52 if (monthNumber < 2) { 53 monthNumber = 12; 54 yearNumber--; 55 } else { 56 monthNumber--; 57 } 58 jQuery('.month').attr('data-month', monthNumber); 59 setMonth(monthNumber, sun, mon, tue, wed, thu, fri, sat); 60 e.preventDefault(); 61 }); 62 63 /** 64 * Get all dates for current month 65 */ 66 67 function setDaysInOrder(sun, mon, tue, wed, thu, fri, sat) { 68 jQuery('.qcc-calendar-container thead tr').append( 69 '<td>' + sun + '</td><td>' + mon + '</td><td>' + tue + '</td><td>' + wed + '</td><td>' + thu + '</td><td>' + fri + '</td><td>' + sat + '</td>' 70 ); 71 } 72 73 function printDateNumber(monthNumber, sun, mon, tue, wed, thu, fri, sat) { 74 jQuery('.qcc-calendar-container tbody tr').each(function() { 75 jQuery(this).empty(); 76 }); 77 78 jQuery('.qcc-calendar-container thead tr').empty(); 79 80 setDaysInOrder(sun, mon, tue, wed, thu, fri, sat); 81 82 var firstDay = new Date(yearNumber, monthNumber - 1, 1); 83 var startingDay = firstDay.getDay(); // 0 (Sunday) to 6 (Saturday) 84 var monthLength = new Date(yearNumber, monthNumber, 0).getDate(); 85 86 var day = 1; 87 var rows = Math.ceil((startingDay + monthLength) / 7); 88 89 for (var i = 0; i < rows; i++) { 90 var row = jQuery('.qcc-calendar-container tbody tr').eq(i); 91 for (var j = 0; j < 7; j++) { 92 if (i === 0 && j < startingDay) { 93 row.append('<td></td>'); 94 } else if (day > monthLength) { 95 break; 96 } else { 97 let dataset_timestamp = `${yearNumber}-${monthNumber}-${day}`; 98 row.append('<td data-timestamp="' + dataset_timestamp + '" date-year="' + yearNumber + '" date-month="' + monthNumber + '" date-day="' + day + '">' + day + '</td>'); 99 day++; 100 } 101 } 102 } 103 104 setCurrentDay(d.getMonth() + 1); 105 setEvent(); 106 displayEvent(); 107 } 108 109 /** 110 * Get current day and set as '.current-day' 111 */ 112 function setCurrentDay(month) { 113 var viewMonth = jQuery('.month').attr('data-month'); 114 if (parseInt(month, 10) === parseInt(viewMonth, 10)) { 115 jQuery('.qcc-calendar-container tbody td[date-day="' + d.getDate() + '"]').addClass('qcc-current-day'); 116 } 117 } 118 119 /** 120 * Add class '.active' on calendar date 121 */ 122 jQuery('.qcc-calendar-container tbody').on('click', 'td', function (e) { 123 if (jQuery(this).hasClass('qcc-event')) { 124 jQuery('.qcc-calendar-container tbody td').removeClass('active'); 125 jQuery(this).addClass('active'); 126 } else { 127 jQuery('.qcc-calendar-container tbody td').removeClass('active'); 128 } 129 }); 130 131 /** 132 * Add '.event' class to all days that have an event 133 */ 134 function setEvent() { 135 jQuery('.qcc-day-event').each(function (i) { 136 var eventYear = jQuery(this).attr('date-year'), 137 eventMonth = jQuery(this).attr('date-month'), 138 eventDay = jQuery(this).attr('date-day'); 139 140 jQuery('.qcc-calendar-container tbody tr td[date-year="' + eventYear + '"][date-month="' + eventMonth + '"][date-day="' + eventDay + '"]').addClass('qcc-event'); 141 142 // Add each event as a label 143 jQuery('.qcc-calendar-container tbody tr td[date-year="' + eventYear + '"][date-month="' + eventMonth + '"][date-day="' + eventDay + '"]').append('<div class="qcc-label">' + jQuery(this).attr('title') + '</div>'); 144 }); 145 } 146 147 /** 148 * Get current day on click in calendar 149 * and find day-event to display 150 */ 151 function displayEvent() { 152 jQuery('.qcc-calendar-container tbody').on('click', 'td', function (e) { 153 jQuery('.qcc-day-event').slideUp('fast'); 154 var monthEvent = jQuery(this).attr('date-month'), 155 yearEvent = jQuery(this).attr('date-year'), 156 dayEvent = jQuery(this).attr('date-day'); 157 158 jQuery('.qcc-day-event[date-year="' + yearEvent + '"][date-month="' + monthEvent + '"][date-day="' + dayEvent + '"]').slideDown('fast'); 159 }); 160 } 161 162 /** 163 * Close day-event 164 */ 165 jQuery('.qcc-close').on('click', function (e) { 166 jQuery(this).parent().slideUp('fast'); 167 e.preventDefault(); 168 }); 169 } 170}; 171 172jQuery(document).ready(function () {
173 calendar.init(); 174});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.