Exemple #1
0
 function showTabHistoryAction()
 {
     $translate = DevblocksPlatform::getTranslationService();
     @($org = DevblocksPlatform::importGPC($_REQUEST['org']));
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->assign('path', $this->_TPL_PATH);
     $contact = DAO_ContactOrg::get($org);
     $tpl->assign('contact', $contact);
     $visit = CerberusApplication::getVisit();
     /* @var $visit CerberusVisit */
     $tickets_view = C4_AbstractViewLoader::getView('contact_history');
     // All org contacts
     $people = DAO_Address::getWhere(sprintf("%s = %d", DAO_Address::CONTACT_ORG_ID, $contact->id));
     if (null == $tickets_view) {
         $tickets_view = new C4_TicketView();
         $tickets_view->id = 'contact_history';
         $tickets_view->name = $translate->_('addy_book.history.view_title');
         $tickets_view->view_columns = array(SearchFields_Ticket::TICKET_LAST_ACTION_CODE, SearchFields_Ticket::TICKET_CREATED_DATE, SearchFields_Ticket::TICKET_TEAM_ID, SearchFields_Ticket::TICKET_CATEGORY_ID);
         $tickets_view->params = array();
         $tickets_view->renderLimit = 10;
         $tickets_view->renderPage = 0;
         $tickets_view->renderSortBy = SearchFields_Ticket::TICKET_CREATED_DATE;
         $tickets_view->renderSortAsc = false;
     }
     @($tickets_view->name = $translate->_('ticket.requesters') . ": " . htmlspecialchars($contact->name) . ' - ' . intval(count($people)) . ' contact(s)');
     $tickets_view->params = array(SearchFields_Ticket::REQUESTER_ID => new DevblocksSearchCriteria(SearchFields_Ticket::REQUESTER_ID, 'in', array_keys($people)), SearchFields_Ticket::TICKET_DELETED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_DELETED, DevblocksSearchCriteria::OPER_EQ, 0));
     $tpl->assign('contact_history', $tickets_view);
     C4_AbstractViewLoader::setView($tickets_view->id, $tickets_view);
     $workers = DAO_Worker::getAll();
     $tpl->assign('workers', $workers);
     $teams = DAO_Group::getAll();
     $tpl->assign('teams', $teams);
     $buckets = DAO_Bucket::getAll();
     $tpl->assign('buckets', $buckets);
     $team_categories = DAO_Bucket::getTeams();
     $tpl->assign('team_categories', $team_categories);
     $tpl->display('file:' . $this->_TPL_PATH . 'contacts/orgs/tabs/history.tpl');
     exit;
 }
Exemple #2
0
 function showBatchPanelAction()
 {
     @($ids = DevblocksPlatform::importGPC($_REQUEST['ids']));
     @($view_id = DevblocksPlatform::importGPC($_REQUEST['view_id']));
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->assign('path', $this->_TPL_PATH);
     $tpl->assign('view_id', $view_id);
     $unique_sender_ids = array();
     $unique_subjects = array();
     if (!empty($ids)) {
         $ticket_ids = DevblocksPlatform::parseCsvString($ids);
         if (empty($ticket_ids)) {
             break;
         }
         $tickets = DAO_Ticket::getTickets($ticket_ids);
         if (is_array($tickets)) {
             foreach ($tickets as $ticket) {
                 /* @var $ticket CerberusTicket */
                 $ptr =& $unique_sender_ids[$ticket->first_wrote_address_id];
                 $ptr = intval($ptr) + 1;
                 $ptr =& $unique_subjects[$ticket->subject];
                 $ptr = intval($ptr) + 1;
             }
         }
         arsort($unique_subjects);
         // sort by occurrences
         $senders = DAO_Address::getWhere(sprintf("%s IN (%s)", DAO_Address::ID, implode(',', array_keys($unique_sender_ids))));
         foreach ($senders as $sender) {
             $ptr =& $unique_senders[$sender->email];
             $ptr = intval($ptr) + 1;
         }
         arsort($unique_senders);
         unset($senders);
         unset($unique_sender_ids);
         @$tpl->assign('ticket_ids', $ticket_ids);
         @$tpl->assign('unique_senders', $unique_senders);
         @$tpl->assign('unique_subjects', $unique_subjects);
     }
     // Teams
     $teams = DAO_Group::getAll();
     $tpl->assign('teams', $teams);
     // Categories
     $team_categories = DAO_Bucket::getTeams();
     // [TODO] Cache these
     $tpl->assign('team_categories', $team_categories);
     $workers = DAO_Worker::getAllActive();
     $tpl->assign('workers', $workers);
     // Custom Fields
     $custom_fields = DAO_CustomField::getBySource(ChCustomFieldSource_Ticket::ID);
     $tpl->assign('custom_fields', $custom_fields);
     $tpl->display('file:' . $this->_TPL_PATH . 'tickets/rpc/batch_panel.tpl');
 }
Exemple #3
0
 /**
  * Enter description here...
  *
  * @param unknown_type $id
  * @return Model_Address
  */
 static function get($id)
 {
     if (empty($id)) {
         return null;
     }
     $addresses = DAO_Address::getWhere(sprintf("%s = %d", self::ID, $id));
     if (isset($addresses[$id])) {
         return $addresses[$id];
     }
     return null;
 }
Exemple #4
0
 private function _handleTicketMoved($event)
 {
     @($ticket_ids = $event->params['ticket_ids']);
     @($changed_fields = $event->params['changed_fields']);
     if (!isset($changed_fields[DAO_Ticket::TEAM_ID]) || !isset($changed_fields[DAO_Ticket::CATEGORY_ID])) {
         return;
     }
     @($team_id = $changed_fields[DAO_Ticket::TEAM_ID]);
     @($bucket_id = $changed_fields[DAO_Ticket::CATEGORY_ID]);
     //============ Check Team Inbox Rules ================
     if (!empty($ticket_ids) && !empty($team_id) && empty($bucket_id)) {
         // moving to an inbox
         // [JAS]: Build hashes for our event ([TODO] clean up)
         $tickets = DAO_Ticket::getTickets($ticket_ids);
         $from_ids = array();
         foreach ($tickets as $ticket) {
             /* @var $ticket CerberusTicket */
             $from_ids[$ticket->id] = $ticket->first_wrote_address_id;
         }
         $from_addresses = DAO_Address::getWhere(sprintf("%s IN (%s)", DAO_Address::ID, implode(',', $from_ids)));
         unset($from_ids);
         if (is_array($tickets)) {
             foreach ($tickets as $ticket_id => $ticket) {
                 $matches = CerberusApplication::runGroupRouting($team_id, $ticket_id);
             }
         }
         unset($from_addresses);
     }
 }