Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -23,3 +23,4 @@ ALTER TABLE `zt_todo` ADD INDEX `todo` (`account`, `date`), DROP INDEX `user`;
|
||||
ALTER TABLE `zt_user` ADD INDEX `user` (`dept`, `email`, `commiter`), DROP INDEX `dept`;
|
||||
ALTER TABLE `zt_usercontact` ADD INDEX `user` (`account`);
|
||||
ALTER TABLE `zt_userquery` ADD INDEX `user` (`account`, `module`), DROP INDEX `account`, DROP INDEX `module`;
|
||||
ALTER TABLE `zt_testtask` ADD `mailto` varchar(255) COLLATE 'utf8_general_ci' NOT NULL DEFAULT '' AFTER `end`;
|
||||
|
||||
@@ -607,6 +607,7 @@ CREATE TABLE IF NOT EXISTS `zt_testtask` (
|
||||
`pri` tinyint(3) unsigned NOT NULL default '0',
|
||||
`begin` date NOT NULL,
|
||||
`end` date NOT NULL,
|
||||
`mailto` varchar(255) NOT NULL default '',
|
||||
`desc` text NOT NULL,
|
||||
`report` text NOT NULL,
|
||||
`status` enum('blocked','doing','wait','done') NOT NULL DEFAULT 'wait',
|
||||
|
||||
@@ -787,10 +787,9 @@ class helper
|
||||
public static function setViewType()
|
||||
{
|
||||
global $config, $app;
|
||||
if($config->requestType == 'PATH_INFO')
|
||||
if($config->requestType != 'GET')
|
||||
{
|
||||
$pathInfo = $app->getPathInfo('PATH_INFO');
|
||||
if(empty($pathInfo)) $pathInfo = $app->getPathInfo('ORIG_PATH_INFO');
|
||||
$pathInfo = $app->getPathInfo();
|
||||
if(!empty($pathInfo))
|
||||
{
|
||||
$dotPos = strrpos($pathInfo, '.');
|
||||
|
||||
@@ -967,7 +967,7 @@ class dao
|
||||
* 如果没数据中没有该字段,直接返回。
|
||||
* If no this field in the data, return.
|
||||
**/
|
||||
if(!isset($this->sqlobj->data->$fieldName) && $funcName != 'notempty') return $this;
|
||||
if(!isset($this->sqlobj->data->$fieldName)) return $this;
|
||||
|
||||
/* 设置字段值。 */
|
||||
/* Set the field label and value. */
|
||||
|
||||
@@ -77,7 +77,7 @@ class backup extends control
|
||||
*/
|
||||
public function backup($reload = 'no')
|
||||
{
|
||||
set_time_limit(0);
|
||||
set_time_limit(7200);
|
||||
$fileName = date('YmdHis') . mt_rand(0, 9);
|
||||
$result = $this->backup->backSQL($this->backupPath . $fileName . '.sql.php');
|
||||
if(!$result->result)
|
||||
@@ -149,7 +149,7 @@ class backup extends control
|
||||
die(js::confirm($this->lang->backup->confirmRestore, inlink('restore', "fileName=$fileName&confirm=yes"), inlink('index'), 'self', 'parent'));
|
||||
}
|
||||
|
||||
set_time_limit(0);
|
||||
set_time_limit(7200);
|
||||
|
||||
/* Restore database. */
|
||||
$this->backup->removeFileHeader($this->backupPath . $fileName . '.sql.php');
|
||||
|
||||
@@ -403,6 +403,9 @@ class build extends control
|
||||
$this->config->bug->search['params']['project']['values'] = $this->loadModel('product')->getProjectPairs($build->product);
|
||||
$this->config->bug->search['params']['openedBuild']['values'] = $this->build->getProductBuildPairs($build->product, $branch = 0, $params = '');
|
||||
$this->config->bug->search['params']['resolvedBuild']['values'] = $this->config->bug->search['params']['openedBuild']['values'];
|
||||
|
||||
unset($this->config->bug->search['fields']['product']);
|
||||
unset($this->config->bug->search['params']['product']);
|
||||
if($product->type == 'normal')
|
||||
{
|
||||
unset($this->config->bug->search['fields']['branch']);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
.tabs .tab-content {padding: 0; border: none;}
|
||||
.tabs .tab-content .tab-pane .action {position: absolute; right: 0; top: -1px;}
|
||||
.tabs .tab-content .tab-pane #querybox {margin:-10px 0 0px; border-top: none;}
|
||||
.tabs .tab-content .tab-pane #querybox{margin:0px; border-left:1px solid #ddd; border-right:1px solid #ddd;}
|
||||
.tabs .tab-content .tab-pane #querybox form {padding-left:0px;}
|
||||
|
||||
.table-actions {padding-left: 8px;}
|
||||
|
||||
@@ -17,7 +17,7 @@ foreach($rows as $row)
|
||||
echo '"';
|
||||
foreach($fields as $fieldName => $fieldLabel)
|
||||
{
|
||||
isset($row->$fieldName) ? print(htmlspecialchars_decode($row->$fieldName)) : print('');
|
||||
isset($row->$fieldName) ? print(str_replace('",', '",', htmlspecialchars_decode(strip_tags($row->$fieldName, '<img>')))) : print('');
|
||||
echo '","';
|
||||
}
|
||||
echo '"' . "\n";
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<ul data-role='listview'>
|
||||
<?php foreach($productStats as $product):?>
|
||||
<li>
|
||||
<table class='table-1 fixed'>
|
||||
<table class='table table-fixed'>
|
||||
<tr>
|
||||
<td><h3><?php echo $product->name?></h3></td>
|
||||
<td width='120'>
|
||||
|
||||
@@ -158,6 +158,7 @@ class report extends control
|
||||
*/
|
||||
public function remind()
|
||||
{
|
||||
$bugs = $tasks = $todos = $testTasks = array();
|
||||
if($this->config->report->dailyreminder->bug) $bugs = $this->report->getUserBugs();
|
||||
if($this->config->report->dailyreminder->task) $tasks = $this->report->getUserTasks();
|
||||
if($this->config->report->dailyreminder->todo) $todos = $this->report->getUserTodos();
|
||||
|
||||
@@ -19,7 +19,7 @@ $config->story->review = new stdclass();
|
||||
$config->story->create->requiredFields = 'title';
|
||||
$config->story->change->requiredFields = 'title';
|
||||
$config->story->close->requiredFields = 'closedReason';
|
||||
$config->story->review->requiredFields = 'assignedTo,reviewedBy,result';
|
||||
$config->story->review->requiredFields = 'assignedTo,reviewedBy';
|
||||
|
||||
$config->story->editor = new stdclass();
|
||||
$config->story->editor->create = array('id' => 'spec,verify', 'tools' => 'simpleTools');
|
||||
|
||||
@@ -5,6 +5,7 @@ function switchShow(result)
|
||||
$('#rejectedReasonBox').show();
|
||||
$('#preVersionBox').hide();
|
||||
$('#assignedTo').val('closed');
|
||||
$('#assignedTo').trigger("chosen:updated");
|
||||
}
|
||||
else if(result == 'revert')
|
||||
{
|
||||
@@ -13,6 +14,7 @@ function switchShow(result)
|
||||
$('#duplicateStoryBox').hide();
|
||||
$('#childStoriesBox').hide();
|
||||
$('#assignedTo').val(assignedTo);
|
||||
$('#assignedTo').trigger("chosen:updated");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -22,6 +24,7 @@ function switchShow(result)
|
||||
$('#childStoriesBox').hide();
|
||||
$('#rejectedReasonBox').hide();
|
||||
$('#assignedTo').val(assignedTo);
|
||||
$('#assignedTo').trigger("chosen:updated");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
<td><?php echo html::radio("results[$caseID]", $this->lang->testcase->resultList, 'pass', "onclick='showAction(this.value,\".action$caseID\")'")?></td>
|
||||
<td>
|
||||
<?php if(!empty($steps[$caseID])):?>
|
||||
<table class='table fixed'>
|
||||
<table class='table table-fixed'>
|
||||
<?php $i = 1;?>
|
||||
<?php foreach($steps[$caseID] as $stepID => $step):?>
|
||||
<tr>
|
||||
|
||||
Reference in New Issue
Block a user