44 $modelClassName = $this->getModule()->getPrimaryModelName();
45 $viewClassName = $modelClassName .
'EditAndDetailsView';
46 return array_merge(parent::filters(),
49 ZurmoBaseController::REQUIRED_ATTRIBUTES_FILTER_PATH .
' + create, createFromRelation, edit',
50 'moduleClassName' => get_class($this->getModule()),
51 'viewClassName' => $viewClassName,
54 ZurmoModuleController::ZERO_MODELS_CHECK_FILTER_PATH .
' + list, index',
55 'controller' => $this,
67 $urlParams = array($this->getId() .
'/combinedDetails');
68 $this->redirect($urlParams);
77 $savedCalendar->moduleClassName =
'MeetingsModule';
79 $attributeKeys = array_keys($attributes);
80 $savedCalendar->startAttributeName = $attributeKeys[0];
82 if (isset($_POST[
'SavedCalendar']))
85 echo CJSON::encode(array(
'redirecttodetails' =>
true));
86 Yii::app()->end(0,
false);
90 $editAndDetailsView = $this->makeEditAndDetailsView(
93 makeStandardViewForCurrentUser($this, $editAndDetailsView));
116 if (isset($_POST[
'SavedCalendar']))
119 echo CJSON::encode(array(
'redirecttodetails' =>
true));
120 Yii::app()->end(0,
false);
125 makeStandardViewForCurrentUser($this,
126 $this->makeEditAndDetailsView(
127 $calendar,
'Edit')));
128 echo $view->render();
138 $interactiveCalendarView =
new CombinedCalendarView($dataProvider, $this->getId(), $this->getModule()->getId());
140 makeStandardViewForCurrentUser($this, $interactiveCalendarView));
141 echo $view->render();
153 $postData = PostUtil::getData();
158 echo ZurmoTreeView::saveDataAsJson($reportToTreeAdapter->getData($nodeId));
159 Yii::app()->end(0,
false);
162 $content = $view->render();
163 Yii::app()->getClientScript()->setToAjaxMode();
164 Yii::app()->getClientScript()->render($content);
179 $trackableStructurePosition =
false, $id = null)
181 $postData = PostUtil::getData();
194 if (isset($_POST[
'ajax']) && $_POST[
'ajax'] ==
'edit-form')
196 $postData = PostUtil::getData();
203 $model->setAttributes(($sanitizedPostDataWithoutOwner));
204 if ($model->validate())
206 $modelToStringValue = strval($model);
207 if ($sanitizedOwnerPostData != null)
209 $model->setAttributes($sanitizedOwnerPostData);
213 $model->validate(array(
'owner'));
217 if (!isset($postData[$wizardFormClassName]))
226 $reportForm = $reportToWizardFormAdapter->makeFormByType();
227 $postData[
'validationScenario'] = $wizardFormClassName::FILTERS_VALIDATION_SCENARIO;
230 $errorData = array_merge($errorData, $filtersErrorData);
231 echo CJSON::encode($errorData);
232 Yii::app()->end(0,
false);
245 $selectedSharedCalendarIds = null,
248 $dateRangeType = null)
251 $selectedSharedCalendarIds,
256 foreach ($items as $index => $item)
258 $itemClass = isset($item[
'className']) ? $item[
'className']:null;
260 if ($itemClass !=
'more-events')
262 $item[
'description'] = Yii::app()->createUrl(
'calendars/default/getCalendarItemDetail',
264 'modelClass' => $item[
'modelClass'],
265 'modelId' => $item[
'modelId']
270 $moreEventStartDate = date(
'Y-m-d', strtotime($item[
'start']));
271 $dateTimeObject =
new DateTime($moreEventStartDate);
272 $dateTimeObject->add(
new DateInterval(
'P1D'));
273 $moreEventEndDate = $dateTimeObject->format(
'Y-m-d');
275 'selectedMyCalendarIds' => $selectedMyCalendarIds,
276 'selectedSharedCalendarIds' => $selectedSharedCalendarIds,
277 'startDate' => $moreEventStartDate,
278 'endDate' => $moreEventEndDate,
279 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_DAY
281 $item[
'description'] = Yii::app()->createUrl(
'calendars/default/getDayEvents', $params);
283 $items[$index] = $item;
285 echo CJSON::encode(array(
'items' => $items,
'isMaxCountReached' => $dataProvider->getIsMaxCountReached()));
296 $savedCalendar->delete();
298 $savedCalendarSubscriptions = $dataProvider->getSavedCalendarSubscriptions();
300 'mycalendar[]',
'mycalendar',
'saved');
311 'shared-calendars-list'
324 $user = Yii::app()->user->userModel;
326 $savedCalendarSubscription->user = $user;
327 $savedCalendarSubscription->savedcalendar = $savedCalendar;
328 $savedCalendarSubscription->save();
330 $savedCalendarSubscriptions = $dataProvider->getSavedCalendarSubscriptions();
332 'sharedcalendar[]',
'sharedcalendar',
'shared');
343 $savedCalendarSubscription->delete();
345 $savedCalendarSubscriptions = $dataProvider->getSavedCalendarSubscriptions();
347 'sharedcalendar[]',
'sharedcalendar',
'shared');
358 assert(
'is_string($attribute)');
359 assert(
'is_string($moduleName)');
361 $htmlOptions = array();
362 if ($attribute ==
'endAttributeName')
364 $htmlOptions[
'empty'] = Zurmo::t(
'Core',
'(None)');
366 echo ZurmoHtml::listOptions(
'', $data, $htmlOptions);
387 $selectedSharedCalendarIds = null,
390 $dateRangeType = null)
393 $selectedSharedCalendarIds,
399 $modifiedItems = array();
400 foreach ($items as $item)
403 $startDateTime = strtotime($item[
'start']);
404 if (date(
'Y-m-d', $startDateTime) == $startDate)
407 $modifiedItems[] = $item;
413 $this->getModule()->getId(),
417 Yii::app()->getClientScript()->setToAjaxMode();
418 echo $calItemListView->render();
429 $model = $modelClass::getById(intval($modelId));
430 $itemDetailViewClassName = $modelClass .
'ForCalendarItemDetailsView';
431 $itemDetailViewInstance =
new $itemDetailViewClassName($this->getId(), $this->getModule()->getId(), $model);
432 echo $itemDetailViewInstance->render();
435 public function actionOrgGraph()
438 $view =
new ModalView($this, $renderOrgChartModalView);
439 return $view->render();
static getModelAttributesForSelectedModule($moduleClassName)
static processDataProviderAndGetCalendarItems(CalendarItemsDataProvider $dataProvider)
actionGetEvents($selectedMyCalendarIds=null, $selectedSharedCalendarIds=null, $startDate=null, $endDate=null, $dateRangeType=null)
static makeCalendarItemsList($data, $field, $itemClass, $type)
static getModalContainerId()
static resolveAccessCanCurrentUserDeleteModel(RedBeanModel $model, $fromAjax=false)
static validateReportWizardForm($postData, ReportWizardForm $model)
static resolveFiltersStructure($data, Report $report)
static processAndGetDataProviderForEventsData($selectedMyCalendarIds=null, $selectedSharedCalendarIds=null, $startDate=null, $endDate=null, $dateRangeType=null, $isSticky=true)
processEdit(SavedCalendar $calendar)
actionGetDayEvents($selectedMyCalendarIds=null, $selectedSharedCalendarIds=null, $startDate=null, $endDate=null, $dateRangeType=null)
actionAddAttributeFromTree($type, $treeType, $nodeId, $rowNumber, $trackableStructurePosition=false, $id=null)
static processAttributeAdditionFromTree($nodeId, $treeType, Report $report, $rowNumber, $trackableStructurePosition)
static makeReportBySavedCalendar(SavedCalendar $savedCalendar)
actionRelationsAndAttributesTree($type, $treeType, $id=null, $nodeId=null)
static resolveReportBySavedCalendarPostData($type, $id=null, $postData)
static populateDetailsUrlForCalendarItems($items)
actionAddSubsriptionForCalendar($id)
static getFullCalendarFormattedDateTimeElement($dateTime)
attemptToValidateAjaxFromPost($model, $postVariableName)
attemptToSaveModelFromPost($model, $redirectUrlParams=null, $redirect=true, $returnOnValidate=false)
static removeIfExistsFromPostData($postData)
const TYPE_ROWS_AND_COLUMNS
actionGetDateTimeAttributes($moduleName, $attribute)
static getById($id, $modelClassName=null)
static setAjaxModeAndRenderModalSearchList(CController $controller, $modalListLinkProvider, $stateMetadataAdapterClassName=null)
static removeElementFromPostDataForSavingModel($sanitizedPostData, $elementName)
static resolveFilters($data, Report $report, $shouldRemoveOnlyRuntimeFilters=false)
static getZurmoControllerUtil()
static getFullCalendarItems(CalendarItemsDataProvider $dataProvider)
static getCalendarItemsDataProvider(User $user)
actionGetCalendarItemDetail($modelClass, $modelId)
static sanitizePostDataToJustHavingElementForSavingModel($sanitizedPostData, $elementName)
static sanitizePostByDesignerTypeForSavingModel($model, $postData)
static resolveAccessCanCurrentUserWriteModel(RedBeanModel $model, $fromAjax=false)