1const script = document.createElement('script'); 2script.src = '/OrchardCore.Calendar/js/calendar-shared.js'; 3script.defer = true; // or async = true; 4document.head.appendChild(script); 5 6var calendar = { 7 divId: "", 8 fullCalendar: "", 9 calendarTypes: "", 10 googleCalendarType: "", 11 iCalendarType: "", 12 facilities: "", 13 noEvent: false, 14 events: [], 15 isFirstLoad: true, 16 isGetEventByDate: false, 17 themename: "", 18 eventDate: "", 19 eventMonth: "", 20 eventYear: "", 21 eventList: [], 22 allEvents: [], 23 facilityBookings: [], 24 filterEventDate: "", 25 isShowMonthlyAllEvents: false, 26 defaultView: 'dayGridMonth', 27 upcomingEventCount: 1, 28 calendarViewType: '', 29 init: function () { 30 if (calendar.isGetEventByDate) { 31 var today = new Date(); 32 calendar.eventDate = today.getDate(); 33 calendar.eventMonth = today.getMonth() + 1; 34 var weekday = GetDaysName(today.getDay()); 35 $(".calendarEventDate").html(calendar.eventDate); 36 $(".calendarEventMonth").html(GetMonthName(calendar.eventMonth - 1)); 37 $(".calendarEventDay").html(weekday); 38 $(".calendarHeadingYear").html(today.getFullYear()); 39 } 40 if (calendar.facilities != "") { 41 calendar.getFacilitiesBookings(); 42 } 43 calendar.getEvents(); 44 }, 45 getFacilitiesBookings: function (month = null, year = null) { 46 $.ajax({ 47 url: urlConfig.GetFacilitiesAppointment + '?facilityIds=' + calendar.facilities + "&month=" + month + "&year=" + year, 48 async: true, 49 method: 'GET', 50 success: function (data) { 51 calendar.facilityBookings = []; 52 if (data != undefined && data != null && data.length > 0) { 53 calendar.facilityBookings = data; 54 } 55 }, 56 error: function (error) { alert("please reload Page"); } 57 }); 58 }, 59 getEvents: function () { 60 $.ajax({ 61 url: urlConfig.getEventsbymonth + '?calendarType=' + calendar.calendarType + '&googleCalendarType=' + calendar.googleCalendarType + '&iCalendarType=' + calendar.iCalendarType, 62 async: true, 63 method: 'GET', 64 success: function (data) { 65 calendar.events = []; 66 calendar.allEvents = []; 67 calendar.noEvent = true; 68 if (calendar.facilityBookings.length > 0) { 69 if (data.lstCalendarWidgetEvents.length > 0) { 70 data.lstCalendarWidgetEvents = data.lstCalendarWidgetEvents.concat(calendar.facilityBookings); 71 } else { 72 data.lstCalendarWidgetEvents = calendar.facilityBookings; 73 } 74 } 75 calendar.renderEvents(data); 76 calendar.eventList = data.lstCalendarWidgetEvents; 77 calendar.eventDate = (new Date()).getDate(); 78 calendar.fillEvents(calendar.eventList); 79 addActiveClassByDate(new Date()); 80 }, 81 error: function (error) { alert("please reload Page"); } 82 }); 83 }, 84 updateWidgets: function (month, year) { 85 if (calendar.isGetEventByDate && calendar.eventDate != "") { 86 var weekDate = new Date(year.getFullYear() + "-" + month.getMonth() + "-" + calendar.eventDate); 87 weekDate = new Date(weekDate.getTime() + weekDate.getTimezoneOffset() * 1000 * 60); 88 var weekday = GetDaysName(weekDate.getDay()); 89 90 $(".calendarEventDate").html(calendar.eventDate); 91 $(".calendarEventMonth").html(GetMonthName(month - 1)); 92 $(".calendarEventDay").html(weekday); 93 $(".calendarHeadingYear").html(year); 94 } 95 calendar.eventMonth = month.getMonth(); 96 calendar.eventYear = year.getFullYear(); 97 98 if (calendar.facilities != "") { 99 calendar.getFacilitiesBookings(month.getMonth(), year.getFullYear()); 100 } 101 calendar.getEventsByMonth(month, year); 102 }, 103 getEventsByMonth: function (startDate, endDate) { 104 startDate = startDate.getFullYear() + "-" + (startDate.getMonth() + 1) + "-" + startDate.getDate(); 105 endDate = endDate.getFullYear() + "-" + (endDate.getMonth() + 1) + "-" + endDate.getDate(); 106 $.ajax({ 107 url: urlConfig.getEventsbymonth + '?calendarType=' + calendar.calendarType + "&startDate=" + startDate + "&endDate=" + endDate + '&googleCalendarType=' + calendar.googleCalendarType + '&iCalendarType=' + calendar.iCalendarType, 108 async: true, 109 method: 'GET', 110 success: function (data) { 111 calendar.events = []; 112 calendar.allEvents = []; 113 calendar.noEvent = true; 114 if (calendar.facilityBookings.length > 0) { 115 if (data.lstCalendarWidgetEvents.length > 0) { 116 data.lstCalendarWidgetEvents = data.lstCalendarWidgetEvents.concat(calendar.facilityBookings); 117 } else { 118 data.lstCalendarWidgetEvents = calendar.facilityBookings; 119 } 120 } 121 calendar.renderEvents(data); 122 calendar.eventList = data.lstCalendarWidgetEvents; 123 calendar.fillEvents(calendar.eventList); 124 calendar.googleCalendarlength = data.lstGoogleCalendarEvents.length; 125 var newDate = new Date(endDate + "-" + startDate + "-" + calendar.eventDate) 126 newDate = new Date(newDate.getTime() + newDate.getTimezoneOffset() * 1000 * 60); 127 addActiveClassByDate(newDate); 128 129 if (calendar.themename == "SalinaTheme" && calendar.defaultView == "listWeek" && calendar.fullCalendar.view.activeStart.getMonth() != calendar.fullCalendar.view.activeEnd.getMonth()) { 130 calendar.updateWeekWidgets((calendar.fullCalendar.view.activeEnd.getMonth() + 1), calendar.fullCalendar.view.activeEnd.getFullYear()); 131 } 132 if ($(".filterEventsCalendarType").hasClass('active')) { 133 FilterEvents($(".filterEventsCalendarType.active").attr("id"), true); 134 } 135 }, 136 error: function (error) { alert("please reload Page"); } 137 }); 138 }, 139 updateWeekWidgets: function (startDate, endDate) { 140 $.ajax({ 141 url: urlConfig.getEventsbymonth + '?calendarType=' + calendar.calendarType + "&startDate=" + startDate + "&endDate=" + endDate + '&googleCalendarType=' + calendar.googleCalendarType + '&iCalendarType=' + calendar.iCalendarType, 142 async: true, 143 method: 'GET', 144 success: function (data) { 145 if (data.lstCalendarWidgetEvents.length > 0) { 146 calendar.events = []; 147 calendar.allEvents = []; 148 calendar.eventList = calendar.eventList.concat(data.lstCalendarWidgetEvents); 149 } 150 calendar.fillEvents(calendar.eventList); 151 }, 152 error: function (error) { alert("please reload Page"); } 153 }); 154 }, 155 renderEvents: function (eventsObj) { 156 var calendarEl = document.getElementById(calendar.divId); 157 $("#calendarEl").html(""); 158 var defaultDate = Date.now(); 159 if (calendar.fullCalendar !== "") { 160 defaultDate = calendar.fullCalendar.getDate(); 161 calendar.defaultView = calendar.fullCalendar.view.type; 162 calendar.fullCalendar.destroy(); 163 } 164 calendar.googleCalendarApiKey = eventsObj.googleApiKey; 165 eventDataObj = (eventsObj.lstGoogleCalendarEvents ?? []).map(buildGoogleCalendarSource); 166 eventDataObj = eventDataObj.concat(eventsObj.lstICalendarEventsData); 167 calendar.fullCalendar = new FullCalendar.Calendar(calendarEl, { 168 timeZone: 'local', 169 dayMaxEvents: 1, 170 initialView: calendar.defaultView, 171 initialDate: defaultDate, 172 googleCalendarApiKey: eventsObj.googleApiKey, 173 selectable: false, 174 contentHeight: "auto", 175 headerToolbar: { 176 center: '', 177 left: '', 178 right: '' 179 }, 180 showNonCurrentDates: false, 181 events: eventsObj.lstCalendarWidgetEvents, 182 eventSources: eventDataObj, 183 eventClick: function (arg) { 184 185 if (calendar.themename == "SalinaTheme") { 186 if (arg.event.url !== "" || arg.event.source.format === 'ics') { 187 $("#lblDetailsRRule").hide(); 188 var color = arg.event.source.internalEventSource._raw.backgroundColor; 189 $(".popup-color-div").css("background-color", color); 190 $("#headingDetails").text(arg.event.title); 191 $("#lblCalendarName").text(arg.event.source.internalEventSource._raw.title); 192 $("#lblDetailVisibility").text('Public');
193 $("#divLock").show(); 194 $("#divParagraph").hide(); 195 $("#divCalendar").hide(); 196 $("#divMap").hide(); 197 $("#divEventLink").hide(); 198 $("#divAttachment").hide(); 199 var startDate = new Date(arg.event.start); 200 $('#lblDetailsDateRange').text(moment(startDate).format('dddd, MMMM D, YYYY')); 201 $("#showDetailsModal").modal('show'); 202 } 203 } 204 arg.jsEvent.preventDefault(); 205 }, 206 dateClick: function (info) { 207 if (calendar.themename == "WamegoChamberTheme") { 208 calendar.isGetEventByDate = true; 209 $("#GetAllEventByMonth").show(); 210 } 211 if (calendar.themename == "VintageHavenTheme" && info != null ) { 212 const dateObj = new Date(info.dateStr); 213 const month
213= dateObj.getMonth() + 1; 214 const day = dateObj.getDate(); 215 const year = dateObj.getFullYear(); 216 217 const formattedDate = `${month}-${day}-${year}`; 218 window.open("/calendar?eventdate=" + encodeURIComponent(formattedDate), "_self"); 219 } 220 if (calendar.isGetEventByDate) { 221 calendar.getEventsbyDate(info); 222 } 223 info.jsEvent.preventDefault(); 224 }, 225 eventDidMount: function (info) { 226 info.el.style.display = 'none'; 227 addClassByDate(info.event.start); 228 if (info.event.end != null && info.event.end != "" && info.event.start.getDate() != info.event.end.getDate()) { 229 var multiDaysEventDate = new Date(info.event.start); 230 while (multiDaysEventDate < new Date(info.event.end)) { 231 multiDaysEventDate = new Date(multiDaysEventDate.setDate(multiDaysEventDate.getDate() + 1)); 232 if (multiDaysEventDate <= info.event.end) { 233 addClassByDate(multiDaysEventDate); 234 } 235 } 236 } 237 //// Event detail popup //// 238 if (calendar.themename == "SalinaTheme") { 239 $(info.el).append("<input type='hidden' class='hiddenContentItemId' value='" + info.event.id + "'>"); 240 $(info.el).append("<input type='hidden' class='hiddenBackground' value='" + info.backgroundColor + "'>"); 241 $(info.el).css('cursor', 'pointer'); 242 if (info.event.url === '' && info.event.source.format !== 'ics') { 243 $(info.el).on("click", function (e) { 244 calendar.showDetails(e); 245 }); 246 } else { 247 info.event.url = ""; 248 } 249 } 250 //// End ////// 251 if (calendar.isGetEventByDate && calendar.eventDate == info.event.start.getDate()) 252 addActiveClassByDate(info.event.start); 253 254 if (info.event != null && (info.event.url !== '' || info.event.groupId === 'reccurring')) { 255 info.event.url = ""; 256 var DayName = ""; 257 if (info.event.start.getDay() !== null && info.event.start.getDay() !== '') { 258 DayName = GetDaysName(info.event.start.getDay()); 259 } 260 var Month = ""; 261 if (info.event.start.getMonth() !== null && info.event.start.getMonth() !== '') { 262 Month = GetMonthName(info.event.start.getMonth()); 263 } 264 if (calendar.noEvent) 265 $("#eventsDiv").html(""); 266 var isAllday = true; 267 var contentType = ''; 268 var location = ''; 269 var description = ''; 270 var eventType = ''; 271 var startTime = ''; 272 var endTime = ''; 273 if (info.event.groupId === 'reccurring' && info.event.source.internalEventSource.meta.length > 0) { 274 var id = info.event.id; 275 $.each(info.event.source.internalEventSource.meta, function (key, value) { 276 if (value.id === id) { 277 location = value.location; 278 description = value.description; 279 contentType = value.calenderType; 280 eventType = value.eventType; 281 endTime = moment(value.end, ["HH:mm"]).format("h:mm A"); 282 } 283 }); 284 } 285 if (info.event.groupId === 'reccurring') { 286 isAllday = info.event.allDay; 287 } else { 288 contentType = info.event.source.internalEventSource._raw.content; 289 } 290 291 if (info.event.groupId === 'reccurring' && !isAllday) { 292 startTime = moment(info.event.start, ["HH:mm"]).format("h:mm A"); 293 } 294 if (info.event.source.internalEventSource.publicId != "") { 295 startTime = moment(info.event.start, ["HH:mm"]).format("h:mm A"); 296 endTime = moment(info.event.end, ["HH:mm"]).format("h:mm A"); 297 } 298 calendar.noEvent = false;
299 calendar.events.push({ 300 eventDate: info.event.start.getDate(), 301 title: info.event.title, 302 eventDay: DayName, 303 eventStartTime: startTime, 304 eventEndTime: endTime, 305 calenderType: contentType, 306 location: location, 307 description: description, 308 eventMonth: Month, 309 isAllDays: isAllday, 310 groupId: info.event.groupId, 311 eventId: info.event.id, 312 eventType: eventType, 313 eventStart: info.event.start, 314 eventEnd: info.event.end, 315 eventYear: info.event.start.getFullYear(), 316 }); 317 calendar.allEvents = calendar.events; 318 bindEvents(); 319 } 320 }, 321 datesSet: function (calendar) { 322 var title = calendar.view.title; 323 $("#calendarTitle").html(title); 324 } 325 }); 326 calendar.render(); 327 }, 328 render: function () { 329 calendar.fullCalendar.render(); 330 $('th.fc-timegrid-axis').attr('aria-label', '@T["Time"]'); 331 }, 332 gotoDate: function (date) { 333 calendar.fullCalendar.gotoDate(date); 334 calendar.updateWidgets(calendar.fullCalendar.view.activeStart, calendar.fullCalendar.view.activeEnd); 335 }, 336 fillEvents: function (eventData) { 337 $("#eventsDiv").html(""); 338 if (eventData === null || eventData.length === 0 || eventData === undefined) { 339 calendar.noEvent = true; 340 $("#GetAllEventByMonth").hide(); 341 $("#eventsDiv").append('<div class="alert alert-primary" role="alert">No more events this month!</div>'); 342 343 if (calendar.themename == "ShermanCounty") { 344 $("#calendareventparent").addClass('hideSidebar'); 345 } 346 } else { 347 if (calendar.themename == "ShermanCounty") { 348 $("#calendareventparent").removeClass('hideSidebar'); 349 } 350 calendar.noEvent = false; 351 $.each(eventData, function (key, value) { 352 calendar.events.push({ 353 eventDate: value.eventDate, 354 title: value.title, 355 eventDay: value.eventDay, 356 eventStartTime: value.eventStartTime, 357 eventEndTime: value.eventEndTime, 358 calenderType: value.calenderType, 359 location: value.location, 360 description: value.description, 361 eventMonth: value.eventMonth, 362 isAllDays: value.isAllDays, 363 isRecurring: value.isRecurring, 364 eventId: value.id ?? value.eventId, 365 facilityId: value.facilityId, 366 eventEndDate: value.eventEndDate, 367 eventEndMonth: value.eventEndMonthNumber, 368 eventEndYear: value.eventEndYear, 369 eventType: value.eventType, 370 eventStart: value.start != undefined ? value.start : value.eventStart, 371 eventEnd: value.end != undefined ? value.end : value.eventEnd, 372 eventYear: value.eventYear 373 }); 374 }); 375 bindEvents(); 376 } 377 if ((calendar.themename == "SalinaTheme" || calendar.themename == "RiseGlowTheme" || calendar.themename == "HistoricalLandTheme") && calendar.defaultView == "listWeek") { 378 WeekEventSlider(); 379 } else if (calendar.themename == "WamegoTheme" && calendar.defaultView == "listWeek") { 380 EventSlider(); 381 } else if (calendar.themename == "SpringerVilleTheme") { 382 UpcomingEvents(); 383 } else if (calendar.themename == "MinneapolisTheme") { 384 GetAllUpcomingEventByLimit(calendar.upcomingEventCount); 385 } 386 }, 387 getEventsbyDate: function (event) { 388 if (calendar.isGetEventByDate) { 389 calendar.eventDate = event.date.getDate(); 390 calendar.eventMonth = event.date.getMonth() + 1; 391 addActiveClassByDate(event.date); 392 calendar.events = []; 393 if (calendar.allEvents.length == 0) { 394 calendar.fillEvents(calendar.eventList); 395 } else { 396 calendar.fillEvents(calendar.allEvents); 397 } 398 } 399 }, 400 appendEvent: function (eventDate, title, eventDay, eventStartTime, eventEndTime, calenderType, location, description, eventMonth, isAllDay, eventId, facilityId) { 401 var isShowEvent = true; 402 if (eventDate !== null) { 403 eventDate = eventDate.toString().length === 2 ? eventDate : "0" + eventDate; 404 var eventd = (calendar.fullCalendar.getDate().getMonth() + 1) + "-" + eventDate + "-" + calendar.fullCalendar.getDate().getFullYear(); 405 var fullCalendarUrl = window.location.origin + window.location.pathname + "calendar?eventdate=" + eventd + "&event=" + eventId; 406 407 if (calendar.themename == "ElementalTheme") { 408 var divHtml = '<a href="' + fullCalendarUrl + '"><div class="second-event d-flex align-items-center" >'; 409 divHtml += '<div class="date-event border-black">'; 410 divHtml += '<h1 class="date-event-heading cgb p-color">' + eventDate + '</h1>'; 411 divHtml += '<p class="cgb p-color">' + eventMonth + '</p>'; 412 divHtml += '</div>'; 413 414 divHtml += '<div class="date-event-desc">'; 415 divHtml += '<div class="cgb b-color">' + title + '</div>'; 416 divHtml += '<p class="b-color">' + eventDay + ' ' + eventStartTime + ' - ' + eventEndTime + ' ' + calenderType + '</p>'; 417 divHtml += '</div>'; 418 divHtml += '</div></a>'; 419 } 420 else if (calendar.themename == "NaturalTheme") { 421 var divHtml = '<a href="' + fullCalendarUrl + '"><div class="second-event d-flex align-items-center mt-5"><div class="date-event border-black">'; 422 divHtml += '<h1 class="date-event-heading cgb p-color">' + eventDate + '</h1>'; 423 divHtml += '<p class="cgb p-color">' + eventMonth + '</p></div>'; 424 divHtml += '<div class="date-event-desc"><div class="cgb b-color">' + title + '</div>'; 425 divHtml += '</div></div></a>'; 426 } 427 else if (calendar.themename == "SalineTheme") { 428 var divHtml = '';
429 divHtml += '<div onclick="showDetails(\'' + eventId + '\',\'' + facilityId + '\')" ><div class="d-flex">'; 430 divHtml += '<div class="events-img">'; 431 divHtml += '<h1><span class="badge bg-secondary">' + eventDate + '</span></h1>'; 432 divHtml += '<h2>' + eventMonth + '</h2>'; 433 divHtml += '</div>'; 434 divHtml += '<div class="events-content">'; 435 divHtml += '<h3 class="lb">' + title + '</h3>'; 436 divHtml += '<p>' + eventStartTime + ' - ' + eventEndTime; 437 if (location != null && location != "") { 438 divHtml += ' | ' + location; 439 } 440 divHtml += '</p>'; 441 divHtml += '</div>'; 442 divHtml += '</div></div>'; 443 } 444 else if (calendar.themename == "SpringerVilleTheme") { 445 var divHtml = ''; 446 divHtml += '<h2 class="today-event-heading lr">' + title + '</h2>'; 447 divHtml += '<div class="today-event-action-btn">'; 448 divHtml += '<a onclick="showDetails(\'' + eventId + '\',\'' + facilityId + '\')" class="contact-us-btn smb"> Click to View All Details</a>'; 449 divHtml += '</div>'; 450 divHtml += '<div class="today-event-time smb">'; 451 divHtml += eventStartTime + ' - ' + eventEndTime + '<br/>'; 452 divHtml += calenderType; 453 divHtml += '</div>'; 454 } 455 else if (calendar.themename == "VintageHavenTheme") { 456 var divHtml = ''; 457 divHtml += '<a href="' + fullCalendarUrl + '" class="calendarEventLink"><div class="d-flex event-row-box" >'; 458 divHtml += '<div class="event-date">'; 459 divHtml += '<span class="month-name">' + eventMonth + '</span><br/>'; 460 divHtml += '<span class="month-date">' + eventDate + '</span></div>'; 461 divHtml += '<div class="events-content">'; 462 divHtml += '<h3>' + title + '</h3>'; 463 divHtml += '<p>' + eventDate + ', ' + eventMonth; 464 if (eventStartTime !== null && eventStartTime !== '' && eventStartTime !== undefined) { 465 divHtml += ' | ' + eventStartTime + ' </p>'; 466 } 467 else { 468 divHtml += ' </p>'; 469 } 470 if (location !== undefined && location !== null && location !== '') { 471 divHtml += '|' + location + '</div></div></a>'; 472 } 473 else { 474 divHtml += '</div></div></a>'; 475 } 476 } 477 else if (calendar.themename == "TechElevate") { 478 var divHtml = ''; 479 divHtml += '<a href="' + fullCalendarUrl + '" class="events-card">'; 480 divHtml += '<h3 class="events-heading">' + title + '</h3>'; 481 divHtml += '<div class="events-detail d-flex"><div class="events-detail-card"><i class="fa-solid fa-calendar-days"></i>'; 482 divHtml += '<span class="event-data">' + eventDate + ', ' + eventMonth + '</span></div>'; //start Date 483 divHtml += '<div class="events-detail-card">'; 484 if (location !== undefined && location !== null && location !== '') { 485 divHtml += '<i class="fa-solid fa-location-dot"></i><span class="event-data" > ' + location + '</span></div></div></a>'; 486 } 487 else { 488 divHtml += '</div></div></a>'; 489 } 490 } else if (calendar.themename == "TechElevateTheme2.0") { 491 eventDate = eventDate.toString().length === 2 ? eventDate : "0" + eventDate; 492 var divHtml = ''; 493 divHtml += '<a onclick="showDetails(\'' + eventId + '\',\'' + facilityId + '\')">'; 494 divHtml += '<div class="row row-striped">'; 495 divHtml += '<div class="col-2 text-center">'; 496 divHtml += '<h1><span class="badge bg-secondary">' + eventDate + '</span></h1><h2>' + eventMonth + '</h2>'; 497 divHtml += '</div>'; 498 divHtml += '<div class="col-10" style="padding: 0px 30px;">'; 499 divHtml += '<h3 class="text-uppercase"><strong>' + title + '</strong></h3>'; 500 divHtml += '<ul class="list-inline">'; 501 if (isAllDay) { 502 divHtml += '<li class="list-inline-item"><i class="fa-light fa-clock" aria-hidden="true"></i> <span class="mr-1"> All Day</span></li>'; 503 } else { 504 divHtml += '<li class="list-inline-item"><i class="fa-light fa-clock" aria-hidden="true"></i> <span class="mr-1">' + eventStartTime + ' - ' + eventEndTime + '</span></li>'; 505 } 506 if (location !== undefined && location !== null && location !== '') { 507 divHtml += '<li class="list-inline-item"><i class="fa-light fa-location-dot"></i><span class="mr-1">' + location + '</span></li>'; 508 } 509 divHtml += '</ul>'; 510 divHtml += '</div>'; 511 divHtml += '</div>'; 512 divHtml += '</a>'; 513 } else if (calendar.themename == "RossvilleTheme") { 514 var divHtml = ''; 515 eventDate = eventDate.toString().length === 2 ? eventDate : "0" + eventDate;
516 divHtml += '<div onclick="showDetails(\'' + eventId + '\',\'' + facilityId + '\')" class="d-flex event-row-box">'; 517 divHtml += '<div class="events-img" >'; 518 divHtml += '<h1><span class="badge bg-secondary">' + eventDate + '</span></h1>'; 519 divHtml += '</div>'; 520 divHtml += '<div class="events-content">'; 521 divHtml += '<h3>' + title + '</h3>'; 522 divHtml += '<p>' + eventDate + ', ' + eventDay + ' | ' + eventStartTime; 523 if (location != null && location != "") { 524 divHtml += ' | ' + location; 525 } 526 divHtml += '</p>'; 527 divHtml += '</div></div>'; 528 } 529 else if (calendar.themename == "HistoricalLandTheme") { 530 var divHtml = ''; 531 divHtml += '<div class="calendar-section-td-date-events HistoricalLandcss" onclick="showDetails(\'' + eventId + '\')">'; 532 divHtml += '<p class="calendar-section-td-time-events pm">' + eventStartTime + '</p>'; 533 divHtml += '<p class="calendar-section-td-heading-events pb">' + title + '</p>'; 534 divHtml += '</div>'; 535 } else if (calendar.themename == "PublicAllianceTheme") { 536 var eventd = (calendar.fullCalendar.getDate().getMonth() + 1) + "-" + eventDate + "-" + calendar.fullCalendar.getDate().getFullYear(); 537 eventDate = eventDate.toString().length === 2 ? eventDate : "0" + eventDate; 538 var divHtml = ''; 539 divHtml += '<div class="event-colmn">'; 540 divHtml += '<p class="event-date">' + calenderType + ' / ' + eventd + '</p>'; 541 divHtml += '<h6 class="event-heading">' + title + '</h6>'; 542 divHtml += '<p class="event-summary">'; 543 divHtml += description.length > 80 ? description.substring(0, 80) + '...' : description; 544 divHtml += '</p>'; 545 divHtml += '</div>'; 546 } else { 547 eventDate = eventDate.toString().length === 2 ? eventDate : "0" + eventDate; 548 var today = new Date(); today.setHours(0, 0, 0, 0); 549 var eventFullDate = new Date(eventMonth + ' ' + eventDate + ', ' + today.getFullYear()); 550 var upcomingClass = eventFullDate >= today ? 'upcoming-event' : ''; 551 var divHtml = '<a onclick="showDetails(\'' + eventId + '\',\'' + facilityId + '\')" class="' + upcomingClass + '"><div class="row row-striped">'; 552 divHtml += '<div class="col-2 text-center" class="padding: 0px 20px 0 20px;">'; 553 divHtml += '<h1><span class="badge bg-secondary">' + eventDate + '</span></h1>'; 554 divHtml += '<h2>' + eventMonth + '</h2></div>'; 555 divHtml += '<div class="col-10" style="padding: 0px 30px;">'; 556 divHtml += '<h3 class="text-uppercase"><strong>' + title + '</strong></h3>'; 557 divHtml += '<ul class="list-inline">'; 558 divHtml += '<li class="list-inline-item"><i class="fa fa-calendar-o" aria-hidden="true"></i> <span class="mr-1">' + eventDay + '</span></li>'; 559 if (isAllDay) { 560 divHtml += '<li class="list-inline-item"><i class="fa fa-clock" aria-hidden="true"></i><span class="mr-1"> All Day</span></li>'; 561 } else { 562 divHtml += '<li class="list-inline-item"><i class="fa fa-clock" aria-hidden="true"></i> <span class="mr-1">' + eventStartTime + ' - ' + eventEndTime + '</span></li>'; 563 } 564 if (calenderType !== undefined && calenderType !== null && calenderType !== '') { 565 divHtml += '<li class="list-inline-item"><i class="fa fa-calendar" aria-hidden="true"></i> <span class="mr-1">' + calenderType + '</span></li>'; 566 } 567 if (location !== undefined && location !== null && location !== '') { 568 divHtml += '<li class="list-inline-item"><i class="fa fa-location-arrow" aria-hidden="true"></i> <span class="mr-1">' + location + '</span></li>'; 569 } 570 divHtml += '</ul>'; 571 if (description !== undefined && description !== null && description !== '') { 572 divHtml += '<p id="calendar_description_' + eventId + '"></p>'; 573 } 574 divHtml += '</div></div></a>'; 575 } 576 if (calendar.themename == "RossvilleTheme") 577 { 578 var eMonth = calendar.fullCalendar.getDate().getMonth() + 1; 579 var eYear = calendar.fullCalendar.getDate().getFullYear(); 580 const d = new Date(); 581 let month = d.getMonth() + 1; 582 if (eMonth >= month || eYear > d.getFullYear()) { 583 isShowEvent = true; 584 } else { 585 isShowEvent = false;
586 } 587 } 588 589 if (isShowEvent) { 590 $("#eventsDiv").append(divHtml); 591 if ($("#eventsDiv #calendar_description_" + eventId).length) { 592 $("#calendar_description_" + eventId).html(description); 593 } 594 } else { 595 $("#eventsDiv").html(""); 596 $("#eventsDiv").html('<div class="alert alert-primary" role="alert">No more events this month!</div>'); 597 } 598 599 } 600 }, 601 showDetails: function (event) { 602 var contentItem = $(event.delegateTarget).find(".hiddenContentItemId").val(); 603 var backgroundColor = $(event.delegateTarget).find(".hiddenBackground").val(); 604 $.ajax({ 605 url: urlConfig.getCalendarEventsById + "?contentItemid=" + contentItem, 606 async: true, 607 success: function (data) { 608 $(".popup-color-div").css("background-color", backgroundColor); 609 $("#headingDetails").text(data.title); 610 if (data.visibility === "") { 611 $("#divLock").hide(); 612 } 613 else { 614 $("#divLock").show(); 615 $("#lblDetailVisibility").text(data.visibility); 616 } 617 if (data.description === "") { 618 $("#divParagraph").hide(); 619 } 620 else { 621 $("#divParagraph").show(); 622 $("#lblDetailDescription").html(data.description); 623 } 624 if (data.location === "") { 625 $("#divMap").hide(); 626 } else { 627 $("#divMap").show(); 628 $("#lblDetailLocation").text(data.location); 629 } 630 if (data.calendarName === "") { 631 $("#divCalendarName").hide(); 632 } else { 633 $("#divCalendarName").show(); 634 $("#lblCalendarName").text(data.calendarName); 635 } 636 $("#eventContentItemId").val(data.id); 637 if (data.assignUsers !== "") { 638 var userArray = data.assignUsers.split(','); 639 userArray.forEach(function (item, index) { 640 $(".assignusertagDiv").append('<span class="taginput" onclick="removeAssignedUser(this)">' + item + ' <i class="fa fa-remove"></i></span>'); 641 }); 642 $("#divCalendar").show(); 643 } 644 else { 645 $("#divCalendar").hide(); 646 } 647 if (data.userNameList) { 648 var userNameArray = []; 649 data.userNameList.forEach(function (item, index) { 650 if (item.displayText != null) { 651 userNameArray.push(item.displayText); 652 } 653 }); 654 $("#lblDetailsUsers").text(userNameArray); 655 } 656 657 if (data.eventUrl === null || data.eventUrl === "") { 658 $("#divEventLink").hide(); 659 } else { 660 $("#divEventLink").show(); 661 var textUrl = (data.urlText != null && data.urlText != "") ? data.urlText : data.eventUrl; 662 $("#lblDetailEventLink").html('<a href="' + data.eventUrl + '" target="_blank" style="word-break: break-word;" >' + textUrl + '</a>'); 663 } 664 if (data.attachment === null || data.attachment === "" || data.attachment === "[]") { 665 $("#divAttachment").hide(); 666 } else { 667 var attachedURLArr = []; 668 var attachedNameArr = []; 669 var innerHtml = "<ul style='padding: 0px;'>"; 670 if (data.attachment != null && data.attachment != "" && data.attachment != "[]" && data.fileName != null && data.fileName != "" && data.fileName != "[]") { 671 $("#divAttachment").show(); 672 var attachmentArray = data.attachment.split(','); 673 attachmentArray = JSON.parse(attachmentArray); 674 $.each(attachmentArray, function (index, value) { 675 attachedURLArr.push(value); 676 }); 677 var fileNameArray = data.fileName.split(','); 678 fileNameArray = JSON.parse(fileNameArray); 679 $.each(fileNameArray, function (index, value) { 680 attachedNameArr.push(value); 681 }); 682 $.each(attachedURLArr, function (index, url) { 683 var name = attachedNameArr[index]; 684 innerHtml += '<li class="calendarAttachment"><a style="color: #000;" target="_blank" href="' + url + '">' + name + '</a></li>'; 685 }); 686 } 687 innerHtml += "</ul>"; 688 $("#lblDetailAttachment").html(innerHtml); 689 } 690 691 var startDate = new Date(data.startDateString); 692 var endDate = new Date(data.endDateString); 693 if (data.isAllDay) { 694 $("#isAllDay").prop("checked", true); 695 $('#lblDetailsDateRange').text("All Day"); 696 } else if (data.isRecurring) { 697 $('#lblDetailsDateRange').text(moment(data.startTime, ["HH:mm"]).format("h:mm A") + ' - ' + moment(data.endTime, ["HH:mm"]).format("h:mm A")); 698 } else { 699 $('#lblDetailsDateRange').text(moment(startDate).format('MMMM D, YYYY hh:mm A') + ' - ' + moment(endDate).format('MMMM D, YYYY hh:mm A')); 700 } 701 if (data.rrule !== '') { 702 Recurrance(data.rrule); 703 $('#lblDetailsRRule').show(); 704 } else { 705 $('#lblDetailsRRule').hide(); 706 }
707 $("#showDetailsModal").modal('show'); 708 }, 709 error: function (error) { alert("please reload Page"); } 710 }); 711 } 712}; 713 714$("#GetAllEventByMonth").click(function () { 715 calendar.isGetEventByDate = false; 716 $("#GetAllEventByMonth").hide(); 717 calendar.events = []; 718 calendar.allEvents = []; 719 calendar.fillEvents(calendar.eventList); 720}); 721 722function WeekEventSlider() { 723 $("#calendar").hide(); 724 $(".week-slider").show(); 725 var weekStart = new Date(calendar.fullCalendar.view.activeStart); 726 var weekEnd = new Date(calendar.fullCalendar.view.activeEnd); 727 var html = ""; 728 for (var current = weekStart; current < weekEnd; current.setDate(current.getDate() + 1)) { 729 html = ""; 730 if (calendar.themename == "RiseGlowTheme" || calendar.themename == "HistoricalLandTheme") { 731 $(".calendar-section-thead #day-" + current.getDay() + " .weekSliderEventDate").html(current.getDate(current.getDay())); 732 } else { 733 html += '<h5 class="mb">' + GetDaysName(current.getDay()) + ' ' + current.getDate(current.getDay()) + ', ' + GetMonthName(current.getMonth()) + '</h5>'; 734 } 735 var events = calendar.events.filter(function (obj) { 736 if (obj.eventDate == current.getDate() || (current.getDate() > obj.eventDate && current.getDate() < obj.eventEndDate)) { 737 return true; 738 } 739 return false; 740 }); 741 if (events.length > 0) { 742 var eventCount = 0; 743 if (calendar.themename == "RiseGlowTheme" || calendar.themename == "HistoricalLandTheme") { 744 $.each(events, function (key, value) { 745 if (eventCount < 3) { 746 html += calendar.themename == "HistoricalLandTheme" ? 747 '<div class="calendar-section-td-date-events HistoricalLandcss" onclick="showDetails(\'' + value.eventId + '\')">' : 748 '<div class="calendar-section-td-date-events">'; 749 } 750 else { 751 html += calendar.themename == "HistoricalLandTheme" ? 752 '<div class="calendar-section-td-date-events d-none HistoricalLandcss" onclick="showDetails(\'' + value.eventId + '\')">' : 753 '<div class="calendar-section-td-date-events d-none">'; 754 } 755 html += '<p class="calendar-section-td-time-events lb">' + value.eventStartTime + '</p>'; 756 html += '<p class="calendar-section-td-heading-events">' + value.title + '</p>'; 757 if (value.location !== null && value.location !== '') { 758 html += '<p class="calendar-section-td-location-events">'; 759 html += '<i class="fa-solid fa-location-dot"></i>'; 760 html += '<span class="calendar-section-td-location-heading">' + value.location + '</span>'; 761 html += '</p>'; 762 } 763 html += '</div>' 764 eventCount++; 765 }); 766 } else { 767 html += '<ul>'; 768 $.each(events, function (key, value) { 769 if (eventCount < 3) { 770 if (calendar.themename == "SalinaTheme") { 771 html += '<li onclick="showDetails(\'' + value.eventId + '\')">' + value.title + '</li>'; 772 } else { 773 html += '<li>' + value.title + '</li>'; 774 } 775 } 776 eventCount++; 777 }); 778 html += '</ul>'; 779 } 780 if (events.length > 3) { 781 calendar.themename == "HistoricalLandTheme" 782 ? html += '<div class="view-more-dates mb" onclick="ShowHiddenEvent(this)">+' + (events.length - 3) + ' more</div>' : 783 html += '<div class="view-more-dates mb">+' + (events.length - 3) + ' more</div>'; 784 } 785 } else { 786 html += '<div class="no-events">No events on this day</div>'; 787 } 788 if (calendar.themename == "RiseGlowTheme" || calendar.themename == "HistoricalLandTheme") { 789 $(".calendar-section-thead #day-" + current.getDay() + " .calendar-section-td-events-list").html(html); 790 } else { 791 $(".week-slider #day-" + current.getDay()).html(html); 792 } 793 } 794} 795 796function ShowHiddenEvent(element) { 797 let parentDiv = element.closest('.calendar-section-td-events-list'); 798 799 if (parentDiv) { 800 parentDiv.querySelectorAll('.d-none').forEach(event => { 801 event.classList.remove('d-none'); // Remove 'd-none' 802 event.classList.add('extraevent'); // Add 'extraevent' 803 }); 804
805 // Hide the "view-more-dates" button after revealing all hidden events 806 element.style.display = 'none'; 807 } 808} 809 810function EventSlider() { 811 $("#calendarDiv").hide(); 812 $("#calNoEvent").hide(); 813 var weekStart = new Date(calendar.fullCalendar.view.activeStart); 814 var weekEnd = new Date(calendar.fullCalendar.view.activeEnd); 815 var html = ""; 816 var eventTypeId = $(".eventTab.active").attr("id"); 817 for (var current = weekStart; current < weekEnd; current.setDate(current.getDate() + 1)) { 818 var events = calendar.events.filter(function (obj) { 819 if ((obj.eventDate == current.getDate() || (current.getDate() > obj.eventDate && current.getDate() < obj.eventEndDate)) && obj.eventType == eventTypeId) { 820 return true; 821 } 822 return false; 823 }); 824 html += '<div class="events-data">'; 825 html += '<div class="highlighted-dates text-center eventDateCard" id="' + current + '" >'; 826 html += '<p class="month-date psb">' + GetMonthName(current.getMonth()) + '</p>'; 827 html += '<h5 class="pb">' + current.getDate() + '</h5>'; 828 html += '</div>'; 829 if (events.length > 0) { 830 html += '<ul class="calendarEventList">'; 831 var eventCount = 0; var Id = ""; 832 $.each(events, function (key, value) { 833 if (eventCount < 1) { 834 html += '<li>'; 835 if (value.isAllDays) { 836 html += '<p class="event-time">All Day</p>'; 837 } else { 838 html += '<p class="event-time">' + value.eventStartTime + '-' + value.eventEndTime + '</p>'; 839 } 840 html += '<h5 class="event-heading psb"><a onclick="showDetails(\'' + value.eventId + '\')">' + value.title + '</h5></a>'; 841 html += '</li>'; 842 Id = value.eventId; 843 } 844 eventCount++; 845 }); 846 html += '</ul>'; 847 if (events.length > 1) { 848 html += '<div class="view-more-dates mb"><a onclick="ViewMoreEvents(\'' + current + '\',\'' + Id + '\')">+' + (events.length - 1) + ' more</a></div>'; 849 } 850 } 851 else { 852 html += '<div class="view-more-dates mb">No Events on this day</div>'; 853 } 854 html += '</div>'; 855 } 856 $("#cal-data").html(html); 857 AddDataOnEventSlider(); 858} 859 860function UpcomingEvents() { 861 var today = new Date(); 862 var todayDate = today.setHours(0, 0, 0); 863 // Extract all dates from the JSON object 864 var allDates = calendar.events.map(function (item) { 865 var eventdObj = new Date(item.eventYear + "-" + item.eventMonth + "-" + item.eventDate); 866 return getDataAttr(eventdObj); 867 }); 868 // Convert the Set back to an array 869 var uniqueDatesArray = Array.from(new Set(allDates)); 870 $(".upcoming-events").html(''); 871 var html = ""; var eventDayCount = 0; 872 for (var i = 0; i < uniqueDatesArray.length; i++) { 873 var current = new Date(uniqueDatesArray[i]); 874 var eventStartObj = new Date(current.getTime() + current.getTimezoneOffset() * 1000 * 60); 875 var startDate = eventStartObj.setHours(0, 0, 0); 876 var startDateObj = new Date(startDate); 877 if (todayDate < startDate && eventDayCount < 4) { 878 html = '<div id="day-' + i + '" class="week-date">'; 879 html += '<h5 class="mb">' + GetMonthName(startDateObj.getMonth()) + ' ' + startDateObj.getDate() + ', ' + startDateObj.getFullYear() + '</h5>'; 880 var events = calendar.events.filter(function (obj) { 881 if (obj.eventDate == startDateObj.getDate() || (startDateObj.getDate() > obj.eventDate && startDateObj.getDate() < obj.eventEndDate)) { 882 return true; 883 } 884 return false; 885 }); 886 if (events.length > 0) { 887 html += '<ul>'; 888 var eventCount = 0; 889 $.each(events, function (key, value) { 890 if (eventCount < 3) { 891 html += '<li>
891<a onclick="showDetails(\'' + value.eventId + '\')">' + value.title + '</a></li>'; 892 } 893 eventCount++; 894 }); 895 html += '</ul>'; 896 if (events.length > 2) { 897 html += '<div class="view-more-dates mb">+' + (events.length - 3) + ' more</div>'; 898 } 899 } 900 html += '</div>'; 901 $(".upcoming-events").append(html); 902 eventDayCount++; 903 } 904 } 905 906 if (eventDayCount < 1) { 907 $(".upcoming-events").html('<div class="alert alert-primary" role="alert">No more upcoming events this month!</div>'); 908 } 909} 910 911function GetAllUpcomingEventByLimit(limit) { 912 var today = new Date(); 913 var todayDate = today.setHours(0, 0, 0); 914 var eventStartDate = getDataAttr(new Date(todayDate)); 915 // Extract all dates from the JSON object 916 var events = calendar.events.filter(function (obj) { 917 var eventdObj = new Date(obj.eventYear + "-" + obj.eventMonth + "-" + obj.eventDate); 918 if (this.count < limit && getDataAttr(eventdObj) >= eventStartDate) { 919 this.count++; 920 return true; 921 } 922 return false; 923 }, { count :0}); 924 925 if (events.length < 1) { 926 $("#allUpcomingEventList").html('<div class="alert alert-primary" role="alert">No more upcoming events this month!</div>'); 927 } else { 928 $.each(events, function (key, value) { 929 var index = key + 1; 930 $("#allUpcomingEventList .event-card-" + index).show(); 931 $("#allUpcomingEventList .event-card-" + index).attr('onClick', 'showDetails(\'' + value.eventId + '\')'); 932 $("#allUpcomingEventList .monthname-card-" + index).text(value.eventMonth); 933 $("#allUpcomingEventList .eventdate-card-" + index).text(value.eventDate);
934 $("#allUpcomingEventList .eventheading-card-" + index).text(value.title); 935 $("#allUpcomingEventList .eventtime-card-" + index).text(value.eventStartTime + " - " + value.eventEndTime); 936 $("#allUpcomingEventList .eventlocation-card-" + index).text(value.location); 937 }); 938 } 939} 940 941$(document.body).on('click', '.eventDateCard', function () { 942 ViewMoreEvents($(this).attr('id'), ''); 943}); 944 945function ViewMoreEvents(eventStart, Id) { 946 var eventStartDate = getDataAttr(new Date(eventStart)); 947 var eventTypeId = $(".eventTab.active").attr("id"); 948 var events = calendar.events.filter(function (obj) { 949 var eventdObj = new Date(obj.eventYear + "-" + obj.eventMonth + "-" + obj.eventDate); 950 if (getDataAttr(eventdObj) == eventStartDate && (Id == "" || Id != obj.eventId) && obj.eventType == eventTypeId) { 951 return true; 952 } 953 return false; 954 }); 955 if (events.length > 0) { 956 var innerHtml = ""; 957 var eventIds = events.map(x => x.eventId).join(","); 958 if (eventIds != "") { 959 var url = urlConfig.GetCalendarEventsByIds + "?contentItemids=" + eventIds; 960 $.ajax({ 961 url: url, 962 async: true, 963 success: function (data) { 964 if (data != undefined && data != null && data.length > 0) { 965 $.each(data, function (key, value) { 966 innerHtml += '<div class="row" style="color: #868686;"><div class="col-md-12"><h4 style="margin:0;" id="headingDetails">' + value.title; 967 if (value.visibility != null && value.visibility !== "") { 968 innerHtml += '<div class="row" style="margin-top:15px;" id="divLock"><div class="col-md-2" style="padding: 0px 25px;"><i class="fa fa-lock" aria-hidden="true"> </i></div>'; 969 innerHtml += '<div class="col-md-10"><label id="lblDetailVisibility">' + value.visibility + '</label></div></div>'; 970 } 971 if (value.description != null && value.description !== "") { 972 innerHtml += '<div class="row" style="margin-top:15px;" id="divParagraph"><div class="col-md-2" style="padding: 0px 25px;"><i class="fa fa-paragraph" aria-hidden="true"> </i></div>'; 973 innerHtml += '<div class="col-md-10"><label id="lblDetailDescription">' + value.description + '</label></div></div>'; 974 } 975 if (value.location != null && value.location !== "") { 976 innerHtml += '<div class="row" style="margin-top:15px;" id="divMap"><div class="col-md-2" style="padding: 0px 25px;"><i class="fa fa-map-marker" aria-hidden="true"> </i></div>'; 977 innerHtml += '<div class="col-md-10"><label id="lblDetailLocation">' + value.location + '</label></div></div>'; 978 } 979 if (value.calendarName != null && value.calendarName !== "") { 980 innerHtml += '<div class="row" style="margin-top:15px;" id="divCalendarName"><div class="col-md-2" style="padding: 0px 25px;"><i class="fa fa-calendar" aria-hidden="true"> </i></div>'; 981 innerHtml += '<div class="col-md-10"><label id="lblCalendarName">' + value.calendarName + '</label></div></div>'; 982 } 983 $("#eventContentItemId").val(data.id); 984 if (value.assignUsers != null && value.assignUsers !== "") { 985 var userArray = value.assignUsers.split(','); 986 userArray.forEach(function (item, index) { 987 $(".assignusertagDiv").append('<span class="taginput" onclick="removeAssignedUser(this)">' + item + ' <i class="fa fa-remove"></i></span>'); 988 }); 989 innerHtml += '<div class="row" style="margin-top:15px;" id="divCalendar"><div class="col-md-2" style="padding: 0px 25px;"><i class="fa fa-calendar" aria-hidden="true"></i></div>'; 990 } 991 if (value.eventUrl !== null && value.eventUrl !== "") { 992 var textUrl = (value.urlText != null && value.urlText != "") ? value.urlText : value.eventUrl; 993 innerHtml += '<div class="row" style="margin-top:15px;" id="divEventLink"><div class="col-md-2" style="padding: 0px 25px;"><i class="fa fa-link" aria-hidden="true"> </i></div>'; 994 innerHtml += '<div class="col-md-10"><label id="lblDetailEventLink"><a href="' + value.eventUrl + '" target="_blank" style="word-break: break-word;" >' + textUrl + '</a></label></div></div>'; 995 } 996 if (value.userNameList) { 997 var userNameArray = []; 998 value.userNameList.forEach(function (item, index) { 999 if (item.displayText != null) { 1000 userNameArray.push(item.displayText); 1001 } 1002 }); 1003 innerHtml += '<div class="col-md-10"><label id="lblDetailsUsers">' + userNameArray + '</label></div></div>'; 1004 } 1005 if (value.attachment === null || value.attachment === "" || value.attachment === "[]") { 1006 $("#divAttachment").hide(); 1007 } else { 1008 var attachedURLArr = []; 1009 var attachedNameArr = []; 1010 var AttachmentinnerHtml = "<ul style='padding: 0px;'>"; 1011 if (value.attachment != null && value.attachment != "" && value.attachment != "[]" && value.fileName != null && value.fileName != "" && value.fileName != "[]") { 1012 var attachmentArray = value.attachment.split(','); 1013 attachmentArray = JSON.parse(attachmentArray); 1014 $.each(attachmentArray, function (index, value) { 1015 attachedURLArr.push(value); 1016 }); 1017 var fileNameArray = value.fileName.split(','); 1018 fileNameArray = JSON.parse(fileNameArray); 1019 $.each(fileNameArray, function (index, value) { 1020 attachedNameArr.push(value); 1021 }); 1022 $.each(attachedURLArr, function (index, url) { 1023 var name = attachedNameArr[index]; 1024 AttachmentinnerHtml += '<li class="calendarAttachment"><a style="color: #000;" target="_blank" href="' + url + '">' + name + '</a></li>'; 1025 }); 1026 } 1027 AttachmentinnerHtml += "</ul>"; 1028 innerHtml += '<div class="row" style="margin-top:15px;" id="divAttachment"><div class="col-md-2" style="padding: 0px 25px;"><i class="fa fa-paperclip" aria-hidden="true"> </i></div>'; 1029 innerHtml += '<div class="col-md-10"><label id="lblDetailAttachment">' + AttachmentinnerHtml + '</label></div></div>'; 1030 } 1031 var startDate = new Date(value.startDateString); 1032 var endDate = new Date(value.endDateString); 1033 if (value.isAllDay) { 1034 $("#isAllDay").prop("checked", true); 1035 innerHtml += '</h4 ><label style="font-size: 14px;" id="lblDetailsDateRange">"All Day"</label> <br />'; 1036 } else if (data.isRecurring) { 1037 innerHtml += '</h4 ><label style="font-size: 14px;" id="lblDetailsDateRange">' + moment(value.startTime, ["HH:mm"]).format("h:mm A") + ' - ' + moment(value.endTime, ["HH:mm"]).format("h:mm A") + '</label> <br />'; 1038 } else { 1039 innerHtml += '</h4 ><label style="font-size: 14px;" id="lblDetailsDateRange">' + moment(startDate).format('MMMM D, YYYY hh:mm A') + ' - ' + moment(endDate).format('MMMM D, YYYY hh:mm A') + '</label> <br />'; 1040 } 1041 }); 1042 $("#showEventListModal").modal('show'); 1043 $("#eventList").html(innerHtml); 1044 } 1045 }, 1046 error: function (error) { alert("please reload Page"); } 1047 }); 1048 } 1049 } 1050} 1051
1052function showDetails(contentItem, facilityId) { 1053 var url = urlConfig.getCalendarEventsById + "?contentItemid=" + contentItem; 1054 if (facilityId != undefined && facilityId != "undefined" && facilityId != null && facilityId != "" && facilityId != "null") { 1055 url = urlConfig.GetFacilityAppointmentById + "?facilityAppointmentId=" + contentItem; 1056 } 1057 $.ajax({ 1058 url: url, 1059 async: true, 1060 success: function (data) { 1061 $("#headingDetails").html(data.title); 1062 if (data.visibility == null || data.visibility === "") { 1063 $("#divLock").hide(); 1064 } 1065 else { 1066 $("#divLock").show(); 1067 $("#lblDetailVisibility").text(data.visibility); 1068 } 1069 if (data.description == null || data.description === "") { 1070 $("#divParagraph").hide(); 1071 } 1072 else { 1073 $("#divParagraph").show(); 1074 $("#lblDetailDescription").html(data.description); 1075 } 1076 if (data.location == null || data.location === "") { 1077 $("#divMap").hide(); 1078 } else { 1079 $("#divMap").show(); 1080 $("#lblDetailLocation").text(data.location); 1081 } 1082 if (data.calendarName == null || data.calendarName === "") { 1083 $("#divCalendarName").hide(); 1084 } else { 1085 $("#divCalendarName").show(); 1086 $("#lblCalendarName").text(data.calendarName); 1087 } 1088 $("#eventContentItemId").val(data.id); 1089 if (data.assignUsers != null & data.assignUsers !== "") { 1090 var userArray = data.assignUsers.split(','); 1091 userArray.forEach(function (item, index) { 1092 $(".assignusertagDiv").append('<span class="taginput" onclick="removeAssignedUser(this)">' + item + ' <i class="fa fa-remove"></i></span>'); 1093 }); 1094 $("#divCalendar").show(); 1095 } 1096 else { 1097 $("#divCalendar").hide(); 1098 } 1099 if (data.userNameList) { 1100 var userNameArray = []; 1101 data.userNameList.forEach(function (item, index) { 1102 if (item.displayText != null) { 1103 userNameArray.push(item.displayText); 1104 } 1105 }); 1106 $("#lblDetailsUsers").text(userNameArray); 1107 } 1108 if (data.eventUrl === null || data.eventUrl === "") { 1109 $("#divEventLink").hide(); 1110 } else { 1111 $("#divEventLink").show(); 1112 var textUrl = (data.urlText != null && data.urlText != "") ? data.urlText : data.eventUrl; 1113 $("#lblDetailEventLink").html('<a href="' + data.eventUrl + '" target="_blank" style="word-break: break-word;">' + textUrl + '</a>'); 1114 } 1115 if (data.attachment === null || data.attachment === "" || data.attachment === "[]") { 1116 $("#divAttachment").hide(); 1117 } else { 1118 var attachedURLArr = []; 1119 var attachedNameArr = []; 1120 var innerHtml = "<ul style='padding: 0px;'>"; 1121 if (data.attachment != null && data.attachment != "" && data.attachment != "[]" && data.fileName != null && data.fileName != "" && data.fileName != "[]") { 1122 $("#divAttachment").show(); 1123 var attachmentArray = data.attachment.split(','); 1124 attachmentArray = JSON.parse(attachmentArray); 1125 $.each(attachmentArray, function (index, value) { 1126 attachedURLArr.push(value); 1127 }); 1128 var fileNameArray = data.fileName.split(','); 1129 fileNameArray = JSON.parse(fileNameArray); 1130 $.each(fileNameArray, function (index, value) { 1131 attachedNameArr.push(value); 1132 }); 1133 $.each(attachedURLArr, function (index, url) { 1134 var name = attachedNameArr[index]; 1135 innerHtml += '<li class="calendarAttachment"><a style="color: #000;" target="_blank" href="' + url + '">' + name + '</a></li>'; 1136 }); 1137 } 1138 innerHtml += "</ul>"; 1139 $("#lblDetailAttachment").html(innerHtml); 1140 } 1141 var startDate = new Date(data.startDateString); 1142 var endDate = new Date(data.endDateString); 1143 if (data.isAllDay) { 1144 $("#isAllDay").prop("checked", true); 1145 $('#lblDetailsDateRange').text("All Day"); 1146 } else if (data.isRecurring) { 1147 $('#lblDetailsDateRange').text(moment(data.startTime, ["HH:mm"]).format("h:mm A") + ' - ' + moment(data.endTime, ["HH:mm"]).format("h:mm A")); 1148 } else { 1149 $('#lblDetailsDateRange').text(moment(startDate).format('MMMM D, YYYY hh:mm A') + ' - ' + moment(endDate).format('MMMM D, YYYY hh:mm A')); 1150 } 1151 if (data.rrule != null && data.rrule !== '') { 1152 Recurrance(data.rrule); 1153 $('#lblDetailsRRule').show(); 1154 } else { 1155 $('#lblDetailsRRule').hide(); 1156 }
1157 $("#showDetailsModal").modal('show'); 1158 }, 1159 error: function (error) { alert("please reload Page"); } 1160 }); 1161} 1162 1163function addClassByDate(date) { 1164 var dataAttr = getDataAttr(date); 1165 $("[data-date='" + dataAttr + "']").addClass("hasEvent"); 1166} 1167 1168function addActiveClassByDate(date) { 1169 $("#calendarDivs").find(".activeEventDate").removeClass("activeEventDate"); 1170 var dataAttr = getDataAttr(date); 1171 $("[data-date='" + dataAttr + "']").addClass("activeEventDate"); 1172} 1173 1174function getDataAttr(date) { 1175 var month = (date.getMonth() + 1); 1176 return date.getFullYear() + "-" + (month.toString().length === 2 ? month : "0" + month) + "-" + (date.getDate().toString().length === 2 ? date.getDate() : "0" + date.getDate()); 1177}; 1178 1179function bindEvents() { 1180 $("#eventsDiv").html(""); 1181 calendar.events.sort(function (a, b) { 1182 return sort(a.eventDate, b.eventDate, true) 1183 }); 1184 1185 const calendarEventFilterData = calendar.events.filter( 1186 (item, index, self) => 1187 index === self.findIndex((t) => t.eventDate === item.eventDate && t.title === item.title) 1188 ); 1189 1190 if (calendarEventFilterData.length > 0) { 1191 var eventCount = 0; var filterDate = ""; var filterDateObj = null; var eventDisplayDate = ""; 1192 var today = new Date(); 1193 var todayDate = today.getDate(); 1194 var filterEventDate = todayDate; 1195 if (calendar.isGetEventByDate && calendarEventFilterData != "") { 1196 filterDateObj = new Date(calendar.fullCalendar.getDate().getFullYear() + "-" + (calendar.fullCalendar.getDate().getMonth() + 1) + "-" + calendar.eventDate); 1197 filterDateObj = new Date(filterDateObj.getTime() + filterDateObj.getTimezoneOffset() * 1000 * 60); 1198 filterEventDate = filterDateObj.getDate(); 1199 filterDate = filterDateObj.setHours(0, 0, 0); 1200 } 1201 $.each(calendarEventFilterData, function (key, value) { 1202 eventDisplayDate = value.eventDate; 1203 var evenEndtdObj = null; 1204 var isShow = false; 1205 var eventStartObj = new Date(value.eventStart); 1206 eventStartObj = new Date(eventStartObj.getTime() + eventStartObj.getTimezoneOffset() * 1000 * 60); 1207 var startDate = eventStartObj.setHours(0, 0, 0); 1208 var endDate = startDate; 1209 if (value.eventEndYear != undefined && value.eventEndMonth != undefined && value.eventEndDate != undefined) { 1210 var eventdObj = new Date(value.eventEndYear + "-" + value.eventEndMonth + "-" + value.eventEndDate); 1211 eventdObj = new Date(eventdObj.getTime() + eventdObj.getTimezoneOffset() * 1000 * 60); 1212 evenEndtdObj = eventdObj; 1213 if (value.eventEndDate != null && value.eventEndMonth != null && value.eventEndYear != null && value.eventEndDate != "" && value.eventEndMonth != "" && value.eventEndYear != "") { 1214 evenEndtdObj = new Date(value.eventEndYear + "-" + value.eventEndMonth + "-" + value.eventEndDate); 1215 evenEndtdObj.setDate(evenEndtdObj.getDate() + 1); 1216 evenEndtdObj = new Date(evenEndtdObj.getTime() + evenEndtdObj.getTimezoneOffset() * 1000 * 60 - 1); 1217 } 1218 endDate = evenEndtdObj.setHours(0, 0, 0); 1219 } 1220 if (calendar.isGetEventByDate && filterDateObj != null && filterDate >= startDate && filterDate <= endDate) { 1221 isShow = true; 1222 eventDisplayDate = filterEventDate; 1223 } else if (!calendar.isGetEventByDate && (!calendar.isFirstLoad || value.eventDate >= todayDate || calendar.isShowMonthlyAllEvents)) { 1224 isShow = true; 1225 } 1226 if (isShow && eventDisplayDate !== null) { 1227 eventCount++; 1228 calendar.appendEvent(eventDisplayDate, value.title, value.eventDay, value.eventStartTime, value.eventEndTime, value.calenderType, 1229 value.location, value.description, value.eventMonth, value.isAllDays, value.eventId, value.facilityId); 1230 } 1231 }); 1232 if (calendar.isGetEventByDate && calendar.eventDate != "") { 1233 var weekday = GetDaysName(filterDateObj.getDay()); 1234 $(".calendarEventDate").html(calendar.eventDate); 1235 $(".calendarEventMonth").html(GetMonthName(calendar.eventMonth - 1)); 1236 $(".calendarEventDay").html(weekday); 1237 $(".calendarHeadingYear").html(filterDateObj.getFullYear()); 1238 } 1239 if (eventCount <= 0) { 1240 calendar.noEvent = true; 1241 if (calendar.isGetEventByDate) 1242 $("#eventsDiv").append('<div class="alert alert-primary" role="alert">No more events this day!</div>'); 1243 else 1244 $("#eventsDiv").append('<div class="alert alert-primary" role="alert">No more events this month!</div>'); 1245 } 1246 } else { 1247 calendar.noEvent = true; 1248 $("#eventsDiv").append('<div class="alert alert-primary" role="alert">No more events this month!</div>'); 1249 } 1250 if (calendar.themename == "ShermanCounty") { 1251 if (calendar.noEvent) { 1252 $("#calendareventparent").addClass('hideSidebar'); 1253 } else { 1254 $("#calendareventparent").removeClass('hideSidebar'); 1255 } 1256 } 1257} 1258 1259function sort(a, b, asc, group) { 1260 var result; 1261 if (typeof asc === "undefined") asc = true; 1262 if (a === null) return 1; 1263 if (b === null) return -1; 1264 if (a === null && b === null) return 0; 1265 result = a - b; 1266 if (isNaN(result)) { 1267 return (asc) ? a.toString().localeCompare(b) : b.toString().localeCompare(a); 1268 } 1269 else { 1270 return (asc) ? result : -result; 1271 } 1272} 1273 1274function GetMonthName(value) { 1275 if (value === 0) { 1276 return "Jan"; 1277 } 1278 else if (value === 1) { 1279 return "Feb"; 1280 } 1281 else if (value === 2) { 1282 return "Mar"; 1283 } 1284 else if (value === 3) { 1285 return "Apr"; 1286 } 1287 else if (value === 4) { 1288 return "May"; 1289 } 1290 else if (value === 5) { 1291 return "Jun"; 1292 } 1293 else if (value === 6) { 1294 return "Jul"; 1295 } 1296 else if (value === 7) { 1297 return "Aug"; 1298 } 1299 else if (value === 8) { 1300 return "Sep"; 1301 } 1302 else if (value === 9) { 1303 return "Oct"; 1304 } 1305 else if (value === 10) { 1306 return "Nov"; 1307 } 1308 else if (value === 11) { 1309 return "Dec"; 1310 } 1311}; 1312 1313function GetDaysName(value) { 1314 if (value === 1) { 1315 return "Monday"; 1316 } 1317 else if (value === 2) { 1318 return "Tuesday"; 1319 } 1320 else if (value === 3) { 1321 return "Wednesday"; 1322 } 1323 else if (value === 4) { 1324 return "Thursday"; 1325 } 1326 else if (value === 5) { 1327 return "Friday"; 1328 } 1329 else if (value === 6) { 1330 return "Saturday"; 1331 } 1332 else if (value === 0) { 1333 return "Sunday"; 1334 } 1335}; 1336 1337$(".fc-next-button").click(function () { 1338 calendar.eventDate = "1"; 1339 getNextMonth(); 1340}); 1341$(".fc-prev-button").click(function () { 1342 if (calendar.isGetEventByDate) { 1343 calendar.eventDate = "1"; 1344 } 1345 getPrevMonth(); 1346}); 1347 1348$("#calendar-view-type").change(function () { 1349 CalendarViewChange($(this).val(), true); 1350}); 1351 1352$(".calendar-view").click(function () { 1353 calendar.calendarViewType = $(this).val(); 1354 CalendarViewChange($(this).val(), true); 1355}); 1356 1357function CalendarViewChange(View, isReset) { 1358 var filterEventType = ''; 1359 if (calendar.themename == "SalinaTheme") { 1360 filterEventType = $(".filterEventType.active").attr("id"); 1361 }else if (calendar.themename == "HistoricalLandTheme") { 1362 filterEventType = "all"; 1363 } 1364 if (calendar.themename == "SalinaTheme" || calendar.themename == "HistoricalLandTheme") { 1365 if (View == "week") { 1366 1367 $("#calendar").hide(); 1368 $(".week-slider").show(); 1369 calendar.fullCalendar.changeView('listWeek'); 1370 calendar.defaultView = "listWeek"; 1371 if (isReset) { 1372 calendar.events = []; 1373 FilterEvents(filterEventType); 1374 } 1375 } else if (View == "month") { 1376 $("#calendar").show(); 1377 $(".week-slider").hide(); 1378 calendar.fullCalendar.changeView('dayGridMonth'); 1379 FilterEvents(filterEventType); 1380 } 1381 } 1382} 1383 1384$(".filterEventType").click(function () { 1385 FilterEvents($(this).attr("id"), false); 1386}); 1387 1388$(".filterEventsCalendarType").click(function () { 1389 FilterEvents($(this).attr("id"), true); 1390}); 1391 1392function FilterEvents(eventTypeId, filterbyCalendarType = false) { 1393 var listEvents = calendar.allEvents.concat(calendar.eventList); 1394 listEvents = listEvents.filter(function (el, i, x) { 1395 return x.filter(function (obj, j) { 1396 return (obj.eventDate === el.eventDate && obj.title === el.title) && (x = j); 1397 }) && i == x; 1398 }); 1399 if (eventTypeId == "all") { 1400 calendar.events = []; 1401 calendar.allEvents = []; 1402 if (calendar.themename != "SalinaTheme") { 1403 calendar.fillEvents(listEvents); 1404 } 1405 calendar.renderEvents({ lstCalendarWidgetEvents: calendar.eventList, lstICalendarEventsData: [], lstGoogleCalendarEvents: [] }); 1406 if ($("#calendar-view-type").val() == "month" || calendar.calendarViewType == "month") { 1407 $("#calendar").show(); 1408 $(".week-slider").hide(); 1409 calendar.fullCalendar.changeView('dayGridMonth'); 1410 } else if (calendar.themename == "SalinaTheme") { 1411 calendar.fillEvents(calendar.eventList); 1412 WeekEventSlider(); 1413 } 1414 } else if (eventTypeId != "") { 1415 if ($("#calendar-view-type").val() == "month" || filterbyCalendarType) { 1416 var events = listEvents.filter(function (obj) { 1417 return filterbyCalendarType 1418 ? obj.calenderType == eventTypeId 1419 : obj.eventType == eventTypeId; 1420 }); 1421 calendar.renderEvents({ lstCalendarWidgetEvents: events, lstICalendarEventsData: [], lstGoogleCalendarEvents: [] }); 1422 if (filterbyCalendarType) { 1423 calendar.events = []; 1424 calendar.fillEvents(events); 1425 } else { 1426 $("#calendar").show(); 1427 $(".week-slider").hide(); 1428 calendar.fullCalendar.changeView('dayGridMonth'); 1429 } 1430 } else { 1431 var events = listEvents.filter(function (obj) { 1432 if (obj.eventType == eventTypeId) { return true; } 1433 return false;
1434 }); 1435 calendar.events = []; 1436 calendar.fillEvents(events); 1437 } 1438 } 1439} 1440 1441$(".eventTab").click(function () { 1442 EventSlider(); 1443}); 1444 1445$(".fc-next-day").click(function () { 1446 if (calendar.isGetEventByDate && calendar.eventDate != "") { 1447 var tomorrow = new Date(calendar.fullCalendar.getDate().getFullYear(), calendar.fullCalendar.getDate().getMonth(), parseInt(calendar.eventDate) + 1); 1448 calendar.eventDate = tomorrow.getDate(); 1449 calendar.eventMonth = (tomorrow.getMonth() + 1); 1450 calendar.eventYear = tomorrow.getFullYear(); 1451 var weekday = GetDaysName(tomorrow.getDay()); 1452 $(".calendarEventDate").html(calendar.eventDate); 1453 $(".calendarEventMonth").html(GetMonthName(calendar.eventMonth - 1)); 1454 $(".calendarEventDay").html(weekday); 1455 $(".calendarHeadingYear").html(tomorrow.getFullYear()); 1456 addActiveClassByDate(tomorrow); 1457 calendar.events = []; 1458 calendar.fillEvents(calendar.eventList); 1459 if (calendar.eventMonth != (calendar.fullCalendar.getDate().getMonth() + 1)) { 1460 getNextMonth(); 1461 } 1462 } 1463}); 1464$(".fc-prev-day").click(function () { 1465 if (calendar.isGetEventByDate && calendar.eventDate != "") { 1466 var tomorrow = new Date(calendar.fullCalendar.getDate().getFullYear(), calendar.fullCalendar.getDate().getMonth(), parseInt(calendar.eventDate) - 1); 1467 calendar.eventDate = tomorrow.getDate(); 1468 calendar.eventMonth = (tomorrow.getMonth() + 1); 1469 calendar.eventYear = tomorrow.getFullYear(); 1470 addActiveClassByDate(tomorrow); 1471 1472 var weekday = GetDaysName(tomorrow.getDay()); 1473 $(".calendarEventDate").html(calendar.eventDate); 1474 $(".calendarEventMonth").html(GetMonthName(calendar.eventMonth - 1)); 1475 $(".calendarEventDay").html(weekday); 1476 $(".calendarHeadingYear").html(tomorrow.getFullYear()); 1477 calendar.events = []; 1478 calendar.fillEvents(calendar.eventList); 1479 if (calendar.eventMonth != (calendar.fullCalendar.getDate().getMonth() + 1)) { 1480 getPrevMonth(); 1481 } 1482 } 1483}); 1484 1485function getPrevMonth() { 1486 calendar.isFirstLoad = false; 1487 calendar.fullCalendar.prev(); 1488 calendar.updateWidgets(calendar.fullCalendar.view.activeStart, calendar.fullCalendar.view.activeEnd); 1489} 1490 1491function getNextMonth() { 1492 calendar.isFirstLoad = false; 1493 calendar.fullCalendar.next(); 1494 calendar.updateWidgets(calendar.fullCalendar.view.activeStart, calendar.fullCalendar.view.activeEnd); 1495} 1496const INTERVAL = "INTERVAL="; 1497const FREQ = "FREQ="; 1498const BYDAY = "BYDAY="; 1499const COUNT = "COUNT="; 1500function Recurrance(stringRrule) { 1501 stringRrule = stringRrule.replace("RRULE:", ""); 1502 var rulesArray = stringRrule.split(";"); 1503 var interval; 1504 var freq; 1505 var byday; 1506 var count; 1507 $(rulesArray).each(function (index, value) { 1508 if (value.includes(INTERVAL)) { 1509 interval = value.replace(INTERVAL, ""); 1510 } 1511 if (value.includes(FREQ)) { 1512 freq = value.replace(FREQ, ""); 1513 } 1514 if (value.includes(BYDAY)) { 1515 byday = value.replace(BYDAY, ""); 1516 } 1517 if (value.includes(COUNT)) { 1518 count = value.replace(COUNT, ""); 1519 } 1520 }); 1521 RRuleText(interval, freq, byday, count); 1522} 1523function RRuleText(interval, freq, byday, count) { 1524 var RruleStringArray = ["Every"]; 1525 var signwithDays = ""; 1526 var countWeek = "1"; 1527 if (interval !== "" && interval !== "1") { 1528 RruleStringArray.push(interval); 1529 } 1530 if (freq === "DAILY") { 1531 if (interval > 1) { 1532 RruleStringArray.push("Days"); 1533 } 1534 else { 1535 RruleStringArray.push("Day"); 1536 } 1537 1538 } else if (freq === "WEEKLY") { 1539 if (interval > 1) { 1540 RruleStringArray.push("Weeks"); 1541 } else { 1542 RruleStringArray.push("Week"); 1543 } 1544 } 1545 else if (freq === "MONTHLY") { 1546 if (interval > 1) { 1547 RruleStringArray.push("Months"); 1548 } else { 1549 RruleStringArray.push("Month"); 1550 } 1551 if (byday !== undefined && byday !== null && byday !== "") { 1552 var isWeekDay = byday.includes("+") || byday.includes("-"); 1553 if (isWeekDay) { 1554 RruleStringArray.push("on the"); 1555 var monthStartOrEnd = byday.includes("-") ? "last" : "start"; 1556 var arrayDays = byday.split(","); 1557 $(arrayDays).each(function (indexRule, rule) { 1558 for (var i = 0; i < rule.length; i++) { 1559 if (rule[i] === "1" || rule[i] === "2" || rule[i] === "3" || rule[i] === "4" || rule[i] === "5") { 1560 signwithDays = weekNumberString(rule[i]) + " "; 1561 countWeek = rule[i]; 1562 } 1563 } 1564 }); 1565 if (monthStartOrEnd === "last") { 1566 if (countWeek === "1") { 1567 signwithDays = ""; 1568 } 1569 signwithDays += "last "; 1570 } 1571 RruleStringArray.push(signwithDays); 1572 } 1573 } 1574 } 1575 else if (freq === "YEARLY") { 1576 if (interval > 1) { 1577 RruleStringArray.push("Years"); 1578 } 1579 else { 1580 RruleStringArray.push("Year"); 1581 } 1582 } 1583 if (byday !== undefined && byday !== null && byday !== "") { 1584 var arrayDays = byday.split(","); 1585 var days = ""; 1586 var sign = "+"; 1587 var isEnd = byday.includes("-") ? true : false;
1588 if (isEnd) { 1589 sign = "-"; 1590 } 1591 $(arrayDays).each(function (indexRule, rule) { 1592 rule = rule.replace(sign + countWeek, ""); 1593 if (rule === 'SA') { 1594 days += "Saturday, "; 1595 } 1596 if (rule === 'SU') { 1597 days += "Sunday, "; 1598 } 1599 if (rule === 'MO') { 1600 days += "Monday, "; 1601 } 1602 if (rule === 'TU') { 1603 days += "Tuesday, "; 1604 } 1605 if (rule === 'WE') { 1606 days += "Wednesday, "; 1607 } 1608 if (rule === 'TH') { 1609 days += "Thursday, "; 1610 } 1611 if (rule === 'FR') { 1612 days += "Friday, "; 1613 } 1614 }); 1615 var Totalday = days.substring(0, days.length - 2); 1616 RruleStringArray.push(Totalday); 1617 } 1618 if (count === '1') { 1619 RruleStringArray.push("For " + count + " Time"); 1620 } 1621 else if (count > 1) { 1622 RruleStringArray.push("For " + count + " Times"); 1623 } 1624 $('#lblDetailsRRule').text(RruleStringArray.join(" ")); 1625}; 1626 1627function weekNumberString(number) { 1628 var dayCount = ""; 1629 switch (number) { 1630 case "1": 1631 dayCount = "first" 1632 break; 1633 case "2": 1634 dayCount = "2nd" 1635 break; 1636 case "3": 1637 dayCount = "3rd" 1638 break; 1639 case "4": 1640 dayCount = "4th" 1641 break; 1642 case "5": 1643 dayCount = "5th" 1644 break; 1645 } 1646 return dayCount; 1647} 1648 1649var calendarPicker = { 1650 divId: "", 1651 fullCalendar: "", 1652 defaultView: "", 1653 init: function () { 1654 calendarPicker.renderPicker(); 1655 calendarPicker.addActiveClassOndate(new Date()); 1656 }, 1657 renderPicker: function () { 1658 var calendarEl = document.getElementById(calendarPicker.divId); 1659 var defaultDate = Date.now(); 1660 if (calendarPicker.fullCalendar !== "") { 1661 defaultDate = calendarPicker.fullCalendar.getDate(); 1662 calendarPicker.defaultView = calendarPicker.fullCalendar.view.type; 1663 calendarPicker.fullCalendar.destroy(); 1664 } 1665 calendarPicker.fullCalendar = new FullCalendar.Calendar(calendarEl, { 1666 timeZone: 'local', 1667 initialView: calendarPicker.defaultView, 1668 initialDate: defaultDate, 1669 selectable: false, 1670 contentHeight: 'auto', 1671 headerToolbar: { 1672 center: '', 1673 left: '', 1674 right: '', 1675 }, 1676 dateClick: function (info) { 1677 var selectedDate = new Date(info.dateStr); 1678 calendarPicker.addActiveClassOndate(selectedDate); 1679 var givenDate = moment(selectedDate); 1680 var startOfWeek = givenDate.startOf('isoWeek').toDate(); 1681 SetWeeklyCalendarByStartDate(startOfWeek) 1682 } 1683 1684 }); 1685 $(".calendarMonthHeading").text(calendarPicker.fullCalendar.currentData.viewTitle); 1686 calendarPicker.render(); 1687 }, 1688 render: function () { 1689 calendarPicker.fullCalendar.render(); 1690 }, 1691 addActiveClassOndate: function (activeDate) { 1692 $("#" + calendarPicker.divId).find(".activeSelectedDate").removeClass("activeSelectedDate"); 1693 var activeDateAttr = getDataAttr(activeDate); 1694 $("[data-date='" + activeDateAttr + "']").addClass("activeSelectedDate"); 1695 } 1696}; 1697 1698$(".fc-next-button-picker").click(function () { 1699 calendarPicker.fullCalendar.next(); 1700 $(".calendarMonthHeading").text(calendarPicker.fullCalendar.currentData.viewTitle); 1701}); 1702$(".fc-prev-button-picker").click(function () { 1703 calendarPicker.fullCalendar.prev(); 1704 $(".calendarMonthHeading").text(calendarPicker.fullCalendar.currentData.viewTitle); 1705}); 1706 1707function SetWeeklyCalendarByStartDate(startOfWeek) { 1708 var date = new Date(startOfWeek); 1709 calendar.gotoDate(date); 1710 $('.calendar-section-dropdown').removeClass('active'); 1711}
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.