events.component.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import { InternalPageService } from './../../shared/internal-page.service';
  2. import { Component, OnInit,
  3. ChangeDetectionStrategy,
  4. ViewChild,
  5. TemplateRef } from '@angular/core';
  6. import {
  7. startOfDay,
  8. endOfDay,
  9. subDays,
  10. addDays,
  11. endOfMonth,
  12. isSameDay,
  13. isSameMonth,
  14. addHours
  15. } from 'date-fns';
  16. import { Subject } from 'rxjs';
  17. import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
  18. import {
  19. CalendarEvent,
  20. CalendarEventAction,
  21. CalendarEventTimesChangedEvent,
  22. CalendarView
  23. } from 'angular-calendar';
  24. const colors: any = {
  25. red: {
  26. primary: '#ad2121',
  27. secondary: '#FAE3E3'
  28. },
  29. blue: {
  30. primary: '#1e90ff',
  31. secondary: '#D1E8FF'
  32. },
  33. yellow: {
  34. primary: '#e3bc08',
  35. secondary: '#FDF1BA'
  36. }
  37. };
  38. @Component({
  39. selector: 'app-events',
  40. templateUrl: './events.component.html',
  41. styleUrls: ['./events.component.css']
  42. })
  43. export class EventsComponent implements OnInit {
  44. events: CalendarEvent[] = [] ;
  45. refresh: Subject<any> = new Subject();
  46. constructor(private modal: NgbModal, private internalService: InternalPageService) {
  47. }
  48. ngOnInit() {
  49. this.loadEvents();
  50. this.refresh.next();
  51. console.log("dddddddd"+new Date())
  52. }
  53. loadEvents(): void {
  54. this.internalService.getEventNow().subscribe(
  55. (responce) => {
  56. for(var i =0;i < responce['lectures'].length;i++){
  57. let event: any={};
  58. event['start'] = new Date(responce['lectures'][i].start);
  59. event['end'] = new Date(responce['lectures'][i].end);
  60. event['title'] = responce['lectures'][i].title;
  61. this.events.push(event)
  62. }
  63. this.dayClicked({ date: new Date(), events: this.events });
  64. },
  65. (error) => {
  66. console.log(error);
  67. }
  68. );
  69. }
  70. @ViewChild('modalContent')
  71. modalContent: TemplateRef<any>;
  72. view: CalendarView = CalendarView.Month;
  73. CalendarView = CalendarView;
  74. viewDate: Date = new Date();
  75. modalData: {
  76. action: string;
  77. event: CalendarEvent;
  78. };
  79. activeDayIsOpen: boolean = true;
  80. dayClicked({ date, events }: { date: Date; events: CalendarEvent[] }): void {
  81. console.log(date)
  82. if (isSameMonth(date, this.viewDate)) {
  83. this.viewDate = date;
  84. if (
  85. (isSameDay(this.viewDate, date) && this.activeDayIsOpen === true) ||
  86. events.length === 0
  87. ) {
  88. this.activeDayIsOpen = false;
  89. } else {
  90. this.activeDayIsOpen = true;
  91. }
  92. }
  93. }
  94. }