From ceee26974e0d7c880e3adf6dcff3e09bf45926d4 Mon Sep 17 00:00:00 2001 From: chenfeiCF Date: Thu, 14 Apr 2016 15:42:28 +0800 Subject: [PATCH] * code for task #2536: Set custom for batch edit project. --- module/project/config.php | 5 +++ module/project/control.php | 8 +++++ module/project/model.php | 29 +++++++++++------ module/project/view/batchedit.html.php | 43 ++++++++++++++++++++------ 4 files changed, 66 insertions(+), 19 deletions(-) diff --git a/module/project/config.php b/module/project/config.php index 79552b2742..f5db59ce6f 100644 --- a/module/project/config.php +++ b/module/project/config.php @@ -11,6 +11,11 @@ $config->project->edit = new stdclass(); $config->project->create->requiredFields = 'name,code,begin,end'; $config->project->edit->requiredFields = 'name,code,begin,end'; +$config->project->customBatchEditFields = 'days,type,teamname,status,PO,QD,PM,RD'; + +$config->project->custom = new stdclass(); +$config->project->custom->batchedit = 'days,status,PM'; + $config->project->editor = new stdclass(); $config->project->editor->create = array('id' => 'desc', 'tools' => 'simpleTools'); $config->project->editor->edit = array('id' => 'desc', 'tools' => 'simpleTools'); diff --git a/module/project/control.php b/module/project/control.php index 69db284b42..191c73bc3d 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -968,11 +968,19 @@ class project extends control $projectIDList = $this->post->projectIDList ? $this->post->projectIDList : die(js::locate($this->session->projectList, 'parent')); + /* Set custom. */ + foreach(explode(',', $this->config->project->customBatchEditFields) as $field) $customFields[$field] = $this->lang->project->$field; + $this->view->customFields = $customFields; + $this->view->showFields = $this->config->project->custom->batchedit; + $this->view->title = $this->lang->project->batchEdit; $this->view->position[] = $this->lang->project->batchEdit; $this->view->projectIDList = $projectIDList; $this->view->projects = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->in($projectIDList)->fetchAll('id'); $this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed,nodeleted,pmfirst'); + $this->view->poUsers = $this->user->getPairs('noclosed,nodeleted,pofirst'); + $this->view->qdUsers = $this->user->getPairs('noclosed,nodeleted,qdfirst'); + $this->view->rdUsers = $this->user->getPairs('noclosed,nodeleted,devfirst'); $this->display(); } diff --git a/module/project/model.php b/module/project/model.php index 6062eb0a5e..134637f7ac 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -343,9 +343,14 @@ class projectModel extends model $projects[$projectID]->name = $this->post->names[$projectID]; $projects[$projectID]->code = $this->post->codes[$projectID]; $projects[$projectID]->PM = $this->post->PMs[$projectID]; + $projects[$projectID]->PO = $this->post->POs[$projectID]; + $projects[$projectID]->QD = $this->post->QDs[$projectID]; + $projects[$projectID]->RD = $this->post->RDs[$projectID]; + $projects[$projectID]->type = $this->post->types[$projectID]; $projects[$projectID]->status = $this->post->statuses[$projectID]; $projects[$projectID]->begin = $this->post->begins[$projectID]; $projects[$projectID]->end = $this->post->ends[$projectID]; + $projects[$projectID]->team = $this->post->teams[$projectID]; $projects[$projectID]->days = $this->post->dayses[$projectID]; $projects[$projectID]->order = $this->post->orders[$projectID]; } @@ -367,16 +372,22 @@ class projectModel extends model ->limit(1) ->exec(); - if($project->PM and !isset($team[$project->PM])) + foreach($project as $fieldName => $value) { - $member = new stdClass(); - $member->project = (int)$projectID; - $member->account = $project->PM; - $member->join = helper::today(); - $member->role = $this->lang->project->PM; - $member->days = 0; - $member->hours = $this->config->project->defaultWorkhours; - $this->dao->insert(TABLE_TEAM)->data($member)->exec(); + if($fieldName == 'PO' or $fieldName == 'PM' or $fieldName == 'QD' or $fieldName == 'RD' ) + { + if(!empty($value) and !isset($team[$value])) + { + $member = new stdClass(); + $member->project = (int)$projectID; + $member->account = $value; + $member->join = helper::today(); + $member->role = $this->lang->project->$fieldName; + $member->days = 0; + $member->hours = $this->config->project->defaultWorkhours; + $this->dao->insert(TABLE_TEAM)->data($member)->exec(); + } + } } if(dao::isError()) die(js::error('project#' . $projectID . dao::getError(true))); diff --git a/module/project/view/batchedit.html.php b/module/project/view/batchedit.html.php index 2ba82f2c27..ffc747cb30 100755 --- a/module/project/view/batchedit.html.php +++ b/module/project/view/batchedit.html.php @@ -15,20 +15,36 @@
icons['project']);?> icons['batchEdit']);?> project->common . $lang->colon . $lang->project->batchEdit;?> +
+ +
+ 5) ? 'w-150px' : ''; +?>
'> - + - - + + + + + + - + + @@ -37,11 +53,16 @@ - - - - - + + + + + + + + + - +
idAB;?>project->name;?> project->name;?> project->code;?> project->PM;?>project->status;?>'>project->PM;?>'>project->PO;?>'>project->QD;?>'>project->RD;?>'>project->type;?>'>project->status;?> project->begin;?> project->end;?> project->days;?>'>project->teamname;?>'>project->days;?> project->order;?>
name, "class='form-control'");?> code, "class='form-control'");?>PM, "class='form-control chosen'");?>project->statusList, $projects[$projectID]->status, 'class=form-control');?>begin, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?>end, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?> + ' style='overflow:visible'>PM, "class='form-control chosen'");?>' style='overflow:visible'>PO, "class='form-control chosen'");?>' style='overflow:visible'>QD, "class='form-control chosen'");?>' style='overflow:visible'>RD, "class='form-control chosen'");?>'>project->typeList, $projects[$projectID]->type, 'class=form-control');?>'>project->statusList, $projects[$projectID]->status, 'class=form-control');?>begin, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?>end, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?>'>team, "class='form-control'");?>'>
days, "class='form-control' autocomplete='off'");?> project->day;?> @@ -50,7 +71,9 @@
order, "class='form-control' autocomplete='off'")?>
+createLink('custom', 'ajaxSaveCustom', 'module=project§ion=custom&key=batchedit')?> +