public function getFormattedExceptionDate() { if (!$this->ExceptionDate) { return "--"; } return CalendarUtil::get_date_format() == "mdy" ? $this->obj('ExceptionDate')->Format('m-d-Y') : $this->obj('ExceptionDate')->Format('d-m-Y'); }
/** * @param $savedCalendar * @return Report */ public static function makeReportBySavedCalendar(SavedCalendar $savedCalendar) { $report = new Report(); if ($savedCalendar->id > 0) { $report->setId((int) $savedCalendar->id); } $report->setDescription($savedCalendar->description); if ($savedCalendar->moduleClassName != null) { $report->setModuleClassName($savedCalendar->moduleClassName); } if ($savedCalendar->name != null) { $report->setName($savedCalendar->name); } $report->setOwner($savedCalendar->owner); $report->setType(Report::TYPE_ROWS_AND_COLUMNS); $explicitReadWriteModelPermissions = ExplicitReadWriteModelPermissionsUtil::makeBySecurableItem($savedCalendar); $report->setExplicitReadWriteModelPermissions($explicitReadWriteModelPermissions); if ($savedCalendar->serializedData != null) { $unserializedData = unserialize($savedCalendar->serializedData); if (isset($unserializedData['filtersStructure'])) { $report->setFiltersStructure($unserializedData['filtersStructure']); } CalendarUtil::makeComponentFormAndPopulateReportFromData($unserializedData[ComponentForReportForm::TYPE_FILTERS], $report, 'Filter'); } return $report; }
/** * @param RedBeanModel $model * @param array $explicitReadWriteModelPermissions */ protected function afterSetAttributesDuringSave($model, $explicitReadWriteModelPermissions) { assert('$model instanceof SavedCalendar'); $postData = PostUtil::getData(); $wizardFormClassName = ReportToWizardFormAdapter::getFormClassNameByType(Report::TYPE_ROWS_AND_COLUMNS); if (isset($postData[$wizardFormClassName])) { CalendarUtil::populateFiltersDataInModel($model, $postData[$wizardFormClassName]); } }
/** * Renders title. * @return string */ protected function renderTitleContent() { $title = ZurmoHtml::tag('h3', array(), Zurmo::t('CalendarsModule', 'My Shared Calendars')); $link = ZurmoHtml::link(ZurmoHtml::tag('span', array('class' => 'z-label'), 'Y'), '#', array('class' => 'white-button selectsharedcal')); $content = ZurmoHtml::tag('div', array('class' => 'cal-list-header clearfix'), $title . $link); $script = CalendarUtil::registerSharedCalendarModalScript(Yii::app()->createUrl('calendars/default/modalList'), '.selectsharedcal'); Yii::app()->clientScript->registerScript('selectsharedcalscript', $script, ClientScript::POS_END); return $content; }
function MonthNavigator($url_segment = null, $start_date = null) { $cal = CalendarUtil::get_calendar_for($url_segment); if ($cal) { if ($start_date !== null) { $start_date = new sfDate(CalendarUtil::getDateFromString($start_date)); } return new MonthNavigator($cal, $start_date); } return false; }
private function loadNewSchedules() { $uid = Yii::app()->user->uid; $st = time(); $schedules = Calendars::model()->fetchNewSchedule($uid, $st); if (!empty($schedules)) { foreach ($schedules as $k => $schedule) { $schedules[$k]["dateAndWeekDay"] = CalendarUtil::getDateAndWeekDay(date("Y-m-d", $schedule["starttime"])); $schedules[$k]["category"] = Calendars::model()->handleColor($schedule["category"]); $schedules[$k]["cutSubject"] = StringUtil::cutStr($schedule["subject"], 30); } } return $schedules; }
public function __construct($items = null) { parent::__construct(); if (CalendarDateTime::dmy()) { $firstName = "Day"; $firstFunc = "getDaysMap"; $secondName = "Month"; $secondFunc = "getMonthsMap"; } else { $firstName = "Month"; $firstFunc = "getMonthsMap"; $secondName = "Day"; $secondFunc = "getDaysMap"; } $this->addFilterField(new FieldGroup(new DropdownField('Start' . $firstName, _t('CalendarFilterFieldSet.START', 'Start'), CalendarUtil::$firstFunc()), new DropdownField('Start' . $secondName, '', CalendarUtil::$secondFunc()), new DropdownField('StartYear', '', CalendarUtil::getYearsMap()))); $this->addFilterField(new FieldGroup(new DropdownField('End' . $firstName, _t('CalendarFilterFieldSet.END', 'End'), CalendarUtil::$firstFunc()), new DropdownField('End' . $secondName, '', CalendarUtil::$secondFunc()), new DropdownField('EndYear', '', CalendarUtil::getYearsMap()))); }
public function actionSubTask() { if (!UserUtil::checkIsSub(Ibos::app()->user->uid, $this->uid)) { $this->error(Ibos::lang("No permission to view task"), $this->createUrl("task/index")); } $postComp = EnvUtil::getRequest("complete"); $this->complete = empty($postComp) ? 0 : $postComp; if (EnvUtil::getRequest("param") == "search") { $this->search(); } $this->_condition = CalendarUtil::joinCondition($this->_condition, "uid = " . $this->uid); $data = Tasks::model()->fetchTaskByComplete($this->_condition, $this->complete); $data["complete"] = $this->complete; $data["user"] = User::model()->fetchByUid($this->uid); $data["supUid"] = UserUtil::getSupUid($this->uid); $data["allowEditTask"] = CalendarUtil::getIsAllowEidtTask(); $this->setPageTitle(Ibos::lang("Subordinate task")); $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Personal Office")), array("name" => Ibos::lang("Calendar arrangement"), "url" => $this->createUrl("schedule/index")), array("name" => Ibos::lang("Subordinate task")))); $this->render("subtask", $data); }
public function actionAdd() { if (!Ibos::app()->request->getIsAjaxRequest()) { $this->error(IBos::lang("Parameters error", "error"), $this->createUrl("schedule/index")); } if (!$this->checkAddPermission()) { $this->ajaxReturn(array("isSuccess" => false, "msg" => Ibos::lang("No permission to add schedule"))); } $getStartTime = EnvUtil::getRequest("CalendarStartTime"); $sTime = empty($getStartTime) ? date("y-m-d h:i", time()) : $getStartTime; $getEndTime = EnvUtil::getRequest("CalendarEndTime"); $eTime = empty($getEndTime) ? date("y-m-d h:i", time()) : $getEndTime; $getTitle = EnvUtil::getRequest("CalendarTitle"); $title = empty($getTitle) ? "" : $getTitle; if ($this->uid != $this->upuid) { $title .= " (" . User::model()->fetchRealnameByUid($this->upuid) . ")"; } $getIsAllDayEvent = EnvUtil::getRequest("IsAllDayEvent"); $isAllDayEvent = empty($getIsAllDayEvent) ? 0 : intval($getIsAllDayEvent); $getCategory = EnvUtil::getRequest("Category"); $category = empty($getCategory) ? -1 : $getCategory; $schedule = array("uid" => $this->uid, "subject" => $title, "starttime" => CalendarUtil::js2PhpTime($sTime), "endtime" => CalendarUtil::js2PhpTime($eTime), "isalldayevent" => $isAllDayEvent, "category" => $category, "uptime" => time(), "upuid" => $this->upuid); $addId = Calendars::model()->add($schedule, true); if ($addId) { $ret["isSuccess"] = true; $ret["msg"] = "success"; $ret["data"] = intval($addId); if ($this->upuid != $this->uid) { $config = array("{sender}" => User::model()->fetchRealnameByUid($this->upuid), "{subject}" => $title, "{url}" => Ibos::app()->urlManager->createUrl("calendar/schedule/index")); Notify::model()->sendNotify($this->uid, "add_calendar_message", $config, $this->upuid); } } else { $ret["isSuccess"] = false; $ret["msg"] = "fail"; } $this->ajaxReturn($ret); }
private function handleLoops($loops) { if (!empty($loops)) { foreach ($loops as $k => $v) { $loops[$k]["subject"] = StringUtil::cutStr($v["subject"], 12); $loops[$k]["uptime"] = date("Y-m-d H:i", $v["uptime"]); $time = date("H:i", $v["starttime"]) . "至" . date("H:i", $v["endtime"]); switch ($v["recurringtype"]) { case "week": $recurringtime = CalendarUtil::digitalToDay($v["recurringtime"]); $loops[$k]["cycle"] = "每周" . $recurringtime . " " . $time; break; case "month": $loops[$k]["cycle"] = "每月" . $v["recurringtime"] . "号 " . $time; break; case "year": $monthDay = explode("-", $v["recurringtime"]); $loops[$k]["cycle"] = "每年" . $monthDay[0] . "月" . $monthDay[1] . "号 " . $time; break; } } } return $loops; }
<script> Ibos.app.s({ calSettings : { // 日程开始时间 minTime: new moment(Ibos.date.numberToTime(<?php echo CalendarUtil::getSetupStartTime(Ibos::app()->user->uid); ?> ), "HH:mm"), // 日程结束时间 maxTime: new moment(Ibos.date.numberToTime(<?php echo CalendarUtil::getSetupEndTime(Ibos::app()->user->uid); ?> ), "HH:mm"), hiddenDays: [<?php echo CalendarUtil::getSetupHiddenDays(Ibos::app()->user->uid); ?> ], uid: Ibos.app.g('uid'), addable: true, editable: true } }); Ibos.app.setPageParam({ FORMHASH: "<?php echo FORMHASH; ?> " }); </script> <script src='<?php
/** * Renders content. * @return string */ protected function renderContent() { $content = CalendarUtil::makeCalendarItemsList($this->data, $this->field, $this->itemClass, $this->listType); $content = $this->wrapContent($content); $title = $this->renderTitleContent(); return ZurmoHtml::tag('div', array('class' => 'calendars-list-container'), $title . $content); }
/** * Gets dropdown array for date and datetime fields. * @return array */ protected function getDropDownArray() { return CalendarUtil::getModelAttributesForSelectedModule($this->model->moduleClassName); }
public static function getDateFromURL() { $params = Director::urlParams(); if (isset($params['Action'])) { return CalendarUtil::getDateFromString($params['Action']); } else { return false; } }
public function CalendarFilterForm() { if ($date = CalendarUtil::getDateFromURL()) { $date_obj = new sfDate($date); } elseif ($date = DataObject::get_one($this->getDateTimeClass(), "EventID = {$this->ID}", "StartDate ASC")) { $date_obj = new sfDate($date->StartDate); } else { return false; } $controller_name = $this->Parent()->class . "_Controller"; if (class_exists($controller_name)) { $controller = new $controller_name($this->Parent()); $controller->parseURL(); return $controller->CalendarFilterForm($date_obj); } }
public static function getDateFromURL() { $params = Controller::curr()->urlParams; if (isset($params['ID'])) { return CalendarUtil::getDateFromString($params['ID']); } else { return false; } }
/** * Get the list of calendar items * @param array $calendarItems * @param array $models * @param SavedCalendar $savedCalendar */ protected function resolveRedBeanModelsToCalendarItems(&$calendarItems, array $models, SavedCalendar $savedCalendar) { foreach ($models as $model) { $calendarItems[] = CalendarUtil::makeCalendarItemByModel($model, $savedCalendar); } }
public function DateHeader() { switch ($this->view) { case "day": return CalendarUtil::localize($this->start_date->get(), null, CalendarUtil::ONE_DAY_HEADER); break; case "month": return CalendarUtil::localize($this->start_date->get(), null, CalendarUtil::MONTH_HEADER); break; case "year": return CalendarUtil::localize($this->start_date->get(), null, CalendarUtil::YEAR_HEADER); break; case "range": list($strStartDate, $strEndDate) = CalendarUtil::getDateString($this->start_date->date(), $this->end_date->date()); return $strStartDate . $strEndDate; break; default: return $this->DefaultDateHeader; break; } }
/** * 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; }
public function _Dates() { list($strStartDate, $strEndDate) = CalendarUtil::getDateString($this->StartDate, $this->EndDate); $html = "<span class='dtstart' title='" . $this->MicroformatStart() . "'>" . $strStartDate . "</span>"; $html .= $strEndDate != "" ? self::$date_delimiter : ""; $html .= "<span class='dtend' title='" . $this->MicroformatEnd() . "'>"; $html .= $strEndDate != "" ? $strEndDate : ""; $html .= "</span>"; return $html; }
public function handleShow($request) { $calendar = DataObject::get_by_id($request->param('CalendarClass'), $request->param('CalendarID')); if ($calendar) { $default_view = $request->param('DefaultView') == "1"; $c = new LiveCalendarWidget($calendar, new sfDate(CalendarUtil::getDateFromString($request->param('CurrentMonth'))), null, $default_view); $c->setAnchorStart($request->param('AnchorStart')); $c->setAnchorEnd($request->param('AnchorEnd')); echo $c->forTemplate(); } else { return false; } }
/** * @covers CalendarItemsDataProviderFactory::getDataProviderByDateRangeType * @covers CalendarItemsDataProvider::fetchData * @covers CalendarRowsAndColumnsReportDataProvider::makeSelectQueryAdapter * @covers CalendarRowsAndColumnsReportDataProvider::resolveSqlQueryAdapterForCount * @covers CalendarRowsAndColumnsReportDataProvider::getData */ public function testGetDataProviderByDateRangeType() { Yii::app()->user->userModel = User::getByUsername('super'); $product = ProductTestHelper::createProductByNameForOwner('Test Product', Yii::app()->user->userModel); $savedCalendar = CalendarTestHelper::createSavedCalendarByName('Test Cal', '#315AB0'); $currentDateTime = new DateTime('NOW'); $currentDateTime->add(new DateInterval('P1D')); $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser(Yii::app()->user->userModel, (string) $savedCalendar->id); $dp = CalendarItemsDataProviderFactory::getDataProviderByDateRangeType($savedCalendarSubscriptions, '2014-01-01', $currentDateTime->format('Y-m-d'), SavedCalendar::DATERANGE_TYPE_MONTH); $this->assertInstanceOf('CalendarItemsDataProvider', $dp); $this->assertEquals('2014-01-01', $dp->getStartDate()); $this->assertEquals($currentDateTime->format('Y-m-d'), $dp->getEndDate()); $this->assertEquals(SavedCalendar::DATERANGE_TYPE_MONTH, $dp->getDateRangeType()); $savedCalendarsData = $dp->getSavedCalendarSubscriptions()->getMySavedCalendarsAndSelected(); $keys = array_keys($savedCalendarsData); $this->assertEquals($savedCalendar->id, $keys[0]); $items = CalendarUtil::getFullCalendarItems($dp); $this->assertCount(1, $items); $this->assertEquals($product->id, $items[0]['modelId']); }
/** * Add my subscribed calendars. * @param SavedCalendarSubscriptions $savedCalendarSubscriptions * @param User $user * @param string $subscribedCalendarIds * @return \SavedCalendarSubscriptions */ private static function addMySubscribedCalendars(SavedCalendarSubscriptions $savedCalendarSubscriptions, User $user, $subscribedCalendarIds) { $mySubscribedCalendars = CalendarUtil::getUserSubscribedCalendars($user); if (count($mySubscribedCalendars) > 0) { ZurmoConfigurationUtil::setByUserAndModuleName($user, 'CalendarsModule', 'mySubscribedCalendarSelections', $subscribedCalendarIds); $subscribedCalendarIdArray = array(); if ($subscribedCalendarIds != null) { $subscribedCalendarIdArray = explode(',', $subscribedCalendarIds); // Not Coding Standard } foreach ($mySubscribedCalendars as $key => $mySubscribedCalendar) { CalendarUtil::setSharedCalendarColor($mySubscribedCalendar); if (in_array($mySubscribedCalendar->id, $subscribedCalendarIdArray)) { $savedCalendarSubscriptions->addSubscribedToCalendar($mySubscribedCalendar, true); } else { $savedCalendarSubscriptions->addSubscribedToCalendar($mySubscribedCalendar, false); } } } }
/** * Get events for the selected calendars. * @param string $selectedMyCalendarIds * @param string $selectedSharedCalendarIds * @param string $startDate * @param string $endDate * @param string $dateRangeType */ public function actionGetDayEvents($selectedMyCalendarIds = null, $selectedSharedCalendarIds = null, $startDate = null, $endDate = null, $dateRangeType = null) { $dataProvider = CalendarUtil::processAndGetDataProviderForEventsData($selectedMyCalendarIds, $selectedSharedCalendarIds, $startDate, $endDate, $dateRangeType, false); $items = CalendarUtil::processDataProviderAndGetCalendarItems($dataProvider); $modifiedItems = array(); foreach ($items as $item) { $item['start'] = CalendarUtil::getFullCalendarFormattedDateTimeElement($item['start']); $startDateTime = strtotime($item['start']); if (date('Y-m-d', $startDateTime) == $startDate) { $item['end'] = CalendarUtil::getFullCalendarFormattedDateTimeElement($item['end']); $modifiedItems[] = $item; } } $modifiedItems = CalendarUtil::populateDetailsUrlForCalendarItems($modifiedItems); $calItemListView = new CalendarItemsListView($this->getId(), $this->getModule()->getId(), $modifiedItems, GetUtil::getData()); Yii::app()->getClientScript()->setToAjaxMode(); echo $calItemListView->render(); }
public function getFormattedEndTime() { if (!$this->EndTime) { return "--"; } return CalendarUtil::get_time_format() == "12" ? $this->obj('EndTime')->Nice() : $this->obj('EndTime')->Nice24(); }
public function updateSchedule($calendarid, $st, $et, $sj, $cg, $su = null) { $modifyData = array("starttime" => CalendarUtil::js2PhpTime($st), "endtime" => CalendarUtil::js2PhpTime($et), "subject" => $sj, "category" => $cg, "status" => $su); if (is_null($su)) { unset($modifyData["status"]); } $modifyResult = $this->modify($calendarid, $modifyData); if ($modifyResult) { $ret["isSuccess"] = true; $ret["msg"] = "操作成功"; } else { $ret["isSuccess"] = false; $ret["msg"] = "操作失败"; } return $ret; }
/** * @return string */ public function getTitle() { $parts = CalendarUtil::get_date_string($this->StartDate, $this->EndDate); if ($parts) { $date = implode(' ', $parts); } else { $date = 'No date'; } if ($this->AllDay) { return sprintf(_t('EventManagement.DATEALLDAY', '%s (all day)'), $date); } if (!$this->StartTime) { return $date; } $time = $this->obj('StartTime')->Nice(); if ($this->EndTime) { $time .= ' - ' . $this->obj('EndTime')->Nice(); } return "{$date} {$time}"; }
/** * Populate details url for calendar items. * @param array $items * @return array */ public static function populateDetailsUrlForCalendarItems($items) { assert('is_array($items)'); $moduleClassNames = CalendarUtil::getAvailableModulesForCalendar(); foreach ($items as $index => $item) { foreach ($moduleClassNames as $moduleClassName => $label) { if ($moduleClassName::getPrimaryModelName() == $item['modelClass']) { $moduleId = $moduleClassName::getDirectoryName(); $item['detailsUrl'] = Yii::app()->createUrl($moduleId . '/default/details', array('id' => $item['modelId'])); $items[$index] = $item; } } } return $items; }
public function MonthJumpForm() { $this->parseURL($this->getRequest()); $dummy = sfDate::getInstance($this->startDate); $range = range($dummy->subtractYear(3)->format('Y'), $dummy->addYear(6)->format('Y')); $year_map = array_combine($range, $range); $f = new Form($this, "MonthJumpForm", new FieldList($m = new DropdownField('Month', '', CalendarUtil::get_months_map('%B')), $y = new DropdownField('Year', '', $year_map)), new FieldList(new FormAction('doMonthJump', _t('Calendar.JUMP', 'Go')))); if ($this->startDate) { $m->setValue($this->startDate->format('m')); $y->setValue($this->startDate->format('Y')); } else { $m->setValue(date('m')); $y->setValue(date('Y')); } return $f; }
/** * Get modules available to be used with calendar. * @return array */ protected function getAvailableModulesForCalendar() { $moduleClassNames = CalendarUtil::getAvailableModulesForCalendar(); asort($moduleClassNames); return $moduleClassNames; }