|
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_OverdueActivities_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
|
|
|
$moduleName = 'Home'; |
|
23
|
|
|
$page = $request->getInteger('page'); |
|
24
|
|
|
$linkId = $request->getInteger('linkid'); |
|
25
|
|
|
$sortOrder = $request->getForSql('sortorder'); |
|
26
|
|
|
if (empty($sortOrder) || !\in_array($sortOrder, ['asc', 'desc'])) { |
|
27
|
|
|
$sortOrder = 'asc'; |
|
28
|
|
|
} |
|
29
|
|
|
$sortOrder = ($sortOrder === 'asc') ? SORT_ASC : SORT_DESC; |
|
30
|
|
|
$orderBy = $request->getForSql('orderby') ?: ['due_date' => $sortOrder, 'time_end' => $sortOrder]; |
|
31
|
|
|
$data = $request->getAll(); |
|
32
|
|
|
$widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); |
|
33
|
|
|
$owner = Settings_WidgetsManagement_Module_Model::getDefaultUserId($widget, 'Calendar', $request->getByType('owner', 2)); |
|
34
|
|
|
$pagingModel = new Vtiger_Paging_Model(); |
|
35
|
|
|
$pagingModel->set('page', $page); |
|
36
|
|
|
$pagingModel->set('limit', (int) $widget->get('limit')); |
|
37
|
|
|
$pagingModel->set('orderby', $orderBy); |
|
38
|
|
|
$pagingModel->set('sortorder', $sortOrder); |
|
39
|
|
|
$params = ['status' => Calendar_Module_Model::getComponentActivityStateLabel('overdue')]; |
|
40
|
|
|
if (!$request->isEmpty('activitytype') && 'all' !== $request->getByType('activitytype', 'Text')) { |
|
41
|
|
|
$params['activitytype'] = $request->getByType('activitytype', 'Text'); |
|
42
|
|
|
} |
|
43
|
|
|
$moduleModel = Vtiger_Module_Model::getInstance($moduleName); |
|
44
|
|
|
$overDueActivities = (false === $owner) ? [] : $moduleModel->getCalendarActivities('overdue', $pagingModel, $owner, false, $params); |
|
|
|
|
|
|
45
|
|
|
$viewer = $this->getViewer($request); |
|
46
|
|
|
$viewer->assign('SOURCE_MODULE', 'Calendar'); |
|
47
|
|
|
$viewer->assign('WIDGET', $widget); |
|
48
|
|
|
$viewer->assign('MODULE_NAME', $moduleName); |
|
49
|
|
|
$viewer->assign('ACTIVITIES', $overDueActivities); |
|
50
|
|
|
$viewer->assign('PAGING_MODEL', $pagingModel); |
|
51
|
|
|
$viewer->assign('CURRENTUSER', $currentUser); |
|
52
|
|
|
$viewer->assign('NAMELENGTH', \App\Config::main('title_max_length')); |
|
53
|
|
|
$viewer->assign('HREFNAMELENGTH', \App\Config::main('href_max_length')); |
|
54
|
|
|
$viewer->assign('NODATAMSGLABLE', 'LBL_NO_OVERDUE_ACTIVITIES'); |
|
55
|
|
|
$viewer->assign('OWNER', $owner); |
|
56
|
|
|
$viewer->assign('ACTIVITYTYPE', $params['activitytype'] ?? ''); |
|
57
|
|
|
$viewer->assign('DATA', $data); |
|
58
|
|
|
$viewer->assign('DATE_TYPE', 'DUE'); |
|
59
|
|
|
$viewer->assign('USER_CONDITIONS', ['condition' => ['vtiger_activity.status' => $params['status']]]); |
|
60
|
|
|
if ($request->has('content')) { |
|
61
|
|
|
$viewer->view('dashboards/CalendarActivitiesContents.tpl', $moduleName); |
|
62
|
|
|
} else { |
|
63
|
|
|
$viewer->view('dashboards/CalendarActivities.tpl', $moduleName); |
|
64
|
|
|
} |
|
65
|
|
|
} |
|
66
|
|
|
} |
|
67
|
|
|
|