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);?>