function process(Mobile_API_Request $request) { $current_user = $this->getActiveUser(); //$module = $request->get('module'); $module = $this->detectModuleName($request->get('record')); $record = $this->processRetrieve($request); $this->resolveRecordValues($record, $current_user); $response = new Mobile_API_Response(); $ret_arr = array('record' => $record); if ($request->get('module')) { $module = $request->get('module'); $moduleWSFieldNames = Mobile_WS_Utils::getEntityFieldnames($module); foreach ($moduleWSFieldNames as $key => $value) { $relatedlistcontent[$key] = $record[$value]; } $relatedlistcontent['id'] = $record['id']; $ret_arr['relatedlistcontent'] = $relatedlistcontent; } elseif (vtlib_isModuleActive('ModComments') and $module != 'HelpDesk') { include_once 'include/Webservices/Query.php'; $comments = vtws_query("SELECT * FROM ModComments WHERE related_to = '" . $record['id'] . "' ORDER BY createdtime DESC LIMIT 5;", $current_user); if (count($comments) > 0) { foreach ($comments as &$comment) { $comment['assigned_user_id'] = vtws_getName($comment['assigned_user_id'], $current_user); $comment['createdtime'] = DateTimeField::convertToUserFormat($comment['createdtime']); } $ret_arr['comments'] = $comments; } else { $ret_arr['comments'] = array(); } } elseif ($module == 'HelpDesk') { //there is currently no vtws service for ticket comments $comments = Mobile_WS_Utils::getTicketComments($record); if (!empty($comments)) { foreach ($comments as &$comment) { $comment['assigned_user_id'] = vtws_getName($comment['assigned_user_id'], $current_user); $comment['createdtime'] = DateTimeField::convertToUserFormat($comment['createdtime']); } $ret_arr['comments'] = $comments; } else { $ret_arr['comments'] = array(); } } $response->setResult($ret_arr); return $response; }
function process(Mobile_API_Request $request) { global $app_strings, $mod_strings; $wsResponse = parent::process($request); $response = false; if ($wsResponse->hasError()) { $response = $wsResponse; } else { $wsResponseResult = $wsResponse->getResult(); $current_user = $this->getActiveUser(); $current_language = $this->sessionGet('language'); $app_strings = return_application_language($current_language); $relatedlistsmodule = array_keys($wsResponseResult); $relatedresponse = new Mobile_API_Response(); foreach ($relatedlistsmodule as $module) { $moduleWSId = Mobile_WS_Utils::getEntityModuleWSId($module); if ($module == 'Events' || $module == 'Calendar') { $fieldnames = Mobile_WS_Utils::getEntityFieldnames('Calendar'); } else { $fieldnames = Mobile_WS_Utils::getEntityFieldnames($module); } foreach ($wsResponseResult[$module] as $key => $shortrecordid) { $recordid = $moduleWSId . 'x' . $shortrecordid; $detailrequest = new Mobile_API_Request(); $detailrequest->set('record', $recordid); $detailrequest->set('_operation', 'fetchRecordWithGrouping'); $detailrequest->set('module', $module); $detailresponse = Mobile_WS_FetchRecordWithGrouping::process($detailrequest); $detailresponse_record[$module][$key] = $detailresponse->getResult(); } } $relatedresponse->setResult($detailresponse_record); $response = new Mobile_API_Response(); $current_language = $this->sessionGet('language'); include_once dirname(__FILE__) . '/../language/' . $current_language . '.lang.php'; $viewer = new Mobile_UI_Viewer(); $viewer->assign('LANGUAGE', $current_language); $viewer->assign('MOD', $mod_strings); $viewer->assign('_MODULE', $module); $viewer->assign('_RECORDS', $relatedresponse); $response = $viewer->process('generic/getRelatedLists.tpl'); } return $response; }
function fetchRecordLabelsForModule($module, $user, $morefields = array(), $filterOrAlertInstance = false, $pagingModel = false) { if ($this->isCalendarModule($module)) { $fieldnames = Mobile_WS_Utils::getEntityFieldnames('Calendar'); } else { $fieldnames = Mobile_WS_Utils::getEntityFieldnames($module); } if (!empty($morefields)) { foreach ($morefields as $fieldname) { $fieldnames[] = $fieldname; } } if ($filterOrAlertInstance === false) { $filterOrAlertInstance = Mobile_WS_SearchFilterModel::modelWithCriterias($module); $filterOrAlertInstance->setUser($user); } return $this->queryToSelectFilteredRecords($module, $fieldnames, $filterOrAlertInstance, $pagingModel); }