Merge branch 'zentaopms_239' into 'sgm_69027'
# Conflicts: # db/update17.6.1.sql
This commit is contained in:
@@ -1,2 +1,4 @@
|
||||
ALTER TABLE `zt_product` ADD `shadow` tinyint(1) unsigned NOT NULL AFTER `code`;
|
||||
ALTER TABLE `zt_project` ADD `hasProduct` tinyint(1) unsigned NOT NULL DEFAULT 1 AFTER `code`;
|
||||
|
||||
ALTER TABLE `zt_product` MODIFY `name` varchar(110) NOT NULL;
|
||||
+1
-1
@@ -1096,7 +1096,7 @@ CREATE TABLE IF NOT EXISTS `zt_planstory` (
|
||||
CREATE TABLE IF NOT EXISTS `zt_product` (
|
||||
`id` mediumint(8) unsigned NOT NULL auto_increment,
|
||||
`program` mediumint(8) unsigned NOT NULL,
|
||||
`name` varchar(90) NOT NULL,
|
||||
`name` varchar(110) NOT NULL,
|
||||
`code` varchar(45) NOT NULL,
|
||||
`shadow` tinyint(1) unsigned NOT NULL,
|
||||
`bind` enum('0','1') NOT NULL DEFAULT '0',
|
||||
|
||||
@@ -209,7 +209,7 @@ $lang->scrum->menu->devops = array('link' => "{$lang->repo->common}|repo|brow
|
||||
$lang->scrum->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s");
|
||||
$lang->scrum->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease');
|
||||
$lang->scrum->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s");
|
||||
$lang->scrum->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team');
|
||||
$lang->scrum->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team');
|
||||
|
||||
$lang->scrum->dividerMenu = ',execution,programplan,doc,settings,';
|
||||
|
||||
@@ -241,6 +241,7 @@ $lang->scrum->menu->settings['subMenu']->members = array('link' => "{$lang->
|
||||
$lang->scrum->menu->settings['subMenu']->whitelist = array('link' => "{$lang->whitelist}|project|whitelist|project=%s", 'subModule' => 'personnel');
|
||||
$lang->scrum->menu->settings['subMenu']->stakeholder = array('link' => "{$lang->stakeholder->common}|stakeholder|browse|project=%s", 'subModule' => 'stakeholder');
|
||||
$lang->scrum->menu->settings['subMenu']->group = array('link' => "{$lang->priv}|project|group|project=%s", 'alias' => 'group,manageview,managepriv');
|
||||
$lang->scrum->menu->settings['subMenu']->module = array('link' => "{$lang->module}|tree|browse|product=%s&view=story");
|
||||
|
||||
/* Waterfall menu. */
|
||||
$lang->waterfall->menu = new stdclass();
|
||||
@@ -295,7 +296,7 @@ $lang->kanbanProject = new stdclass();
|
||||
$lang->kanbanProject->menu = new stdclass();
|
||||
$lang->kanbanProject->menu->index = array('link' => "{$lang->kanban->common}|project|index|project=%s");
|
||||
$lang->kanbanProject->menu->build = array('link' => "{$lang->build->common}|project|build|project=%s");
|
||||
$lang->kanbanProject->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team');
|
||||
$lang->kanbanProject->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team');
|
||||
|
||||
$lang->kanbanProject->dividerMenu = '';
|
||||
|
||||
@@ -309,6 +310,7 @@ $lang->kanbanProject->menu->settings['subMenu']->view = array('link' => "
|
||||
$lang->kanbanProject->menu->settings['subMenu']->products = array('link' => "{$lang->product->common}|project|manageProducts|project=%s", 'alias' => 'manageproducts');
|
||||
$lang->kanbanProject->menu->settings['subMenu']->members = array('link' => "{$lang->team->common}|project|team|project=%s", 'alias' => 'managemembers,team');
|
||||
$lang->kanbanProject->menu->settings['subMenu']->whitelist = array('link' => "{$lang->whitelist}|project|whitelist|project=%s", 'subModule' => 'personnel');
|
||||
$lang->kanbanProject->menu->settings['subMenu']->module = array('link' => "{$lang->module}|tree|browse|product=%s&view=story");
|
||||
|
||||
/* Execution menu. */
|
||||
$lang->execution->homeMenu = new stdclass();
|
||||
|
||||
@@ -6,3 +6,5 @@ $config->datatable->moduleAlias['testtask-cases'] = 'testcase';
|
||||
$config->datatable->moduleAlias['program-project'] = 'project';
|
||||
$config->datatable->moduleAlias['project-bug'] = 'bug';
|
||||
$config->datatable->moduleAlias['execution-bug'] = 'bug';
|
||||
|
||||
$config->datatable->noProductModule = ',review,';
|
||||
|
||||
@@ -23,6 +23,12 @@ class datatableModel extends model
|
||||
public function getFieldList($module)
|
||||
{
|
||||
if(!isset($this->config->$module)) $this->loadModel($module);
|
||||
if($this->session->hasProduct == 0 and (strpos($this->config->datatable->noProductModule, ",$module,") !== false))
|
||||
{
|
||||
$productIndex = array_search('product', $this->config->$module->datatable->defaultField);
|
||||
if($productIndex) unset($this->config->$module->datatable->defaultField[$productIndex]);
|
||||
if(isset($this->config->$module->datatable->fieldList['product'])) unset($this->config->$module->datatable->fieldList['product']);
|
||||
}
|
||||
if($this->session->currentProductType === 'normal') unset($this->config->$module->datatable->fieldList['branch']);
|
||||
foreach($this->config->$module->datatable->fieldList as $field => $items)
|
||||
{
|
||||
|
||||
@@ -847,6 +847,10 @@ class execution extends control
|
||||
$branchOption[$branchID] = $name;
|
||||
}
|
||||
}
|
||||
|
||||
$projectID = $execution->project;
|
||||
$project = $this->loadModel('project')->getByID($projectID);
|
||||
if(empty($project->hasProduct)) unset($this->config->product->search['fields']['product']);
|
||||
$this->execution->buildStorySearchForm($products, $branchGroups, $modules, $queryID, $actionURL, 'executionStory', $executionID);
|
||||
|
||||
/* Header and position. */
|
||||
|
||||
@@ -1604,7 +1604,7 @@ class executionModel extends model
|
||||
->beginIF($limit)->limit($limit)->fi()
|
||||
->fetchAll('id');
|
||||
|
||||
if(isset($project->model) and $project->model == 'waterfall')
|
||||
if(isset($project->model) and $project->model == 'waterfall' and $project->hasProduct)
|
||||
{
|
||||
$executionList = array();
|
||||
$executionProducts = $this->dao->select('t1.project,t1.product')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
|
||||
@@ -295,6 +295,9 @@ class product extends control
|
||||
unset($this->config->product->search['fields']['stage']);
|
||||
}
|
||||
|
||||
$project = $this->loadModel('project')->getByID($projectID);
|
||||
if(empty($project->hasProduct)) unset($this->config->product->search['fields']['product']);
|
||||
|
||||
/* Build search form. */
|
||||
$rawModule = $this->app->rawModule;
|
||||
$rawMethod = $this->app->rawMethod;
|
||||
@@ -347,7 +350,7 @@ class product extends control
|
||||
$this->view->storyType = $storyType;
|
||||
$this->view->from = $this->app->tab;
|
||||
$this->view->modulePairs = $showModule ? $this->tree->getModulePairs($productID, 'story', $showModule) : array();
|
||||
$this->view->project = $this->loadModel('project')->getByID($projectID);
|
||||
$this->view->project = $project;
|
||||
$this->display();
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ $projectIDParam = $isProjectStory ? "projectID=$projectID&" : '';
|
||||
<?php endif;?>
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php if($isProjectStory): ?>
|
||||
<?php if(!empty($project->hasProduct)):?>
|
||||
<div class='btn-group'>
|
||||
<a href='javascript:;' class='btn btn-link btn-limit text-ellipsis' data-toggle='dropdown' style="max-width: 120px;"><span class='text' title='<?php echo $productName;?>'><?php echo $productName;?></span> <span class='caret'></span></a>
|
||||
<ul class='dropdown-menu' style='max-height:240px; max-width: 300px; overflow-y:auto'>
|
||||
@@ -71,6 +72,7 @@ $projectIDParam = $isProjectStory ? "projectID=$projectID&" : '';
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<div class="btn-group">
|
||||
<a href="javascript:;" class="btn btn-link" style="padding-right: 0;"> <?php echo $moduleName;?> </a>
|
||||
<?php
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<tr class='text-left'>
|
||||
<?php if($config->URAndSR):?>
|
||||
<th <?php echo $style;?>>
|
||||
<?php if($this->app->rawModule == 'projectstory'): ?>
|
||||
<?php if($this->app->rawModule == 'projectstory' and $this->session->hasProduct): ?>
|
||||
<div class="dropdown">
|
||||
<?php echo html::a('javascript:;', "<i class='icon icon-product'></i><div class='product-name'>{$projectProducts[$productID]->name}</div><span class='caret'></span>", '', 'class="dropdown-toggle" data-toggle="dropdown"');?>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
@@ -37,9 +37,11 @@ class programplan extends control
|
||||
{
|
||||
$products = $this->loadModel('product')->getProductPairsByProject($projectID);
|
||||
$productID = $this->product->saveState($productID, $products);
|
||||
$project = $this->loadModel('project')->getByID($projectID);
|
||||
|
||||
$this->session->set('hasProduct', $project->hasProduct);
|
||||
$this->productID = $productID;
|
||||
$this->loadModel('project')->setMenu($projectID);
|
||||
$this->project->setMenu($projectID);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -62,7 +64,7 @@ class programplan extends control
|
||||
if(!defined('RUN_MODE') || RUN_MODE != 'api') $projectID = $this->project->saveState((int)$projectID, $this->project->getPairsByProgram());
|
||||
|
||||
$products = $this->loadModel('product')->getProducts($projectID);
|
||||
$this->lang->modulePageNav = $this->product->select($products, $this->productID, 'programplan', 'browse', $type, 0, 0, '', false);
|
||||
if($this->session->hasProduct) $this->lang->modulePageNav = $this->product->select($products, $this->productID, 'programplan', 'browse', $type, 0, 0, '', false);
|
||||
|
||||
$this->lang->TRActions = "<button class='btn btn-link' data-toggle='dropdown'><i class='icon icon-export muted'></i> <span class='text'>" . $this->lang->export . "</span> <span class='caret'></span></button>";
|
||||
$this->lang->TRActions .= "<ul class='dropdown-menu' id='exportActionMenu'>";
|
||||
@@ -151,9 +153,10 @@ class programplan extends control
|
||||
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $locate));
|
||||
}
|
||||
|
||||
$productList = array();
|
||||
$this->app->loadLang('stage');
|
||||
$project = $this->loadModel('project')->getById($projectID);
|
||||
$productList = $this->loadModel('product')->getProductPairsByProject($projectID);
|
||||
if($this->session->hasProduct) $productList = $this->loadModel('product')->getProductPairsByProject($projectID);
|
||||
|
||||
$this->view->title = $this->lang->programplan->create . $this->lang->colon . $project->name;
|
||||
$this->view->position[] = html::a($this->createLink('programplan', 'browse', "projectID=$projectID"), $project->name);
|
||||
|
||||
@@ -28,3 +28,4 @@
|
||||
#dataform th {vertical-align: top; padding-top: 13px;}
|
||||
.futureBox {vertical-align: top !important; padding-top: 13px !important;}
|
||||
#linkPlan {padding-top: 25px !important;}
|
||||
#projectType {padding-top: 7px !important;}
|
||||
|
||||
@@ -7,3 +7,4 @@
|
||||
#dataform th {vertical-align: top; padding-top: 13px;}
|
||||
#linkPlan {padding-top: 25px !important;}
|
||||
#productsBox .row .col-sm-4.required::after {right: -5px;}
|
||||
#projectType {padding-top: 7px !important;}
|
||||
|
||||
@@ -1269,7 +1269,7 @@ class projectModel extends model
|
||||
{
|
||||
/* If parent not empty, link products or create products. */
|
||||
$product = new stdclass();
|
||||
$product->name = !$project->hasProduct ? "{$project->name}_{$projectID}" : ($this->post->productName ? $this->post->productName : $project->name);
|
||||
$product->name = !$project->hasProduct ? "SHADOW_{$project->name}_{$projectID}" : ($this->post->productName ? $this->post->productName : $project->name);
|
||||
$product->shadow = (int)empty($project->hasProduct);
|
||||
$product->bind = $this->post->parent ? 0 : 1;
|
||||
$product->program = $project->parent ? current(array_filter(explode(',', $program->path))) : 0;
|
||||
@@ -2436,6 +2436,7 @@ class projectModel extends model
|
||||
$model = 'scrum';
|
||||
$objectID = (empty($objectID) and $this->session->project) ? $this->session->project : $objectID;
|
||||
$project = $this->getByID($objectID);
|
||||
|
||||
if($project and $project->model == 'waterfall') $model = $project->model;
|
||||
if($project and $project->model == 'kanban')
|
||||
{
|
||||
@@ -2451,6 +2452,17 @@ class projectModel extends model
|
||||
$lang->project->dividerMenu = $lang->{$model}->dividerMenu;
|
||||
}
|
||||
|
||||
if(empty($project->hasProduct))
|
||||
{
|
||||
unset($this->lang->project->menu->settings['subMenu']->products);
|
||||
$projectProduct = $this->dao->select('product')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($objectID)->fetch()->product;
|
||||
$this->lang->project->menu->settings['subMenu']->module['link'] = sprintf($this->lang->project->menu->settings['subMenu']->module['link'], $projectProduct);
|
||||
}
|
||||
else
|
||||
{
|
||||
unset($this->lang->project->menu->settings['subMenu']->module);
|
||||
}
|
||||
|
||||
/* Reset project priv. */
|
||||
$moduleName = $this->app->rawModule;
|
||||
$methodName = $this->app->rawMethod;
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->type;?></th>
|
||||
<th id='projectType'><?php echo $lang->project->type;?></th>
|
||||
<td><?php echo html::radio('hasProduct', $lang->project->projectTypeList, 1);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -74,6 +74,13 @@
|
||||
<td><?php echo html::input('code', $project->code, "class='form-control' required");?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th id='projectType'><?php echo $lang->project->type;?></th>
|
||||
<td>
|
||||
<?php echo zget($lang->project->projectTypeList, $project->hasProduct);?>
|
||||
<?php echo html::hidden('hasProduct', $project->hasProduct);?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->PM;?></th>
|
||||
<td><?php echo html::select('PM', $PMUsers, $project->PM, "class='form-control chosen'" . (strpos($requiredFields, 'PM') !== false ? ' required' : ''));?></td>
|
||||
@@ -125,6 +132,7 @@
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php if($project->hasProduct):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->manageProducts;?></th>
|
||||
<td class='text-left' id='productsBox' colspan="3">
|
||||
@@ -175,6 +183,7 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($project->model == 'kanban'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->execution->team;?></th>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<?php js::set('disabledExecutionTip', sprintf($lang->project->disabledInputTip, $lang->programplan->stageCustom->task));?>
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
<div class='btn-toolbar pull-left'>
|
||||
<?php if($project->hasProduct):?>
|
||||
<div class='btn-group'>
|
||||
<?php $viewName = $productID != 0 ? zget($productList,$productID) : $lang->product->allProduct;?>
|
||||
<a href='javascript:;' class='btn btn-link btn-limit' data-toggle='dropdown'><span class='text' title='<?php echo $viewName;?>'><?php echo $viewName;?></span> <span class='caret'></span></a>
|
||||
@@ -26,6 +27,7 @@
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php common::sortFeatureMenu('execution', 'all');?>
|
||||
<?php foreach($lang->execution->featureBar['all'] as $key => $label):?>
|
||||
<?php $label = "<span class='text'>$label</span>";?>
|
||||
|
||||
@@ -152,6 +152,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php if(!empty($project->hasProduct)):?>
|
||||
<div class="detail">
|
||||
<div class="detail-title">
|
||||
<strong><?php echo $lang->project->manageProducts;?></strong>
|
||||
@@ -187,6 +188,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<div class='detail'>
|
||||
<div class='detail-title'><strong><?php echo $lang->execution->lblStats;?></strong></div>
|
||||
<div class="detail-content">
|
||||
|
||||
@@ -530,6 +530,7 @@ class projectrelease extends control
|
||||
$branches = array('' => '', BRANCH_MAIN => $this->lang->branch->main, $release->branch => $branchName);
|
||||
$this->config->product->search['params']['branch']['values'] = $branches;
|
||||
}
|
||||
if($this->view->project->model == 'waterfall' && empty($this->view->project->hasProduct)) unset($this->config->product->search['fields']['plan']);
|
||||
$this->loadModel('search')->setSearchParams($this->config->product->search);
|
||||
|
||||
if($browseType == 'bySearch')
|
||||
@@ -651,6 +652,7 @@ class projectrelease extends control
|
||||
$branches = array('' => '', BRANCH_MAIN => $this->lang->branch->main, $release->branch => $branchName);
|
||||
$this->config->bug->search['params']['branch']['values'] = $branches;
|
||||
}
|
||||
if($this->view->project->model == 'waterfall' && empty($this->view->project->hasProduct)) unset($this->config->bug->search['fields']['plan']);
|
||||
$this->loadModel('search')->setSearchParams($this->config->bug->search);
|
||||
|
||||
$allBugs = array();
|
||||
|
||||
@@ -46,7 +46,9 @@
|
||||
<tr>
|
||||
<th class='c-id'><?php echo $lang->release->id;?></th>
|
||||
<th><?php echo $lang->release->name;?></th>
|
||||
<?php if($project->hasProduct):?>
|
||||
<th class='c-product'><?php echo $lang->release->product;?></th>
|
||||
<?php endif;?>
|
||||
<th class='c-execution'><?php echo $lang->executionCommon;?></th>
|
||||
<th class='c-build'><?php echo $lang->release->build;?></th>
|
||||
<th class='c-date text-center'><?php echo $lang->release->date;?></th>
|
||||
@@ -68,7 +70,9 @@
|
||||
echo html::a(inlink('view', "release=$release->id"), $release->name, '', "data-app='$from'") . $flagIcon;
|
||||
?>
|
||||
</td>
|
||||
<?php if($project->hasProduct):?>
|
||||
<td title='<?php echo $release->productName?>'><?php echo $release->productName?></td>
|
||||
<?php endif;?>
|
||||
<td title='<?php echo $release->executionName?>'><?php echo $release->executionName?></td>
|
||||
<td title='<?php echo $release->buildName?>'><?php echo empty($release->execution) ? $release->buildName : html::a($this->createLink('build', 'view', "buildID=$release->buildID"), $release->buildName);?></td>
|
||||
<td class='text-center'><?php echo $release->date;?></td>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<th><?php echo $lang->release->build;?></th>
|
||||
<td><?php echo html::select('build', $builds, '', "onchange='showProducts(this.value)' class='form-control chosen'");?></td><td></td>
|
||||
</tr>
|
||||
<tr id='productBox'>
|
||||
<tr id='productBox' <?php if(!$project->hasProduct) echo "class='hide'";?> >
|
||||
<th><?php echo $lang->release->product;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
|
||||
@@ -333,18 +333,20 @@
|
||||
<div class='detail-title'><?php echo $lang->release->basicInfo?></div>
|
||||
<div class='detail-content'>
|
||||
<table class='table table-data'>
|
||||
<?php if($project->hasProduct):?>
|
||||
<tr>
|
||||
<th class='w-90px'><?php echo $lang->release->product;?></th>
|
||||
<td><?php echo $release->productName;?></td>
|
||||
</tr>
|
||||
<?php if($release->productType != 'normal'):?>
|
||||
<tr>
|
||||
<th><?php echo sprintf($lang->product->branch, $lang->product->branchName[$product->type]);?></th>
|
||||
<td><?php echo $branchName;?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($release->productType != 'normal'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->name;?></th>
|
||||
<th><?php echo sprintf($lang->product->branch, $lang->product->branchName[$product->type]);?></th>
|
||||
<td><?php echo $branchName;?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th class='w-90px'><?php echo $lang->release->name;?></th>
|
||||
<td><?php echo $release->name;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -57,6 +57,9 @@ class projectStory extends control
|
||||
$products = $this->loadModel('product')->getProductPairsByProject($projectID);
|
||||
if(empty($productID)) $productID = key($products);
|
||||
|
||||
$project = $this->loadModel('project')->getByID($projectID);
|
||||
$this->session->set('hasProduct', $project->hasProduct);
|
||||
|
||||
echo $this->fetch('product', 'track', "productID=$productID&branch=$branch&projectID=$projectID&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID");
|
||||
}
|
||||
|
||||
|
||||
@@ -258,7 +258,7 @@ class story extends control
|
||||
setcookie('storyModuleParam', 0, 0, $this->config->webRoot, '', $this->config->cookieSecure, true);
|
||||
$execution = $this->dao->findById((int)$objectID)->from(TABLE_EXECUTION)->fetch();
|
||||
$moduleName = $execution->type == 'project' ? 'projectstory' : 'execution';
|
||||
$param = $execution->type == 'project' ? "projectID=$objectID&productID=$productID" : "executionID=$objectID&orderBy=order_desc&browseType=unclosed";
|
||||
$param = $execution->type == 'project' ? "projectID=$objectID" : "executionID=$objectID&orderBy=order_desc&browseType=unclosed";
|
||||
$response['locate'] = $this->createLink($moduleName, 'story', $param);
|
||||
}
|
||||
if($this->app->getViewType() == 'xhtml') $response['locate'] = $this->createLink('story', 'view', "storyID=$storyID", 'html');
|
||||
|
||||
@@ -285,6 +285,12 @@ class tree extends control
|
||||
}
|
||||
}
|
||||
|
||||
if($this->app->tab == 'project' and strpos($viewType, 'doc') === false)
|
||||
{
|
||||
$project = $this->loadModel('project')->getByID($this->session->project);
|
||||
if(empty($project->hasProduct)) $this->view->root->name = $project->name;
|
||||
}
|
||||
|
||||
$parentModules = $this->tree->getParents($currentModuleID);
|
||||
$this->view->title = $title;
|
||||
$this->view->position = $position;
|
||||
|
||||
@@ -47,14 +47,9 @@ class weeklyModel extends model
|
||||
$weeks = $this->getWeekPairs($begin, $end);
|
||||
$current = zget($weeks, $date, current($weeks));
|
||||
|
||||
$selectHtml = '';
|
||||
|
||||
if(!empty($project->hasProduct))
|
||||
{
|
||||
$selectHtml .= "<div class='btn-group angle-btn'>";
|
||||
$selectHtml .= html::a('###', $this->lang->weekly->common . $this->lang->colon . $project->name, '', "class='btn'");
|
||||
$selectHtml .= '</div>';
|
||||
}
|
||||
$selectHtml = "<div class='btn-group angle-btn'>";
|
||||
$selectHtml .= html::a('###', $this->lang->weekly->common . $this->lang->colon . $project->name, '', "class='btn'");
|
||||
$selectHtml .= '</div>';
|
||||
|
||||
$selectHtml .= "<div class='btn-group angle-btn'>";
|
||||
$selectHtml .= "<div class='btn-group'>";
|
||||
|
||||
Reference in New Issue
Block a user