diff --git a/module/bug/model.php b/module/bug/model.php index 70f4ae486c..8d41509077 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -78,7 +78,7 @@ class bugModel extends model ->join('mailto', ',') ->join('os', ',') ->join('browser', ',') - ->remove('files,labels,uid,oldTaskID,contactListMenu,region,lane') + ->remove('files,labels,uid,oldTaskID,contactListMenu,region,lane,ticket') ->get(); if($bug->execution != 0) $bug->project = $this->dao->select('project')->from(TABLE_EXECUTION)->where('id')->eq($bug->execution)->fetch('project'); diff --git a/module/my/control.php b/module/my/control.php index 9ac679e02a..746a4150e8 100755 --- a/module/my/control.php +++ b/module/my/control.php @@ -1228,16 +1228,28 @@ 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(); - $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted'); + $this->view->users = $this->loadModel('user')->getPairs('noclosed|nodeleted|noletter'); $this->view->tickets = $tickets; $this->view->orderBy = $orderBy; $this->view->pager = $pager; diff --git a/module/my/css/ticket.css b/module/my/css/ticket.css new file mode 100644 index 0000000000..f8beb12708 --- /dev/null +++ b/module/my/css/ticket.css @@ -0,0 +1,5 @@ +.c-pri {width: 75px} +.c-openedDate {width: 210px} +.c-assignedTo {width: 100px;} +.no-wrap{text-overflow: ellipsis; white-space: nowrap; overflow: hidden;} + diff --git a/module/my/model.php b/module/my/model.php index 14bc238ccf..1afa242060 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(); + $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..6d0fbcb3b3 100644 --- a/module/my/view/ticket.html.php +++ b/module/my/view/ticket.html.php @@ -14,8 +14,16 @@ rawMethod);?>
+

@@ -44,13 +52,13 @@ createLink('ticket', 'view', "id={$ticket->id}"), $ticket->id) : $ticket->id;?> product);?> - createLink('ticket', 'view', "id={$ticket->id}"), $ticket->title) : $ticket->title;?> - ticket->priList, $ticket->pri);?> + createLink('ticket', 'view', "id={$ticket->id}"), $ticket->title) : $ticket->title;?> + ticket->priList, $ticket->pri); ?> ticket->statusList, $ticket->status);?> ticket->typeList, $ticket->type);?> openedBy);?> openedDate;?> - assignedTo);?> + ticket->printAssignedHtml($ticket, $users);?> ticket->buildOperateBrowseMenu($ticket->id);?>