Skip to content
Snippets Groups Projects
Commit 1bf1b380 authored by Balaji M's avatar Balaji M
Browse files

vtiger web UI changes

parent f2b148b2
No related branches found
No related tags found
No related merge requests found
......@@ -91,7 +91,7 @@ mobileapp.controller('VtigerDetailController', function ($scope, $api) {
};
$scope.loadRecord = function () {
$api('fetchRecord', {module:$scope.module, record:$scope.record}, function(e,r) {
$api('fetchRecord', {module:$scope.module, record:$scope.record, view_mode:'web'}, function(e,r) {
$scope.record_label = r.record.label;
$scope.recordId = r.record.id;
if($scope.module == 'Invoice' || $scope.module == 'Quotes' || $scope.module == 'PurchaceOrder' || $scope.module == 'SalesOrder'){
......@@ -164,4 +164,4 @@ mobileapp.controller('InlineEditorController', function($scope){
e.stopPropagation();
$scope.showtooltip = !$scope.showtooltip;
};
});
\ No newline at end of file
});
......@@ -10,9 +10,9 @@
include_once 'include/Webservices/Retrieve.php';
class Mobile_WS_FetchRecord extends Mobile_WS_Controller {
private $module = false;
protected $resolvedValueCache = array();
protected function detectModuleName($recordid) {
......@@ -26,57 +26,55 @@ class Mobile_WS_FetchRecord extends Mobile_WS_Controller {
$current_user = $this->getActiveUser();
$recordid = $request->get('record');
if($request->get('view_mode') == 'web'){
$module = $request->get('module');
$recordid = vtws_getWebserviceEntityId($module, $recordid);
}
$record = vtws_retrieve($recordid, $current_user);
return $record;
}
function process(Mobile_API_Request $request) {
$current_user = $this->getActiveUser();
$record = $request->get('record');
$module = $request->get('module');
$moduleModel = Vtiger_Module_Model::getInstance($module);
$recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleModel);
$data = $recordModel->getData();
$mode = $request->get('mode');
if(!empty($mode) && method_exists($this, $mode)) {
$result = $this->$mode($request);
$response = new Mobile_API_Response();
$response->setResult($result);
return $response;
}
else{
$record = $this->processRetrieve($request);
$data = $this->resolveRecordValues($data, $moduleModel);
$this->resolveRecordValues($record, $current_user);
$response = new Mobile_API_Response();
$response->setResult(array('record' => $data));
$response = new Mobile_API_Response();
$response->setResult(array('record' => $record));
return $response;
return $response;
}
}
public function resolveRecordValues(&$record, $user, $ignoreUnsetFields=false) {
if(empty($record)) return $record;
function resolveRecordValues($data, $moduleModel) {
$fields = $moduleModel->getFields();
$fieldnamesToResolve = Mobile_WS_Utils::detectFieldnamesToResolve(
$this->detectModuleName($record['id']) );
foreach ($data as $fieldName => $value) {
if ($fields[$fieldName]) {
$fieldModel = $fields[$fieldName];
$fieldType = $fieldModel->getFieldDataType();
$referenceModules = $fieldModel->getReferenceList();
if ($fieldType == 'reference' && !in_array('Users', $referenceModules)) {
$data[$fieldName] = array('value' => $value, 'label' => decode_html(Vtiger_Functions::getCRMRecordLabel($value)));
} else if ($fieldType == 'reference' && in_array('Users', $referenceModules)) {
$data[$fieldName] = array('value' => $value, 'label' => decode_html(Vtiger_Functions::getUserRecordLabel($value)));
} else if ($fieldType == 'url') {
$data[$fieldName] = array('value' => $value, 'label' => $value);
} else if ($fieldType == 'owner') {
$ownerName = Vtiger_Functions::getUserRecordLabel($value);
if (!empty($ownerName)) {
$data[$fieldName] = array('value' => $value, 'label' => decode_html($ownerName));
} else {
$data[$fieldName] = array('value' => $value, 'label' => decode_html(Vtiger_Functions::getGroupRecordLabel($value)));
}
} else {
$data[$fieldName] = array('value' => $value, 'label' => decode_html($fieldModel->getDisplayValue($value)));
if(!empty($fieldnamesToResolve)) {
foreach($fieldnamesToResolve as $resolveFieldname) {
if ($ignoreUnsetFields === false || isset($record[$resolveFieldname])) {
$fieldvalueid = $record[$resolveFieldname];
$fieldvalue = $this->fetchRecordLabelForId($fieldvalueid, $user);
$record[$resolveFieldname] = array('value' => $fieldvalueid, 'label'=>decode_html($fieldvalue));
}
}
}
return $data;
}
function fetchRecordLabelForId($id, $user) {
$value = null;
......@@ -88,6 +86,31 @@ class Mobile_WS_FetchRecord extends Mobile_WS_Controller {
} else {
$value = $id;
}
return $value;
return decode_html($value);
}
function getRelatedRecordCount(Mobile_API_Request $request) {
$record = $request->get('record');
$module = $request->get('module');
global $currentModule;
$currentModule = $module;
$parentModuleModel = Vtiger_Module_Model::getInstance($module);
$parentRecordModel = Vtiger_Record_Model::getInstanceById($record, $parentModuleModel);
$relationModels = $parentModuleModel->getRelations();
$relatedRecordsCount = array();
foreach($relationModels as $relation) {
$relatedModuleName = $relation->get('relatedModuleName');
if($relatedModuleName === 'ModTracker') {
continue;
}
$relationId = $relation->getId();
$relationListView = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $relatedModuleName, $relation->get('label'),$relationId);
$count = $relationListView->getRelatedEntriesCount();
$relatedRecordsCount[$relation->get('label')] = array('count'=>$count,'relatedModule'=>$relatedModuleName);
}
return $relatedRecordsCount;
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment