From da5d515b45991d55bb9904e535085014f4f55abc Mon Sep 17 00:00:00 2001 From: zhouxin Date: Mon, 17 Oct 2022 09:09:09 +0800 Subject: [PATCH] * Add search form for my ticket. --- module/my/control.php | 14 +++++++++++++- module/my/model.php | 25 +++++++++++++++++++++++++ module/my/view/ticket.html.php | 8 ++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/module/my/control.php b/module/my/control.php index 9ac679e02a..ff44003655 100755 --- a/module/my/control.php +++ b/module/my/control.php @@ -1228,12 +1228,24 @@ EOF; public function ticket($browseType = 'assignedtome', $param = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) { $this->loadModel('ticket'); + $queryID = $browseType == 'bysearch' ? (int)$param : 0; $this->session->set('ticketList', $this->app->getURI(true), 'feedback'); $this->app->loadClass('pager', $static = true); $pager = pager::init($recTotal, $recPerPage, $pageID); - $tickets = $this->ticket->getList($browseType, $orderBy, $pager); + + if($browseType != 'bysearch') + { + $tickets = $this->ticket->getList($browseType, $orderBy, $pager); + } + else + { + $tickets = $this->ticket->getBySearch($queryID, $orderBy, $pager); + } + + $actionURL = $this->createLink('my', 'work', "mode=ticket&type=bysearch¶m=myQueryID&orderBy={$orderBy}&recTotal={$recTotal}&recPerPage={$recPerPage}&pageID={$pageID}"); + $this->my->buildTicketSearchForm($queryID, $actionURL); $this->view->title = $this->lang->ticket->browse; $this->view->products = $this->loadModel('feedback')->getGrantProducts(); diff --git a/module/my/model.php b/module/my/model.php index 14bc238ccf..ea5a26f326 100644 --- a/module/my/model.php +++ b/module/my/model.php @@ -906,6 +906,31 @@ class myModel extends model $this->loadModel('search')->setSearchParams($this->config->product->search); } + /** + * Build ticket search form. + * + * @param string $queryID + * @param string $actionURL + * @access public + * @return mixed + */ + public function buildTicketSearchForm($queryID, $actionURL) + { + $this->loadModel('ticket'); + $this->app->loadConfig('ticket'); + + $this->config->ticket->search['module'] = 'workTicket'; + $this->config->ticket->search['queryID'] = $queryID; + $this->config->ticket->search['actionURL'] = $actionURL; + $this->config->ticket->search['params']['product']['values'] = array('' => '') + $this->loadModel('feedback')->getGrantProducts(); + $this->config->ticket->search['params']['module']['values'] = array('' => '') + $this->loadModel('tree')->getAllModulePairs('bug'); + $grantProducts = $this->loadModel('feedback')->getGrantProducts(); + $productIDlist = array_keys($grantProducts); + $this->config->ticket->search['params']['openedBuild']['values'] = $this->loadModel('build')->getBuildPairs($productIDlist); + + $this->loadModel('search')->setSearchParams($this->config->ticket->search); + } + /** * Get requirements by search. * diff --git a/module/my/view/ticket.html.php b/module/my/view/ticket.html.php index 67069b056b..29a8095532 100644 --- a/module/my/view/ticket.html.php +++ b/module/my/view/ticket.html.php @@ -14,8 +14,16 @@ rawMethod);?>
+