From 46cdd5a5f953afd9d986523fceaaf781937cb581 Mon Sep 17 00:00:00 2001 From: Yagami Date: Fri, 22 Feb 2019 09:46:57 +0800 Subject: [PATCH] * Finish task #5300. --- module/doc/model.php | 61 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/module/doc/model.php b/module/doc/model.php index 2bf2150008..5e17ae4349 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -1104,7 +1104,66 @@ class docModel extends model } } - if($type == 'product' or $type == 'project') $libs = $this->dao->select('id,name,`order`')->from($table)->where('id')->in(array_keys($libs))->orderBy('`order` desc, id desc')->fetchAll('id'); + if($type == 'product' or $type == 'project') $libs = $this->dao->select('*')->from($table)->where('id')->in(array_keys($libs))->orderBy('`order` desc')->fetchAll('id'); + + /* Order the same as drop menu.*/ + if($type == 'product') + { + $this->loadModel('product'); + $products = $mineProducts = $otherProducts = $closedProducts = array(); + foreach($libs as $lib) + { + if(!$this->app->user->admin and !$this->product->checkPriv($lib->id)) continue; + if($lib->status == 'normal' and $lib->PO == $this->app->user->account) + { + $mineProducts[$lib->id] = $lib; + } + elseif($lib->status == 'normal' and $lib->PO != $this->app->user->account) + { + $otherProducts[$lib->id] = $lib; + } + elseif($lib->status == 'closed') + { + $closedProducts[$lib->id] = $lib; + } + } + $products = $mineProducts + $otherProducts + $closedProducts; + $libs = array(); + foreach($products as $product) + { + $libs[$product->id] = new stdclass(); + $libs[$product->id]->id = $product->id; + $libs[$product->id]->name = $product->name; + } + } + elseif($type == 'project') + { + $projects = $mineProjects = $otherProjects = $closedProjects = array(); + foreach($libs as $lib) + { + if(!$this->app->user->admin and !$this->lib->checkPriv($lib->id)) continue; + if($lib->status != 'done' and $lib->status != 'closed' and $lib->PM == $this->app->user->account) + { + $mineProjects[$lib->id] = $lib; + } + elseif($lib->status != 'done' and $lib->status != 'closed' and !($lib->PM == $this->app->user->account)) + { + $otherProjects[$lib->id] = $lib; + } + elseif($lib->status == 'done' or $lib->status == 'closed') + { + $closedProjects[$lib->id] = $lib; + } + } + $projects = $mineProjects + $otherProjects + $closedProjects; + $libs = array(); + foreach($projects as $project) + { + $libs[$project->id] = new stdclass(); + $libs[$project->id]->id = $project->id; + $libs[$project->id]->name = $project->name; + } + } return $libs; }