* Improve project drop list in edit repo page.

This commit is contained in:
wangjianhua
2022-10-24 16:05:18 +08:00
parent 5a6ea5fc09
commit a321bfb2da
3 changed files with 47 additions and 6 deletions
+22 -2
View File
@@ -141,7 +141,6 @@ class repo extends control
$products = $this->loadModel('product')->getProductPairsByProject($objectID);
$products = $this->dao->select('*')->from(TABLE_PRODUCT)->where('id')->in(array_keys($products))->andWhere('shadow')->eq(0)->fetchPairs('id', 'name'); /* Remove shadow products. */
$productID = count($products) > 0 ? key($products) : '';
$shadowProduct = null;
if($this->app->tab == 'project' && $objectID) $shadowProduct = $this->loadModel('product')->getShadowProductByProject($objectID);
@@ -152,7 +151,6 @@ class repo extends control
$this->view->users = $this->loadModel('user')->getPairs('noletter|noempty|nodeleted|noclosed');
$this->view->products = $products;
$this->view->relatedProjects = array();
$this->view->productID = $productID;
$this->view->serviceHosts = $this->loadModel('gitlab')->getPairs();
$this->view->objectID = $objectID;
$this->view->shadowProduct = $shadowProduct;
@@ -1213,6 +1211,28 @@ class repo extends control
$this->display();
}
/**
* Create new product select options by remove shadow products if remove project.
*
* @access public
* @return void
*/
public function ajaxFilterShadowProducts()
{
$postData = fixer::input('post')
->setDefault('products', array())
->setDefault('projectID', 0)
->setDefault('objectID', 0)
->get();
$products = $postData->objectID ? $this->loadModel('product')->getProductPairsByProject($objectID) : $this->loadModel('product')->getPairs();
$shadowProduct = $this->loadModel('product')->getShadowProductByProject($postData->projectID);
$selectedProducts = array_diff($postData->products, array($shadowProduct->id)); // Remove shadow product.
return print html::select('product[]', $products, $selectedProducts, "class='form-control chosen' multiple");
}
/**
* Get projects list by product id list by ajax.
*