Passed
Push — developer ( 410514...630a8e )
by Radosław
15:06
created

Vtiger_CalendarActivities_Dashboard   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 13
eloc 54
dl 0
loc 68
ccs 0
cts 42
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
C process() 0 61 13
1
<?php
2
/* +**********************************************************************************
3
 * The contents of this file are subject to the vtiger CRM Public License Version 1.1
4
 * ("License"); You may not use this file except in compliance with the License
5
 * The Original Code is:  vtiger CRM Open Source
6
 * The Initial Developer of the Original Code is vtiger.
7
 * Portions created by vtiger are Copyright (C) vtiger.
8
 * All Rights Reserved.
9
 * Contributor(s): YetiForce S.A.
10
 * ********************************************************************************** */
11
12
class Vtiger_CalendarActivities_Dashboard extends Vtiger_IndexAjax_View
13
{
14
	/**
15
	 * Process.
16
	 *
17
	 * @param \App\Request $request
18
	 */
19
	public function process(App\Request $request)
20
	{
21
		$currentUser = Users_Record_Model::getCurrentUserModel();
22
		$viewer = $this->getViewer($request);
23
		$moduleName = 'Home';
24
		$data = $request->getAll();
25
		$stateActivityLabels = Calendar_Module_Model::getComponentActivityStateLabel();
26
		$page = $request->getInteger('page');
27
		$sortOrder = $request->getForSql('sortorder');
28
		if (empty($sortOrder) || !\in_array($sortOrder, ['asc', 'desc'])) {
29
			$sortOrder = 'asc';
30
		}
31
		$sortOrder = ('asc' === $sortOrder) ? SORT_ASC : SORT_DESC;
32
		$orderBy = $request->getForSql('orderby') ?: ['date_start' => $sortOrder, 'time_start' => $sortOrder];
33
		$params = [
34
			'status' => [
35
				$stateActivityLabels['not_started'],
36
				$stateActivityLabels['in_realization'],
37
			],
38
		];
39
		if (!$request->isEmpty('activitytype') && 'all' !== $request->getByType('activitytype', 'Text')) {
40
			$params['activitytype'] = $request->getByType('activitytype', 'Text');
41
		}
42
		if (!$request->isEmpty('taskpriority') && 'all' !== $request->getByType('taskpriority', 'Text')) {
43
			$params['taskpriority'] = $request->getByType('taskpriority', 'Text');
44
		}
45
		$widget = Vtiger_Widget_Model::getInstanceWithWidgetId($request->getInteger('widgetid'), $currentUser->getId());
46
		$owner = Settings_WidgetsManagement_Module_Model::getDefaultUserId($widget, 'Calendar', $request->getByType('owner', 2));
47
		$pagingModel = new Vtiger_Paging_Model();
48
		$pagingModel->set('page', $page);
49
		$pagingModel->set('limit', (int) $widget->get('limit'));
50
		$pagingModel->set('orderby', $orderBy);
51
		$pagingModel->set('sortorder', $sortOrder);
52
		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
53
		$dataValue = $widget->get('data') ? \App\Json::decode($widget->get('data')) : [];
54
		$additionalFiltersFields = $dataValue['additionalFiltersFields'] ?? [];
55
		if ($filterId = $widget->get('filterid')) {
56
			$params['filterId'] = $filterId;
57
		}
58
		$calendarActivities = (false === $owner) ? [] : $moduleModel->getCalendarActivities('upcoming', $pagingModel, $owner, false, $params);
0 ignored issues
show
Bug introduced by
The method getCalendarActivities() does not exist on Vtiger_Module_Model. It seems like you code against a sub-type of Vtiger_Module_Model such as Home_Module_Model. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

58
		$calendarActivities = (false === $owner) ? [] : $moduleModel->/** @scrutinizer ignore-call */ getCalendarActivities('upcoming', $pagingModel, $owner, false, $params);
Loading history...
59
		$msgLabel = 'LBL_NO_SCHEDULED_ACTIVITIES';
60
		$viewer->assign('WIDGET', $widget);
61
		$viewer->assign('CUSTOM_FILTERS', $additionalFiltersFields);
62
		$viewer->assign('SOURCE_MODULE', 'Calendar');
63
		$viewer->assign('MODULE_NAME', $moduleName);
64
		$viewer->assign('ACTIVITIES', $calendarActivities);
65
		$viewer->assign('PAGING_MODEL', $pagingModel);
66
		$viewer->assign('CURRENTUSER', $currentUser);
67
		$viewer->assign('HREFNAMELENGTH', \App\Config::main('href_max_length'));
68
		$viewer->assign('NAMELENGTH', \App\Config::main('title_max_length'));
69
		$viewer->assign('OWNER', $owner);
70
		$viewer->assign('ACTIVITYTYPE', $params['activitytype'] ?? '');
71
		$viewer->assign('TASK_PRIORITY', $params['taskpriority'] ?? '');
72
		$viewer->assign('NODATAMSGLABLE', $msgLabel);
73
		$viewer->assign('DATA', $data);
74
		$viewer->assign('DATE_TYPE', 'START');
75
		$viewer->assign('USER_CONDITIONS', ['condition' => ['vtiger_activity.status' => $params['status']]]);
76
		if ($request->has('content')) {
77
			$viewer->view('dashboards/CalendarActivitiesContents.tpl', $moduleName);
78
		} else {
79
			$viewer->view('dashboards/CalendarActivities.tpl', $moduleName);
80
		}
81
	}
82
}
83