晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/akaindir/public_html/crm/modules/Calendar/views/ |
Upload File : |
<?php
/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
class Calendar_TaskManagement_View extends Vtiger_Index_View {
function __construct() {
$this->exposeMethod('showManagementView');
$this->exposeMethod('getAllContents');
$this->exposeMethod('getContentsOfPriority');
}
public function process(Vtiger_Request $request) {
$mode = $request->getMode();
if (!empty($mode) && $this->isMethodExposed($mode)) {
$this->invokeExposedMethod($mode, $request);
return;
}
}
public function showManagementView(Vtiger_Request $request) {
$moduleName = $request->getModule();
$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
$statusField = Vtiger_Field_Model::getInstance('taskstatus', $moduleModel);
$ownerField = Vtiger_Field_Model::getInstance('assigned_user_id', $moduleModel);
$viewer = $this->getViewer($request);
$viewer->assign('MODULE', $moduleName);
$viewer->assign('STATUS_FIELD', $statusField);
$viewer->assign('OWNER_FIELD', $ownerField);
$viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel());
$viewer->assign('TASK_FILTERS', $this->getFiltersFromSession());
$module = Vtiger_Module_Model::getInstance($moduleName);
$field = Vtiger_Field_Model::getInstance('taskpriority', $module);
$priorities = $field->getPicklistValues();
$page = 1;
if ($request->get('page')) {
$page = $request->get('page');
}
$viewer->assign('PAGE', $page);
$viewer->assign('PRIORITIES', array_keys($priorities));
$viewer->assign('COLORS', $this->generateColors($request));
$viewer->view('TaskManagement.tpl', $moduleName);
}
public function getAllContents(Vtiger_Request $request) {
$moduleName = $request->getModule();
$module = Vtiger_Module_Model::getInstance($moduleName);
$field = Vtiger_Field_Model::getInstance('taskpriority', $module);
$priorities = $field->getPicklistValues();
$data = array();
foreach ($priorities as $key => $value) {
$request->set('priority', $key);
$data[$key] = $this->getContentsOfPriority($request, true);
}
echo json_encode($data);
}
public function getContentsOfPriority(Vtiger_Request $request, $fetch = false) {
$moduleName = $request->getModule();
$page = 1;
if ($request->get('page')) {
$page = $request->get('page');
}
$pagingModel = new Vtiger_Paging_Model();
$pagingModel->set('page', $page);
$pagingModel->set('limit', 10);
$tasks = $this->filterRecords($request, $pagingModel);
$viewer = $this->getViewer($request);
$viewer->assign('MODULE', $moduleName);
$viewer->assign('TASKS', $tasks[$request->get('priority')]);
$viewer->assign('PRIORITY', $request->get('priority'));
$viewer->assign('TASK_FILTERS', $this->getFiltersFromSession());
$viewer->assign('COLORS', $this->generateColors($request));
$viewer->assign('PAGING_MODEL', $pagingModel);
return $viewer->view('TaskManagementContents.tpl', $moduleName, $fetch);
}
public function generateColors(Vtiger_Request $request) {
$moduleName = $request->getModule();
$module = Vtiger_Module_Model::getInstance($moduleName);
$field = Vtiger_Field_Model::getInstance('taskpriority', $module);
$priorities = $field->getPicklistValues();
if (!$request->get('colors')) {
$colors = array();
foreach ($priorities as $key => $value) {
$colors[$key] = $this->getColor($key);
}
} else {
$colors = $request->get('colors');
}
return $colors;
}
public function getColor($priority) {
$color = '';
switch ($priority) {
case 'High' : $color = '#FF5555'; break;
case 'Medium' : $color = '#03C04A'; break;
case 'Low' : $color = '#54A7F5'; break;
default : $color = '#'.dechex(rand(0x000000, 0xFFFFFF));
break;
}
return $color;
}
protected function setFiltersInSession($filters) {
if (!isset($filters['status'])) {
$filters['status'] = array();
}
if (!isset($filters['assigned_user_id'])) {
$filters['assigned_user_id'] = array();
}
$_SESSION['task_filters'] = $filters;
}
protected function getFiltersFromSession() {
$filters = $_SESSION['task_filters'];
if (!isset($filters)) {
$filters = array('status' => array(), 'date' => 'all', 'assigned_user_id' => array());
}
return $filters;
}
public function filterRecords(Vtiger_Request $request, $pagingModel) {
$moduleName = $request->getModule();
$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
$filters = $request->get('filters');
$this->setFiltersInSession($filters);
$conditions = array();
foreach ($filters as $name => $value) {
if ($name == 'date') {
switch ($value) {
case 'today': $conditions[$name] = array();
$startDate = new DateTimeField(date('Y-m-d').' 00:00:00');
$endDate = new DateTimeField(date('Y-m-d').' 23:59:59');
$conditions[$name]['comparator'] = 'bw';
$conditions[$name]['fieldName'] = 'due_date';
$conditions[$name]['fieldValue'] = array('start' => $startDate->getDBInsertDateTimeValue(), 'end' => $endDate->getDBInsertDateTimeValue());
break;
case 'thisweek':$conditions[$name] = array();
$thisweek0 = date('Y-m-d', strtotime('-1 week Sunday'));
$thisWeekStartDateTime = new DateTimeField($thisweek0.' 00:00:00');
$thisweek1 = date('Y-m-d', strtotime('this Saturday'));
$thisWeekEndDateTime = new DateTimeField($thisweek1.' 23:59:59');
$conditions[$name]['comparator'] = 'bw';
$conditions[$name]['fieldName'] = 'due_date';
$conditions[$name]['fieldValue'] = array('start' => $thisWeekStartDateTime->getDBInsertDateTimeValue(), 'end' => $thisWeekEndDateTime->getDBInsertDateTimeValue());
break;
case 'range' : $conditions[$name] = array();
$startDate = new DateTimeField($filters['startRange'].' 00:00:00');
$endDate = new DateTimeField($filters['endRange'].' 23:59:59');
$conditions[$name]['comparator'] = 'bw';
$conditions[$name]['fieldName'] = 'due_date';
$conditions[$name]['fieldValue'] = array('start' => $startDate->getDBInsertDateTimeValue(), 'end' => $endDate->getDBInsertDateTimeValue());
break;
case 'all' : $name = 'status';
$conditions[$name] = array();
$conditions[$name]['comparator'] = 'n';
$conditions[$name]['fieldValue'] = 'Completed';
$conditions[$name]['fieldName'] = 'taskstatus';
break;
}
} else if ($name == 'status') {
$conditions[$name] = array();
$conditions[$name]['comparator'] = 'e';
$conditions[$name]['fieldValue'] = $value;
$conditions[$name]['fieldName'] = 'taskstatus';
} else if ($name == 'assigned_user_id') {
$conditions[$name] = array();
$conditions[$name]['comparator'] = 'e';
$conditions[$name]['fieldValue'] = $value;
$conditions[$name]['fieldName'] = 'assigned_user_id';
}
}
if ($request->get('priority') != null) {
$conditions['priority'] = array();
$conditions['priority']['comparator'] = 'e';
$conditions['priority']['fieldValue'] = $request->get('priority');
$conditions['priority']['fieldName'] = 'taskpriority';
}
$tasks = $moduleModel->getAllTasksbyPriority($conditions, $pagingModel);
return $tasks;
}
}