diff --git a/api/v1/entries/program.php b/api/v1/entries/program.php index 9a5d873219..d42ed1a9fe 100644 --- a/api/v1/entries/program.php +++ b/api/v1/entries/program.php @@ -23,7 +23,7 @@ class programEntry extends Entry $program = $this->loadModel('program')->getByID($programID); if(!$program) return $this->send404(); - $this->send(200, $this->format($program, 'openedDate:time,realBegan:date,realEnd:date,deleted:bool')); + $this->send(200, $this->format($program, 'begin:date,end:date,PO:user,PM:user,QD:user,RD:user,realBegan:date,realEnd:date,openedBy:user,openedDate:time,lastEditedDate:time,closedBy:user,closedDate:time,canceledBy:user,canceledDate:time,deleted:bool,whitelist:userList')); } /** @@ -47,7 +47,7 @@ class programEntry extends Entry $this->getData(); $program = $this->program->getByID($programID); - $this->send(200, $this->format($program, 'openedDate:time')); + $this->send(200, $this->format($program, 'begin:date,end:date,PO:user,PM:user,QD:user,RD:user,realBegan:date,realEnd:date,openedBy:user,openedDate:time,lastEditedDate:time,closedBy:user,closedDate:time,canceledBy:user,canceledDate:time,deleted:bool,whitelist:userList')); } /** diff --git a/api/v1/entries/programs.php b/api/v1/entries/programs.php index 78b6905445..c2c2eb3551 100644 --- a/api/v1/entries/programs.php +++ b/api/v1/entries/programs.php @@ -39,19 +39,12 @@ class programsEntry extends Entry foreach($programs as $program) { if(isset($progressList->{$program->id})) $program->progress = $progressList->{$program->id}; - $param = $this->format($program, 'begin:date,end:date,realBegan:date,realEnd:date,openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time,deleted:bool'); + $program = $this->format($program, 'begin:date,end:date,PO:user,PM:user,QD:user,RD:user,realBegan:date,realEnd:date,openedBy:user,openedDate:time,lastEditedDate:time,closedBy:user,closedDate:time,canceledBy:user,canceledDate:time,deleted:bool,whitelist:userList'); if($mergeChildren) { unset($program->desc); - $program->openedBy = zget($users, $program->openedBy); - $program->closedBy = zget($users, $program->closedBy); - $program->canceledBy = zget($users, $program->canceledBy); - $program->PO = zget($users, $program->PO); - $program->PM = zget($users, $program->PM); - $program->QD = zget($users, $program->QD); - $program->RD = zget($users, $program->RD); - $program->end = $program->end == LONG_TIME ? $this->lang->program->longTime : $program->end; + $program->end = $program->end == LONG_TIME ? $this->lang->program->longTime : $program->end; $programBudget = in_array($this->app->getClientLang(), array('zh-cn','zh-tw')) ? round((float)$program->budget / 10000, 2) . $this->lang->project->tenThousand : round((float)$program->budget, 2); $program->labelBudget = $program->budget != 0 ? zget($this->lang->project->currencySymbol, $program->budgetUnit) . ' ' . $programBudget : $this->lang->project->future; @@ -94,7 +87,7 @@ class programsEntry extends Entry if(isset($data->result) and $data->result == 'fail') return $this->sendError(400, $data->message); $program = $this->loadModel('program')->getByID($data->id); - $this->send(201, $this->format($program, 'openedDate:time,whitelist:stringList')); + $this->send(201, $this->format($program, 'begin:date,end:date,PO:user,PM:user,QD:user,RD:user,realBegan:date,realEnd:date,openedBy:user,openedDate:time,lastEditedDate:time,closedBy:user,closedDate:time,canceledBy:user,canceledDate:time,deleted:bool,whitelist:userList')); } /** diff --git a/framework/api/entry.class.php b/framework/api/entry.class.php index 7e67f1203b..c722c5b2b5 100644 --- a/framework/api/entry.class.php +++ b/framework/api/entry.class.php @@ -615,6 +615,21 @@ class baseEntry $array = array(); if(!empty($value)) foreach($value as $v) $array[] = $v; return $array; + case 'user': + if(empty($value)) return null; + if(empty($this->users)) $this->users = $this->dao->select('id,account,avatar,realname')->from(TABLE_USER)->fetchAll('account'); + return zget($this->users, $value, null); + case 'userList': + $values = explode(',', $value); + if(empty($values)) return array(); + + $userList = array(); + foreach($values as $val) + { + $val = $this->cast($val, 'user'); + if($val) $userList[] = $val; + } + return $userList; default: return $value; } diff --git a/module/api/control.php b/module/api/control.php index 2a6d71a760..6fd46ee21d 100755 --- a/module/api/control.php +++ b/module/api/control.php @@ -53,10 +53,11 @@ class api extends control $libID = $api->lib; $api->desc = htmlspecialchars_decode($api->desc); - $this->view->api = $api; - $this->view->apiID = $apiID; - $this->view->version = $version; - $this->view->actions = $apiID ? $this->action->getList('api', $apiID) : array(); + $this->view->api = $api; + $this->view->apiID = $apiID; + $this->view->version = $version; + $this->view->typeList = $this->api->getTypeList($api->lib); + $this->view->actions = $apiID ? $this->action->getList('api', $apiID) : array(); } } else @@ -64,7 +65,8 @@ class api extends control /* Get module api list. */ $apiList = $this->api->getListByModuleId($libID, $moduleID, $release); - $this->view->apiList = $apiList; + $this->view->apiList = $apiList; + $this->view->typeList = $this->api->getTypeList($api->lib); } $this->setMenu($libID); @@ -435,12 +437,7 @@ class api extends control $this->setMenu($api->lib); - $options = array(); - foreach($this->lang->api->paramsTypeOptions as $key => $item) - { - $options[] = array('label' => $item, 'value' => $key); - } - $this->view->typeOptions = $options; + $this->getTypeOptions($api->lib); $this->view->gobackLink = $this->createLink('api', 'index', "libID={$api->lib}&moduleID={$api->module}"); $this->view->user = $this->app->user->account; $this->view->allUsers = $this->loadModel('user')->getPairs('devfirst|noclosed');; @@ -835,7 +832,7 @@ EOT; /** * Get options of type. * - * @param string $keyField + * @param int $libID * @access public * @return void */ @@ -855,5 +852,4 @@ EOT; } $this->view->typeOptions = $options; } - } diff --git a/module/api/model.php b/module/api/model.php index 47c37c18ae..ab394f72ff 100644 --- a/module/api/model.php +++ b/module/api/model.php @@ -705,4 +705,29 @@ class apiModel extends model 'addedDate' => helper::now(), ); } + + /** + * Get Type list. + * + * @param int $libID + * @access public + * @return void + */ + public function getTypeList($libID) + { + $typeList = array(); + foreach($this->lang->api->paramsTypeOptions as $key => $item) + { + $typeList[$key] = $item; + } + + /* Get all struct by libID. */ + $structs = $this->getStructListByLibID($libID); + foreach($structs as $struct) + { + $typeList[$struct->id] = $struct->name; + } + + return $typeList; + } } diff --git a/module/api/view/content.html.php b/module/api/view/content.html.php index 8dea001a45..b86262c5d2 100644 --- a/module/api/view/content.html.php +++ b/module/api/view/content.html.php @@ -89,30 +89,24 @@ '; - $field = ''; - for($i = 0; $i < $level; $i++) - { - $field .= ' ∟ '; - } - $field .= $data['field']; - $str .= '