* [task#149892,done,1h] finish task.
This commit is contained in:
@@ -222,12 +222,13 @@ class design extends control
|
||||
* View a design.
|
||||
*
|
||||
* @param int $designID
|
||||
* @param int $version
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function view(int $designID = 0)
|
||||
public function view(int $designID = 0, int $version = 0)
|
||||
{
|
||||
$design = $this->design->getByID($designID);
|
||||
$design = $this->design->getByID($designID, $version);
|
||||
$this->commonAction($design->project, $design->product, $designID, $design->type);
|
||||
|
||||
$this->session->set('revisionList', $this->app->getURI(true));
|
||||
@@ -244,6 +245,7 @@ class design extends control
|
||||
$this->view->actions = $this->loadModel('action')->getList('design', $design->id);
|
||||
$this->view->repos = $this->loadModel('repo')->getRepoPairs('project', $design->project);
|
||||
$this->view->project = $project;
|
||||
$this->view->version = $version == 0 ? $design->version : $version;
|
||||
$this->view->typeList = $project->model == 'waterfall' ? $this->lang->design->typeList : $this->lang->design->plusTypeList;
|
||||
|
||||
$this->display();
|
||||
|
||||
@@ -254,15 +254,22 @@ class designModel extends model
|
||||
* @access public
|
||||
* @return object|bool
|
||||
*/
|
||||
public function getByID(int $designID = 0): object|bool
|
||||
public function getByID(int $designID = 0, int $version = 0): object|bool
|
||||
{
|
||||
if(common::isTutorialMode()) return $this->loadModel('tutorial')->getDesign();
|
||||
|
||||
$design = $this->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch();
|
||||
if(!$design) return false;
|
||||
|
||||
if($version == 0) $version = $design->version;
|
||||
|
||||
$this->app->loadLang('product');
|
||||
$design->files = $this->loadModel('file')->getByObject('design', $designID);
|
||||
$this->loadModel('file');
|
||||
$spec = $this->dao->select('name,`desc`,files')->from(TABLE_DESIGNSPEC)->where('design')->eq($designID)->andWhere('version')->eq($version)->fetch();
|
||||
$design->name = !empty($spec->name) ? $spec->name : '';
|
||||
$design->desc = !empty($spec->desc) ? $spec->desc : '';
|
||||
$design->files = !empty($spec->files) ? $this->file->getByIdList($spec->files) : array();
|
||||
|
||||
$design->productName = $design->product ? $this->dao->findByID($design->product)->from(TABLE_PRODUCT)->fetch('name') : $this->lang->product->all;
|
||||
$design->project = (int)$design->project;
|
||||
$design->product = (int)$design->product;
|
||||
|
||||
@@ -11,10 +11,30 @@ declare(strict_types=1);
|
||||
namespace zin;
|
||||
|
||||
jsVar('type', strtolower($design->type));
|
||||
|
||||
/* 版本列表。Version list. */
|
||||
$versions = array();
|
||||
for($i = $design->version; $i >= 1; $i--)
|
||||
{
|
||||
$versionItem = setting()
|
||||
->text("#{$i}")
|
||||
->url(inlink('view', "designID={$design->id}&version=$i"));
|
||||
|
||||
$versionItem->selected($version == $i);
|
||||
$versions[] = $versionItem;
|
||||
}
|
||||
|
||||
$versionBtn = count($versions) > 1 ? to::title(dropdown
|
||||
(
|
||||
btn(set::type('ghost'), setClass('text-link font-normal text-base'), "#{$version}"),
|
||||
set::items($versions)
|
||||
)) : null;
|
||||
|
||||
detailHeader
|
||||
(
|
||||
set::backUrl(createLink('design', 'browse', "projectID={$design->project}")),
|
||||
to::title(entityLabel(set(array('entityID' => $design->id, 'level' => 1, 'text' => $design->name))), $design->deleted ? span(setClass('label danger'), $lang->deleted) : null),
|
||||
$versionBtn
|
||||
);
|
||||
|
||||
$canModify = common::canModify('project', $project);
|
||||
@@ -75,6 +95,7 @@ if($this->design->isClickable($design, 'confirmStoryChange'))
|
||||
|
||||
detailBody
|
||||
(
|
||||
$versionBtn,
|
||||
sectionList
|
||||
(
|
||||
section
|
||||
|
||||
Reference in New Issue
Block a user