Merge branch 'master' of https://gitlab.zcorp.cc/easycorp/zentaopms into tanghucheng_task
This commit is contained in:
@@ -30,3 +30,6 @@ UPDATE `zt_workflowfield` SET `options`=(SELECT id FROM `zt_workflowdatasource`
|
||||
|
||||
UPDATE `zt_project` SET `closedDate`='' AND `closedBy`='' WHERE `status` != 'closed';
|
||||
UPDATE `zt_grouppriv` SET `method`='exportTemplate' WHERE `method` = 'exportTemplet';
|
||||
|
||||
INSERT IGNORE INTO `zt_workflowaction` (`module`, `action`, `method`, `name`, `type`, `batchMode`, `extensionType`, `open`, `position`, `layout`, `show`, `buildin`, `role`, `createdBy`, `createdDate`) VALUES
|
||||
('bug', 'batchactivate', 'batchoperate', '批量激活', 'batch', 'different', 'none', 'normal', 'browse', 'normal', 'direct', '1', 'buildin', '', '2022-08-09 15:52');
|
||||
|
||||
@@ -340,6 +340,8 @@ $config->bug->datatable->fieldList['resolvedBuild']['title'] = 'resolvedBuild
|
||||
$config->bug->datatable->fieldList['resolvedBuild']['fixed'] = 'no';
|
||||
$config->bug->datatable->fieldList['resolvedBuild']['width'] = '120';
|
||||
$config->bug->datatable->fieldList['resolvedBuild']['required'] = 'no';
|
||||
$config->bug->datatable->fieldList['resolvedBuild']['control'] = 'select';
|
||||
$config->bug->datatable->fieldList['resolvedBuild']['dataSource'] = array('module' => 'bug', 'method' =>'getRelatedObjects', 'params' => 'resolvedBuild&id,name');
|
||||
|
||||
$config->bug->datatable->fieldList['closedBy']['title'] = 'closedBy';
|
||||
$config->bug->datatable->fieldList['closedBy']['fixed'] = 'no';
|
||||
|
||||
@@ -2090,7 +2090,7 @@ class bug extends control
|
||||
if(!$this->post->bugIDList) return print(js::locate($this->session->bugList, 'parent'));
|
||||
|
||||
$bugIDList = array_unique($this->post->bugIDList);
|
||||
$bugs = $this->dao->select('id, title, status, resolvedBy, openedBuild')->from(TABLE_BUG)->where('id')->in($bugIDList)->fetchAll('id');
|
||||
$bugs = $this->dao->select('*')->from(TABLE_BUG)->where('id')->in($bugIDList)->fetchAll('id');
|
||||
|
||||
$this->qa->setMenu($this->products, $productID, $branch);
|
||||
|
||||
@@ -2293,7 +2293,7 @@ class bug extends control
|
||||
if($_POST)
|
||||
{
|
||||
$this->loadModel('port');
|
||||
$this->session->set('bugPortParams', array('productID' => $productID, 'executionID' => $executionID));
|
||||
$this->session->set('bugPortParams', array('productID' => $productID, 'executionID' => $executionID, 'branch' => 'all'));
|
||||
$this->port->export('bug');
|
||||
$this->fetch('file', 'export2' . $_POST['fileType'], $_POST);
|
||||
}
|
||||
|
||||
+15
-3
@@ -945,6 +945,7 @@ class bugModel extends model
|
||||
|
||||
if(empty($bugIDList)) return $activateBugs;
|
||||
|
||||
$extendFields = $this->getFlowExtendFields();
|
||||
foreach($bugIDList as $bugID)
|
||||
{
|
||||
if($data->statusList[$bugID] == 'active') continue;
|
||||
@@ -967,6 +968,15 @@ class bugModel extends model
|
||||
$activateBugs[$bugID]['toStory'] = 0;
|
||||
$activateBugs[$bugID]['lastEditedBy'] = $this->app->user->account;
|
||||
$activateBugs[$bugID]['lastEditedDate'] = $now;
|
||||
|
||||
foreach($extendFields as $extendField)
|
||||
{
|
||||
$postFieldData = $this->post->{$extendField->field};
|
||||
|
||||
if(is_array($postFieldData[$bugID])) $postFieldData[$bugID] = join(',', $postFieldData[$bugID]);
|
||||
|
||||
$activateBugs[$bugID][$extendField->field] = htmlSpecialString($postFieldData[$bugID]);
|
||||
}
|
||||
}
|
||||
|
||||
/* Update bugs. */
|
||||
@@ -976,6 +986,8 @@ class bugModel extends model
|
||||
if(dao::isError()) return print(js::error('bug#' . $bugID . dao::getError(true)));
|
||||
|
||||
$this->dao->update(TABLE_BUG)->set('activatedCount = activatedCount + 1')->where('id')->eq((int)$bugID)->exec();
|
||||
|
||||
$this->executeHooks($bugID);
|
||||
}
|
||||
|
||||
return $activateBugs;
|
||||
@@ -3557,13 +3569,13 @@ class bugModel extends model
|
||||
|
||||
foreach($bugs as $bug) $relatedObjectIdList[$bug->$object] = $bug->$object;
|
||||
|
||||
if($object == 'openedBuild') $object = 'build';
|
||||
if($object == 'openedBuild' or $object == 'resolvedBuild') $object = 'build';
|
||||
|
||||
/* Get related objects title or names. */
|
||||
$table = $this->config->objectTables[$object];
|
||||
if($table) $relatedObjects = $this->dao->select($pairs)->from($table) ->where('id')->in($relatedObjectIdList)->fetchPairs();
|
||||
if($table) $relatedObjects = $this->dao->select($pairs)->from($table)->where('id')->in($relatedObjectIdList)->fetchPairs();
|
||||
|
||||
if($object == 'build') $relatedObjects= array('trunk' => $this->lang->trunk) + $relatedObjects;
|
||||
if(in_array($object, array('build','resolvedBuild'))) $relatedObjects= array('trunk' => $this->lang->trunk) + $relatedObjects;
|
||||
|
||||
return $relatedObjects;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,16 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
|
||||
<?php
|
||||
if($this->config->edition == 'biz' || $this->config->edition == 'max')
|
||||
{
|
||||
$action = $this->loadModel('workflowaction')->getByModuleAndAction('bug', 'batchactivate');
|
||||
if($action->js) echo "<script>{$action->js}</script>";
|
||||
if($action->css) echo "<style>{$action->css}</style>";
|
||||
}
|
||||
?>
|
||||
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->bug->common . $lang->colon . $lang->bug->batchActivate;?></h2>
|
||||
@@ -24,6 +34,14 @@
|
||||
<th class='c-assigned'><?php echo $lang->bug->assignedTo;?></th>
|
||||
<th class='c-build'><?php echo $lang->bug->openedBuild;?></th>
|
||||
<th><?php echo $lang->bug->legendComment;?></th>
|
||||
<?php
|
||||
$extendFields = $this->bug->getFlowExtendFields();
|
||||
foreach($extendFields as $extendField)
|
||||
{
|
||||
$required = strpos(",$extendField->rules,", ',1,') !== false ? 'required' : '';
|
||||
echo "<th class='c-extend $required'>{$extendField->name}</th>";
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class='text-left'>
|
||||
@@ -34,11 +52,15 @@
|
||||
<td style='overflow:visible'><?php echo html::select("assignedToList[$bug->id]", $users, $bug->resolvedBy, "class='form-control chosen'");?></td>
|
||||
<td style='overflow:visible'><?php echo html::select("openedBuildList[$bug->id]", $builds, $bug->openedBuild, 'size=4 multiple=multiple class="form-control chosen"');?></td>
|
||||
<td><?php echo html::input("commentList[$bug->id]", '', "class='form-control'");?></td>
|
||||
<?php
|
||||
$this->loadModel('flow');
|
||||
foreach($extendFields as $extendField) echo "<td" . (($extendField->control == 'select' or $extendField->control == 'multi-select') ? " style='overflow:visible'" : '') . ">" . $this->flow->getFieldControl($extendField, $bug, $extendField->field . "[$bug->id]") . "</td>";
|
||||
?>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr><td colspan='5' class='text-center'><?php echo html::submitButton();?></td></tr>
|
||||
<tr><td colspan="<?php echo count($extendFields) + 5;?>" class='text-center'><?php echo html::submitButton();?></td></tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
@@ -125,7 +125,7 @@ $config->execution->all->search['module'] = 'execution';
|
||||
$config->execution->all->search['fields']['name'] = $lang->execution->execName;
|
||||
$config->execution->all->search['fields']['id'] = $lang->execution->execId;
|
||||
$config->execution->all->search['fields']['status'] = $lang->execution->execStatus;
|
||||
$config->execution->all->search['fields']['project'] = $lang->execution->project;
|
||||
if($config->systemMode == 'new') $config->execution->all->search['fields']['project'] = $lang->execution->project;
|
||||
$config->execution->all->search['fields']['PM'] = $lang->execution->owner;
|
||||
$config->execution->all->search['fields']['openedBy'] = $lang->execution->openedBy;
|
||||
$config->execution->all->search['fields']['openedDate'] = $lang->execution->openedDate;
|
||||
@@ -140,7 +140,7 @@ $config->execution->all->search['fields']['closedDate'] = $lang->execution->
|
||||
$config->execution->all->search['params']['name'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
|
||||
$config->execution->all->search['params']['id'] = array('operator' => '=', 'control' => 'input', 'values' => '');
|
||||
$config->execution->all->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => array('') + $lang->execution->statusList);
|
||||
$config->execution->all->search['params']['project'] = array('operator' => '=', 'control' => 'select', 'values' => '');
|
||||
if($config->systemMode == 'new') $config->execution->all->search['params']['project'] = array('operator' => '=', 'control' => 'select', 'values' => '');
|
||||
$config->execution->all->search['params']['PM'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->all->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->all->search['params']['openedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
|
||||
@@ -28,7 +28,7 @@ td.flex span.project-type-label {min-width: 40px;}
|
||||
.has-child > span {margin-right: 5px;}
|
||||
.c-name > .text-ellipsis {text-overflow: clip;}
|
||||
.c-code, .c-project {overflow: hidden; white-space: nowrap;}
|
||||
th.c-status {text-align: center}
|
||||
th.c-status, .c-begin, .c-end, .c-realBegan, .c-realEnd {text-align: center;}
|
||||
|
||||
.c-project{text-overflow: unset !important;}
|
||||
canvas {height: 28px;}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
td.delayed {background: #e84e0f !important; color: white;}
|
||||
#int-dropdown {margin-left: -8px; border-radius: 4px; border: 1px solid #0c64eb;}
|
||||
#projectTaskForm table tbody tr td {overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
|
||||
th.c-deadline {text-align: center;}
|
||||
.table td.c-estimate, .table td.c-consumed, .table td.c-left {padding-right: 12px;}
|
||||
.c-estimate {text-align: right;}
|
||||
.c-consumed {text-align: right;}
|
||||
.c-deadline {text-align: center;}
|
||||
.c-left {text-align: right;}
|
||||
.table-footer {z-index: 1;}
|
||||
.btn-toolbar > .btn {margin-right: 5px !important;}
|
||||
|
||||
@@ -174,6 +174,7 @@ $lang->execution->cfdTypeList['bug'] = "View By bug";
|
||||
|
||||
$lang->team->account = 'Konto';
|
||||
$lang->team->role = 'Rolle';
|
||||
$lang->team->roleAB = 'Meine Rolle';
|
||||
$lang->team->join = 'Beigetreten';
|
||||
$lang->team->hours = 'Stunde/Tag';
|
||||
$lang->team->days = 'Arbeitstage';
|
||||
|
||||
@@ -174,6 +174,7 @@ $lang->execution->cfdTypeList['bug'] = "View By bug";
|
||||
|
||||
$lang->team->account = 'User';
|
||||
$lang->team->role = 'Role';
|
||||
$lang->team->roleAB = 'My Role';
|
||||
$lang->team->join = 'Joined';
|
||||
$lang->team->hours = 'Hours/day';
|
||||
$lang->team->days = 'Day';
|
||||
|
||||
@@ -174,6 +174,7 @@ $lang->execution->cfdTypeList['bug'] = "View By bug";
|
||||
|
||||
$lang->team->account = 'Utilisateur';
|
||||
$lang->team->role = 'Rôle';
|
||||
$lang->team->roleAB = 'Mon Rôle';
|
||||
$lang->team->join = 'Ajouté';
|
||||
$lang->team->hours = 'Heure/jour';
|
||||
$lang->team->days = 'Jour';
|
||||
|
||||
@@ -127,6 +127,7 @@ $lang->execution->lifeTimeList['ops'] = "DevOps";
|
||||
$lang->team = new stdclass();
|
||||
$lang->team->account = 'Người dùng';
|
||||
$lang->team->role = 'Vai trò';
|
||||
$lang->team->roleAB = 'Vai trò của tôi';
|
||||
$lang->team->join = 'Đã tham gia';
|
||||
$lang->team->hours = 'Giờ/ngày';
|
||||
$lang->team->days = 'Ngày';
|
||||
|
||||
@@ -174,6 +174,7 @@ $lang->execution->cfdTypeList['bug'] = "按Bug查看";
|
||||
|
||||
$lang->team->account = '用户';
|
||||
$lang->team->role = '角色';
|
||||
$lang->team->roleAB = '我的角色';
|
||||
$lang->team->join = '加盟日';
|
||||
$lang->team->hours = '可用工时/天';
|
||||
$lang->team->days = '可用工日';
|
||||
|
||||
@@ -420,6 +420,8 @@ class executionModel extends model
|
||||
/* Update the path. */
|
||||
if($this->config->systemMode == 'new') $this->setTreePath($executionID);
|
||||
|
||||
$this->updateProducts($executionID);
|
||||
|
||||
/* Set team of execution. */
|
||||
$members = isset($_POST['teamMembers']) ? $_POST['teamMembers'] : array();
|
||||
array_push($members, $sprint->PO, $sprint->QD, $sprint->PM, $sprint->RD, $sprint->openedBy);
|
||||
@@ -4371,16 +4373,16 @@ class executionModel extends model
|
||||
echo '<td>' . zget($users, $execution->PM) . '</td>';
|
||||
echo "<td class='status-{$execution->status} text-center'>" . zget($this->lang->project->statusList, $execution->status) . '</td>';
|
||||
echo '<td>' . html::ring($execution->hours->progress) . '</td>';
|
||||
echo helper::isZeroDate($execution->begin) ? '<td></td>' : '<td>' . $execution->begin . '</td>';
|
||||
echo helper::isZeroDate($execution->begin) ? '<td></td>' : '<td class="c-date">' . $execution->begin . '</td>';
|
||||
if(!helper::isZeroDate($execution->end))
|
||||
{
|
||||
if($execution->status != 'closed')
|
||||
{
|
||||
echo strtotime($today) > strtotime($execution->end) ? '<td class="delayed" title="' . $this->lang->execution->delayed . '">' . $execution->end . '</td>' : '<td>' . $execution->end . '</td>';
|
||||
echo strtotime($today) > strtotime($execution->end) ? '<td class="delayed c-date" title="' . $this->lang->execution->delayed . '">' . $execution->end . '</td>' : '<td class="c-date">' . $execution->end . '</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td>' . $execution->end . '</td>';
|
||||
echo '<td class="c-date">' . $execution->end . '</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
.c-hours, .c-progress {width: 80px !important;}
|
||||
th.c-status {padding-right: 8px !important;}
|
||||
.c-status, .c-date {padding-right: 8px !important; text-align: center;}
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
<?php endif;?>
|
||||
<th class='c-date'><?php echo $lang->execution->begin;?></th>
|
||||
<th class='c-date'><?php echo $lang->execution->end;?></th>
|
||||
<th class='c-status text-center'><?php echo $lang->statusAB;?></th>
|
||||
<th class='c-user'><?php echo $lang->team->role;?></th>
|
||||
<th class='c-status'><?php echo $lang->statusAB;?></th>
|
||||
<th class='c-user' title='<?php echo $lang->team->roleAB;?>'><?php echo $lang->team->roleAB;?></th>
|
||||
<th class='c-date'><?php echo $lang->team->join;?></th>
|
||||
<th class='c-hours'><?php echo $lang->my->hours;?></th>
|
||||
<th class='c-user'><?php echo $lang->execution->myTask;?></th>
|
||||
@@ -67,9 +67,9 @@
|
||||
<?php echo isset($execution->projectName) ? html::a($this->createLink('project', 'index', "id=$execution->project", '', '', $execution->project), $execution->projectName, '', "title='$execution->projectName'") : '';?>
|
||||
</td>
|
||||
<?php endif;?>
|
||||
<td><?php echo $execution->begin;?></td>
|
||||
<td><?php echo $execution->end;?></td>
|
||||
<td class="c-status text-center">
|
||||
<td class='c-date'><?php echo $execution->begin;?></td>
|
||||
<td class='c-date'><?php echo $execution->end;?></td>
|
||||
<td class="c-status">
|
||||
<?php if(isset($execution->delay)):?>
|
||||
<span class="status-project status-delayed" title='<?php echo $lang->execution->delayed;?>'><?php echo $lang->execution->delayed;?></span>
|
||||
<?php else:?>
|
||||
@@ -78,7 +78,7 @@
|
||||
<?php endif;?>
|
||||
</td>
|
||||
<td><?php echo $execution->role;?></td>
|
||||
<td><?php echo $execution->join;?></td>
|
||||
<td class='c-date'><?php echo $execution->join;?></td>
|
||||
<td><?php echo $execution->hours;?></td>
|
||||
<td><?php echo $execution->assignedToMeTasks;?></td>
|
||||
<td>
|
||||
|
||||
@@ -89,11 +89,11 @@
|
||||
<?php printf('%03d', $story->id);?>
|
||||
</td>
|
||||
<td class='c-pri'><span class='label-pri <?php echo 'label-pri-' . $story->pri;?>' title='<?php echo zget($lang->story->priList, $story->pri, $story->pri);?>'><?php echo zget($lang->story->priList, $story->pri, $story->pri);?></span></td>
|
||||
<td class='c-name nobr <?php if(!empty($story->children)) echo "has-child" ?>'>
|
||||
<td class='c-name nobr <?php if(!empty($story->children)) echo "has-child" ?>' title='<?php echo $story->title;?>'>
|
||||
<?php echo html::a($storyLink, $story->title, null, "style='color: $story->color' data-group='product'");?>
|
||||
<?php if(!empty($story->children)) echo '<a class="story-toggle" data-id="' . $story->id . '"><i class="icon icon-angle-double-right"></i></a>';;?>
|
||||
</td>
|
||||
<td class='c-product'><?php echo $story->productTitle;?></td>
|
||||
<td class='c-product' title='<?php echo $story->productTitle;?>'><?php echo $story->productTitle;?></td>
|
||||
<td class='c-plan'><?php echo $story->planTitle;?></td>
|
||||
<td class='c-user'><?php echo zget($users, $story->openedBy);?></td>
|
||||
<td class='c-hours' title="<?php echo $story->estimate . ' ' . $lang->hourCommon;?>"><?php echo $story->estimate . $config->hourUnit;?></td>
|
||||
|
||||
@@ -87,15 +87,15 @@
|
||||
<?php endif;?>
|
||||
<?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?>
|
||||
</th>
|
||||
<th class="c-date"> <?php common::printOrderLink('date', $orderBy, $vars, $lang->todo->date);?></th>
|
||||
<th class="c-type"> <?php common::printOrderLink('type', $orderBy, $vars, $lang->todo->type);?></th>
|
||||
<th class="c-date text-center"><?php common::printOrderLink('date', $orderBy, $vars, $lang->todo->date);?></th>
|
||||
<th class="c-type"><?php common::printOrderLink('type', $orderBy, $vars, $lang->todo->type);?></th>
|
||||
<?php $style = $this->app->clientLang == 'en' ? "style='width:80px'" : '';?>
|
||||
<th class="c-pri" <?php echo $style;?> title=<?php echo $lang->todo->pri;?>> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class="c-name"> <?php common::printOrderLink('name', $orderBy, $vars, $lang->todo->name);?></th>
|
||||
<th class="c-user"> <?php common::printOrderLink('assignedBy', $orderBy, $vars, $lang->todo->assignedBy);?></th>
|
||||
<th class="c-begin"> <?php common::printOrderLink('begin', $orderBy, $vars, $lang->todo->beginAB);?></th>
|
||||
<th class="c-end"> <?php common::printOrderLink('end', $orderBy, $vars, $lang->todo->endAB);?></th>
|
||||
<th class="c-status"> <?php common::printOrderLink('status', $orderBy, $vars, $lang->todo->status);?></th>
|
||||
<th class="c-name"> <?php common::printOrderLink('name', $orderBy, $vars, $lang->todo->name);?></th>
|
||||
<th class="c-user"> <?php common::printOrderLink('assignedBy', $orderBy, $vars, $lang->todo->assignedBy);?></th>
|
||||
<th class="c-begin"> <?php common::printOrderLink('begin', $orderBy, $vars, $lang->todo->beginAB);?></th>
|
||||
<th class="c-end"> <?php common::printOrderLink('end', $orderBy, $vars, $lang->todo->endAB);?></th>
|
||||
<th class="c-status"> <?php common::printOrderLink('status', $orderBy, $vars, $lang->todo->status);?></th>
|
||||
<th class="c-actions-5"><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -111,7 +111,7 @@
|
||||
<?php endif;?>
|
||||
<?php echo $todo->id?>
|
||||
</td>
|
||||
<td class="c-date"><?php echo $todo->date == '2030-01-01' ? $lang->todo->periods['future'] : $todo->date;?></td>
|
||||
<td class="c-date text-center"><?php echo $todo->date == '2030-01-01' ? $lang->todo->periods['future'] : $todo->date;?></td>
|
||||
<td class="c-type"><?php echo zget($lang->todo->typeList, $todo->type, '');?></td>
|
||||
<td class="c-pri"><span title="<?php echo zget($lang->todo->priList, $todo->pri);?>" class='label-pri <?php echo 'label-pri-' . $todo->pri;?>' title='<?php echo zget($lang->todo->priList, $todo->pri, $todo->pri);?>'><?php echo zget($lang->todo->priList, $todo->pri)?></span></td>
|
||||
<td class="c-name" title="<?php echo $todo->name;?>"><?php echo html::a($this->createLink('todo', 'view', "id=$todo->id&from=my", '', true), $todo->name, '', "data-toggle='modal' data-width='80%' data-type='iframe' data-title='" . $lang->todo->view . "' data-icon='check'");?></td>
|
||||
|
||||
@@ -17,7 +17,7 @@ $config->port->datetimeFeilds = '';
|
||||
$config->port->listFields = '';
|
||||
$config->port->sysLangFields = ',pri,status,type,mode,severity,os,browser,resolution,confirmed,source,reviewResult,stage,change';
|
||||
$config->port->sysDataFields = 'execution,product,user';
|
||||
$config->port->userFields = 'assignedTo,openedBy,finishedBy,canceledBy,closedBy,lastEditedBy,lastRunner,';
|
||||
$config->port->userFields = 'assignedTo,openedBy,finishedBy,canceledBy,closedBy,lastEditedBy,lastRunner,resolvedBy';
|
||||
|
||||
$config->port->import = new stdClass();
|
||||
|
||||
|
||||
+12
-1
@@ -600,9 +600,20 @@ class portModel extends model
|
||||
{
|
||||
foreach($values as $field => $value)
|
||||
{
|
||||
if(empty($value)) continue;
|
||||
if(in_array($field, $dataSourceList))
|
||||
{
|
||||
$rows[$id]->$field = zget($exportDatas[$field], $value);
|
||||
if($fieldList[$field]['control'] == 'multiple')
|
||||
{
|
||||
$value = explode(',', $value);
|
||||
$multiple = '';
|
||||
foreach($value as $tmpValue) $multiple .= "\n" . zget($exportDatas[$field], $tmpValue);
|
||||
$rows[$id]->$field = $multiple;
|
||||
}
|
||||
else
|
||||
{
|
||||
$rows[$id]->$field = zget($exportDatas[$field], $value);
|
||||
}
|
||||
}
|
||||
elseif(strpos($this->config->port->userFields, $field) !== false)
|
||||
{
|
||||
|
||||
@@ -7,3 +7,4 @@
|
||||
th.table-nest-title-edit {padding-left: 50px !important;}
|
||||
th.table-nest-title-edit .table-nest-toggle {left: 28px;}
|
||||
th.table-nest-title .check-all {position: absolute; left: 15px; top: 7px;}
|
||||
.c-date {text-align: center;}
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<button type='button' class='btn btn-link' data-toggle='modal' data-target='#copyProjectModal'><?php echo html::icon($lang->icons['copy'], 'muted') . ' ' . $lang->project->copy;?></button>
|
||||
<?php else: ?>
|
||||
<button type='button' class='btn btn-link' data-toggle='modal' data-target='#maxCopyProjectModal'><?php echo html::icon($lang->icons['copy'], 'muted') . ' ' . $lang->project->copy;?></button>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
@@ -4464,7 +4464,8 @@ class storyModel extends model
|
||||
}
|
||||
elseif($id == 'title')
|
||||
{
|
||||
$title = $story->title;
|
||||
$title = $story->title;
|
||||
$class .= ' text-ellipsis';
|
||||
if(!empty($story->children)) $class .= ' has-child';
|
||||
}
|
||||
elseif($id == 'plan')
|
||||
@@ -4637,25 +4638,25 @@ class storyModel extends model
|
||||
echo zget($users, $story->openedBy, $story->openedBy);
|
||||
break;
|
||||
case 'openedDate':
|
||||
echo substr($story->openedDate, 5, 11);
|
||||
echo helper::isZeroDate($story->openedDate) ? '' : substr($story->openedDate, 5, 11);
|
||||
break;
|
||||
case 'assignedTo':
|
||||
$this->printAssignedHtml($story, $users);
|
||||
break;
|
||||
case 'assignedDate':
|
||||
echo substr($story->assignedDate, 5, 11);
|
||||
echo helper::isZeroDate($story->assignedDate) ? '' : substr($story->assignedDate, 5, 11);
|
||||
break;
|
||||
case 'reviewedBy':
|
||||
echo $story->reviewedBy;
|
||||
break;
|
||||
case 'reviewedDate':
|
||||
echo substr($story->reviewedDate, 5, 11);
|
||||
echo helper::isZeroDate($story->reviewedDate) ? '' : substr($story->reviewedDate, 5, 11);
|
||||
break;
|
||||
case 'closedBy':
|
||||
echo zget($users, $story->closedBy, $story->closedBy);
|
||||
break;
|
||||
case 'closedDate':
|
||||
echo substr($story->closedDate, 5, 11);
|
||||
echo helper::isZeroDate($story->closedDate) ? '' : substr($story->closedDate, 5, 11);
|
||||
break;
|
||||
case 'closedReason':
|
||||
echo zget($this->lang->story->reasonList, $story->closedReason, $story->closedReason);
|
||||
@@ -4664,7 +4665,7 @@ class storyModel extends model
|
||||
echo zget($users, $story->lastEditedBy, $story->lastEditedBy);
|
||||
break;
|
||||
case 'lastEditedDate':
|
||||
echo substr($story->lastEditedDate, 5, 11);
|
||||
echo helper::isZeroDate($story->lastEditedDate) ? '' : substr($story->lastEditedDate, 5, 11);
|
||||
break;
|
||||
case 'feedbackBy':
|
||||
echo $story->feedbackBy;
|
||||
|
||||
@@ -70,7 +70,7 @@ $config->testcase->search['params']['stage'] = array('operator' => 'inclu
|
||||
$config->testcase->search['params']['lib'] = array('operator' => '=', 'control' => 'select', 'values' => '');
|
||||
|
||||
$config->testcase->search['params']['lastRunner'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->testcase->search['params']['lastRunResult'] = array('operator' => '=', 'control' => 'select', 'values' => array_diff($lang->testcase->resultList, array('n/a' => $lang->testcase->resultList['n/a'])) + array('' => ''));
|
||||
$config->testcase->search['params']['lastRunResult'] = array('operator' => '=', 'control' => 'select', 'values' => array_diff($lang->testcase->resultList, array('n/a' => $lang->testcase->resultList['n/a'])) + array('null' => $lang->testcase->unexecuted));
|
||||
$config->testcase->search['params']['lastRunDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->testcase->search['params']['openedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->testcase->search['params']['lastEditedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
@@ -185,7 +185,7 @@ $config->testcase->datatable->fieldList['status']['required'] = 'no';
|
||||
|
||||
$config->testcase->datatable->fieldList['lastEditedBy']['title'] = 'lastEditedBy';
|
||||
$config->testcase->datatable->fieldList['lastEditedBy']['fixed'] = 'no';
|
||||
$config->testcase->datatable->fieldList['lastEditedBy']['width'] = '80';
|
||||
$config->testcase->datatable->fieldList['lastEditedBy']['width'] = '92';
|
||||
$config->testcase->datatable->fieldList['lastEditedBy']['required'] = 'no';
|
||||
|
||||
$config->testcase->datatable->fieldList['lastEditedDate']['title'] = 'lastEditedDate';
|
||||
|
||||
@@ -919,8 +919,7 @@ class upgrade extends control
|
||||
$response['message'] = '';
|
||||
$response['nextMessage'] = '';
|
||||
|
||||
$stmt = $this->dao->query("SHOW TABLE STATUS WHERE `Engine` is not null AND `Engine` = 'MyISAM'");
|
||||
|
||||
$stmt = $this->dao->query("SHOW TABLE STATUS WHERE `Engine` is not null AND `Engine` = 'MyISAM'");
|
||||
$table = $stmt->fetch();
|
||||
if(empty($table))
|
||||
{
|
||||
@@ -939,14 +938,28 @@ class upgrade extends control
|
||||
$tableName = $table->Name;
|
||||
|
||||
$response['table'] = $tableName;
|
||||
|
||||
/* Check process this table or not. */
|
||||
$dbProcesses = $this->dao->query("SHOW PROCESSLIST")->fetchAll();
|
||||
foreach($dbProcesses as $dbProcess)
|
||||
{
|
||||
if($dbProcess->db != $this->config->db->name) continue;
|
||||
if(strpos($dbProcess->Info, " `{$tableName}` "))
|
||||
{
|
||||
$response['message'] = sprintf($this->lang->upgrade->changingTable, $response['table']);
|
||||
return print(json_encode($response));
|
||||
}
|
||||
}
|
||||
|
||||
if($nextTable)
|
||||
{
|
||||
$response['next'] = $nextTable->Name;
|
||||
$response['next'] = $nextTable->Name;
|
||||
if($response['next']) $response['nextMessage'] = sprintf($this->lang->upgrade->changingTable, $response['next']);
|
||||
}
|
||||
|
||||
if(stripos($tableName, 'searchindex') !== false)
|
||||
{
|
||||
/* Change fulltext index. */
|
||||
$stmt = $this->dao->query("show index from `$tableName`");
|
||||
$indexes = array();
|
||||
while($index = $stmt->fetch())
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user