diff --git a/web/src/components/calendar/Calendar.vue b/web/src/components/calendar/Calendar.vue index eb6a8799..6ebac3fa 100644 --- a/web/src/components/calendar/Calendar.vue +++ b/web/src/components/calendar/Calendar.vue @@ -8,90 +8,89 @@ export default { FullCalendar, MonthPicker }, - - props: { events: { type: Array, required: false }, sizeChange: { type: Number, requred: false }, isMySchedule: { type: Boolean, requred: false }}, + + props: { events: { type: Array, required: false }, sizeChange: { type: Number, requred: false }, isMySchedule: { type: Boolean, requred: false } }, methods: { - changeMonth (date) { - this.date = date; - this.$refs.calendar.getApi().gotoDate(date.from); - this.$refs.jumpMonthModal.hide(); - this.calendarOptions.customButtons['customJumpToDate'].text = `Schedule for ${date.month} ${date.year}`; - - this.$refs.calendar.getApi().render(); - this.currentSelectedMonth = new Date(date.from).getMonth() + 1; - this.currentSelectedYear = date.year; + changeMonth(date) { + this.date = date; + this.$refs.calendar.getApi().gotoDate(date.from); + this.$refs.jumpMonthModal.hide(); + this.calendarOptions.customButtons['customJumpToDate'].text = `Schedule for ${date.month} ${date.year}`; + + this.$refs.calendar.getApi().render(); + this.currentSelectedMonth = new Date(date.from).getMonth() + 1; + this.currentSelectedYear = date.year; }, handleMonthChange(info) { const calendarApi = this.$refs.calendar.getApi(); this.$emit('monthChange', calendarApi.getDate()); const today = new Date(); - if (today >= info.start && today < info.end) - { - this.calendarOptions.customButtons['customJumpToDate'].text = `Schedule for ${new Date().toLocaleDateString('en-US',{ year: 'numeric', month: 'long' }).replace(',', '')}`; - this.currentSelectedMonth = new Date().getMonth() + 1; - this.currentSelectedYear = new Date().getFullYear(); - } + if (today >= info.start && today < info.end) { + this.calendarOptions.customButtons['customJumpToDate'].text = `Schedule for ${new Date().toLocaleDateString('en-US', { year: 'numeric', month: 'long' }).replace(',', '')}`; + this.currentSelectedMonth = new Date().getMonth() + 1; + this.currentSelectedYear = new Date().getFullYear(); + } }, customEventContent(arg) { if (arg.event.extendedProps.assignment) { - if(this.isMySchedule) - { - return { html: ` + if (this.isMySchedule) { + return { + html: `
- ${"
" + arg.event.extendedProps.assignment.locationName + (arg.event.extendedProps.assignment.isVideo ? "" : '') + "
" } -
${arg.event.extendedProps.showAM ? "AM" : ''}${ arg.event.extendedProps.assignment.activityAm.activityDescription}${arg.event.extendedProps.assignment.activityAm.courtRoomCode ? "(" + arg.event.extendedProps.assignment.activityAm.courtRoomCode + ")" : ''}
- ${arg.event.extendedProps.showPMLocation ? "
" + arg.event.extendedProps.assignment.activityPm.locationName + (arg.event.extendedProps.assignment.isVideo ? "" : '') + "
" : '' } - ${arg.event.extendedProps.showPM ? "
PM"+ arg.event.extendedProps.assignment.activityPm.activityDescription+"" + (arg.event.extendedProps.assignment.activityPm.courtRoomCode ? "(" + arg.event.extendedProps.assignment.activityPm.courtRoomCode + ")" : '') +"
" : '' } + ${"
" + arg.event.extendedProps.assignment.locationName + (arg.event.extendedProps.assignment.isVideo ? "" : '') + "
"} +
${arg.event.extendedProps.showAM ? "AM" : ''}${arg.event.extendedProps.assignment.activityAm.activityDescription}${arg.event.extendedProps.assignment.activityAm.courtRoomCode ? "(" + arg.event.extendedProps.assignment.activityAm.courtRoomCode + ")" : ''}
+ ${arg.event.extendedProps.showPMLocation ? "
" + arg.event.extendedProps.assignment.activityPm.locationName + (arg.event.extendedProps.assignment.isVideo ? "" : '') + "
" : ''} + ${arg.event.extendedProps.showPM ? "
PM" + arg.event.extendedProps.assignment.activityPm.activityDescription + "" + (arg.event.extendedProps.assignment.activityPm.courtRoomCode ? "(" + arg.event.extendedProps.assignment.activityPm.courtRoomCode + ")" : '') + "
" : ''}
` }; - } - return { - html: ` + } + return { + html: `
- ${"
" + arg.event.extendedProps.rotaInitials + ' - ' + arg.event.extendedProps.assignment.locationName + "
" } -
${arg.event.extendedProps.showAM ? "AM" : ''}${ arg.event.extendedProps.assignment.activityAm.activityDescription}${arg.event.extendedProps.assignment.activityAm.courtRoomCode ? "(" + arg.event.extendedProps.assignment.activityAm.courtRoomCode + ")" : ''}
- ${arg.event.extendedProps.showPMLocation ? "
" + arg.event.extendedProps.assignment.activityPm.locationName + "
" : '' } - ${arg.event.extendedProps.showPM ? "
PM"+ arg.event.extendedProps.assignment.activityPm.activityDescription+"" + (arg.event.extendedProps.assignment.activityPm.courtRoomCode ? "(" + arg.event.extendedProps.assignment.activityPm.courtRoomCode + ")" : '') +"
" : '' } + ${"
" + arg.event.extendedProps.rotaInitials + ' - ' + arg.event.extendedProps.assignment.locationName + "
"} +
${arg.event.extendedProps.showAM ? "AM" : ''}${arg.event.extendedProps.assignment.activityAm.activityDescription}${arg.event.extendedProps.assignment.activityAm.courtRoomCode ? "(" + arg.event.extendedProps.assignment.activityAm.courtRoomCode + ")" : ''}
+ ${arg.event.extendedProps.showPMLocation ? "
" + arg.event.extendedProps.assignment.activityPm.locationName + "
" : ''} + ${arg.event.extendedProps.showPM ? "
PM" + arg.event.extendedProps.assignment.activityPm.activityDescription + "" + (arg.event.extendedProps.assignment.activityPm.courtRoomCode ? "(" + arg.event.extendedProps.assignment.activityPm.courtRoomCode + ")" : '') + "
" : ''}
` - }; - } + }; + } }, customizeDayCell(info) { const dayEl = info.el; const linkDate = new Date(info.date.toString()); - const link = `` - dayEl.innerHTML = (new Date().setHours(0,0,0,1) <= new Date(info.date.toString()).setHours(23,59,0,1) && new Date(info.date.toString()) <= new Date(Date.now() + 10 * 24 * 60 * 60 * 1000)) ? link : ''; + const link = `` + dayEl.innerHTML = (new Date().setHours(0, 0, 0, 1) <= new Date(info.date.toString()).setHours(23, 59, 0, 1) && new Date(info.date.toString()) <= new Date(Date.now() + 10 * 24 * 60 * 60 * 1000)) ? link : ''; dayEl.classList.add('custom-day-class'); - }, - + }, + handleDateClick(info) { console.log(info); - // this.popoverEvent = info.event; - // const popover = this.$refs.popover; - - // if (this.popperInstance) { - // this.popperInstance.destroy(); - // } - // this.popperInstance = createPopper(info.el, popover, { - // placement: 'top', - // }); - // popover.style.display = 'block'; + // this.popoverEvent = info.event; + // const popover = this.$refs.popover; + + // if (this.popperInstance) { + // this.popperInstance.destroy(); + // } + // this.popperInstance = createPopper(info.el, popover, { + // placement: 'top', + // }); + // popover.style.display = 'block'; }, closePopover() { - this.popoverEvent = null; - if (this.popperInstance) { - this.popperInstance.destroy(); - this.popperInstance = null; + this.popoverEvent = null; + if (this.popperInstance) { + this.popperInstance.destroy(); + this.popperInstance = null; } }, handleEventClick(info) { console.log(info); - // this.showSelectedEventModal = true; - // this.selectedEvent = {...info.event._def, date: info.event.start? info.event.start : null}; + // this.showSelectedEventModal = true; + // this.selectedEvent = {...info.event._def, date: info.event.start? info.event.start : null}; } }, watch: { @@ -179,27 +178,30 @@ export default { background-position: center; background-size: contain; } -.daytime{ - padding:1px 8px; - font-weight:normal; - color:#fff; - background-color:#183A4A; + +.daytime { + padding: 1px 8px; + font-weight: normal; + color: #fff; + background-color: #183A4A; margin-right: 8px; border-radius: 32px; } .popover { - display: none; - position: absolute; - background-color: white; - padding: 10px; - border: 1px solid #ccc; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - z-index: 1000; + display: none; + position: absolute; + background-color: white; + padding: 10px; + border: 1px solid #ccc; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + z-index: 1000; } + .fc-day { - position:relative; + position: relative; } + .custom-day { position: absolute; top: 5px; @@ -210,7 +212,8 @@ export default { background-repeat: no-repeat; background-position: center; z-index: 10; -} +} + .fc-day:hover { background-color: #B4E5FF; } @@ -289,14 +292,17 @@ export default { height: 20px; } -.fc-col-header-cell { +.fc-col-header-cell, +.fc-col-header-cell a { border-left: 0 !important; border-right: 0 !important; border-top: 0 !important; - font-family: "Work Sans", sans-serif; + font-family: WorkSans-Medium, "Work Sans Medium", "Work Sans", sans-serif; text-transform: capitalize; - + text-decoration: none; + color: #494949; + font-weight: 500; } .fc-toolbar-chunk:nth-child(2) { @@ -306,13 +312,17 @@ export default { justify-content: center; } -.fc-scrollgrid-sync-table .fc-day{ +.fc-scrollgrid-sync-table .fc-day { height: 120px; } -.fc .fc-daygrid-day-top { + +.fc .fc-daygrid-day-top, +.fc .fc-daygrid-day-top a { flex-direction: row; - font-family: "Work Sans", sans-serif; + font-family: WorkSans-Medium, "Work Sans Medium", "Work Sans", sans-serif; font-weight: bold; + text-decoration: none; + color: #494949; } .fc-day-sat, @@ -403,89 +413,105 @@ export default { font-weight: 700; color: rgb(30, 152, 215); } -.month-picker__container{ - box-shadow:none; - margin: auto; - } - .month-picker__year{ - box-shadow:none; - } - .month-picker__year p{ - font-weight: normal; - } - .month-picker__year button, - .month-picker__year button:hover{ - box-shadow:none; - background-color: transparent; - border: 0px; - } - .month-picker__month{ - margin: 5px; - box-shadow:none; - color:#183A4A; - border:1px solid transparent; - background-color: #f2f2f2; - } - .month-picker{ - box-shadow:none; - } - .month-picker__month:hover, - .month-picker__container .selected{ - border: 1px solid #55b0f5; - font-weight: bold; - background-color: #ecf4ff; - box-shadow:none; - color:#183A4A; - text-shadow: none; - } - .event-modal-body{ - padding:10px; - font-size:14px; - } - .event-modal-body .title{ - color: #000; - font-size:14px; - } - .event-modal-body .date{ - padding:10px 0; - font-weight:bold; - } - .event-modal-body .city-title:before{ - content:''; - background-image: url('../../assets/video.svg'); - width:15px; - height:10px; - margin-right:10px; - display:block; - } - .event-modal-body .city-title{ - display:Flex; - align-items: center; - justify-content: flex-start; - } - .event-modal-body .city .icon-block{ - width:15px; - height:10px; - background-image: url('../../assets/video.svg'); - } - .event-modal-body .city{ - display:Flex; - align-items: center; - justify-content: space-between; - } - .event-modal-body .row{ - padding:10px 0; - border-top:1px solid #c5c3c5; - } - .event-modal-body .continuation{ - margin-top: 10px; - flex-direction: column; - } - .event-modal-body .continuation ul{ - list-style:none; - display:block - } +.month-picker__container { + box-shadow: none; + margin: auto; +} + +.month-picker__year { + box-shadow: none; +} + +.month-picker__year p { + font-weight: normal; +} + +.month-picker__year button, +.month-picker__year button:hover { + box-shadow: none; + background-color: transparent; + border: 0px; +} + +.month-picker__month { + margin: 5px; + box-shadow: none; + color: #183A4A; + border: 1px solid transparent; + background-color: #f2f2f2; +} + +.month-picker { + box-shadow: none; +} + +.month-picker__month:hover, +.month-picker__container .selected { + border: 1px solid #55b0f5; + font-weight: bold; + background-color: #ecf4ff; + box-shadow: none; + color: #183A4A; + text-shadow: none; +} + +.event-modal-body { + padding: 10px; + font-size: 14px; +} + +.event-modal-body .title { + color: #000; + font-size: 14px; +} + +.event-modal-body .date { + padding: 10px 0; + font-weight: bold; +} + +.event-modal-body .city-title:before { + content: ''; + background-image: url('../../assets/video.svg'); + width: 15px; + height: 10px; + margin-right: 10px; + display: block; +} + +.event-modal-body .city-title { + display: Flex; + align-items: center; + justify-content: flex-start; +} + +.event-modal-body .city .icon-block { + width: 15px; + height: 10px; + background-image: url('../../assets/video.svg'); +} + +.event-modal-body .city { + display: Flex; + align-items: center; + justify-content: space-between; +} + +.event-modal-body .row { + padding: 10px 0; + border-top: 1px solid #c5c3c5; +} + +.event-modal-body .continuation { + margin-top: 10px; + flex-direction: column; +} + +.event-modal-body .continuation ul { + list-style: none; + display: block +}