diff --git a/module/design/config/dtable.php b/module/design/config/dtable.php index 869adaf2ef..e441ec08d9 100644 --- a/module/design/config/dtable.php +++ b/module/design/config/dtable.php @@ -41,8 +41,14 @@ $config->design->dtable->fieldList['actions']['list'] = $config->design->actionL $app->loadLang('repo'); +$config->design->linkcommit->dtable->fieldList['id']['title'] = ''; +$config->design->linkcommit->dtable->fieldList['id']['name'] = ''; +$config->design->linkcommit->dtable->fieldList['id']['checkbox'] = true; +$config->design->linkcommit->dtable->fieldList['id']['type'] = 'checkID'; +$config->design->linkcommit->dtable->fieldList['id']['sortType'] = false; +$config->design->linkcommit->dtable->fieldList['id']['width'] = 30; + $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; diff --git a/module/design/control.php b/module/design/control.php index 3ffe072c80..7160465ed3 100755 --- a/module/design/control.php +++ b/module/design/control.php @@ -311,7 +311,7 @@ class design extends control $repoID = $repoID ? $repoID : key($repos); $repo = $this->loadModel('repo')->getByID($repoID); - $revisions = $this->repo->getCommits($repo, '', 'HEAD', '', '', $begin, date('Y-m-d 23:59:59', strtotime($end))); + $revisions = $this->design->getCommits($repo,$begin, date('Y-m-d 23:59:59', strtotime($end))); if($_POST) { diff --git a/module/design/js/linkcommit.ui.js b/module/design/js/linkcommit.ui.js index 1480d5f86f..cc39b5a5fc 100644 --- a/module/design/js/linkcommit.ui.js +++ b/module/design/js/linkcommit.ui.js @@ -24,7 +24,7 @@ function loadCommit() return false; } - loadPage($.createLink('design', 'linkCommit', "designID=" + designID + '&repoID=' + repoID + '&begin=' + begin + '&end=' + end)); + loadModal($.createLink('design', 'linkCommit', "designID=" + designID + '&repoID=' + repoID + '&begin=' + begin + '&end=' + end), 'viewCommitModal'); } $(document).off('click','.batch-btn').on('click', '.batch-btn', function() diff --git a/module/design/model.php b/module/design/model.php index e16d50aba8..745495b371 100755 --- a/module/design/model.php +++ b/module/design/model.php @@ -350,6 +350,45 @@ class designModel extends model return $design; } + /** + * Get commits + * + * @param object $repo + * @param string $begin + * @param string $end + * @access public + * @return array + */ + public function getCommits(object $repo, string $begin, string $end): array + { + $revisionTime = $this->dao->select('time')->from(TABLE_REPOHISTORY)->alias('t1') + ->leftJoin(TABLE_REPOBRANCH)->alias('t2')->on('t1.id=t2.revision') + ->where('t1.repo')->eq($repo->id) + ->beginIF($repo->SCM != 'Subversion' and $this->cookie->repoBranch)->andWhere('t2.branch')->eq($this->cookie->repoBranch)->fi() + ->orderBy('time desc') + ->limit(1) + ->fetch('time'); + + $comments = $this->dao->select('DISTINCT t1.*')->from(TABLE_REPOHISTORY)->alias('t1') + ->leftJoin(TABLE_REPOBRANCH)->alias('t2')->on('t1.id=t2.revision') + ->where('t1.repo')->eq($repo->id) + ->beginIF($revisionTime)->andWhere('t1.`time`')->le($revisionTime)->fi() + ->andWhere('left(t1.comment, 12)')->ne('Merge branch') + ->beginIF($repo->SCM != 'Subversion' and $this->cookie->repoBranch)->andWhere('t2.branch')->eq($this->cookie->repoBranch)->fi() + ->beginIF($begin)->andWhere('t1.time')->ge($begin)->fi() + ->beginIF($end)->andWhere('t1.time')->le($end)->fi() + ->orderBy('time desc') + ->fetchAll('id'); + + $this->loadModel('repo'); + foreach($comments as $repoComment) + { + $repoComment->originalComment = $repoComment->comment; + $repoComment->comment = $this->repo->replaceCommentLink($repoComment->comment); + } + return $comments; + } + /** * Get designs by search. * diff --git a/module/design/ui/linkcommit.html.php b/module/design/ui/linkcommit.html.php index def3815cb9..61a2f652d4 100644 --- a/module/design/ui/linkcommit.html.php +++ b/module/design/ui/linkcommit.html.php @@ -80,17 +80,25 @@ else ) ); + $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}")), + usePager + ( + array('linkCreator' => helper::createLink('design', 'linkCommit', "designID={$designID}&repoID={$repoID}&begin={$begin}&end={$end}&recTotal={recTotal}&recPerPage={recPerPage}&pageID={page}")), + ), ), ); }