Example #1
0
 /**
  * Retreive all users that belong to the given group.
  * 
  * @param int $id
  * @return array Users
  */
 protected function actionGetUsers($params)
 {
     //don't check ACL here because this method may be called by anyone.
     $group = \GO\Base\Model\Group::model()->findByPk($params['id'], false, true);
     if (empty($group)) {
         $group = new \GO\Base\Model\Group();
     }
     if (isset($params['add_users']) && !empty($group->id)) {
         $users = json_decode($params['add_users']);
         foreach ($users as $usr_id) {
             if ($group->addUser($usr_id)) {
                 \GO\Base\Model\User::model()->findByPk($usr_id)->checkDefaultModels();
             }
         }
     }
     $store = \GO\Base\Data\Store::newInstance(\GO\Base\Model\User::model());
     $store->getColumnModel()->formatColumn('name', '$model->name', array(), array('first_name', 'last_name'));
     $storeParams = $store->getDefaultParams($params)->joinCustomFields(false);
     $delresponse = array();
     //manually check permission here because this method may be accessed by any logged in user. allowWithoutModuleAccess is used above.
     if ($group->checkPermissionLevel(\GO\Base\Model\Acl::DELETE_PERMISSION)) {
         // The users in the group "everyone" cannot be deleted
         if ($group->id != \GO::config()->group_everyone) {
             $store->processDeleteActions($params, 'GO\\Base\\Model\\UserGroup', array('group_id' => $group->id));
         } else {
             $delresponse['deleteSuccess'] = false;
             $delresponse['deleteFeedback'] = 'Members of the group everyone cannot be deleted.';
         }
     }
     $stmt = $group->users($storeParams);
     $store->setStatement($stmt);
     $response = $store->getData();
     $response = array_merge($response, $delresponse);
     return $response;
 }
Example #2
0
 /**
  * Load the folders that need to be displayed in the portlet
  * 
  * @param array $params
  * @return array $response
  */
 protected function actionPortletFoldersByUser($params)
 {
     $findCriteria = \GO\Base\Db\FindCriteria::newInstance()->addCondition('user_id', \GO::user()->id);
     $findParams = \GO\Base\Db\FindParams::newInstance()->debugSql()->criteria($findCriteria);
     $portletFoldersStatement = \GO\email\Model\PortletFolder::model()->find($findParams);
     $portletFoldersStore = \GO\Base\Data\Store::newInstance(\GO::getModel($this->model));
     $portletFoldersStore->setStatement($portletFoldersStatement);
     return $portletFoldersStore->getData();
 }
Example #3
0
 protected function actionStore($params)
 {
     $params = \GO\Base\Db\FindParams::newInstance()->order('vtime')->select('t.*')->join(\GO\Base\Model\ReminderUser::model()->tableName(), \GO\Base\Db\FindCriteria::newInstance()->addModel(\GO\Base\Model\Reminder::model())->addCondition('id', 'ru.reminder_id', '=', 't', true, true), 'ru')->criteria(\GO\Base\Db\FindCriteria::newInstance()->addModel(\GO\Base\Model\ReminderUser::model(), 'ru')->addCondition('user_id', \GO::user()->id, '=', 'ru')->addCondition('time', time(), '<', 'ru'));
     $store = \GO\Base\Data\Store::newInstance(\GO\Base\Model\Reminder::model());
     $store->getColumnModel()->setFormatRecordFunction(array($this, 'formatReminderRecord'));
     $stmt = \GO\Base\Model\Reminder::model()->find($params);
     $store->setStatement($stmt);
     return $store->getData();
 }
Example #4
0
 protected function actionCombinedStore($params)
 {
     $response = array('success' => true, 'total' => 0, 'results' => array());
     $cm = new \GO\Base\Data\ColumnModel();
     $cm->setColumnsFromModel(\GO::getModel('GO\\Comments\\Model\\Comment'));
     $store = \GO\Base\Data\Store::newInstance($cm);
     $storeParams = $store->getDefaultParams($params)->mergeWith($this->getStoreParams($params));
     $findParams = \GO\Base\Db\FindParams::newInstance()->select('t.*,type.model_name')->joinModel(array('model' => 'GO\\Base\\Model\\ModelType', 'localTableAlias' => 't', 'localField' => 'model_type_id', 'foreignField' => 'id', 'tableAlias' => 'type'));
     $findParams->mergeWith($storeParams);
     $store->setStatement(\GO\Comments\Model\Comment::model()->find($findParams));
     return $store->getData();
     //
     //		return $response;
 }
 /**
  * Return all new items for a grid. 
  * So this are the items that are not already selected.
  * 
  * Parameters:
  *	model_id =	The value of one of the keys from the combined primary key of the linkModel that is not given in the linkModelField;
  *			Example:	The combined key of the linkModel is: [user_id,tasklist_id].
  *								The given linkModelField is: [tasklist_id].
  *								Then the model_id needs to be the other value of the combined key so in this example: The value for [user_id]
  *							
  * 
  * @param Array $params
  * @return type 
  */
 protected function actionSelectNewStore($params)
 {
     $model = \GO::getModel($this->modelName());
     $linkModel = \GO::getModel($this->linkModelName());
     $store = \GO\Base\Data\Store::newInstance($model);
     $joinCriteria = \GO\Base\Db\FindCriteria::newInstance()->addCondition($this->getRemoteKey(), $params['model_id'], '=', 'lt')->addCondition($model->primaryKey(), 'lt.' . $this->linkModelField(), '=', 't', true, true);
     $this->formatColumns($store->getColumnModel());
     $findParams = $store->getDefaultParams($params);
     if ($this->uniqueSelection) {
         $findParams->join($linkModel->tableName(), $joinCriteria, 'lt', 'LEFT');
         $findCriteria = \GO\Base\Db\FindCriteria::newInstance()->addCondition($this->linkModelField(), null, 'IS', 'lt');
         $findParams->criteria($findCriteria);
     }
     $availableModels = $model->find($findParams);
     $store->setStatement($availableModels);
     return $store->getData();
 }
Example #6
0
 /**
  * Get the data for the grid that shows all the tasks from the selected tasklists.
  * 
  * @param Array $params
  * @return Array The array with the data for the grid. 
  */
 protected function actionPortletGrid($params)
 {
     $now = \GO\Base\Util\Date::date_add(mktime(0, 0, 0), 1);
     if (isset($params['completed_task_id'])) {
         $updateTask = \GO\Tasks\Model\Task::model()->findByPk($params['completed_task_id']);
         if (isset($params['checked'])) {
             $updateTask->setCompleted($params['checked'] == "true");
         }
     }
     // Find out the sort for the grid
     $sort = !empty($params['sort']) ? $params['sort'] : 'due_time';
     $dir = !empty($params['dir']) ? $params['dir'] : 'ASC';
     $store = \GO\Base\Data\Store::newInstance(\GO\Tasks\Model\Task::model());
     $findCriteria = \GO\Base\Db\FindCriteria::newInstance()->addCondition('start_time', $now, '<')->addCondition('status', \GO\Tasks\Model\Task::STATUS_COMPLETED, '<>', 't');
     $joinCriteria = \GO\Base\Db\FindCriteria::newInstance()->addCondition('user_id', \GO::user()->id, '=', 'pt')->addCondition('tasklist_id', 'pt.tasklist_id', '=', 't', true, true);
     $tasklistJoinCriteria = \GO\Base\Db\FindCriteria::newInstance()->addCondition('tasklist_id', 'tl.id', '=', 't', true, true);
     $findParams = $store->getDefaultParams($params)->select('t.*, tl.name AS tasklist_name')->criteria($findCriteria)->order(array('tasklist_name', $sort), $dir)->ignoreAcl()->join(\GO\Tasks\Model\PortletTasklist::model()->tableName(), $joinCriteria, 'pt')->join(\GO\Tasks\Model\Tasklist::model()->tableName(), $tasklistJoinCriteria, 'tl');
     $stmt = \GO\Tasks\Model\Task::model()->find($findParams);
     $store->setStatement($stmt);
     $store->getColumnModel()->formatColumn('tasklist_name', '$model->tasklist_name');
     $store->getColumnModel()->formatColumn('late', '$model->isLate();');
     $store->getColumnModel()->formatColumn('is_active', '$model->isActive()');
     return $store->getData();
 }
Example #7
0
 protected function actionLinks($params)
 {
     $model = \GO::getModel($params['model_name'])->findByPk($params['model_id']);
     $store = Store::newInstance(\GO\Base\Model\SearchCacheRecord::model());
     //$model->unlink($model);
     if (!empty($params['unlinks'])) {
         $keys = json_decode($params['unlinks'], true);
         foreach ($keys as $key) {
             $key = explode(':', $key);
             $linkedModel = \GO::getModel($key[0])->findByPk($key[1]);
             $model->unlink($linkedModel);
         }
     }
     //		if(!empty($params['delete_keys'])){
     //
     //			$keys = json_decode($params['delete_keys'], true);
     //
     //			foreach($keys as $key){
     //				$key = explode(':',$key);
     //
     //				$linkedModel = \GO::getModel($key[0])->findByPk($key[1]);
     //				$linkedModel->delete();
     //			}
     //		}
     //we'll do a full text search in getStoreParams
     //		$params['match']=isset($params["query"]) ? $params["query"] : '';
     //		unset($params["query"]);
     $storeParams = $store->getDefaultParams($params)->select("t.*,l.description AS link_description");
     $storeParams->mergeWith($this->getStoreParams($params));
     //if(!empty($params['folder_id']))
     $storeParams->getCriteria()->addCondition('folder_id', $params['folder_id'], '=', 'l');
     if (isset($params['types'])) {
         $types = json_decode($params['types'], true);
         if (count($types)) {
             $storeParams->getCriteria()->addInCondition('model_type_id', $types);
         }
     }
     $stmt = \GO\Base\Model\SearchCacheRecord::model()->findLinks($model, $storeParams);
     $store->setStatement($stmt);
     $cm = $store->getColumnModel();
     $cm->formatColumn('iconCls', '"go-model-".str_replace(\'\\\\\',\'_\',$model->model_name)');
     $cm->formatColumn('name_and_type', '"(".$model->type.") ".$model->name');
     $cm->formatColumn('model_name_and_id', '$model->model_name.":".$model->model_id');
     $cm->formatColumn('link_count', '\\GO::getModel($model->model_name)->countLinks($model->model_id)');
     $data = $store->getData();
     $data['permissionLevel'] = $model->getPermissionLevel();
     return $data;
 }
Example #8
0
 /**
  * Get user groups
  * 
  */
 protected function actionGroups($params)
 {
     $store = \GO\Base\Data\Store::newInstance(\GO\Base\Model\Group::model());
     $store->setDefaultSortOrder('name', 'ASC');
     $findParams = $store->getDefaultParams($params);
     //		if(empty($params['manage'])){
     //
     //			//permissions are handled differently. Users may use all groups they are member of.
     //			$findParams->ignoreAcl();
     //
     //			if(!GO::user()->isAdmin()){
     //				$findParams->getCriteria()
     //								->addCondition('admin_only', 1,'!=')
     //								->addCondition('user_id', GO::user()->id,'=','ug');
     //
     //				$findParams->joinModel(array(
     //						'model'=>"GO\Base\Model\UserGroup",
     //						'localTableAlias'=>'t', //defaults to "t"
     //						'foreignField'=>'group_id', //defaults to primary key of the remote model
     //						'tableAlias'=>'ug', //Optional table alias
     //	 			));
     //			}
     //
     //		}
     $store->setStatement(\GO\Base\Model\Group::model()->find($findParams));
     $store->getColumnModel()->formatColumn('cf', '$model->id.":".$model->name');
     //special field used by custom fields. They need an id an value in one.)
     return $store->getData();
 }
Example #9
0
 function actionEmployees($params)
 {
     $result['success'] = false;
     $company = \GO\Addressbook\Model\Company::model()->findByPk($params['company_id']);
     if (!$company->checkPermissionLevel(\GO\Base\Model\Acl::WRITE_PERMISSION)) {
         throw new \GO\Base\Exception\AccessDenied();
     }
     if (isset($params['delete_keys'])) {
         $response['deleteSuccess'] = true;
         try {
             $delete_contacts = json_decode($params['delete_keys']);
             foreach ($delete_contacts as $id) {
                 $contact = \GO\Addressbook\Model\Contact::model()->findByPk($id);
                 $contact->setAttributes(array('id' => $id, 'company_id' => 0));
                 $contact->save();
             }
         } catch (\Exception $e) {
             $response['deleteFeedback'] = $strDeleteError;
             $response['deleteSuccess'] = false;
         }
     }
     if (isset($params['add_contacts'])) {
         $add_contacts = json_decode($params['add_contacts']);
         foreach ($add_contacts as $id) {
             $contact = \GO\Addressbook\Model\Contact::model()->findByPk($id);
             $contact->setAttributes(array('id' => $id, 'company_id' => $params['company_id']));
             $contact->save();
         }
     }
     $params['field'] = isset($params['field']) ? $params['field'] : 'addressbook_name';
     $store = new \GO\Base\Data\Store($this->getStoreColumnModel());
     $this->formatColumns($store->getColumnModel());
     $response['success'] = true;
     $storeParams = $store->getDefaultParams($params)->criteria(\GO\Base\Db\FindCriteria::newInstance()->addCondition('company_id', $params['company_id']))->mergeWith($this->getStoreParams($params));
     $store->setStatement(call_user_func(array('GO\\Addressbook\\Model\\Contact', 'model'))->find($storeParams));
     return array_merge($response, $store->getData());
 }
Example #10
0
 protected function actionCompanies($params)
 {
     $store = \GO\Base\Data\Store::newInstance(\GO\Addressbook\Model\Company::model());
     $store->getColumnModel()->formatColumn('name', '$model->name', array(), array('first_name', 'last_name'));
     $store->getColumnModel()->formatColumn('addressbook_name', '$model->addressbook->name', array(), 'addressbook_id');
     $store->processDeleteActions($params, "GO\\Addressbook\\Model\\AddresslistCompany", array('addresslist_id' => $params['addresslist_id']));
     $response = array();
     if (!empty($params['add_addressbook_id'])) {
         $addressbook = \GO\Addressbook\Model\Addressbook::model()->findByPk($params['add_addressbook_id']);
         $model = \GO\Addressbook\Model\Addresslist::model()->findByPk($params['addresslist_id']);
         $stmt = $addressbook->companies();
         while ($company = $stmt->fetch()) {
             $model->addManyMany('companies', $company->id);
         }
     } elseif (!empty($params['add_keys'])) {
         $add_keys = json_decode($params['add_keys'], true);
         $model = !isset($model) ? \GO\Addressbook\Model\Addresslist::model()->findByPk($params['addresslist_id']) : $model;
         foreach ($add_keys as $add_key) {
             $model->addManyMany('companies', $add_key);
         }
     } elseif (!empty($params['add_search_result'])) {
         $findParams = \GO::session()->values["company"]['findParams'];
         $findParams->getCriteria()->recreateTemporaryTables();
         $findParams->limit(0)->select('t.id');
         $model = \GO\Addressbook\Model\Addresslist::model()->findByPk($params['addresslist_id']);
         $stmt = \GO\Addressbook\Model\Company::model()->find($findParams);
         foreach ($stmt as $contact) {
             $model->addManyMany('companies', $contact->id);
         }
     }
     $stmt = \GO\Addressbook\Model\Addresslist::model()->findByPk($params['addresslist_id'])->companies($store->getDefaultParams($params));
     $store->setDefaultSortOrder('name', 'ASC');
     $store->setStatement($stmt);
     return array_merge($response, $store->getData());
 }
Example #11
0
 public function actionRecent($params)
 {
     $start = !empty($params['start']) ? $params['start'] : 0;
     $limit = !empty($params['limit']) ? $params['limit'] : 20;
     $store = \GO\Base\Data\Store::newInstance(\GO\Files\Model\File::model());
     $store->getColumnModel()->formatColumn('path', '$model->path', array(), array('first_name', 'last_name'));
     $store->getColumnModel()->formatColumn('weekday', '$fullDays[date("w", $model->mtime)]." ".\\GO\\Base\\Util\\Date::get_timestamp($model->mtime, false);', array('fullDays' => \GO::t('full_days')), array('first_name', 'last_name'));
     $store->setStatement(\GO\Files\Model\File::model()->findRecent($start, $limit));
     $response = $store->getData();
     $store->setStatement(\GO\Files\Model\File::model()->findRecent());
     $response['total'] = $store->getTotal();
     return $response;
 }
Example #12
0
 protected function actionList($params)
 {
     if (!empty($params['query'])) {
         return $this->_searchFiles($params);
     }
     if ($params['folder_id'] == 'shared') {
         return $this->_listShares($params);
     }
     //get the folder that contains the files and folders to list.
     //This will check permissions too.
     $folder = \GO\Files\Model\Folder::model()->findByPk($params['folder_id']);
     if (!$folder) {
         $folder = \GO\Files\Model\Folder::model()->findHomeFolder(GO::user());
     }
     if (!$folder) {
         throw new Exception('No Folder found with id ' . $params['folder_id']);
     }
     $user = $folder->quotaUser;
     $this->_listFolderPermissionLevel = $folder->permissionLevel;
     $response['permission_level'] = $folder->permissionLevel;
     //$folder->readonly ? \GO\Base\Model\Acl::READ_PERMISSION : $folder->permissionLevel;
     if (empty($params['skip_fs_sync']) && empty(GO::config()->files_disable_filesystem_sync)) {
         $folder->checkFsSync();
     }
     //useful information for the view.
     $response['path'] = $folder->path;
     //Show this page in thumbnails or list
     $folderPreference = \GO\Files\Model\FolderPreference::model()->findByPk(array('user_id' => \GO::user()->id, 'folder_id' => $folder->id));
     if ($folderPreference) {
         $response['thumbs'] = $folderPreference->thumbs;
     } else {
         $response['thumbs'] = 0;
     }
     $response['parent_id'] = $folder->parent_id;
     //locked state
     $response['lock_state'] = !empty($folder->apply_state);
     $response['cm_state'] = isset($folder->cm_state) && !empty($folder->apply_state) ? $folder->cm_state : "";
     $response['may_apply_state'] = \GO\Base\Model\Acl::hasPermission($folder->getPermissionLevel(), \GO\Base\Model\Acl::MANAGE_PERMISSION);
     //      if($response["lock_state"]){
     //          $state = json_decode($response["cm_state"]);
     //
     //          if(isset($state->sort)){
     //              $params['sort']=$state->sort->field;
     //              $params['dir']=$state->sort->direction;
     //          }
     //      }
     $store = \GO\Base\Data\Store::newInstance(\GO\Files\Model\Folder::model());
     //set sort aliases
     $store->getColumnModel()->formatColumn('type', '', array(), 'name');
     $store->getColumnModel()->formatColumn('size', '"-"', array(), 'name');
     $store->getColumnModel()->formatColumn('locked_user_id', '"0"');
     //handle delete request for both files and folder
     if (isset($params['delete_keys'])) {
         $ids = $this->_splitFolderAndFileIds(json_decode($params['delete_keys'], true));
         $params['delete_keys'] = json_encode($ids['folders']);
         $store->processDeleteActions($params, "GO\\Files\\Model\\Folder");
         $params['delete_keys'] = json_encode($ids['files']);
         $store->processDeleteActions($params, "GO\\Files\\Model\\File");
     }
     $store->getColumnModel()->setFormatRecordFunction(array($this, 'formatListRecord'));
     $findParams = $store->getDefaultParams($params);
     //sorting on custom fields doesn't work for folders
     if (isset($params['sort']) && substr($params['sort'], 0, 4) == 'col_') {
         $findParams->order("name", $params['dir']);
     }
     $findParamsArray = $findParams->getParams();
     if (!isset($findParamsArray['start'])) {
         $findParamsArray['start'] = 0;
     }
     if (!isset($findParamsArray['limit'])) {
         $findParamsArray['limit'] = 0;
     }
     //$stmt = $folder->folders($findParams);
     $stmt = $folder->getSubFolders($findParams);
     $store->setStatement($stmt);
     $response = array_merge($response, $store->getData());
     //add files to the listing if it fits
     $folderPages = floor($stmt->foundRows / $findParamsArray['limit']);
     $foldersOnLastPage = $stmt->foundRows - $folderPages * $findParamsArray['limit'];
     //$isOnLastPageofFolders = $stmt->foundRows < ($findParams['limit'] + $findParams['start']);
     if (count($response['results'])) {
         $fileStart = $findParamsArray['start'] - $folderPages * $findParamsArray['limit'];
         $fileLimit = $findParamsArray['limit'] - $foldersOnLastPage;
     } else {
         $fileStart = $findParamsArray['start'] - $stmt->foundRows;
         $fileLimit = $findParamsArray['limit'];
     }
     if ($fileStart >= 0) {
         $store->resetResults();
         $store->getColumnModel()->formatColumn('size', '"-"', array(), 'size');
         $store->getColumnModel()->formatColumn('type', '', array(), 'extension');
         $store->getColumnModel()->formatColumn('locked', '$model->isLocked()');
         $store->getColumnModel()->formatColumn('locked_user_id', '$model->locked_user_id');
         $store->getColumnModel()->formatColumn('folder_id', '$model->folder_id');
         $findParams = $store->getDefaultParams($params)->limit($fileLimit)->start($fileStart);
         // Handle the files filter
         if (!empty($params['files_filter'])) {
             $extensions = explode(',', $params['files_filter']);
             $findParams->getCriteria()->addInCondition('extension', $extensions);
         }
         $stmt = $folder->files($findParams);
         $store->setStatement($stmt);
         $filesResponse = $store->getData();
         $response['total'] += $filesResponse['total'];
         $response['results'] = array_merge($response['results'], $filesResponse['results']);
     } else {
         $record = $folder->files(\GO\Base\Db\FindParams::newInstance()->single()->select('count(*) as total'));
         $response['total'] += $record->total;
     }
     if (empty($user)) {
         $user = \GO::user();
     }
     $response['owner_id'] = $user->id;
     $response['disk_usage'] = round($user->disk_usage / 1024 / 1024, 2);
     $response['disk_quota'] = $user->disk_quota;
     return $response;
 }
Example #13
0
 protected function prepareStore(\GO\Base\Data\Store $store)
 {
     $store->getColumnModel()->setFormatRecordFunction(array($this, 'formatParticipantRecord'));
     return $store;
 }
 /**
  * Return the selected items for a grid.
  * 
  * Parameters:
  *	model_id =	The value of one of the keys from the combined primary key of the linkModel that is not given in the linkModelField;
  *			Example:	The combined key of the linkModel is: [user_id,tasklist_id].
  *								The given linkModelField is: [tasklist_id].
  *								Then the model_id needs to be the other value of the combined key so in this example: The value for [user_id]
  *							
  * 
  * @param Array $params
  * @return type 
  */
 protected function actionSelectedStore($params)
 {
     $response = array();
     if (!empty($params['add'])) {
         if ($this->beforeAdd($params)) {
             $ids = json_decode($params['add'], true);
             $linkmodelField = $this->linkModelField();
             $remoteKey = $this->getRemoteKey();
             $linkModelName = $this->linkModelName();
             foreach ($ids as $id) {
                 $linkModel = new $linkModelName();
                 if (isset($params['addAttributes']) && ($attr = json_decode($params['addAttributes'], true))) {
                     $linkModel->setAttributes($attr);
                 }
                 $linkModel->{$linkmodelField} = $id;
                 $linkModel->{$remoteKey} = $params['model_id'];
                 $linkModel->save();
             }
         }
     }
     $model = \GO::getModel($this->modelName());
     $linkModel = \GO::getModel($this->linkModelName());
     $store = \GO\Base\Data\Store::newInstance($model);
     $this->formatColumns($store->getColumnModel());
     if ($model->aclField()) {
         $store->getColumnModel()->formatColumn('permission_level', '$model->permissionLevel');
     }
     try {
         if ($this->beforeDelete($params)) {
             $store->processDeleteActions($params, $this->linkModelName(), $this->getExtraDeletePks($params));
         } else {
             $response['deleteSuccess'] = true;
         }
     } catch (\Exception $e) {
         $response['deleteSuccess'] = false;
         $response['deleteFeedback'] = $e->getMessage();
     }
     $joinCriteria = \GO\Base\Db\FindCriteria::newInstance()->addCondition($model->primaryKey(), 'lt.' . $this->linkModelField(), '=', 't', true, true)->addCondition($this->getRemoteKey(), $params['model_id'], '=', 'lt');
     $findParams = $store->getDefaultParams($params)->ignoreAcl()->select('t.*,lt.*');
     $findParams->join($linkModel->tableName(), $joinCriteria, 'lt', 'INNER');
     $selectedModels = $model->find($findParams);
     $store->setStatement($selectedModels);
     $response = array_merge($response, $store->getData());
     return $response;
 }
Example #15
0
 private function _processTasksDisplay($model, $response)
 {
     //$startOfDay = \GO\Base\Util\Date::clear_time(time());
     $findParams = \GO\Base\Db\FindParams::newInstance()->order('due_time', 'DESC');
     //$findParams->getCriteria()->addCondition('start_time', $startOfDay, '<=')->addCondition('status', \GO\Tasks\Model\Task::STATUS_COMPLETED, '!=');
     $stmt = \GO\Tasks\Model\Task::model()->findLinks($model, $findParams);
     $store = \GO\Base\Data\Store::newInstance(\GO\Tasks\Model\Task::model());
     $store->setStatement($stmt);
     $store->getColumnModel()->setFormatRecordFunction(array($this, 'formatTaskLinkRecord'))->formatColumn('late', '$model->due_time<time() ? 1 : 0;')->formatColumn('tasklist_name', '$model->tasklist->name')->formatColumn('link_count', '$model->countLinks()')->formatColumn('link_description', '$model->link_description');
     $data = $store->getData();
     $response['data']['tasks'] = $data['results'];
     return $response;
 }
Example #16
0
 protected function setStatement()
 {
     $stmt = $this->model->find($this->findParams);
     $this->store->setStatement($stmt);
 }
Example #17
0
 protected function actionUsernames($params)
 {
     //		$store = \GO\Base\Data\Store::newInstance(\GO\Email\Model\Account::model());
     //		$findParams= $store->getDefaultParams($params)->group('username');
     $store = \GO\Base\Data\Store::newInstance(\GO\Base\Model\User::model());
     $findParams = $store->getDefaultParams($params);
     $findParams->joinModel(array('model' => 'GO\\Email\\Model\\Account', 'localTableAlias' => 't', 'localField' => 'id', 'foreignField' => 'user_id', 'tableAlias' => 'acc', 'type' => 'INNER'));
     $findParams->select('acc.username');
     $findParams->joinCustomFields(false);
     $findParams->group(array('acc.username'));
     $stmt = \GO\Base\Model\User::model()->find($findParams);
     //$stmt = \GO\Email\Model\Account::model()->find($findParams);
     $store->setStatement($stmt);
     return $store->getData();
 }
Example #18
0
 public function actionAccountTemplatesStore($params)
 {
     $findParams = \GO\Base\Db\FindParams::newInstance()->order('name');
     $findParams->getCriteria()->addCondition('type', \GO\Addressbook\Model\Template::TYPE_EMAIL);
     $stmt = \GO\Addressbook\Model\Template::model()->find($findParams);
     $store = \GO\Base\Data\Store::newInstance(\GO\Addressbook\Model\Template::model());
     //		$store->getColumnModel()->setFormatRecordFunction(array($this, 'formatEmailSelectionRecord'));
     $store->setStatement($stmt);
     $response = $store->getData();
     $response['total']++;
     $response['results'][] = array('id' => -1, 'name' => '-- ' . \GO::t('userDefaultTemplate', 'addressbook') . ' --', 'group' => '', 'text' => '', 'template_id' => '', 'checked' => false);
     return $response;
 }
Example #19
0
 /**
  * Load the user_calendar_colors 
  * 
  * @param array $params
  * @return array 
  */
 public function actionLoadColors($params)
 {
     $store = \GO\Base\Data\Store::newInstance(\GO\Calendar\Model\Calendar::model());
     $findParams = $store->getDefaultParams($params)->join(\GO\Calendar\Model\CalendarUserColor::model()->tableName(), \GO\Base\Db\FindCriteria::newInstance()->addCondition('id', 'col.calendar_id', '=', 't', true, true)->addCondition('user_id', \GO::user()->id, '=', 'col'), 'col', 'LEFT')->order(array('t.name'))->select('col.*,name,id');
     $findParams->getCriteria()->addCondition('group_id', 1);
     $stmt = \GO\Calendar\Model\Calendar::model()->find($findParams);
     $store->setStatement($stmt);
     $store->getColumnModel()->setFormatRecordFunction(array($this, 'getCalendarColor'));
     return $store->getData();
 }