Finish task#3253 优化看板卡片弹出菜单的位置,cost:1 left:0

Finish task#3243 看板增加自定义设置显示颜色的功能,cost:3 left:0
Finish task#3242 看板增加默认展开/折叠任务选项卡的功能,cost:1 left:0
Finish task#3241 看板增加显示/隐藏已关闭已取消任务的功能,cost:2 left:0
This commit is contained in:
wangyidong
2017-10-20 16:27:17 +08:00
parent 9043edd8ca
commit c312b64220
11 changed files with 261 additions and 37 deletions
+78
View File
@@ -1273,6 +1273,13 @@ class project extends control
$this->view->orderBy = $orderBy;
$this->view->projectID = $projectID;
$this->view->project = $project;
$kanbanSetting = $this->project->getKanbanSetting($projectID);
$this->view->allCols = $kanbanSetting->allCols;
$this->view->showOption = $kanbanSetting->showOption;
$this->view->colorList = $kanbanSetting->colorList;
$this->display();
}
@@ -1992,4 +1999,75 @@ class project extends control
{
$this->locate($this->createLink('doc', 'objectLibs', "type=project&objectID=$projectID&from=project"));
}
/**
* Kanban setting.
*
* @param int $projectID
* @access public
* @return void
*/
public function ajaxKanbanSetting($projectID)
{
if($_POST)
{
$this->loadModel('setting');
$data = fixer::input('post')->get();
if(common::hasPriv('project', 'kanbanHideCols'))
{
$allCols = array();
if(isset($this->config->project->kanbanSetting->allCols))
{
$allCols = json_decode($this->config->project->kanbanSetting->allCols, true);
}
$allCols[$projectID] = $data->allCols;
$this->setting->setItem("system.project.kanbanSetting.allCols", json_encode($allCols));
}
$account = $this->app->user->account;
$this->setting->setItem("{$account}.project.kanbanSetting.showOption", $data->showOption);
if(common::hasPriv('project', 'kanbanColsColor')) $this->setting->setItem("system.project.kanbanSetting.colorList", json_encode($data->colorList));
die(js::reload('parent.parent'));
}
$this->app->loadLang('task');
$kanbanSetting = $this->project->getKanbanSetting($projectID);
$this->view->allCols = $kanbanSetting->allCols;
$this->view->showOption = $kanbanSetting->showOption;
$this->view->colorList = $kanbanSetting->colorList;
$this->view->projectID = $projectID;
$this->display();
}
/**
* Ajax reset kanban setting
*
* @param int $projectID
* @param string $confirm
* @access public
* @return void
*/
public function ajaxResetKanban($projectID, $confirm = 'no')
{
if($confirm != 'yes')die(js::confirm($this->lang->kanbanSetting->noticeReset, inlink('ajaxResetKanban', "projectID=$projectID&confirm=yes")));
$this->loadModel('setting');
if(common::hasPriv('project', 'kanbanHideCols') and isset($this->config->project->kanbanSetting->allCols))
{
$allCols = json_decode($this->config->project->kanbanSetting->allCols, true);
unset($allCols[$projectID]);
$this->setting->setItem("system.project.kanbanSetting.allCols", json_encode($allCols));
}
$account = $this->app->user->account;
$this->setting->deleteItems("owner={$account}&module=project&section=kanbanSetting&key=showOption");
if(common::hasPriv('project', 'kanbanColsColor')) $this->setting->deleteItems("owner=system&module=project&section=kanbanSetting&key=colorList");
die(js::reload('parent.parent'));
}
}