* Code for program index.

This commit is contained in:
Yagami
2020-08-19 14:51:57 +08:00
parent a86cb31895
commit 06e0452d78
8 changed files with 151 additions and 45 deletions
+129 -26
View File
@@ -9,6 +9,37 @@ class program extends control
$this->programs = $this->program->getPairs();
}
/**
* Program index view.
*
* @param int $programID
* @access public
* @return void
*/
public function index($programID = 0)
{
if(!$programID) $programID = $this->session->program;
$this->session->set('program', $programID);
$this->lang->navGroup->program = 'program';
$this->view->title = $this->lang->program->common . $this->lang->colon . $this->lang->program->index;
$this->view->position[] = $this->lang->program->index;
$this->view->program = $this->project->getByID($programID);
$this->display();
}
/**
* Program list.
*
* @param varchar $status
* @param varchar $orderBy
* @param int $recTotal
* @param int $recPerPage
* @param int $pageID
* @access public
* @return void
*/
public function browse($status = 'doing', $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 10, $pageID = 1)
{
if(common::hasPriv('program', 'createGuide')) $this->lang->pageActions = html::a($this->createLink('program', 'createGuide'), "<i class='icon icon-sm icon-plus'></i> " . $this->lang->program->create, '', "class='btn btn-primary' data-toggle=modal");
@@ -42,11 +73,25 @@ class program extends control
$this->display();
}
/**
* Program create guide.
*
* @access public
* @return void
*/
public function createGuide()
{
$this->display();
}
/**
* Create a program.
*
* @param varchar $template
* @param int $copyProgramID
* @access public
* @return void
*/
public function create($template = 'cmmi', $copyProgramID = '')
{
if($_POST)
@@ -93,6 +138,37 @@ class program extends control
$this->display();
}
/**
* Edit a program.
*
* @param int $projectID
* @access public
* @return void
*/
public function edit($projectID = 0)
{
$project = $this->project->getByID($projectID);
if($_POST)
{
$changes = $this->project->update($projectID);
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => $this->processErrors(dao::getError())));
if($changes)
{
$actionID = $this->loadModel('action')->create('project', $projectID, 'edited');
$this->action->logHistory($actionID, $changes);
}
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browse')));
}
$this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst', $project->PM);
$this->view->title = $this->lang->project->edit;
$this->view->position[] = $this->lang->project->edit;
$this->view->project = $project;
$this->view->groups = $this->loadModel('group')->getPairs();
$this->display();
}
/**
* Browse groups.
*
@@ -316,30 +392,14 @@ class program extends control
$this->display('group', 'manageMember');
}
public function edit($projectID = 0)
{
$project = $this->project->getByID($projectID);
if($_POST)
{
$changes = $this->project->update($projectID);
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => $this->processErrors(dao::getError())));
if($changes)
{
$actionID = $this->loadModel('action')->create('project', $projectID, 'edited');
$this->action->logHistory($actionID, $changes);
}
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browse')));
}
$this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst', $project->PM);
$this->view->title = $this->lang->project->edit;
$this->view->position[] = $this->lang->project->edit;
$this->view->project = $project;
$this->view->groups = $this->loadModel('group')->getPairs();
$this->display();
}
/**
* Manage program members.
*
* @param int $projectID
* @param int $dept
* @access public
* @return void
*/
public function manageMembers($projectID, $dept = '')
{
$this->session->set('program', $projectID);
@@ -409,6 +469,14 @@ class program extends control
$this->display();
}
/**
* Delete a program.
*
* @param int $projectID
* @param varchar $confirm
* @access public
* @return void
*/
public function delete($projectID, $confirm = 'no')
{
if($confirm == 'no')
@@ -423,6 +491,13 @@ class program extends control
}
}
/**
* Suspend a program.
*
* @param int $projectID
* @access public
* @return void
*/
public function suspend($projectID)
{
$project = $this->project->getByID($projectID);
@@ -450,6 +525,13 @@ class program extends control
$this->display('project', 'suspend');
}
/**
* Activate a program.
*
* @param int $projectID
* @access public
* @return void
*/
public function activate($projectID)
{
$project = $this->project->getByID($projectID);
@@ -484,6 +566,13 @@ class program extends control
$this->display('project', 'activate');
}
/**
* Close a program.
*
* @param int $projectID
* @access public
* @return void
*/
public function close($projectID)
{
$project = $this->project->getByID($projectID);
@@ -562,6 +651,13 @@ class program extends control
$this->display();
}
/**
* Process program errors.
*
* @param array $errors
* @access public
* @return void
*/
public function processErrors($errors)
{
foreach($errors as $field => $error)
@@ -572,10 +668,18 @@ class program extends control
return $errors;
}
/**
* Ajax get program drop menu.
*
* @param int $programID
* @param varchar $module
* @access public
* @return void
*/
public function ajaxGetDropMenu($programID, $module, $method, $extra)
{
$this->loadModel('project');
$this->view->link = "javascript:void(0)";
$this->view->link = $this->createLink('program', 'index', "programID=$programID");
$this->view->programID = $programID;
$this->view->module = $module;
$this->view->method = $method;
@@ -596,7 +700,6 @@ class program extends control
*/
public function ajaxGetEnterLink($programID = 0)
{
$this->session->set('program', $programID);
$program = $this->project->getByID($programID);
$programProjects = $this->project->getPairs();
$programProject = key($programProjects);