* Remove bug-batchEdit as plugin.

This commit is contained in:
chencongzhi520@gmail.com
2012-06-08 07:30:19 +00:00
parent 9e3c161370
commit b4e5207897
7 changed files with 0 additions and 235 deletions
-75
View File
@@ -457,81 +457,6 @@ class bug extends control
$this->display();
}
/**
* Batch edit bug.
*
* @param string $from example:bugBrowse, bugBatchEdit.
* @param int $productID
* @param string $orderBy
* @access public
* @return void
*/
public function batchEdit($from = '', $productID = 0, $orderBy = '')
{
if($from == 'bugBrowse')
{
/* Initialize vars.*/
if(!$orderBy) $orderBy = $this->cookie->qaBugOrder ? $this->cookie->qaBugOrder : 'id_desc';
$editedBugs = array();
$allBugs = $this->dao->select('*')->from(TABLE_BUG)->alias('t1')->where($this->session->bugReportCondition)->orderBy($orderBy)->fetchAll('id');
$bugIDList = $this->post->bugIDList ? $this->post->bugIDList : array();
$product = $this->product->getByID($productID);
$columns = 9;
$showSuhosinInfo = false;
/* Set product menu. */
$this->bug->setMenu($this->products, $productID);
/* Initialize the tasks whose need to edited. */
foreach($allBugs as $bug) if(in_array($bug->id, $bugIDList)) $editedBugs[$bug->id] = $bug;
/* Judge whether the editedTasks is too large. */
$showSuhosinInfo = $this->loadModel('common')->judgeSuhosinSetting(count($editedBugs), $columns);
/* Set the sessions. */
$this->app->session->set('showSuhosinInfo', $showSuhosinInfo);
/* Assign. */
$this->view->header['title'] = $product->name . $this->lang->colon . $this->lang->bug->batchEdit;
$this->view->position[] = html::a($this->createLink('bug', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->bug->common;
$this->view->position[] = $this->lang->bug->batchEdit;
if($showSuhosinInfo) $this->view->suhosinInfo = $this->lang->suhosinInfo;
$this->view->productID = $productID;
$this->view->editedBugs = $editedBugs;
$this->view->users = $this->user->getPairs('noletter');
$this->display();
}
elseif($from == 'bugBatchEdit')
{
$allChanges = $this->bug->batchUpdate();
foreach($allChanges as $bugID => $changes)
{
$actionID = $this->action->create('bug', $bugID, 'Edited');
$this->action->logHistory($actionID, $changes);
$this->sendmail($bugID, $actionID);
$bug = $this->bug->getById($bugID);
if($bug->toTask != 0)
{
foreach($changes as $change)
{
if($change['field'] == 'status')
{
$confirmURL = $this->createLink('task', 'view', "taskID=$bug->toTask");
$cancelURL = $this->server->HTTP_REFERER;
die(js::confirm(sprintf($this->lang->bug->remindTask, $bug->task), $confirmURL, $cancelURL, 'parent', 'parent'));
}
}
}
}
die(js::locate($this->session->bugList, 'parent'));
}
}
/**
* Update assign of bug.
*
-18
View File
@@ -1,18 +0,0 @@
/**
* Set duplicate field.
*
* @param string $resolution
* @access public
* @return void
*/
function setDuplicate(resolution, bugID)
{
if(resolution == 'duplicate')
{
$('#duplicateBugBox' + bugID).show();
}
else
{
$('#duplicateBugBox' + bugID).hide();
}
}
-1
View File
@@ -69,7 +69,6 @@ $lang->bug->index = 'Index';
$lang->bug->create = 'Create Bug';
$lang->bug->confirmBug = 'Confirm Bug';
$lang->bug->edit = 'Edit Bug';
$lang->bug->batchEdit = 'Batch edit';
$lang->bug->assignTo = 'Assign';
$lang->bug->browse = 'Browse Bug';
$lang->bug->view = 'Bug Info';
-1
View File
@@ -69,7 +69,6 @@ $lang->bug->index = '首页';
$lang->bug->create = '创建Bug';
$lang->bug->confirmBug = '确认';
$lang->bug->edit = '编辑Bug';
$lang->bug->batchEdit = '批量编辑';
$lang->bug->assignTo = '指派';
$lang->bug->browse = 'Bug列表';
$lang->bug->view = 'Bug详情';
-80
View File
@@ -193,86 +193,6 @@ class bugModel extends model
if(!dao::isError()) return common::createChanges($oldBug, $bug);
}
/**
* Batch update bug.
*
* @access public
* @return void
*/
public function batchUpdate()
{
$bugs = array();
$allChanges = array();
$now = helper::now();
$bugIDList = $this->post->bugIDList ? $this->post->bugIDList : array();
/* Adjust whether the post data is complete, if not, remove the last element of $bugIDList. */
if($this->session->showSuhosinInfo) array_pop($bugIDList);
if(!empty($bugIDList))
{
/* Initialize bugs from the post data.*/
foreach($bugIDList as $bugID)
{
$oldBug = $this->getByID($bugID);
$bug->lastEditedBy = $this->app->user->account;
$bug->lastEditedDate = $now;
$bug->type = $this->post->types[$bugID];
$bug->severity = $this->post->severities[$bugID];
$bug->pri = $this->post->pris[$bugID];
$bug->status = $this->post->statuses[$bugID];
$bug->title = htmlspecialchars($this->post->titles[$bugID]);
$bug->assignedTo = $this->post->assignedTos[$bugID];
$bug->resolvedBy = $this->post->resolvedBys[$bugID];
$bug->resolution = $this->post->resolutions[$bugID];
$bug->duplicateBug = $this->post->duplicateBugs[$bugID] ? $this->post->duplicateBugs[$bugID] : $oldBug->duplicateBug;
if($bug->assignedTo != $oldBug->assignedTo) $bug->assignedDate = $now;
if($bug->resolvedBy != '' or $bug->resolution != '') $bug->resolvedDate = $now;
if($bug->resolution != '' and $bug->resolvedBy == '') $bug->resolvedBy = $this->app->user->account;
if($bug->resolution != '')
{
$bug->status = 'resolved';
$bug->confirmed = 1;
}
if($bug->resolution != '' and $bug->assignedTo == '')
{
$bug->assignedTo = $oldBug->openedBy;
$bug->assignedDate = $now;
}
$bugs[$bugID] = $bug;
unset($bug);
}
/* Update bugs. */
foreach($bugs as $bugID => $bug)
{
$oldBug = $this->getByID($bugID);
$this->dao->update(TABLE_BUG)->data($bug)
->autoCheck()
->batchCheck($this->config->bug->edit->requiredFields, 'notempty')
->checkIF($bug->resolvedBy, 'resolution', 'notempty')
->checkIF($bug->resolution == 'duplicate', 'duplicateBug', 'notempty')
->where('id')->eq((int)$bugID)
->exec();
if(!dao::isError())
{
$allChanges[$bugID] = common::createChanges($oldBug, $bug);
}
else
{
die(js::error('bug#' . $bugID . dao::getError(true)));
}
}
}
return $allChanges;
}
/**
* Assign a bug to a user again.
*
-59
View File
@@ -1,59 +0,0 @@
<?php
/**
* The batch edit view of bug module of ZenTaoPMS.
*
* @copyright Copyright 2009-2012 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
* @author Congzhi Chen <congzhi@cnezsoft.com>
* @package bug
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<form method='post' target='hiddenwin' action="<?php echo $this->inLink('batchEdit', "from=bugBatchEdit&productID=$productID");?>">
<table class='table-1 fixed'>
<caption><?php echo $lang->bug->common . $lang->colon . $lang->bug->batchEdit;?></caption>
<tr>
<th class='w-30px'><?php echo $lang->idAB;?></th>
<th class='w-80px'><?php echo $lang->bug->type;?></th>
<th class='w-50px'><?php echo $lang->bug->severityAB;?></th>
<th class='w-50px'><?php echo $lang->bug->pri;?></th>
<th> <?php echo $lang->bug->title;?></th>
<th class='w-80px'><?php echo $lang->bug->assignedTo;?></th>
<th class='w-70px'><?php echo $lang->bug->status;?></th>
<th class='w-80px'><?php echo $lang->bug->resolvedByAB;?></th>
<th class='w-150px'><?php echo $lang->bug->resolutionAB;?></th>
</tr>
<?php foreach($editedBugs as $bug):?>
<?
/**
* Remove designchange, newfeature, trackings from the typeList, because should be tracked in story or task.
* These thress types if upgrade from bugfree2.x.
*/
if($bug->type != 'designchange') unset($this->lang->bug->typeList['designchange']);
if($bug->type != 'newfeature') unset($this->lang->bug->typeList['newfeature']);
if($bug->type != 'trackthings') unset($this->lang->bug->typeList['trackthings']);
?>
<tr class='a-center'>
<td><?php echo $bug->id . html::hidden("bugIDList[$bug->id]", $bug->id);?></td>
<td><?php echo html::select("types[$bug->id]", $lang->bug->typeList, $bug->type, 'class=select-1');?></td>
<td><?php echo html::select("severities[$bug->id]", (array)$lang->bug->severityList, $bug->severity, 'class=select-1');?></td>
<td><?php echo html::select("pris[$bug->id]", (array)$lang->bug->priList, $bug->pri, 'class=select-1');?></td>
<td><?php echo html::input("titles[$bug->id]", $bug->title, 'class=text-1'); echo "<span class='star'>*</span>";?></td>
<td><?php echo html::select("assignedTos[$bug->id]", $users, $bug->assignedTo, 'class=select-1');?></td>
<td><?php echo html::select("statuses[$bug->id]", (array)$lang->bug->statusList, $bug->status, 'class=select-1');?></td>
<td><?php echo html::select("resolvedBys[$bug->id]", $users, $bug->resolvedBy, 'class=select-1');?></td>
<td>
<div class='f-left'><?php echo html::select("resolutions[$bug->id]", $this->lang->bug->resolutionList, $bug->resolution, "class=w-80px onchange=setDuplicate(this.value,$bug->id)");?></div>
<div class='f-left' id='<?php echo 'duplicateBugBox' . $bug->id;?>' <?php if($bug->resolution != 'duplicate') echo "style='display:none'";?>><?php echo html::input("duplicateBugs[$bug->id]", '', "class=w-40px placeholder='{$lang->bug->duplicateBug}'");?></div>
</td>
</tr>
<?php endforeach;?>
<?php if(isset($suhosinInfo)):?>
<tr><td colspan='9'><div class='f-left blue'><?php echo $suhosinInfo;?></div></td></tr>
<?php endif;?>
<tr><td colspan='9' class='a-center'><?php echo html::submitButton();?></td></tr>
</table>
</form>
<?php include '../../common/view/footer.html.php';?>
-1
View File
@@ -154,7 +154,6 @@ var customed = <?php echo (int)$customed;?>;
<div class='f-left'>
<?php
echo html::selectAll() . html::selectReverse();
if(common::hasPriv('bug', 'batchEdit')) echo html::submitButton($lang->bug->batchEdit);
foreach($lang->bug->statusList as $status => $label)
{
if($status != 'active')