* Refactor design::edit method.
This commit is contained in:
@@ -24,3 +24,11 @@ $config->design->form->batchcreate['desc'] = array('type' => 'string',
|
||||
$config->design->form->batchcreate['version'] = array('type' => 'int', 'required' => false, 'default' => 1);
|
||||
$config->design->form->batchcreate['createdBy'] = array('type' => 'string', 'required' => false, 'default' => $app->user->account);
|
||||
$config->design->form->batchcreate['createdDate'] = array('type' => 'datetime', 'required' => false, 'default' => $now);
|
||||
|
||||
$config->design->form->edit['name'] = array('type' => 'string', 'required' => true, 'default' => '', 'filter' => 'trim');
|
||||
$config->design->form->edit['type'] = array('type' => 'string', 'required' => true, 'default' => '');
|
||||
$config->design->form->edit['product'] = array('type' => 'int', 'required' => false, 'default' => 0);
|
||||
$config->design->form->edit['story'] = array('type' => 'int', 'required' => false, 'default' => 0);
|
||||
$config->design->form->edit['desc'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor');
|
||||
$config->design->form->edit['editedBy'] = array('type' => 'string', 'required' => false, 'default' => $app->user->account);
|
||||
$config->design->form->edit['editedDate'] = array('type' => 'datetime', 'required' => false, 'default' => $now);
|
||||
|
||||
+12
-18
@@ -227,6 +227,7 @@ class design extends control
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑一个设计。
|
||||
* Edit a design.
|
||||
*
|
||||
* @param int $designID
|
||||
@@ -237,18 +238,14 @@ class design extends control
|
||||
{
|
||||
$design = $this->design->getByID($designID);
|
||||
$design = $this->design->getAffectedScope($design);
|
||||
$this->commonAction($design->project, (int)$design->product, $designID);
|
||||
$this->commonAction((int)$design->project, (int)$design->product, $designID);
|
||||
|
||||
if($_POST)
|
||||
{
|
||||
$changes = $this->design->update($designID);
|
||||
$designData = form::data()->get();
|
||||
$changes = $this->design->update($designID, $designData);
|
||||
|
||||
if(dao::isError())
|
||||
{
|
||||
$response['result'] = 'fail';
|
||||
$response['message'] = dao::getError();
|
||||
return $this->send($response);
|
||||
}
|
||||
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
|
||||
if(!empty($changes))
|
||||
{
|
||||
@@ -256,21 +253,18 @@ class design extends control
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
|
||||
$response['result'] = 'success';
|
||||
$response['message'] = $this->lang->saveSuccess;
|
||||
$response['load'] = $this->createLink('design', 'view', "id={$designID}");
|
||||
return $this->send($response);
|
||||
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => $this->createLink('design', 'view', "id={$designID}")));
|
||||
}
|
||||
|
||||
$products = $this->product->getProductPairsByProject($design->project);
|
||||
$productIdList = $design->product ? $design->product : array_keys($products);
|
||||
$project = $this->loadModel('project')->getByID($design->project);
|
||||
$project = $this->loadModel('project')->getByID((int)$design->project);
|
||||
|
||||
$this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->edit;
|
||||
$this->view->design = $design;
|
||||
$this->view->project = $project;
|
||||
$this->view->stories = $this->loadModel('story')->getProductStoryPairs($productIdList);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noclosed');
|
||||
$this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->edit;
|
||||
$this->view->design = $design;
|
||||
$this->view->project = $project;
|
||||
$this->view->stories = $this->loadModel('story')->getProductStoryPairs($productIdList);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noclosed');
|
||||
$this->view->typeList = $project->model == 'waterfall' ? $this->lang->design->typeList : $this->lang->design->plusTypeList;
|
||||
|
||||
$this->display();
|
||||
|
||||
+24
-31
@@ -79,50 +79,43 @@ class designModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑一个设计。
|
||||
* Update a design.
|
||||
*
|
||||
* @param int $designID
|
||||
* @param int $designID
|
||||
* @param object $design
|
||||
* @access public
|
||||
* @return bool
|
||||
* @return bool|array
|
||||
*/
|
||||
public function update($designID = 0)
|
||||
public function update(int $designID = 0, object $design = null): bool|array
|
||||
{
|
||||
$oldDesign = $this->getByID($designID);
|
||||
$design = fixer::input('post')
|
||||
->add('editedBy', $this->app->user->account)
|
||||
->add('editedDate', helper::now())
|
||||
->stripTags($this->config->design->editor->edit['id'], $this->config->allowedTags)
|
||||
->remove('file,files,labels,children,toList')
|
||||
->get();
|
||||
if(!$oldDesign) return false;
|
||||
|
||||
$design = $this->loadModel('file')->processImgURL($design, 'desc', $this->post->uid);
|
||||
$this->dao->update(TABLE_DESIGN)->data($design)->autoCheck()->batchCheck('name,type', 'notempty')->where('id')->eq($designID)->exec();
|
||||
$design = $this->loadModel('file')->processImgURL($design, 'desc', (string)$this->post->uid);
|
||||
$this->dao->update(TABLE_DESIGN)->data($design)->autoCheck()->batchCheck($this->config->design->edit->requiredFields, 'notempty')->where('id')->eq($designID)->exec();
|
||||
|
||||
if(!dao::isError())
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$this->file->updateObjectID($this->post->uid, $designID, 'design');
|
||||
$files = $this->file->saveUpload('design', $designID);
|
||||
$designChanged = ($oldDesign->name != $design->name || $oldDesign->desc != $design->desc || !empty($files));
|
||||
if($designChanged)
|
||||
{
|
||||
$this->file->updateObjectID($this->post->uid, $designID, 'design');
|
||||
$files = $this->file->saveUpload('design', $designID);
|
||||
$designChanged = ($oldDesign->name != $design->name || $oldDesign->desc != $design->desc || !empty($files));
|
||||
$version = $oldDesign->version + 1;
|
||||
|
||||
if($designChanged)
|
||||
{
|
||||
$design = $this->getByID($designID);
|
||||
$version = $design->version + 1;
|
||||
$spec = new stdclass();
|
||||
$spec->design = $designID;
|
||||
$spec->version = $version;
|
||||
$spec->name = $design->name;
|
||||
$spec->desc = $design->desc;
|
||||
$spec->files = empty($files) ? '' : implode(',', array_keys($files));
|
||||
$this->dao->insert(TABLE_DESIGNSPEC)->data($spec)->exec();
|
||||
$spec = new stdclass();
|
||||
$spec->design = $designID;
|
||||
$spec->version = $version;
|
||||
$spec->name = $design->name;
|
||||
$spec->desc = $design->desc;
|
||||
$spec->files = empty($files) ? '' : implode(',', array_keys($files));
|
||||
$this->dao->insert(TABLE_DESIGNSPEC)->data($spec)->exec();
|
||||
|
||||
$this->dao->update(TABLE_DESIGN)->set('version')->eq($version)->where('id')->eq($designID)->exec();
|
||||
}
|
||||
|
||||
return common::createChanges($oldDesign, $design);
|
||||
$this->dao->update(TABLE_DESIGN)->set('version')->eq($version)->where('id')->eq($designID)->exec();
|
||||
}
|
||||
|
||||
return false;
|
||||
return common::createChanges($oldDesign, $design);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user