protected function getCurrentDisplayFilter($ids = null) { //unset($this->_session->filter); $date = date('Y-m-d'); $placeHolder = array('providerId' => 'placeHolderId', 'roomId' => 0, 'dateFilter' => $date); if (isset($this->_session->filter)) { $columns = $this->_session->filter->columns; $ctr = count($columns); if ($ctr > 1) { if (isset($columns[0])) { unset($this->_session->filter->columns[0]); // remove placeholder column unset($columns[0]); } if (!is_array($ids)) { $ids = array($ids); } foreach ($ids as $id) { $id = (int) $id; if ($id > 0 && !isset($this->_session->filter->columns[$id])) { $filterState = new FilterState(); $filterState->filterStateId = $id; $filterState->populate(); $this->_session->filter->columns[$id] = $filterState->toArray(); } } } else { if ($ids !== null && $ids == 0 && !isset($columns[$ids])) { $this->_session->filter->columns[$ids] = $placeHolder; } } return $this->_session->filter; } $filter = new StdClass(); $filter->date = $date; $filter->start = self::FILTER_TIME_START; $filter->end = self::FILTER_TIME_END; $filter->columns = array(); // retrieve from database $filterStateIterator = new FilterStateIterator(); $filters = array(); $filters['tabName'] = self::TAB_NAME; $filters['userId'] = (int) Zend_Auth::getInstance()->getIdentity()->personId; $filterStateIterator->setFilters($filters); foreach ($filterStateIterator as $state) { $filter->columns[$state->filterStateId] = $state->toArray(); } if (!count($filter->columns) > 0) { $filter->columns[] = $placeHolder; } // save to session $this->_session->filter = $filter; return $filter; }
public function processAddColumnAction() { $calendar = $this->_getParam('calendar'); $filter = $this->getCurrentDisplayFilter(); $providerId = $calendar['providerId']; $roomId = $calendar['roomId']; /* $scheduleEvent = new ScheduleEvent(); $scheduleEvent->providerId = $providerId; $scheduleEvent->roomId = $roomId; $scheduleEvent->title = "Event {$providerId}"; $scheduleEvent->start = $filter->date . ' ' . $filter->end; $scheduleEvent->end = $filter->date . ' ' . $filter->start; $scheduleEvent->persist(); */ $filterState = new FilterState(); if (!isset($calendar['tabName'])) { $filterState->tabName = Menu::getCurrentlySelectedActivityGroup(); } $filterState->populateWithArray($calendar); $filterState->persist(); $this->_session->filter->columns[] = $filterState->toArray(); $data = array(); $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json'); $json->suppressExit = true; $data['providerId'] = $providerId; $data['columnId'] = max(array_keys($this->_session->filter->columns)); $json->direct($data); }