* Code for task #89140.
This commit is contained in:
+28
-8
@@ -47,10 +47,29 @@ class api extends control
|
||||
/* Get all api doc libraries. */
|
||||
$loadLib = false;
|
||||
$libs = $this->doc->getApiLibs($appendLib, $objectType, $objectID);
|
||||
if(empty($libs) and $objectType != 'nolink')
|
||||
{
|
||||
$objectType = 'nolink';
|
||||
$objectID = 0;
|
||||
$libs = $this->doc->getApiLibs($appendLib, 'nolink');
|
||||
}
|
||||
|
||||
if(empty($libs))
|
||||
{
|
||||
$loadLib = true;
|
||||
$libs = $this->doc->getApiLibs($appendLib);
|
||||
list($normalObjects, $closedObjects) = $this->api->getOrderedObjects();
|
||||
|
||||
if(!empty($normalObjects))
|
||||
{
|
||||
$objectType = key($normalObjects);
|
||||
$objectID = key($normalObjects[$objectType]);
|
||||
$libs = $this->doc->getApiLibs($appendLib, $objectType, $objectID);
|
||||
}
|
||||
elseif(!empty($closedObjects))
|
||||
{
|
||||
$objectType = key($closedObjects);
|
||||
$objectID = key($closedObjects[$objectType]);
|
||||
$libs = $this->doc->getApiLibs($appendLib, $objectType, $objectID);
|
||||
}
|
||||
}
|
||||
|
||||
if($libID == 0 and !empty($libs))
|
||||
@@ -901,20 +920,21 @@ class api extends control
|
||||
*/
|
||||
public function ajaxGetDropMenu($objectType, $objectID, $module, $method)
|
||||
{
|
||||
list($normalObjects, $closedObjects) = $this->api->getOrderedObjects($objectType, 'nomerge', 'api');
|
||||
list($normalObjects, $closedObjects) = $this->api->getOrderedObjects();
|
||||
|
||||
$titleList = array($this->lang->api->noLinked);
|
||||
$titleList += array_values($normalObjects['product']);
|
||||
$titleList += array_values($normalObjects['project']);
|
||||
$titleList += array_values($closedObjects['product']);
|
||||
$titleList += array_values($closedObjects['project']);
|
||||
if(!empty($normalObjects['product'])) $titleList += array_values($normalObjects['product']);
|
||||
if(!empty($normalObjects['project'])) $titleList += array_values($normalObjects['project']);
|
||||
if(!empty($closedObjects['product'])) $titleList += array_values($closedObjects['product']);
|
||||
if(!empty($closedObjects['project'])) $titleList += array_values($closedObjects['project']);
|
||||
|
||||
$this->view->objectType = $objectType;
|
||||
$this->view->objectID = $objectID;
|
||||
$this->view->module = $module;
|
||||
$this->view->method = $method;
|
||||
$this->view->normalObjects = array($this->lang->api->noLinked) + $normalObjects;
|
||||
$this->view->normalObjects = $normalObjects;
|
||||
$this->view->closedObjects = $closedObjects;
|
||||
$this->view->nolinkLibs = $this->doc->getApiLibs(0, 'nolink');
|
||||
$this->view->objectsPinYin = common::convert2Pinyin($titleList);
|
||||
|
||||
$this->display();
|
||||
|
||||
+3
-16
@@ -985,20 +985,13 @@ class apiModel extends model
|
||||
*/
|
||||
public function getOrderedObjects()
|
||||
{
|
||||
$normalObjects = $closedObjects = array('product' => array(), 'project' => array());
|
||||
|
||||
$libs = $this->loadModel('doc')->getApiLibs();
|
||||
$products = $this->dao->select('t1.id, t1.name, t1.status')->from(TABLE_PRODUCT)->alias('t1')
|
||||
->leftjoin(TABLE_DOCLIB)->alias('t2')->on('t2.product=t1.id')
|
||||
->where('t2.id')->gt(0)
|
||||
->andWhere('t1.vision')->eq($this->config->vision)
|
||||
->andWhere('t2.vision')->eq($this->config->vision)
|
||||
->andWhere('t1.deleted')->eq(0)
|
||||
->andWhere('t2.type')->eq('api')
|
||||
->beginIF(!$this->app->user->admin)
|
||||
->andWhere('(t2.acl')->eq('open')
|
||||
->orWhere('t1.id')->in($this->app->user->view->products)
|
||||
->markRight(1)
|
||||
->fi()
|
||||
->andWhere('t2.id')->in(array_keys($libs))
|
||||
->fetchAll('id');
|
||||
|
||||
foreach($products as $id => $product)
|
||||
@@ -1017,15 +1010,9 @@ class apiModel extends model
|
||||
->leftjoin(TABLE_DOCLIB)->alias('t2')->on('t2.project=t1.id')
|
||||
->where('t2.id')->gt(0)
|
||||
->andWhere('t1.vision')->eq($this->config->vision)
|
||||
->andWhere('t2.vision')->eq($this->config->vision)
|
||||
->andWhere('t2.type')->eq('api')
|
||||
->andWhere('t1.deleted')->eq(0)
|
||||
->beginIF(!$this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->projects)->fi()
|
||||
->beginIF(!$this->app->user->admin)
|
||||
->andWhere('(t2.acl')->eq('open')
|
||||
->orWhere('t1.id')->in($this->app->user->view->projects)
|
||||
->markRight(1)
|
||||
->fi()
|
||||
->andWhere('t2.id')->in(array_keys($libs))
|
||||
->orderBy('t1.hasProduct_asc')
|
||||
->fetchAll('id');
|
||||
|
||||
|
||||
@@ -24,26 +24,33 @@ $link = $this->createLink('api', 'index');
|
||||
$selected = $objectType == 'nolink' ? 'selected' : '';
|
||||
$dataParams = 'data-type="nolink" data-id="0"';
|
||||
|
||||
$normalObjectsHtml .= "<li>" . html::a($link, $lang->api->noLinked, '', "class='clickable $selected' title='{$lang->api->noLinked}' $dataParams data-key='" . zget($objectsPinYin, $lang->api->noLinked, '') . "'") . '</li>';
|
||||
if(!empty($nolinkLibs)) $normalObjectsHtml .= "<li>" . html::a($link, $lang->api->noLinked, '', "class='clickable $selected' title='{$lang->api->noLinked}' $dataParams data-key='" . zget($objectsPinYin, $lang->api->noLinked, '') . "'") . '</li>';
|
||||
foreach(array('product', 'project') as $moduleType)
|
||||
{
|
||||
foreach($normalObjects[$moduleType] as $normalObjectID => $normalObjectName)
|
||||
if(!empty($normalObjects[$moduleType]))
|
||||
{
|
||||
$dataParams = "data-type='$moduleType' data-id='$normalObjectID'";
|
||||
$selected = $normalObjectID == $objectID ? 'selected' : '';
|
||||
$normalObjectsHtml .= "<li>" . html::a($link, "<i class='icon icon-$moduleType'></i> $normalObjectName", '', "class='$selected clickable' title='{$normalObjectName}' $dataParams data-key='" . zget($objectsPinYin, $normalObjectName, '') . "'") . '</li>';
|
||||
foreach($normalObjects[$moduleType] as $normalObjectID => $normalObjectName)
|
||||
{
|
||||
$dataParams = "data-type='$moduleType' data-id='$normalObjectID'";
|
||||
$selected = $normalObjectID == $objectID ? 'selected' : '';
|
||||
$normalObjectsHtml .= "<li>" . html::a($link, "<i class='icon icon-$moduleType'></i> $normalObjectName", '', "class='$selected clickable' title='{$normalObjectName}' $dataParams data-key='" . zget($objectsPinYin, $normalObjectName, '') . "'") . '</li>';
|
||||
}
|
||||
}
|
||||
|
||||
foreach($closedObjects[$moduleType] as $closedObjectID => $closedObjectName)
|
||||
if(!empty($closedObjects[$moduleType]))
|
||||
{
|
||||
$dataParams = "data-type='$moduleType' data-id='$normalObjectID'";
|
||||
$selected = $closedObjectID == $objectID ? 'selected' : '';
|
||||
$closedObjectsHtml .= '<li>' . html::a($link, "<i class='icon icon-$moduleType'></i> $closedObjectName", '', "class='$selected clickable' title='{$closedObjectName}' $dataParams data-key='" . zget($objectsPinYin, $closedObjectName, '') . "'") . '</li>';
|
||||
foreach($closedObjects[$moduleType] as $closedObjectID => $closedObjectName)
|
||||
{
|
||||
$dataParams = "data-type='$moduleType' data-id='$normalObjectID'";
|
||||
$selected = $closedObjectID == $objectID ? 'selected' : '';
|
||||
$closedObjectsHtml .= '<li>' . html::a($link, "<i class='icon icon-$moduleType'></i> $closedObjectName", '', "class='$selected clickable' title='{$closedObjectName}' $dataParams data-key='" . zget($objectsPinYin, $closedObjectName, '') . "'") . '</li>';
|
||||
}
|
||||
}
|
||||
|
||||
if($moduleType == 'product')
|
||||
{
|
||||
if($normalObjects['project']) $normalObjectsHtml .= '<li class="divider"></li>';
|
||||
if($closedObjects['project']) $closedObjectsHtml .= '<li class="divider"></li>';
|
||||
if($normalObjects['project'] and (!empty($nolinkLibs) or !empty($normalObjects['product']))) $normalObjectsHtml .= '<li class="divider"></li>';
|
||||
if($closedObjects['project'] and !empty($normalObjects['product'])) $closedObjectsHtml .= '<li class="divider"></li>';
|
||||
}
|
||||
}
|
||||
$normalObjectsHtml .= '</ul>';
|
||||
@@ -51,7 +58,7 @@ $closedObjectsHtml .= '</ul>';
|
||||
?>
|
||||
|
||||
<div class="table-row">
|
||||
<div class="table-col <?php if($closedObjects['product'] or $closedObjects['project']) echo 'col-left'?>">
|
||||
<div class="table-col <?php if(!empty($closedObjects['product']) or !empty($closedObjects['project'])) echo 'col-left'?>">
|
||||
<div class='list-group'>
|
||||
<div class="tab-content objectTree" id="tabContent">
|
||||
<div class="tab-pane objects active">
|
||||
@@ -59,7 +66,7 @@ $closedObjectsHtml .= '</ul>';
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($closedObjects['product'] or $closedObjects['project']):?>
|
||||
<?php if(!empty($closedObjects['product']) or !empty($closedObjects['project'])):?>
|
||||
<div class="col-footer">
|
||||
<a class='pull-right toggle-right-col not-list-item'><?php echo $lang->doc->closed?><i class='icon icon-angle-right'></i></a>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user