From 8e82cc57ffe84fb753399e93740ede11c88d737b Mon Sep 17 00:00:00 2001 From: nixa <4dmitr@gmail.com> Date: Fri, 20 May 2016 19:44:29 +0300 Subject: [PATCH] refactor(calendar): move fullCalendar into baFullCalendar --- .../dashboard/calendar/calendar.component.ts | 85 ++++++------------- .../pages/dashboard/calendar/calendar.html | 2 +- .../dashboard/calendar/calendar.loader.ts | 2 - .../dashboard/calendar/calendar.service.ts | 49 +++++++++++ .../baFullCalendar.component.ts | 25 ++++++ .../baFullCalendar/baFullCalendar.html | 1 + .../baFullCalendar/baFullCalendar.loader.ts | 2 + .../theme/components/baFullCalendar/index.ts | 1 + src/app/theme/components/index.ts | 1 + 9 files changed, 108 insertions(+), 60 deletions(-) delete mode 100644 src/app/pages/dashboard/calendar/calendar.loader.ts create mode 100644 src/app/pages/dashboard/calendar/calendar.service.ts create mode 100644 src/app/theme/components/baFullCalendar/baFullCalendar.component.ts create mode 100644 src/app/theme/components/baFullCalendar/baFullCalendar.html create mode 100644 src/app/theme/components/baFullCalendar/baFullCalendar.loader.ts create mode 100644 src/app/theme/components/baFullCalendar/index.ts diff --git a/src/app/pages/dashboard/calendar/calendar.component.ts b/src/app/pages/dashboard/calendar/calendar.component.ts index a3e5209a..ac0d9a1f 100644 --- a/src/app/pages/dashboard/calendar/calendar.component.ts +++ b/src/app/pages/dashboard/calendar/calendar.component.ts @@ -1,73 +1,44 @@ import {Component, ViewEncapsulation} from '@angular/core'; -import './calendar.loader.ts'; -import {BaThemeConfigProvider} from '../../../theme'; +import {BaFullCalendar} from '../../../theme/components'; +import {CalendarService} from "./calendar.service"; @Component({ selector: 'calendar', encapsulation: ViewEncapsulation.None, - styles: [require('fullcalendar/dist/fullcalendar.css'), require('./calendar.scss')], - template: require('./calendar.html') + styles: [require('./calendar.scss')], + template: require('./calendar.html'), + directives: [BaFullCalendar], + providers: [CalendarService] }) export class Calendar { - constructor(private _baConfig:BaThemeConfigProvider) { + public calendarConfiguration:any; + private _calendar:Object; + + constructor(private _calendarService:CalendarService) { + this.calendarConfiguration = this._calendarService.getData(); + this.calendarConfiguration.select = (start, end) => this._onSelect(start, end); } - ngAfterViewInit() { - this._initCalendar(); + public onCalendarReady(calendar):void { + this._calendar = calendar; } - _initCalendar() { - let dashboardColors = this._baConfig.get().colors.dashboard; + private _onSelect(start, end):void { - let $element = $('#calendar').fullCalendar({ - header: { - left: 'prev,next today', - center: 'title', - right: 'month,agendaWeek,agendaDay' - }, - defaultDate: '2016-03-08', - selectable: true, - selectHelper: true, - select: function (start, end) { - var title = prompt('Event Title:'); - var eventData; - if (title) { - eventData = { - title: title, - start: start, - end: end - }; - $element.fullCalendar('renderEvent', eventData, true); - } - $element.fullCalendar('unselect'); - }, - editable: true, - eventLimit: true, // allow "more" link when too many events - events: [ - { - title: 'All Day Event', - start: '2016-03-01', - color: dashboardColors.silverTree - }, - { - title: 'Long Event', - start: '2016-03-07', - end: '2016-03-10', - color: dashboardColors.blueStone - }, - { - title: 'Dinner', - start: '2016-03-14T20:00:00', - color: dashboardColors.surfieGreen - }, - { - title: 'Birthday Party', - start: '2016-04-01T07:00:00', - color: dashboardColors.gossip - } - ] - }); + if (this._calendar != null) { + var title = prompt('Event Title:'); + var eventData; + if (title) { + eventData = { + title: title, + start: start, + end: end + }; + $(this._calendar).fullCalendar('renderEvent', eventData, true); + } + $(this._calendar).fullCalendar('unselect'); + } } } diff --git a/src/app/pages/dashboard/calendar/calendar.html b/src/app/pages/dashboard/calendar/calendar.html index 022b29d7..d1410cc5 100644 --- a/src/app/pages/dashboard/calendar/calendar.html +++ b/src/app/pages/dashboard/calendar/calendar.html @@ -1 +1 @@ -
+