Merge branch 'jihu' of https://gitlab.zcorp.cc/easycorp/zentaopms into jihu
This commit is contained in:
@@ -37,6 +37,7 @@ $config->gitlab->maps->task['lastEditedDate'] = 'updated_at|field|';
|
||||
$config->gitlab->maps->task['deadline'] = 'due_date|field|';
|
||||
$config->gitlab->maps->task['status'] = 'state|configItems|taskStateMap';
|
||||
$config->gitlab->maps->task['pri'] = 'weight|configItems|taskWeightMap';
|
||||
$config->gitlab->maps->task['lastEditedBy'] = 'updated_by_id|userPairs|';
|
||||
|
||||
$config->gitlab->maps->story = array();
|
||||
$config->gitlab->maps->story['title'] = 'title|field|';
|
||||
@@ -59,11 +60,11 @@ $config->gitlab->taskWeightMap['2'] = '2';
|
||||
$config->gitlab->taskWeightMap['3'] = '3';
|
||||
|
||||
$config->gitlab->taskStateMap = array();
|
||||
$config->gitlab->taskStateMap['doing'] = 'reopen';
|
||||
$config->gitlab->taskStateMap['wait'] = 'reopen';
|
||||
$config->gitlab->taskStateMap['doing'] = 'opened';
|
||||
$config->gitlab->taskStateMap['wait'] = 'opened';
|
||||
$config->gitlab->taskStateMap['closed'] = 'close';
|
||||
$config->gitlab->taskStateMap['done'] = 'close';
|
||||
$config->gitlab->taskStateMap['cancel'] = 'close';
|
||||
$config->gitlab->taskStateMap['closed'] = 'close';
|
||||
|
||||
$config->gitlab->taskTypesToSync = 'design,devel,request,discuss,ui,affair,misc';
|
||||
|
||||
|
||||
+49
-4
@@ -983,12 +983,12 @@ class gitlabModel extends model
|
||||
|
||||
$issue->issue->objectType = $object->type;
|
||||
$issue->issue->objectID = $object->id;
|
||||
|
||||
|
||||
/* Parse markdown description to html. */
|
||||
$issue->issue->description = $this->app->loadClass('hyperdown')->makeHtml($issue->issue->description);
|
||||
|
||||
if(!isset($this->config->gitlab->maps->{$object->type})) return false;
|
||||
$issue->object = $this->issueToZentaoObject($issue->issue, $gitlabID);
|
||||
$issue->object = $this->issueToZentaoObject($issue->issue, $gitlabID, $body->changes);
|
||||
return $issue;
|
||||
}
|
||||
|
||||
@@ -1035,7 +1035,6 @@ class gitlabModel extends model
|
||||
{
|
||||
$tableName = zget($this->config->gitlab->objectTables, $issue->objectType, '');
|
||||
if($tableName) $this->dao->update($tableName)->data($issue->object)->where('id')->eq($issue->objectID)->exec();
|
||||
a($this->dao->get());exit;
|
||||
return !dao::isError();
|
||||
}
|
||||
|
||||
@@ -1063,6 +1062,51 @@ class gitlabModel extends model
|
||||
return $object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process webhook issue assign option.
|
||||
*
|
||||
* @param int $gitlabID
|
||||
* @param object $issue
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function webhookIssueAssign($gitlabID, $issue)
|
||||
{
|
||||
$gitlabUsers = $this->getUserIdAccountPairs($gitlabID);
|
||||
if($issue->objectType == 'task')
|
||||
{
|
||||
$oldTask = $this->loadModel('task')->getByID($issue->objectID);
|
||||
$_POST['left'] = $oldTask->left;
|
||||
$_POST['lastEditedBy'] = $issue->object->lastEditedBy;
|
||||
$_POST['lastEditedDate'] = $issue->object->lastEditedDate;
|
||||
$_POST['assignedDate'] = $issue->object->lastEditedDate;
|
||||
$_POST['assignedBy'] = $issue->object->lastEditedBy;
|
||||
$this->task->assign($issue->objectID);
|
||||
}
|
||||
|
||||
if($issue->objectType == 'bug')
|
||||
{
|
||||
$oldBug = $this->loadModel('bug')->getByID($issue->objectID);
|
||||
$_POST['lastEditedBy'] = $issue->object->lastEditedBy;
|
||||
$_POST['lastEditedDate'] = $issue->object->lastEditedDate;
|
||||
$_POST['assignedDate'] = $issue->object->lastEditedDate;
|
||||
$_POST['assignedBy'] = $issue->object->lastEditedBy;
|
||||
$this->bug->assign($issue->objectID);
|
||||
}
|
||||
|
||||
if($issue->objectType == 'story')
|
||||
{
|
||||
$oldBug = $this->loadModel('story')->getByID($issue->objectID);
|
||||
$_POST['lastEditedBy'] = $issue->object->lastEditedBy;
|
||||
$_POST['lastEditedDate'] = $issue->object->lastEditedDate;
|
||||
$_POST['assignedDate'] = $issue->object->lastEditedDate;
|
||||
$_POST['assignedBy'] = $issue->object->lastEditedBy;
|
||||
$this->story->assign($issue->objectID);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse issue to zentao object.
|
||||
*
|
||||
@@ -1071,7 +1115,7 @@ class gitlabModel extends model
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function issueToZentaoObject($issue, $gitlabID)
|
||||
public function issueToZentaoObject($issue, $gitlabID, $changes = null)
|
||||
{
|
||||
if(!isset($this->config->gitlab->maps->{$issue->objectType})) return null;
|
||||
|
||||
@@ -1084,6 +1128,7 @@ class gitlabModel extends model
|
||||
{
|
||||
$value = '';
|
||||
list($gitlabField, $optionType, $options) = explode('|', $config);
|
||||
if(!isset($changes->gitlabField)) continue;
|
||||
if($optionType == 'field') $value = $issue->$gitlabField;
|
||||
if($optionType == 'field') $value = $issue->$gitlabField;
|
||||
if($optionType == 'userPairs') $value = zget($gitlabUsers, $issue->$gitlabField);
|
||||
|
||||
Reference in New Issue
Block a user