* Resolve feedback #843.
This commit is contained in:
@@ -876,12 +876,15 @@ class actionModel extends model
|
||||
{
|
||||
$desc = $this->lang->$objectType->action->{$action->action};
|
||||
}
|
||||
elseif($action->action == 'createmr' and strpos($action->extra, '::') !== false)
|
||||
elseif(strpos('createmr,editmr,removemr', $action->action) !== false and strpos($action->extra, '::') !== false)
|
||||
{
|
||||
list($mrCreatedDate, $mrActor, $mrLink) = explode('::', $action->extra);
|
||||
$mrAction = str_replace('mr', '', $action->action) . 'Action';
|
||||
list($mrDate, $mrActor, $mrLink) = explode('::', $action->extra);
|
||||
|
||||
if(isonlybody()) $mrLink .= ($this->config->requestType == 'GET' ? '&onlybody=yes' : '?onlybody=yes');
|
||||
|
||||
$this->app->loadLang('mr');
|
||||
$desc = sprintf($this->lang->mr->createAction, $mrCreatedDate, $mrActor, $mrLink);
|
||||
$desc = sprintf($this->lang->mr->$mrAction, $mrDate, $mrActor, $mrLink);
|
||||
}
|
||||
elseif($this->config->edition == 'max' and strpos($this->config->action->assetType, ",{$action->objectType},") !== false and $action->action == 'approved')
|
||||
{
|
||||
@@ -1118,7 +1121,7 @@ class actionModel extends model
|
||||
->beginIF($noMultipleExecutions)->andWhere("IF(`objectType` = 'execution', `objectID` NOT " . helper::dbIN($noMultipleExecutions) . ", '1=1')")->fi()
|
||||
->beginIF($actionCondition)->andWhere("($actionCondition)")->fi()
|
||||
/* Filter out client login/logout actions. */
|
||||
->andWhere('action')->notin('disconnectxuanxuan,reconnectxuanxuan,loginxuanxuan,logoutxuanxuan')
|
||||
->andWhere('action')->notin('disconnectxuanxuan,reconnectxuanxuan,loginxuanxuan,logoutxuanxuan,editmr,removemr')
|
||||
->andWhere("IF((objectType = 'program'), (objectID in ($programCondition)), '1=1')")
|
||||
->andWhere("IF((objectType = 'effort'), (objectID in ($efforts)), '1=1')")
|
||||
->orderBy($orderBy)
|
||||
|
||||
@@ -251,7 +251,9 @@ class mr extends control
|
||||
if(isset($res->message)) return print(js::alert($this->mr->convertApiError($res->message)));
|
||||
}
|
||||
$this->dao->delete()->from(TABLE_MR)->where('id')->eq($MRID)->exec();
|
||||
|
||||
$this->loadModel('action')->create('mr', $MRID, 'deleted', '', $MR->title);
|
||||
$this->mr->createMRLinkedAction($MRID, 'removemr');
|
||||
|
||||
echo js::locate(inlink('browse'), 'parent');
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@ $lang->mr->diff = 'View diff';
|
||||
$lang->mr->viewInGit = 'View in APP';
|
||||
$lang->mr->link = 'Link of stories,Bugs,tasks';
|
||||
$lang->mr->createAction = '%s, <strong>%s</strong> submitted a <a href="%s">Merge Request</a>.';
|
||||
$lang->mr->editAction = '%s, <strong>%s</strong> edited <a href="%s">Merge Request</a>。';
|
||||
$lang->mr->removeAction = '%s, <strong>%s</strong> deleted <a href="%s">Merge Request</a>。';
|
||||
|
||||
$lang->mr->linkList = 'Link List of stories,Bugs,tasks';
|
||||
$lang->mr->linkStory = 'Link Stories';
|
||||
|
||||
@@ -17,6 +17,8 @@ $lang->mr->diff = 'View diff';
|
||||
$lang->mr->viewInGit = 'View in APP';
|
||||
$lang->mr->link = 'Link of stories,Bugs,tasks';
|
||||
$lang->mr->createAction = '%s, <strong>%s</strong> submitted a <a href="%s">Merge Request</a>.';
|
||||
$lang->mr->editAction = '%s, <strong>%s</strong> edited <a href="%s">Merge Request</a>。';
|
||||
$lang->mr->removeAction = '%s, <strong>%s</strong> deleted <a href="%s">Merge Request</a>。';
|
||||
|
||||
$lang->mr->linkList = 'Link List of stories,Bugs,tasks';
|
||||
$lang->mr->linkStory = 'Link Stories';
|
||||
|
||||
@@ -17,6 +17,8 @@ $lang->mr->diff = 'View diff';
|
||||
$lang->mr->viewInGit = 'View in APP';
|
||||
$lang->mr->link = 'Link of stories,Bugs,tasks';
|
||||
$lang->mr->createAction = '%s, <strong>%s</strong> submitted a <a href="%s">Merge Request</a>.';
|
||||
$lang->mr->editAction = '%s, <strong>%s</strong> edited <a href="%s">Merge Request</a>。';
|
||||
$lang->mr->removeAction = '%s, <strong>%s</strong> deleted <a href="%s">Merge Request</a>。';
|
||||
|
||||
$lang->mr->linkList = 'Link List of stories,Bugs,tasks';
|
||||
$lang->mr->linkStory = 'Link Stories';
|
||||
|
||||
@@ -17,6 +17,8 @@ $lang->mr->diff = 'View diff';
|
||||
$lang->mr->viewInGit = 'View in APP';
|
||||
$lang->mr->link = 'Link of stories,Bugs,tasks';
|
||||
$lang->mr->createAction = '%s, <strong>%s</strong> submitted a <a href="%s">Merge Request</a>.';
|
||||
$lang->mr->editAction = '%s, <strong>%s</strong> edited <a href="%s">Merge Request</a>。';
|
||||
$lang->mr->removeAction = '%s, <strong>%s</strong> deleted <a href="%s">Merge Request</a>。';
|
||||
|
||||
$lang->mr->linkList = 'Link List of stories,Bugs,tasks';
|
||||
$lang->mr->linkStory = 'Link Stories';
|
||||
|
||||
@@ -17,6 +17,8 @@ $lang->mr->diff = '比对代码';
|
||||
$lang->mr->viewInGit = '在应用中查看';
|
||||
$lang->mr->link = '关联需求、Bug、任务';
|
||||
$lang->mr->createAction = '%s, 由 <strong>%s</strong> 提交了 <a href="%s">合并请求</a>。';
|
||||
$lang->mr->editAction = '%s, 由 <strong>%s</strong> 编辑了 <a href="%s">合并请求</a>。';
|
||||
$lang->mr->removeAction = '%s, 由 <strong>%s</strong> 删除了 <a href="%s">合并请求</a>。';
|
||||
|
||||
$lang->mr->linkList = '浏览关联需求、Bug、任务';
|
||||
$lang->mr->linkStory = '关联需求';
|
||||
|
||||
+47
-1
@@ -416,10 +416,36 @@ class mrModel extends model
|
||||
$this->linkObjects($MR);
|
||||
|
||||
$this->loadModel('action')->create('mr', $MRID, 'edited');
|
||||
$this->createMRLinkedAction($MRID, 'editmr', $MR->editedDate);
|
||||
|
||||
if(dao::isError()) return array('result' => 'fail', 'message' => dao::getError());
|
||||
return array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => helper::createLink('mr', 'browse'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create createmr,editmr,removemr action.
|
||||
*
|
||||
* @param int $MRID
|
||||
* @param string $action createmr|editmr|removemr
|
||||
* @param string $actionDate
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function createMRLinkedAction($MRID, $action, $actionDate = '')
|
||||
{
|
||||
$this->loadModel('action');
|
||||
if(empty($actionDate)) $actionDate = helper::now();
|
||||
|
||||
$MRAction = $actionDate . '::' . $this->app->user->account . '::' . helper::createLink('mr', 'view', "mr={$MRID}");
|
||||
|
||||
$linkedStories = $this->getLinkedObjectPairs($MRID, 'story');
|
||||
$linkedTasks = $this->getLinkedObjectPairs($MRID, 'task');
|
||||
$linkedBugs = $this->getLinkedObjectPairs($MRID, 'bug');
|
||||
|
||||
foreach($linkedStories as $storyID) $this->action->create('story', $storyID, $action, '', $MRAction);
|
||||
foreach($linkedTasks as $taskID) $this->action->create('task', $taskID, $action, '', $MRAction);
|
||||
foreach($linkedBugs as $bugID) $this->action->create('bug', $bugID, $action, '', $MRAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* sync MR from GitLab API to Zentao database.
|
||||
@@ -1725,6 +1751,26 @@ class mrModel extends model
|
||||
->fetchPairs();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get story,task,bug pairs which linked MR.
|
||||
*
|
||||
* @param int $MRID
|
||||
* @param string $objectType story|task|bug
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getLinkedObjectPairs($MRID, $objectType = 'story')
|
||||
{
|
||||
$table = $this->config->objectTables[$objectType];
|
||||
return $this->dao->select('relation.BID')->from(TABLE_RELATION)->alias('relation')
|
||||
->leftJoin($table)->alias('object')->on('relation.BID = object.id')
|
||||
->where('relation.AType')->eq('mr')
|
||||
->andWhere('relation.BType')->eq($objectType)
|
||||
->andWhere('relation.AID')->eq($MRID)
|
||||
->andWhere('object.deleted')->eq(0)
|
||||
->fetchPairs();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get diff commits of MR.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user