From 0a79ea5850c1a2e30247b0836d4d64479e23fa53 Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Mon, 31 Aug 2020 17:47:12 +0800 Subject: [PATCH] * Finish task #7760,7759. --- module/design/control.php | 39 ++++++++++++++++++ module/design/lang/en.php | 27 +++++++------ module/design/lang/zh-cn.php | 25 ++++++------ module/design/model.php | 55 +++++++++++++++++++++----- module/design/view/browse.html.php | 12 +++--- module/design/view/linkcommit.html.php | 3 +- module/design/view/viewcommit.html.php | 54 +++++++++++++++++++++++++ 7 files changed, 174 insertions(+), 41 deletions(-) create mode 100644 module/design/view/viewcommit.html.php diff --git a/module/design/control.php b/module/design/control.php index 74373af463..a3ece72f64 100644 --- a/module/design/control.php +++ b/module/design/control.php @@ -264,6 +264,28 @@ class design extends control $this->display(); } + /** + * Unlink commit. + * + * @param int $designID + * @param int $commitID + * @param string $confirm + * @access public + * @return void + */ + public function unlinkCommit($designID = 0, $commitID = 0, $confirm = 'no') + { + if($confirm == 'no') + { + die(js::confirm($this->lang->design->confirmUnlink, inlink('unlinkCommit', "designID=$designID&commitID=$commitID&confirm=yes"))); + } + else + { + $this->design->unlinkCommit($designID, $commitID); + die(js::reload('parent')); + } + } + /** * A version of the code base. * @@ -278,6 +300,23 @@ class design extends control header("location:" . $repoURL); } + /** + * View a design's commit. + * + * @param int $designID + * @access public + * @return void + */ + public function viewCommit($designID = 0) + { + $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->submission; + $this->view->position[] = $this->lang->design->submission; + + $this->view->design = $this->design->getCommit($designID); + + $this->display(); + } + /** * Delete a design. * diff --git a/module/design/lang/en.php b/module/design/lang/en.php index 9979ec2d85..dcecacf229 100644 --- a/module/design/lang/en.php +++ b/module/design/lang/en.php @@ -38,17 +38,19 @@ $lang->design->basicInfo = 'Basic Information'; $lang->design->noAssigned = 'Unassigned'; /* Action list. */ -$lang->design->common = 'Design'; -$lang->design->create = 'Create Design'; -$lang->design->batchCreate = 'Batch Create'; -$lang->design->edit = 'Edit'; -$lang->design->delete = 'Delete'; -$lang->design->view = 'View'; -$lang->design->browse = 'List'; -$lang->design->commit = 'Link Commit'; -$lang->design->submit = 'Submit Review'; -$lang->design->assignTo = 'Assign'; -$lang->design->revision = 'Linked Code'; +$lang->design->common = 'Design'; +$lang->design->create = 'Create Design'; +$lang->design->batchCreate = 'Batch Create'; +$lang->design->edit = 'Edit'; +$lang->design->delete = 'Delete'; +$lang->design->view = 'View'; +$lang->design->browse = 'List'; +$lang->design->viewCommit = 'View Commit'; +$lang->design->linkCommit = 'Link Commit'; +$lang->design->unlinkCommit = 'Unlink Commit'; +$lang->design->submit = 'Submit Review'; +$lang->design->assignTo = 'Assign'; +$lang->design->revision = 'Linked Code'; /* Field value. */ $lang->design->typeList = array(); @@ -69,4 +71,5 @@ $lang->design->featureBar += $lang->design->typeList; $lang->design->errorSelection = 'No record selected!'; $lang->design->noDesign = 'No record.'; $lang->design->noCommit = 'No record commited.'; -$lang->design->confirmDelete = 'Do you want to delete this design?'; +$lang->design->confirmDelete = 'Do you want to delete this design?'; +$lang->design->confirmUnlink = 'Are you sure you want to remove this submission?'; diff --git a/module/design/lang/zh-cn.php b/module/design/lang/zh-cn.php index 7b8cb6bae4..264fd1909c 100644 --- a/module/design/lang/zh-cn.php +++ b/module/design/lang/zh-cn.php @@ -38,17 +38,19 @@ $lang->design->basicInfo = '基本信息'; $lang->design->noAssigned = '未指派'; /* 动作列表. */ -$lang->design->common = '设计'; -$lang->design->create = '创建设计'; -$lang->design->batchCreate = '批量创建'; -$lang->design->edit = '变更'; -$lang->design->delete = '删除'; -$lang->design->view = '设计概况'; -$lang->design->browse = '浏览列表'; -$lang->design->linkCommit = '关联提交'; -$lang->design->submit = '提交评审'; -$lang->design->assignTo = '指派'; -$lang->design->revision = '查看关联代码'; +$lang->design->common = '设计'; +$lang->design->create = '创建设计'; +$lang->design->batchCreate = '批量创建'; +$lang->design->edit = '变更'; +$lang->design->delete = '删除'; +$lang->design->view = '设计概况'; +$lang->design->browse = '浏览列表'; +$lang->design->viewCommit = '查看提交'; +$lang->design->linkCommit = '关联提交'; +$lang->design->unlinkCommit = '取消关联'; +$lang->design->submit = '提交评审'; +$lang->design->assignTo = '指派'; +$lang->design->revision = '查看关联代码'; /* 字段取值. */ $lang->design->typeList = array(); @@ -70,3 +72,4 @@ $lang->design->errorSelection = '还没有选中记录!'; $lang->design->noDesign = '暂时没有记录'; $lang->design->noCommit = '暂时没有提交记录'; $lang->design->confirmDelete = '您确定要删除这个设计吗?'; +$lang->design->confirmUnlink = '您确定要移除这个提交吗?'; diff --git a/module/design/model.php b/module/design/model.php index 009ec8dfbd..95368ab2f5 100644 --- a/module/design/model.php +++ b/module/design/model.php @@ -172,8 +172,6 @@ class designModel extends model */ public function linkCommit($designID = 0, $repoID = 0) { - $this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('design')->andWhere('AID')->eq($designID)->andWhere('BType')->eq('commit')->andWhere('relation')->eq('completedin')->exec(); - $this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('commit')->andWhere('BID')->eq($designID)->andWhere('BType')->eq('design')->andWhere('relation')->eq('completedfrom')->exec(); $revisions = $_POST['revision']; foreach($revisions as $revision) @@ -199,12 +197,40 @@ class designModel extends model $this->dao->replace(TABLE_RELATION)->data($data)->autoCheck()->exec(); } $design = new stdclass(); - $design->commit = implode(",", $revisions); + $design->commit = $this->dao->select('commit')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch('commit'); + + if($design->commit) + { + $design->commit = implode(",", $revisions) . "," . $design->commit; + } + else + { + $design->commit = implode(",", $revisions); + } + $design->commitDate = helper::now(); $design->commitBy = $this->app->user->account; $this->dao->update(TABLE_DESIGN)->data($design)->autoCheck()->where('id')->eq($designID)->exec(); } + /** + * Unlink commit. + * + * @param int $designID + * @param int $commitID + * @access public + * @return void + */ + public function unlinkCommit($designID = 0, $commitID = 0) + { + $this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('design')->andwhere('AID')->eq($designID)->andwhere('BType')->eq('commit')->andwhere('relation')->eq('completedin')->andWhere('BID')->eq($commitID)->exec(); + $this->dao->delete()->from(TABLE_RELATION)->where('AType')->eq('commit')->andwhere('BID')->eq($designID)->andwhere('BType')->eq('design')->andwhere('relation')->eq('completedfrom')->andWhere('AID')->eq($commitID)->exec(); + + $commit = $this->dao->select('BID')->from(TABLE_RELATION)->where('AType')->eq('design')->andWhere('AID')->eq($designID)->fetchAll('BID'); + $commit = implode(",", array_keys($commit)); + $this->dao->update(TABLE_DESIGN)->set('commit')->eq($commit)->where('id')->eq($designID)->exec(); + } + /** * Set product menu. * @@ -312,16 +338,25 @@ class designModel extends model ->fetchAll('id'); } - foreach($designs as $id => $design) - { - $design->commit = ''; - $relations = $this->loadModel('common')->getRelations('design', $id, 'commit'); - foreach($relations as $relation) $design->commit .= html::a(helper::createLink('design', 'revision', "repoID=$relation->BID", '', true), "#$relation->BID", '_blank'); - } - return $designs; } + /** + * Get commit. + * + * @param int $designID + * @access public + * @return void + */ + public function getCommit($designID = 0) + { + $design = $this->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch(); + + $design->commit = $design->commit ? explode(",", $design->commit) : ''; + + return $design; + } + /** * Get designs by search. * diff --git a/module/design/view/browse.html.php b/module/design/view/browse.html.php index ba4ad2968f..b8af5713e3 100644 --- a/module/design/view/browse.html.php +++ b/module/design/view/browse.html.php @@ -42,14 +42,13 @@ recTotal}&recPerPage={$pager->recPerPage}";?> - idAB);?> + design->id);?> design->type);?> design->name);?> - design->submission);?> design->createdBy);?> design->createdDate);?> design->assignedTo);?> - design->actions;?> + design->actions;?> @@ -58,16 +57,15 @@ id);?> design->typeList, $design->type);?> createLink('design', 'view', "id={$design->id}"), $design->name);?> - commit;?> createdBy;?> createdDate, 0, 11);?> design->printAssignedHtml($design, $users);?> id}"; - common::printIcon('design', 'edit', $vars, $design, 'list', 'fork', '', '', '', '', '', $design->program); - common::printIcon('design', 'linkCommit', $vars, $design, 'list', 'link', '', 'iframe showinonlybody', true); - common::printIcon('design', 'delete', $vars, $design, 'list', 'trash', 'hiddenwin', '', '', '', '', $design->program); + common::printIcon('design', 'edit', $vars, $design, 'list', 'fork', '', '', '', '', '', $design->program); + common::printIcon('design', 'viewCommit', $vars, $design, 'list', 'glasses', '', 'iframe showinonlybody', true); + common::printIcon('design', 'delete', $vars, $design, 'list', 'trash', 'hiddenwin', '', '', '', '', $design->program); ?> diff --git a/module/design/view/linkcommit.html.php b/module/design/view/linkcommit.html.php index edd10c77a9..98a97c81e8 100644 --- a/module/design/view/linkcommit.html.php +++ b/module/design/view/linkcommit.html.php @@ -54,10 +54,11 @@ + id, $linkedRevisions)) continue;?>
- revision, $linkedRevisions)) echo 'checked="checked"'?>/> +
diff --git a/module/design/view/viewcommit.html.php b/module/design/view/viewcommit.html.php new file mode 100644 index 0000000000..4f6bd9132f --- /dev/null +++ b/module/design/view/viewcommit.html.php @@ -0,0 +1,54 @@ + + * @package design + * @version $Id: commit.html.php 4903 2013-06-26 05:32:59Z wyd621@gmail.com $ + * @link http://www.zentao.net + */ +?> + +
+
+

+ id;?> + name?> + arrow . $lang->design->submission;?> +

+
+ commit)):?> +
+

design->noCommit;?>

+
+ +
+ id", "" . $lang->design->linkCommit, '_blank', "class='btn btn-primary'");?> +
+ + + + + + + + + + + commit as $commit):?> + + + + + + + + +
design->submission;?>design->commitBy;?>design->commitDate;?> design->actions;?>
commitBy;?>commitDate, 0, 11);?> + id&commitID=$commit", $design, 'list', 'unlink', 'hiddenwin', 'iframe showinonlybody', true);?> +
+ +
+