diff --git a/db/zentao.sql b/db/zentao.sql
index 3bad2d02e7..1a9cb41e34 100644
--- a/db/zentao.sql
+++ b/db/zentao.sql
@@ -166,6 +166,7 @@ CREATE TABLE IF NOT EXISTS `zt_case` (
`linkCase` varchar(255) NOT NULL,
`fromBug` mediumint(8) unsigned NOT NULL,
`fromCaseID` mediumint(8) unsigned NOT NULL,
+ `fromCaseVersion` mediumint(8) unsigned NOT NULL,
`deleted` enum('0','1') NOT NULL default '0',
`lastRunner` varchar(30) NOT NULL,
`lastRunDate` datetime NOT NULL,
@@ -1251,6 +1252,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(1, 'story', 'create'),
(1, 'story', 'delete'),
(1, 'story', 'edit'),
+(1, 'story', 'assignTo'),
(1, 'story', 'batchChangeModule'),
(1, 'story', 'linkStory'),
(1, 'story', 'unlinkStory'),
@@ -2715,6 +2717,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
(7, 'story', 'create'),
(7, 'story', 'delete'),
(7, 'story', 'edit'),
+(7, 'story', 'assignTo'),
(7, 'story', 'batchChangeModule'),
(7, 'story', 'linkStory'),
(7, 'story', 'unlinkStory'),
diff --git a/framework/base/control.class.php b/framework/base/control.class.php
index e1d1bd2519..51e4e287e3 100644
--- a/framework/base/control.class.php
+++ b/framework/base/control.class.php
@@ -740,7 +740,7 @@ class baseControl
*/
if(!is_file($file2Included)) $this->app->triggerError("The control file $file2Included not found", __FILE__, __LINE__, $exit = true);
chdir(dirname($file2Included));
- if($moduleName != $this->moduleName) helper::import($file2Included);
+ helper::import($file2Included);
/**
* 设置调用的类名。
diff --git a/framework/base/router.class.php b/framework/base/router.class.php
index 21525b08f2..0e7d1e18cd 100644
--- a/framework/base/router.class.php
+++ b/framework/base/router.class.php
@@ -1631,7 +1631,7 @@ class baseRouter
**/
$file2Included = $this->setActionExtFile() ? $this->extActionFile : $this->controlFile;
chdir(dirname($file2Included));
- include $file2Included;
+ helper::import($file2Included);
/*
* 设置control的类名。
@@ -1650,7 +1650,7 @@ class baseRouter
/* include default value for module*/
$defaultValueFiles = glob($this->getTmpRoot() . "defaultvalue/*.php");
- if($defaultValueFiles) foreach($defaultValueFiles as $file) include $file;
+ if($defaultValueFiles) foreach($defaultValueFiles as $file) helper::import($file);
/*
* 使用反射机制获取函数参数的默认值。
diff --git a/framework/router.class.php b/framework/router.class.php
index b74367ae70..39b2d94fdc 100755
--- a/framework/router.class.php
+++ b/framework/router.class.php
@@ -68,6 +68,7 @@ class router extends baseRouter
}
$productCommon = $projectCommon = 0;
+ if(!empty($this->config->isINT)) $projectCommon = 1;
if($productProject)
{
$productProject = $productProject->value;
diff --git a/module/action/model.php b/module/action/model.php
index 9dfe977eb5..353c5adae1 100755
--- a/module/action/model.php
+++ b/module/action/model.php
@@ -342,6 +342,12 @@ class actionModel extends model
}
}
}
+ elseif(($actionName == 'opened' or $actionName == 'managed') and $objectType == 'project')
+ {
+ $linkedProducts = $this->dao->select('id,name')->from(TABLE_PRODUCT)->where('id')->in($action->extra)->fetchPairs('id', 'name');
+ $action->extra = '';
+ if($linkedProducts) $action->extra = sprintf($this->lang->project->action->extra, '' . join(', ', $linkedProducts) . '');
+ }
$action->history = isset($histories[$actionID]) ? $histories[$actionID] : array();
$actionName = strtolower($action->action);
diff --git a/module/admin/view/register.html.php b/module/admin/view/register.html.php
index fddc4227cd..0162a4e398 100644
--- a/module/admin/view/register.html.php
+++ b/module/admin/view/register.html.php
@@ -42,6 +42,7 @@
user->company;?> |
company, "class='form-control'");?> |
+ isINT)):?>
| user->mobile;?> |
@@ -55,6 +56,7 @@
|
+
| user->email;?> |
diff --git a/module/block/control.php b/module/block/control.php
index a67941a4c2..de29e54253 100644
--- a/module/block/control.php
+++ b/module/block/control.php
@@ -249,8 +249,6 @@ class block extends control
$block->actionLink = '';
if($block->block == 'overview')
{
- if($module == 'product' && common::hasPriv('product', 'create')) $block->actionLink = html::a($this->createLink('product', 'create'), " " . $this->lang->product->create, '', "class='btn btn-primary'");
- if($module == 'project' && common::hasPriv('project', 'create')) $block->actionLink = html::a($this->createLink('project', 'create'), " " . $this->lang->project->create, '', "class='btn btn-primary'");
if($module == 'qa' && common::hasPriv('testcase', 'create'))
{
$this->app->loadLang('testcase');
diff --git a/module/block/view/dashboard.html.php b/module/block/view/dashboard.html.php
index 5268aa00fe..2631fcc085 100644
--- a/module/block/view/dashboard.html.php
+++ b/module/block/view/dashboard.html.php
@@ -18,6 +18,16 @@ $useGuest = $this->app->user->account == 'guest';
?>
+
+
+
+ block->noData. ',';?>
+ youCould;?>
+ createLink("block", "admin", "id=0&module=$module"), " {$lang->block->createBlock}", '', "data-toggle='modal' data-type='ajax' data-width='700' data-title='{$lang->block->createBlock}' class='btn btn-info'")?>
+ createLink("block", "ajaxReset", "module=$module"), " {$lang->block->reset}", 'hiddenwin', 'class="btn btn-info"')?>
+
+
+
$block):?>
@@ -42,6 +52,8 @@ $useGuest = $this->app->user->account == 'guest';
block->remove;?>
+ createLink("block", "admin", "id=0&module=$module"), "{$lang->block->createBlock}", '', "data-toggle='modal' data-type='ajax' data-width='700' data-title='{$lang->block->createBlock}'")?>
+ createLink("block", "ajaxReset", "module=$module"), "{$lang->block->reset}", 'hiddenwin')?>
app->user->admin):?>
createLink('block', 'close', "blockID={$block->id}"), $lang->block->closeForever, 'hiddenwin', "class='close-block' onclick=\"return confirm('{$lang->block->confirmClose}')\"")?>
@@ -78,6 +90,8 @@ $useGuest = $this->app->user->account == 'guest';
block->remove; ?>
+ createLink("block", "admin", "id=0&module=$module"), "{$lang->block->createBlock}", '', "data-toggle='modal' data-type='ajax' data-width='700' data-title='{$lang->block->createBlock}'")?>
+ createLink("block", "ajaxReset", "module=$module"), "{$lang->block->reset}", 'hiddenwin')?>
app->user->admin):?>
createLink('block', 'close', "blockID={$block->id}"), $lang->block->closeForever, 'hiddenwin', "class='close-block' onclick=\"return confirm('{$lang->block->confirmClose}')\"")?>
@@ -99,15 +113,6 @@ config.confirmRemoveBlock = 'block->confirmRemoveBlock; ?>';
var module = '';
var useGuest = ;
-";
-$dropmenu .= "";
-$dropmenu .= "';
-?>
-$('#subHeader #pageActions .btn-toolbar:last').append();
$module->block->initVersion) or $config->$module->block->initVersion < '2'):?>
$(function()
{
diff --git a/module/block/view/productblock.html.php b/module/block/view/productblock.html.php
index d5a78aae97..6ce0ddb0c1 100644
--- a/module/block/view/productblock.html.php
+++ b/module/block/view/productblock.html.php
@@ -26,8 +26,8 @@
product->plans;?> |
product->releases;?> |
- story->statusList['active'] . $lang->story->common;?> |
- bug->unResolved . $lang->bug->common;?> |
+ story->statusList['active'] . $lang->story->common;?> |
+ bug->unResolved . $lang->bug->common;?> |
|
diff --git a/module/block/view/projectblock.html.php b/module/block/view/projectblock.html.php
index 7fabb89df7..bb1fbfdac5 100644
--- a/module/block/view/projectblock.html.php
+++ b/module/block/view/projectblock.html.php
@@ -20,8 +20,9 @@
project->name;?> |
project->end;?> |
+ isINT) and $config->isINT) ? 'w-85px' : 'c-hours';?>
statusAB;?> |
- project->totalEstimate;?> |
+ project->totalEstimate;?> |
project->totalConsumed;?> |
project->totalLeft;?> |
diff --git a/module/block/view/projectstatisticblock.html.php b/module/block/view/projectstatisticblock.html.php
index 12e641f075..964229cf31 100644
--- a/module/block/view/projectstatisticblock.html.php
+++ b/module/block/view/projectstatisticblock.html.php
@@ -9,7 +9,7 @@
.types-line > li > div > span {display: block; color: #CBD0DB; font-size: 16px;}
.product-info {position: relative; height: 65px;}
.product-info + .product-info {margin-top: 10px;}
-.product-info .progress {position: absolute; left: 10px; top: 35px; right: 90px;}
+.product-info .progress {position: absolute; left: 10px; top: 35px; right: 100px;}
.product-info .progress-info {position: absolute; left: 8px; top: 10px; width: 180px; font-size: 12px;}
.product-info .type-info {color: #A6AAB8; text-align: center; position: absolute; right: 0; top: 6px; width: 100px;}
html[lang="en"] .product-info .type-info {color: #A6AAB8; text-align: center; position: absolute; right: 0; top: 6px; width: 130px;}
diff --git a/module/bug/view/browse.html.php b/module/bug/view/browse.html.php
index 0147853aff..45f488d98d 100644
--- a/module/bug/view/browse.html.php
+++ b/module/bug/view/browse.html.php
@@ -384,7 +384,7 @@ $('#module' + moduleID).closest('li').addClass('active');
if($('#query li.active').size() == 0) $.toggleQueryBox(true);
-
+
$(function(){$('#bugForm').table();})
app->loadConfig('qa', '', false);?>
diff --git a/module/build/js/view.js b/module/build/js/view.js
index fd60304619..beb840e6ca 100644
--- a/module/build/js/view.js
+++ b/module/build/js/view.js
@@ -9,6 +9,8 @@ function showLink(buildID, type, param)
$linkBox.find('[data-ride="table"]').table();
$.toggleQueryBox(true, $linkBox.find('#queryBox'));
});
+
+ $('.actions').find("a[href*='" + type + "']").addClass('hidden');
}
$(function()
diff --git a/module/build/view/linkbug.html.php b/module/build/view/linkbug.html.php
index a2ea3a6c98..7d1dfae16d 100644
--- a/module/build/view/linkbug.html.php
+++ b/module/build/view/linkbug.html.php
@@ -60,8 +60,8 @@