/**
  * Renders content.
  * @return string
  */
 protected function renderContent()
 {
     Yii::app()->clientScript->registerScriptFile(Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.modules.calendars.assets')) . '/CalendarsUtil.js', CClientScript::POS_END);
     //Right
     $rightSideContent = $this->renderOverMaxCountText() . $this->renderFullCalendarContent();
     $right = ZurmoHtml::tag('div', array('class' => 'right-column'), $rightSideContent);
     //Left
     $content = $this->renderSmallCalendarContent();
     $content .= $this->renderMyCalendarsContent();
     $content .= $this->renderSubscribedToCalendarsContent();
     $left = ZurmoHtml::tag('div', array('class' => 'left-column'), $content);
     $params = LabelUtil::getTranslationParamsForAllModules();
     $title = ZurmoHtml::tag('h1', array(), Zurmo::t('CalendarsModule', 'CalendarsModuleSingularLabel', $params));
     $view = ZurmoHtml::tag('div', array('class' => 'calendar-view'), $left . $right);
     $wrapper = ZurmoHtml::tag('div', array('class' => 'wrapper'), $title . $view);
     CalendarUtil::registerSelectCalendarScript($this->dataProvider->getStartDate(), $this->dataProvider->getEndDate());
     CalendarUtil::registerCalendarUnsubscriptionScript($this->dataProvider->getStartDate(), $this->dataProvider->getEndDate());
     CalendarUtil::registerSavedCalendarDeleteScript($this->dataProvider->getStartDate(), $this->dataProvider->getEndDate());
     return $wrapper;
 }
 /**
  * Renders content.
  * @return string
  */
 protected function renderContent()
 {
     Yii::app()->controller->widget('FullCalendar', array('inputId' => 'calendar', 'startDate' => $this->dataProvider->getStartDate(), 'endDate' => $this->dataProvider->getEndDate(), 'defaultView' => $this->dataProvider->getDateRangeType()));
     $calendar = ZurmoHtml::tag('div', array('id' => 'calendar'), '');
     return $calendar;
 }
 public function testMeetingsThanSpanForMoreThanOneMonth()
 {
     $savedCalendars = SavedCalendar::getByName('aSavedCalendar');
     $savedCalendar = $savedCalendars[0];
     $meetings = Meeting::getByName('aMeeting');
     $meeting = $meetings[0];
     $meeting->startDateTime = '2014-04-29 01:00:00';
     $meeting->endDateTime = '2014-05-09 01:00:00';
     $this->assertTrue($meeting->save());
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(1, $data);
     $this->assertEquals('aMeeting', $data[0]->getTitle());
     $meeting->startDateTime = '2014-04-29 01:00:00';
     $meeting->endDateTime = '2014-06-09 01:00:00';
     $this->assertTrue($meeting->save());
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(1, $data);
     $this->assertEquals('aMeeting', $data[0]->getTitle());
     $meeting->startDateTime = '2014-05-29 01:00:00';
     $meeting->endDateTime = '2014-06-09 01:00:00';
     $this->assertTrue($meeting->save());
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(1, $data);
     $this->assertEquals('aMeeting', $data[0]->getTitle());
     //Meeting start and ends before calendar start/end dates
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-07-01 01:00:00', 'endDate' => '2014-08-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(0, $data);
     //Meeting start and ends after calendar start/end dates
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id);
     $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-01-01 01:00:00', 'endDate' => '2014-03-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH));
     $data = $dataProvider->getData();
     $this->assertCount(0, $data);
 }
예제 #4
0
 /**
  * Process data provider and get calendar items.
  * @param CalendarItemsDataProvider $dataProvider
  * @return boolean
  */
 public static function processDataProviderAndGetCalendarItems(CalendarItemsDataProvider $dataProvider)
 {
     $calendarItems = $dataProvider->getData(true);
     $fullCalendarItems = array();
     for ($k = 0; $k < count($calendarItems); $k++) {
         $fullCalendarItem = array();
         $calItem = $calendarItems[$k];
         $fullCalendarItem['title'] = $calItem->getTitle();
         $fullCalendarItem['start'] = $calItem->getStartDateTime();
         if (!DateTimeUtil::isDateTimeStringNull($calItem->getEndDateTime())) {
             $fullCalendarItem['end'] = $calItem->getEndDateTime();
         } else {
             $fullCalendarItem['end'] = '';
         }
         $fullCalendarItem['color'] = $calItem->getColor();
         $fullCalendarItem['modelClass'] = $calItem->getModelClass();
         $fullCalendarItem['modelId'] = $calItem->getModelId();
         $fullCalendarItem['calendarId'] = $calItem->getCalendarId();
         $fullCalendarItem['allDay'] = true;
         $fullCalendarItems[] = $fullCalendarItem;
     }
     if (count($fullCalendarItems) > 0) {
         ArrayUtil::sortArrayByElementField('compareCalendarItemsByDateTime', 'usort', $fullCalendarItems, 'CalendarUtil');
     }
     return $fullCalendarItems;
 }