コード例 #1
0
ファイル: display.php プロジェクト: jsjohnst/cerb4
 function saveRequestersPanelAction()
 {
     @($ticket_id = DevblocksPlatform::importGPC($_POST['ticket_id'], 'integer'));
     @($msg_id = DevblocksPlatform::importGPC($_POST['msg_id'], 'integer'));
     // Dels
     @($req_deletes = DevblocksPlatform::importGPC($_POST['req_deletes'], 'array', array()));
     if (!empty($req_deletes)) {
         foreach ($req_deletes as $del_id) {
             DAO_Ticket::deleteRequester($ticket_id, $del_id);
         }
     }
     // Adds
     @($req_adds = DevblocksPlatform::importGPC($_POST['req_adds'], 'string', ''));
     $req_list = DevblocksPlatform::parseCrlfString($req_adds);
     $req_addys = array();
     if (is_array($req_list) && !empty($req_list)) {
         foreach ($req_list as $req) {
             if (empty($req)) {
                 continue;
             }
             $rfc_addys = imap_rfc822_parse_adrlist($req, 'localhost');
             foreach ($rfc_addys as $rfc_addy) {
                 $addy = $rfc_addy->mailbox . '@' . $rfc_addy->host;
                 if (null != ($req_addy = CerberusApplication::hashLookupAddress($addy, true))) {
                     DAO_Ticket::createRequester($req_addy->id, $ticket_id);
                 }
             }
         }
     }
     $requesters = DAO_Ticket::getRequestersByTicket($ticket_id);
     $list = array();
     foreach ($requesters as $requester) {
         $list[] = $requester->email;
     }
     echo implode(', ', $list);
     exit;
 }
コード例 #2
0
ファイル: App.php プロジェクト: sluther/cerb5-iphone
 public function savePropertiesAction()
 {
     @($ticket_id = DevblocksPlatform::importGPC($_POST['ticket_id'], 'integer', 0));
     @($remove = DevblocksPlatform::importGPC($_POST['remove'], 'array', array()));
     @($next_worker_id = DevblocksPlatform::importGPC($_POST['next_worker_id'], 'integer', 0));
     @($ticket_reopen = DevblocksPlatform::importGPC($_POST['ticket_reopen'], 'string', ''));
     @($unlock_date = DevblocksPlatform::importGPC($_POST['unlock_date'], 'string', ''));
     @($subject = DevblocksPlatform::importGPC($_POST['subject'], 'string', ''));
     @($closed = DevblocksPlatform::importGPC($_POST['closed'], 'closed', 0));
     @($ticket = DAO_Ticket::getTicket($ticket_id));
     if (empty($ticket_id) || empty($ticket)) {
         return;
     }
     $fields = array();
     // Properties
     if (empty($next_worker_id)) {
         $unlock_date = "";
     }
     // Status
     if (isset($closed)) {
         switch ($closed) {
             case 0:
                 // open
                 if (array(0, 0, 0) != array($ticket->is_waiting, $ticket->is_closed, $ticket->is_deleted)) {
                     $fields[DAO_Ticket::IS_WAITING] = 0;
                     $fields[DAO_Ticket::IS_CLOSED] = 0;
                     $fields[DAO_Ticket::IS_DELETED] = 0;
                     $fields[DAO_Ticket::DUE_DATE] = 0;
                 }
                 break;
             case 1:
                 // closed
                 if (array(0, 1, 0) != array($ticket->is_waiting, $ticket->is_closed, $ticket->is_deleted)) {
                     $fields[DAO_Ticket::IS_WAITING] = 0;
                     $fields[DAO_Ticket::IS_CLOSED] = 1;
                     $fields[DAO_Ticket::IS_DELETED] = 0;
                 }
                 if (isset($ticket_reopen)) {
                     @($time = intval(strtotime($ticket_reopen)));
                     $fields[DAO_Ticket::DUE_DATE] = $time;
                 }
                 break;
             case 2:
                 // waiting
                 if (array(1, 0, 0) != array($ticket->is_waiting, $ticket->is_closed, $ticket->is_deleted)) {
                     $fields[DAO_Ticket::IS_WAITING] = 1;
                     $fields[DAO_Ticket::IS_CLOSED] = 0;
                     $fields[DAO_Ticket::IS_DELETED] = 0;
                 }
                 if (isset($ticket_reopen)) {
                     @($time = intval(strtotime($ticket_reopen)));
                     $fields[DAO_Ticket::DUE_DATE] = $time;
                 }
                 break;
             case 3:
                 // deleted
                 if (array(0, 1, 1) != array($ticket->is_waiting, $ticket->is_closed, $ticket->is_deleted)) {
                     $fields[DAO_Ticket::IS_WAITING] = 0;
                     $fields[DAO_Ticket::IS_CLOSED] = 1;
                     $fields[DAO_Ticket::IS_DELETED] = 1;
                 }
                 $fields[DAO_Ticket::DUE_DATE] = 0;
                 break;
         }
     }
     if (isset($next_worker_id)) {
         $fields[DAO_Ticket::NEXT_WORKER_ID] = $next_worker_id;
     }
     if (isset($unlock_date)) {
         @($time = intval(strtotime($unlock_date)));
         $fields[DAO_Ticket::UNLOCK_DATE] = $time;
     }
     if (!empty($subject)) {
         $fields[DAO_Ticket::SUBJECT] = $subject;
     }
     if (!empty($fields)) {
         DAO_Ticket::updateTicket($ticket_id, $fields);
     }
     // Custom field saves
     @($field_ids = DevblocksPlatform::importGPC($_POST['field_ids'], 'array', array()));
     DAO_CustomFieldValue::handleFormPost(ChCustomFieldSource_Ticket::ID, $ticket_id, $field_ids);
     // Requesters
     @($req_list = DevblocksPlatform::importGPC($_POST['add'], 'string', ''));
     if (!empty($req_list)) {
         $req_list = DevblocksPlatform::parseCrlfString($req_list);
         $req_list = array_unique($req_list);
         // [TODO] This is redundant with the Requester Peek on Reply
         if (is_array($req_list) && !empty($req_list)) {
             foreach ($req_list as $req) {
                 if (empty($req)) {
                     continue;
                 }
                 $rfc_addys = imap_rfc822_parse_adrlist($req, 'localhost');
                 foreach ($rfc_addys as $rfc_addy) {
                     $addy = $rfc_addy->mailbox . '@' . $rfc_addy->host;
                     DAO_Ticket::createRequester($addy, $ticket_id);
                 }
             }
         }
     }
     if (!empty($remove) && is_array($remove)) {
         foreach ($remove as $address_id) {
             $addy = DAO_Address::get($address_id);
             DAO_Ticket::deleteRequester($ticket_id, $address_id);
         }
     }
     DevblocksPlatform::redirect(new DevblocksHttpResponse(array('iphone', 'tickets', 'display', $ticket->id, 'properties')));
 }