From 9754b4f6108c491b97b9cc8911e654a83ae05cdd Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 20 Jun 2023 15:38:42 +0800 Subject: [PATCH] * Refactor design link commit page. --- module/common/lang/de.php | 1 + module/common/lang/en.php | 1 + module/common/lang/fr.php | 1 + module/common/lang/zh-cn.php | 1 + module/design/config.php | 9 ++- module/design/config/dtable.php | 26 +++++++ module/design/control.php | 10 +-- module/design/css/common.ui.css | 1 + module/design/css/linkcommit.ui.css | 3 + module/design/css/viewcommit.ui.css | 1 - module/design/js/common.ui.js | 2 +- module/design/js/linkcommit.ui.js | 41 +++++++++++ module/design/ui/linkcommit.html.php | 105 +++++++++++++++++++++++++++ 13 files changed, 190 insertions(+), 12 deletions(-) create mode 100644 module/design/css/linkcommit.ui.css create mode 100644 module/design/js/linkcommit.ui.js create mode 100644 module/design/ui/linkcommit.html.php diff --git a/module/common/lang/de.php b/module/common/lang/de.php index 6a9e9b0bd3..13aa525a6f 100644 --- a/module/common/lang/de.php +++ b/module/common/lang/de.php @@ -25,6 +25,7 @@ $lang->ellipsis = '…'; $lang->percent = '%'; $lang->dash = '-'; $lang->and = 'and'; +$lang->to = 'To'; $lang->zentaoPMS = 'ZenTao'; $lang->pmsName = 'ALM'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index c8a6eac5c0..b21e17ee4a 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -25,6 +25,7 @@ $lang->ellipsis = '…'; $lang->percent = '%'; $lang->dash = '-'; $lang->and = 'and'; +$lang->to = 'To'; $lang->zentaoPMS = 'ZenTao'; $lang->pmsName = 'ALM'; diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php index 5868d95ac9..fd1dc46017 100644 --- a/module/common/lang/fr.php +++ b/module/common/lang/fr.php @@ -25,6 +25,7 @@ $lang->ellipsis = '…'; $lang->percent = '%'; $lang->dash = '-'; $lang->and = 'and'; +$lang->to = 'To'; $lang->zentaoPMS = 'ZenTao'; $lang->pmsName = 'ALM'; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 3ff01cb783..fa115c3eed 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -25,6 +25,7 @@ $lang->ellipsis = '…'; $lang->percent = '%'; $lang->dash = '-'; $lang->and = '和'; +$lang->to = '至'; $lang->zentaoPMS = '禅道'; $lang->pmsName = '开源版'; diff --git a/module/design/config.php b/module/design/config.php index 487a6a4ff6..e2205112b5 100644 --- a/module/design/config.php +++ b/module/design/config.php @@ -53,10 +53,11 @@ $config->design->actionList['assignTo']['text'] = $lang->design->assignTo $config->design->actionList['assignTo']['url'] = helper::createLink('design', 'assignTo', 'designID={id}', '', true); $config->design->actionList['assignTo']['data-toggle'] = 'modal'; -$config->design->actionList['linkCommit']['icon'] = 'link'; -$config->design->actionList['linkCommit']['text'] = $lang->design->linkCommit; -$config->design->actionList['linkCommit']['url'] = helper::createLink('design', 'linkCommit', 'designID={id}', '', true); -$config->design->actionList['linkCommit']['data-toggle'] = 'modal'; +$config->design->actionList['linkCommit']['icon'] = 'link'; +$config->design->actionList['linkCommit']['text'] = $lang->design->linkCommit; +$config->design->actionList['linkCommit']['url'] = helper::createLink('design', 'linkCommit', 'designID={id}', '', true); +$config->design->actionList['linkCommit']['data-toggle'] = 'modal'; +$config->design->actionList['linkCommit']['data-position'] = 'center'; $config->design->view->operateList['main'] = array('assignTo', 'linkCommit'); $config->design->view->operateList['common'] = array('edit', 'delete'); diff --git a/module/design/config/dtable.php b/module/design/config/dtable.php index ccc0e3c8e3..63eac24419 100644 --- a/module/design/config/dtable.php +++ b/module/design/config/dtable.php @@ -1,6 +1,8 @@ design->dtable = new stdclass(); +$config->design->linkcommit = new stdclass(); +$config->design->linkcommit->dtable = new stdclass(); $config->design->dtable->fieldList['id']['title'] = $lang->idAB; $config->design->dtable->fieldList['id']['type'] = 'id'; @@ -28,3 +30,27 @@ $config->design->dtable->fieldList['createdDate']['type'] = 'date'; $config->design->dtable->fieldList['actions']['type'] = 'actions'; $config->design->dtable->fieldList['actions']['menu'] = array('edit', 'viewCommit', 'delete'); $config->design->dtable->fieldList['actions']['list'] = $config->design->actionList; + +$app->loadLang('repo'); + +$config->design->linkcommit->dtable->fieldList['revision']['title'] = $lang->repo->revisionA; +$config->design->linkcommit->dtable->fieldList['revision']['checkbox'] = true; +$config->design->linkcommit->dtable->fieldList['revision']['type'] = 'title'; +$config->design->linkcommit->dtable->fieldList['revision']['link'] = helper::createLink('repo', 'revision', 'repoID=%s&objectID=%s&revision={revision}'); +$config->design->linkcommit->dtable->fieldList['revision']['sortType'] = false; + +$config->design->linkcommit->dtable->fieldList['commit']['title'] = $lang->repo->commit; +$config->design->linkcommit->dtable->fieldList['commit']['type'] = 'category'; +$config->design->linkcommit->dtable->fieldList['commit']['sortType'] = false; + +$config->design->linkcommit->dtable->fieldList['time']['title'] = $lang->repo->time; +$config->design->linkcommit->dtable->fieldList['time']['type'] = 'date'; +$config->design->linkcommit->dtable->fieldList['time']['sortType'] = false; + +$config->design->linkcommit->dtable->fieldList['committer']['title'] = $lang->repo->committer; +$config->design->linkcommit->dtable->fieldList['committer']['type'] = 'user'; +$config->design->linkcommit->dtable->fieldList['committer']['sortType'] = false; + +$config->design->linkcommit->dtable->fieldList['comment']['title'] = $lang->repo->comment; +$config->design->linkcommit->dtable->fieldList['comment']['type'] = 'html'; +$config->design->linkcommit->dtable->fieldList['comment']['sortType'] = false; diff --git a/module/design/control.php b/module/design/control.php index de418c734e..4538b6efe0 100755 --- a/module/design/control.php +++ b/module/design/control.php @@ -316,11 +316,7 @@ class design extends control if($_POST) { $this->design->linkCommit($designID, $repoID); - - $result['result'] = 'success'; - $result['message'] = $this->lang->saveSuccess; - $result['locate'] = 'parent'; - return $this->send($result); + return $this->sendSuccess(array('closeModal' => true, 'load' => true)); } /* Linked submission. */ @@ -338,8 +334,10 @@ class design extends control $pager = new pager(count($revisions), $recPerPage, $pageID); $revisions = array_chunk($revisions, $pager->recPerPage); - $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->linkCommit; + $this->config->design->linkcommit->dtable->fieldList['revision']['link'] = sprintf($this->config->design->linkcommit->dtable->fieldList['revision']['link'], $repoID, $design->project); + if(empty($repo->SCM) || $repo->SCM != 'Git') unset($this->config->design->linkcommit->dtable->fieldList['commit']); + $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->linkCommit; $this->view->repos = $repos; $this->view->repoID = $repoID; $this->view->repo = $repo; diff --git a/module/design/css/common.ui.css b/module/design/css/common.ui.css index c5bf93c1d8..17428f3bf7 100644 --- a/module/design/css/common.ui.css +++ b/module/design/css/common.ui.css @@ -1,2 +1,3 @@ .panel-form > .panel-heading.modal-heading {justify-content: flex-start; padding-bottom: 0px;} .panel-form > .panel-heading.modal-heading > .panel-title {font-weight: 400; justify-content:flex-end; width: 5rem;} +.no-data-box {height: 300px; display: -webkit-box; -webkit-box-orient: horizontal; -webkit-box-pack: center; -webkit-box-align: center;} diff --git a/module/design/css/linkcommit.ui.css b/module/design/css/linkcommit.ui.css new file mode 100644 index 0000000000..c79c08f319 --- /dev/null +++ b/module/design/css/linkcommit.ui.css @@ -0,0 +1,3 @@ +.select-repo-box, .select-date-box {display: inline-flex;} +.select-repo-box .repo-title {width: 104px;} +.select-date-box .date-title {width: 62px;} diff --git a/module/design/css/viewcommit.ui.css b/module/design/css/viewcommit.ui.css index 95da296669..e69de29bb2 100644 --- a/module/design/css/viewcommit.ui.css +++ b/module/design/css/viewcommit.ui.css @@ -1 +0,0 @@ -.no-data-box {height: 300px; display: -webkit-box; -webkit-box-orient: horizontal; -webkit-box-pack: center; -webkit-box-align: center;} diff --git a/module/design/js/common.ui.js b/module/design/js/common.ui.js index ec22428e69..3377d97ed3 100644 --- a/module/design/js/common.ui.js +++ b/module/design/js/common.ui.js @@ -11,7 +11,7 @@ $(function() * @access public * @return void */ -window.loadStory = function() +function loadStory() { const productID = $(this).val(); const link = $.createLink('design', 'ajaxGetProductStories', 'productID=' + productID + '&projectID=' + projectID + '&status=active&hasParent=false'); diff --git a/module/design/js/linkcommit.ui.js b/module/design/js/linkcommit.ui.js new file mode 100644 index 0000000000..1480d5f86f --- /dev/null +++ b/module/design/js/linkcommit.ui.js @@ -0,0 +1,41 @@ +function loadCommit() +{ + let begin = $('#begin').val(); + let end = $('#end').val(); + let repoID = $('#repo').val(); + + if(begin.indexOf('-') != -1) + { + let beginarray = begin.split("-"); + begin = ''; + for(i = 0; i < beginarray.length; i++) begin = begin + beginarray[i]; + } + if(end.indexOf('-') != -1) + { + let endarray = end.split("-"); + end = ''; + for(i = 0 ; i < endarray.length ; i++) end = end + endarray[i]; + } + + if(begin > end) + { + zui.Modal.alert(errorDate); + loadPage($.createLink('design', 'linkCommit', "designID=" + designID + '&repoID=' + repoID)); + return false; + } + + loadPage($.createLink('design', 'linkCommit', "designID=" + designID + '&repoID=' + repoID + '&begin=' + begin + '&end=' + end)); +} + +$(document).off('click','.batch-btn').on('click', '.batch-btn', function() +{ + const dtable = zui.DTable.query($(this)); + const checkedList = dtable.$.getChecks(); + if(!checkedList.length) return; + + const url = $(this).data('url'); + const form = new FormData(); + checkedList.forEach((id) => form.append('revision[]', id)); + + $.ajaxSubmit({url, data: form}); +}); diff --git a/module/design/ui/linkcommit.html.php b/module/design/ui/linkcommit.html.php new file mode 100644 index 0000000000..ace4a0d8c1 --- /dev/null +++ b/module/design/ui/linkcommit.html.php @@ -0,0 +1,105 @@ + + * @package design + * @link https://www.zentao.net + */ +namespace zin; + +jsVar('designID', $designID); +jsVar('type', strtolower($type)); +jsVar('errorDate', $lang->design->errorDate); + +if(empty($repoID)) +{ + div + ( + setClass('no-data-box'), + span + ( + setClass('text-gray'), + $lang->design->noCommit, + ), + ); +} +else +{ + featureBar + ( + div + ( + setClass('select-repo-box'), + span + ( + setClass('flex items-center repo-title'), + $lang->repo->maintain + ), + select + ( + set::id('repo'), + set::name('repo'), + set::value($repoID), + set::items($repos), + on::change('loadCommit'), + set::required(true), + ), + ), + div + ( + setClass('select-date-box ml-8'), + span + ( + setClass('flex items-center date-title'), + $lang->design->commitDate + ), + inputGroup + ( + input + ( + set::type('date'), + set::id('begin'), + set::name('begin'), + set::value($begin), + on::change('loadCommit'), + ), + $lang->to, + input + ( + set::type('date'), + set::id('end'), + set::name('end'), + set::value($end), + on::change('loadCommit'), + ), + ) + ) + ); + + $footToolbar['items'][] = array( + 'text' => $lang->save, + 'class' => 'btn batch-btn secondary size-sm', + 'data-url' => inlink('linkCommit', "designID={$designID}&repoID={$repoID}&begin={$begin}&end={$end}"), + ); + dtable + ( + set::className('mt-2'), + set::userMap($users), + set::cols($config->design->linkcommit->dtable->fieldList), + set::data($revisions), + set::footToolbar($footToolbar), + set::checkInfo(jsRaw('function(checkedIDList){return \'\';}')), + set::footPager( + usePager(), + set::recPerPage($pager->recPerPage), + set::recTotal($pager->recTotal), + set::linkCreator(helper::createLink('design', 'linkCommit', "designID={$designID}&repoID={$repoID}&begin={$begin}&end={$end}&recTotal={recTotal}&recPerPage={recPerPage}&pageID={pageID}")), + ), + ); +} + +/* ====== Render page ====== */ +render('modalDialog');