From 3286172cbc57a1a20cc8ef247ee03ce2cf66d218 Mon Sep 17 00:00:00 2001 From: sunguangming Date: Fri, 16 Jun 2023 16:45:43 +0800 Subject: [PATCH] * Finish task #95504. --- module/project/control.php | 4 +- module/project/model.php | 23 +++---- module/project/ui/batchedit.html.php | 99 ++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+), 13 deletions(-) create mode 100644 module/project/ui/batchedit.html.php diff --git a/module/project/control.php b/module/project/control.php index 5d2400b779..eb0815b0db 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -541,7 +541,7 @@ class project extends control $this->loadModel('action'); $this->loadModel('execution'); - if($this->post->names) + if($this->post->name) { $allChanges = $this->project->batchUpdate(); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -574,7 +574,7 @@ class project extends control } $unauthorizedPrograms = $this->program->getPairsByList($unauthorizedIDList); - $this->view->title = $this->lang->project->batchEdit; + $this->view->title = $this->lang->project->batchEdit; $this->view->projects = $projects; $this->view->programs = $programs; diff --git a/module/project/model.php b/module/project/model.php index dddd27ca73..0ae721ca9b 100755 --- a/module/project/model.php +++ b/module/project/model.php @@ -1427,28 +1427,28 @@ class projectModel extends model $projects = array(); $allChanges = array(); $data = fixer::input('post')->get(); - $oldProjects = $this->getByIdList($this->post->projectIdList); + $oldProjects = $this->getByIdList($this->post->id); $extendFields = $this->getFlowExtendFields(); - foreach($data->projectIdList as $projectID) + foreach($data->id as $projectID) { $projectID = (int)$projectID; - $projectName = $data->names[$projectID]; - if(isset($data->codes)) $projectCode = $data->codes[$projectID]; + $projectName = $data->name[$projectID]; + if(isset($data->code)) $projectCode = $data->code[$projectID]; $projects[$projectID] = new stdClass(); - if(isset($data->parents[$projectID])) $projects[$projectID]->parent = $data->parents[$projectID]; + if(isset($data->parent[$projectID])) $projects[$projectID]->parent = $data->parent[$projectID]; $projects[$projectID]->id = $projectID; $projects[$projectID]->name = $projectName; $projects[$projectID]->model = $oldProjects[$projectID]->model; - $projects[$projectID]->PM = $data->PMs[$projectID]; - $projects[$projectID]->begin = $data->begins[$projectID]; - $projects[$projectID]->end = $data->ends[$projectID] == $this->lang->project->longTime ? LONG_TIME : $data->ends[$projectID]; - $projects[$projectID]->days = $data->ends[$projectID] == $this->lang->project->longTime ? 0 : $data->dayses[$projectID]; - $projects[$projectID]->acl = $data->acls[$projectID]; + $projects[$projectID]->PM = $data->PM[$projectID]; + $projects[$projectID]->begin = $data->begin[$projectID]; + $projects[$projectID]->end = $data->end[$projectID] == $this->lang->project->longTime ? LONG_TIME : $data->end[$projectID]; + $projects[$projectID]->acl = $data->acl[$projectID]; $projects[$projectID]->lastEditedBy = $this->app->user->account; $projects[$projectID]->lastEditedDate = helper::now(); - if(isset($data->codes)) $projects[$projectID]->code = $projectCode; + if(isset($data->code)) $projects[$projectID]->code = $projectCode; + if($data->end[$projectID] == $this->lang->project->longTime) $projects[$projectID]->days = 0; foreach($extendFields as $extendField) { @@ -1458,6 +1458,7 @@ class projectModel extends model $projects[$projectID]->{$extendField->field} = htmlSpecialString($projects[$projectID]->{$extendField->field}); } } + if(dao::isError()) return false; $this->loadModel('execution'); diff --git a/module/project/ui/batchedit.html.php b/module/project/ui/batchedit.html.php new file mode 100644 index 0000000000..b674d2fad8 --- /dev/null +++ b/module/project/ui/batchedit.html.php @@ -0,0 +1,99 @@ + + * @package project + * @link https://www.zentao.net + */ +namespace zin; + +$setCode = (isset($config->setCode) and $config->setCode == 1); +$aclList = (empty($globalDisableProgram) and $project->parent) ? $lang->program->subAcls : $lang->project->acls; + +formBatchPanel +( + set::mode('edit'), + set::data(array_values($projects)), + formBatchItem + ( + set::name('id'), + set::label($lang->idAB), + set::control('hidden'), + set::hidden(true), + ), + formBatchItem + ( + set::name('id'), + set::label($lang->idAB), + set::control('index'), + set::width('38px'), + ), + formBatchItem + ( + set::name('parent'), + set::label($lang->project->program), + set::control('select'), + set::items($programs), + set::width('128px'), + ), + formBatchItem + ( + set::name('name'), + set::label($lang->project->name), + set::width('240px'), + ), + $setCode ? formBatchItem + ( + set::name('code'), + set::label($lang->project->code), + set::width('136px'), + ) : null, + formBatchItem + ( + set::name('PM'), + set::label($lang->project->PM), + set::control('select'), + set::ditto(true), + set::defaultDitto('off'), + set::items($PMUsers), + set::width('136px'), + ), + formBatchItem + ( + set::name('PO'), + set::label($lang->project->PO), + set::control('select'), + set::ditto(true), + set::defaultDitto('off'), + set::items($poUsers), + set::width('80px'), + set::hidden(true), + ), + formBatchItem + ( + set::name('begin'), + set::label($lang->project->begin), + set::control('date'), + set::width('76px'), + ), + formBatchItem + ( + set::name('end'), + set::label($lang->project->end), + set::control('date'), + set::width('76px'), + ), + formBatchItem + ( + set::name('acl'), + set::label($lang->project->acl), + set::control('select'), + set::items($aclList), + set::width('128px'), + ), +); + +render();