Example #1
0
 function showTab()
 {
     @($ticket_id = DevblocksPlatform::importGPC($_REQUEST['ticket_id'], 'integer', 0));
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->cache_lifetime = "0";
     $tpl_path = dirname(dirname(__FILE__)) . '/templates/';
     //		$tpl->assign('response_uri', 'config/attachments');
     $defaults = new C4_AbstractViewModel();
     $defaults->class_name = 'C4_AttachmentView';
     $defaults->name = 'Attachements View';
     $defaults->id = 'ticket_view_attachements';
     $defaults->renderLimit = 15;
     $view_attachements = C4_AbstractViewLoader::getView('ticket_view_attachements', $defaults);
     $view_attachements->params = array(SearchFields_Attachment::TICKET_ID => new DevblocksSearchCriteria(SearchFields_Attachment::TICKET_ID, DevblocksSearchCriteria::OPER_EQ, $ticket_id));
     $view_attachements->renderPage = 0;
     C4_AbstractViewLoader::setView($view_attachements->id, $view_attachements);
     $tpl->assign('view_attachements', $view_attachements);
     $tpl->display('file:' . $tpl_path . 'attachments/index.tpl');
 }
Example #2
0
 function showTab()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl_path = $this->_TPL_PATH;
     $tpl->assign('path', $tpl_path);
     $translate = DevblocksPlatform::getTranslationService();
     if (null == ($view = C4_AbstractViewLoader::getView(self::VIEW_ACTIVITY_TASKS))) {
         $view = new C4_TaskView();
         $view->id = self::VIEW_ACTIVITY_TASKS;
         $view->renderSortBy = SearchFields_Task::DUE_DATE;
         $view->renderSortAsc = 1;
         $view->name = $translate->_('activity.tab.tasks');
         C4_AbstractViewLoader::setView($view->id, $view);
     }
     $tpl->assign('response_uri', 'activity/tasks');
     $tpl->assign('view', $view);
     $tpl->assign('view_fields', C4_TaskView::getFields());
     $tpl->assign('view_searchable_fields', C4_TaskView::getSearchFields());
     $tpl->display($tpl_path . 'tasks/activity_tab/index.tpl');
 }
Example #3
0
 function showTab()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->cache_lifetime = "0";
     $tpl_path = dirname(dirname(__FILE__)) . '/templates/';
     $tpl->assign('path', $tpl_path);
     if (null == ($view = C4_AbstractViewLoader::getView('', self::VIEW_ACTIVITY_RSS))) {
         $view = new C4_RssExpItemView();
         $view->id = self::VIEW_ACTIVITY_RSS;
         $view->renderSortBy = SearchFields_RssExpItem::CREATED_DATE;
         $view->renderSortAsc = 0;
         $view->name = "RSS";
         C4_AbstractViewLoader::setView($view->id, $view);
     }
     $tpl->assign('response_uri', 'activity/rss');
     $tpl->assign('view', $view);
     $tpl->assign('view_fields', C4_RssExpItemView::getFields());
     $tpl->assign('view_searchable_fields', C4_RssExpItemView::getSearchFields());
     $tpl->display($tpl_path . 'activity_tab/index.tpl');
 }
Example #4
0
 function showTab()
 {
     @($ticket_id = DevblocksPlatform::importGPC($_REQUEST['ticket_id'], 'integer', 0));
     $tpl_path = dirname(dirname(__FILE__)) . '/templates/';
     $tpl = DevblocksPlatform::getTemplateService();
     //$visit = CerberusApplication::getVisit();
     //$visit->set(Extension_ConfigTab::POINT, 'attachments');
     $message_ids = array_keys(DAO_Message::getMessagesByTicket($ticket_id));
     $comment_ids = array_keys(DAO_Comment::getByContext(CerberusContexts::CONTEXT_TICKET, $ticket_id));
     $attachment_links = array_merge(DAO_AttachmentLink::getByContextIds(CerberusContexts::CONTEXT_MESSAGE, $message_ids), DAO_AttachmentLink::getByContextIds(CerberusContexts::CONTEXT_COMMENT, $comment_ids));
     $defaults = new C4_AbstractViewModel();
     $defaults->class_name = 'View_AttachmentLink';
     $defaults->name = 'Attachements';
     $defaults->id = '_ticket_view_attachements';
     $defaults->renderLimit = 15;
     $view = C4_AbstractViewLoader::getView($defaults->id, $defaults);
     $view->renderPage = 0;
     $view->addParams(array(SearchFields_AttachmentLink::GUID => new DevblocksSearchCriteria(SearchFields_AttachmentLink::GUID, 'in', array_keys($attachment_links))), true);
     C4_AbstractViewLoader::setView($view->id, $view);
     $tpl->assign('view', $view);
     $tpl->display('file:' . $tpl_path . 'attachments/index.tpl');
 }
Example #5
0
 function showTab()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->assign('path', $this->_TPL_PATH);
     $tpl->cache_lifetime = "0";
     $worker = CerberusApplication::getActiveWorker();
     $workers = DAO_Worker::getAll();
     $tpl->assign('workers', $workers);
     $tpl->assign('response_uri', 'preferences/watchers2');
     if (null == ($view = C4_AbstractViewLoader::getView('prefs.watchers2'))) {
         $view = new C4_Watcher2View();
         $view->id = 'prefs.watchers2';
         $view->name = "My Watcher 2.0 Filters";
         $view->renderSortBy = SearchFields_Watcher2MailFilter::POS;
         $view->renderSortAsc = 0;
         $view->params = array(SearchFields_Watcher2MailFilter::WORKER_ID => new DevblocksSearchCriteria(SearchFields_Watcher2MailFilter::WORKER_ID, 'eq', $worker->id));
         C4_AbstractViewLoader::setView($view->id, $view);
     }
     $tpl->assign('view', $view);
     $tpl->assign('view_fields', C4_Watcher2View::getFields());
     $tpl->assign('view_searchable_fields', C4_Watcher2View::getSearchFields());
     $tpl->display('file:' . $this->_TPL_PATH . 'preferences/watchers2.tpl');
 }
Example #6
0
 function doArticleQuickSearchAction()
 {
     @($type = DevblocksPlatform::importGPC($_POST['type'], 'string'));
     @($query = DevblocksPlatform::importGPC($_POST['query'], 'string'));
     $query = trim($query);
     $visit = CerberusApplication::getVisit();
     /* @var $visit CerberusVisit */
     $translate = DevblocksPlatform::getTranslationService();
     if (null == ($searchView = C4_AbstractViewLoader::getView(ChKbResearchTab::VIEW_RESEARCH_KB_SEARCH))) {
         $searchView = new C4_KbArticleView();
         $searchView->id = ChKbResearchTab::VIEW_RESEARCH_KB_SEARCH;
         $searchView->name = $translate->_('common.search_results');
         C4_AbstractViewLoader::setView($searchView->id, $searchView);
     }
     $params = array();
     switch ($type) {
         case "content":
             $params[SearchFields_KbArticle::CONTENT] = new DevblocksSearchCriteria(SearchFields_KbArticle::CONTENT, DevblocksSearchCriteria::OPER_FULLTEXT, $query);
             break;
     }
     $searchView->params = $params;
     $searchView->renderPage = 0;
     $searchView->renderSortBy = null;
     C4_AbstractViewLoader::setView($searchView->id, $searchView);
     DevblocksPlatform::redirect(new DevblocksHttpResponse(array('research', 'kb', 'search')));
 }
Example #7
0
 function render()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $active_worker = CerberusApplication::getActiveWorker();
     $memberships = $active_worker->getMemberships();
     $response = DevblocksPlatform::getHttpResponse();
     @($section = $response->path[1]);
     //print_r($_REQUEST);exit();
     //@$page = DevblocksPlatform::importGPC($_GET['password']);
     @($page = DevblocksPlatform::importGPC($_REQUEST['page'], 'integer'));
     if ($page == NULL) {
         $page = 0;
     }
     if (isset($_POST['a2'])) {
         @($section = $_POST['a2']);
     } else {
         @($section = $response->path[2]);
     }
     //print_r($section);
     //echo $section;
     switch ($section) {
         case 'search':
             $title = 'Search';
             $query = $_POST['query'];
             if ($query && false === strpos($query, '*')) {
                 $query = '*' . $query . '*';
             }
             if (!is_null($query)) {
                 $params = array();
                 $type = $_POST['type'];
                 switch ($type) {
                     case "mask":
                         $params[SearchFields_Ticket::TICKET_MASK] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_MASK, DevblocksSearchCriteria::OPER_LIKE, strtoupper($query));
                         break;
                     case "sender":
                         $params[SearchFields_Ticket::TICKET_FIRST_WROTE] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_FIRST_WROTE, DevblocksSearchCriteria::OPER_LIKE, strtolower($query));
                         break;
                     case "subject":
                         $params[SearchFields_Ticket::TICKET_SUBJECT] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_SUBJECT, DevblocksSearchCriteria::OPER_LIKE, $query);
                         break;
                     case "content":
                         $params[SearchFields_Ticket::TICKET_MESSAGE_CONTENT] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_MESSAGE_CONTENT, DevblocksSearchCriteria::OPER_LIKE, $query);
                         break;
                 }
             } else {
                 //show the search form because no search has been submitted
                 $tpl->display('file:' . dirname(__FILE__) . '/templates/tickets/search.tpl');
                 return;
             }
             break;
         case 'sidebar':
             $groups = DAO_Group::getAll();
             $tpl->assign('groups', $groups);
             $group_buckets = DAO_Bucket::getTeams();
             $tpl->assign('group_buckets', $group_buckets);
             $workers = DAO_Worker::getAll();
             $tpl->assign('workers', $workers);
             $group_counts = DAO_Overview::getGroupTotals();
             $tpl->assign('group_counts', $group_counts);
             $waiting_counts = DAO_Overview::getWaitingTotals();
             $tpl->assign('waiting_counts', $waiting_counts);
             $worker_counts = DAO_Overview::getWorkerTotals();
             $tpl->assign('worker_counts', $worker_counts);
             $tpl->display('file:' . dirname(__FILE__) . '/templates/tickets/sidebar.tpl');
             return;
             break;
         case 'overview':
         default:
             $workers = DAO_Worker::getAll();
             $group_buckets = DAO_Bucket::getTeams();
             $groups = DAO_Group::getAll();
             @($filter = $response->path[3]);
             switch ($filter) {
                 case 'group':
                     @($filter_group_id = $response->path[4]);
                     $params = array(SearchFields_Ticket::TICKET_CLOSED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED, '=', CerberusTicketStatus::OPEN), SearchFields_Ticket::TICKET_WAITING => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_WAITING, '=', 0), SearchFields_Ticket::TICKET_NEXT_WORKER_ID => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_NEXT_WORKER_ID, '=', 0));
                     if (!is_null($filter_group_id) && isset($groups[$filter_group_id])) {
                         $tpl->assign('filter_group_id', $filter_group_id);
                         $title = $groups[$filter_group_id]->name;
                         $params[SearchFields_Ticket::TICKET_TEAM_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, '=', $filter_group_id);
                         @($filter_bucket_id = $response->path[5]);
                         if (!is_null($filter_bucket_id)) {
                             $tpl->assign('filter_bucket_id', $filter_bucket_id);
                             @($title .= ': ' . ($filter_bucket_id == 0 ? 'Inbox' : $group_buckets[$filter_group_id][$filter_bucket_id]->name));
                             $params[SearchFields_Ticket::TICKET_CATEGORY_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CATEGORY_ID, '=', $filter_bucket_id);
                         } else {
                             @($title .= ' (Spam Filtered)');
                             $params[SearchFields_Ticket::TICKET_SPAM_SCORE] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_SPAM_SCORE, '<=', '0.9000');
                         }
                     }
                     break;
                 case 'waiting':
                     @($filter_waiting_id = $response->path[4]);
                     $params = array(SearchFields_Ticket::TICKET_CLOSED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED, '=', CerberusTicketStatus::OPEN), SearchFields_Ticket::TICKET_WAITING => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_WAITING, '=', 1));
                     if (!is_null($filter_waiting_id) && isset($groups[$filter_waiting_id])) {
                         $tpl->assign('filter_waiting_id', $filter_waiting_id);
                         $title = '[Waiting] ' . $groups[$filter_waiting_id]->name;
                         $params[SearchFields_Ticket::TICKET_TEAM_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, '=', $filter_waiting_id);
                         @($filter_bucket_id = $response->path[5]);
                         if (!is_null($filter_bucket_id)) {
                             $tpl->assign('filter_bucket_id', $filter_bucket_id);
                             @($title .= ': ' . ($filter_bucket_id == 0 ? 'Inbox' : $group_buckets[$filter_waiting_id][$filter_bucket_id]->name));
                             $params[SearchFields_Ticket::TICKET_CATEGORY_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CATEGORY_ID, '=', $filter_bucket_id);
                         }
                     }
                     break;
                 case 'worker':
                     @($filter_worker_id = $response->path[4]);
                     $params = array(SearchFields_Ticket::TICKET_CLOSED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED, '=', CerberusTicketStatus::OPEN), SearchFields_Ticket::TICKET_WAITING => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_WAITING, '=', 0), $params[SearchFields_Ticket::TICKET_TEAM_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, 'in', array_keys($memberships)));
                     if (!is_null($filter_worker_id)) {
                         $tpl->assign('filter_bucket_id', $filter_bucket_id);
                         $title = "For " . $workers[$filter_worker_id]->getName();
                         $params[SearchFields_Ticket::TICKET_NEXT_WORKER_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_NEXT_WORKER_ID, '=', $filter_worker_id);
                         @($filter_group_id = $response->path[5]);
                         if (!is_null($filter_group_id) && isset($groups[$filter_group_id])) {
                             $title .= ' in ' . $groups[$filter_group_id]->name;
                             $params[SearchFields_Ticket::TICKET_TEAM_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, '=', $filter_group_id);
                         }
                     }
                     break;
                 case 'all':
                 default:
                     $title = 'All (Spam Filtered)';
                     $params = array(SearchFields_Ticket::TICKET_CLOSED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED, '=', CerberusTicketStatus::OPEN), SearchFields_Ticket::TICKET_WAITING => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_WAITING, '=', 0), SearchFields_Ticket::TICKET_NEXT_WORKER_ID => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_NEXT_WORKER_ID, '=', 0), SearchFields_Ticket::TICKET_SPAM_SCORE => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_SPAM_SCORE, '<=', '0.9000'), SearchFields_Ticket::TICKET_TEAM_ID => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, 'in', array_keys($memberships)));
                     break;
             }
             //				$params = array(
             //						new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED,'=',CerberusTicketStatus::OPEN),
             //						new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_NEXT_WORKER_ID,'=',0),
             //						new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_SPAM_SCORE,'<=','0.9000'),
             //						new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID,'in',array_keys($memberships))
             //				);
             //				$title = "Overview";
             break;
     }
     $mobileView = C4_AbstractViewLoader::getView('', "VIEW_MOBILE");
     //print_r($mobileView);
     if ($mobileView == NULL) {
         $mobileView = new C4_MobileTicketView();
         //C4_TicketView();
     }
     $mobileView->id = "VIEW_MOBILE";
     $mobileView->name = $title;
     $mobileView->view_columns = array(SearchFields_Ticket::TICKET_LAST_ACTION_CODE);
     $mobileView->params = $params;
     $mobileView->renderLimit = 10;
     //$overViewDefaults->renderLimit;
     $mobileView->renderPage = $page;
     $mobileView->renderSortBy = SearchFields_Ticket::TICKET_UPDATED_DATE;
     $mobileView->renderSortAsc = 0;
     C4_AbstractViewLoader::setView($mobileView->id, $mobileView);
     $views[] = $mobileView;
     $tpl->assign('views', $views);
     if ($filter == null) {
         $filter = 'all';
     }
     $tpl->assign('filter', $filter);
     $fid = $response->path[4];
     if ($fid == null) {
         $fid = '0';
     }
     $tpl->assign('fid', $fid);
     $bucket_id = $response->path[5];
     if ($bucket_id == null) {
         $buket_id = 0;
     }
     $tpl->assign('bid', $bucket_id);
     $tpl->assign('title', $title);
     $tpl->assign('tickets', $tickets[0]);
     $tpl->assign('next_page', $page + 1);
     $tpl->assign('prev_page', $page - 1);
     //print_r($tickets);exit();
     $tpl->display('file:' . dirname(__FILE__) . '/templates/tickets.tpl');
 }
Example #8
0
 /**
  * This method automatically fixes any cached strange options, like 
  * deleted custom fields.
  *
  */
 protected function _sanitize()
 {
     $fields = $this->getColumns();
     $custom_fields = DAO_CustomField::getAll();
     $needs_save = false;
     // Parameter sanity check
     if (is_array($this->params)) {
         foreach ($this->params as $pidx => $null) {
             if (substr($pidx, 0, 3) != "cf_") {
                 continue;
             }
             if (0 != ($cf_id = intval(substr($pidx, 3)))) {
                 // Make sure our custom fields still exist
                 if (!isset($custom_fields[$cf_id])) {
                     unset($this->params[$pidx]);
                     $needs_save = true;
                 }
             }
         }
     }
     // View column sanity check
     if (is_array($this->view_columns)) {
         foreach ($this->view_columns as $cidx => $c) {
             // Custom fields
             if (substr($c, 0, 3) == "cf_") {
                 if (0 != ($cf_id = intval(substr($c, 3)))) {
                     // Make sure our custom fields still exist
                     if (!isset($custom_fields[$cf_id])) {
                         unset($this->view_columns[$cidx]);
                         $needs_save = true;
                     }
                 }
             } else {
                 // If the column no longer exists (rare but worth checking)
                 if (!isset($fields[$c])) {
                     unset($this->view_columns[$cidx]);
                     $needs_save = true;
                 }
             }
         }
     }
     // Sort by sanity check
     if (substr($this->renderSortBy, 0, 3) == "cf_") {
         if (0 != ($cf_id = intval(substr($this->renderSortBy, 3)))) {
             if (!isset($custom_fields[$cf_id])) {
                 $this->renderSortBy = null;
                 $needs_save = true;
             }
         }
     }
     if ($needs_save) {
         C4_AbstractViewLoader::setView($this->id, $this);
     }
 }
Example #9
0
 function doOrgQuickSearchAction()
 {
     @($type = DevblocksPlatform::importGPC($_POST['type'], 'string'));
     @($query = DevblocksPlatform::importGPC($_POST['query'], 'string'));
     $query = trim($query);
     $defaults = new C4_AbstractViewModel();
     $defaults->class_name = 'C4_ContactOrgView';
     $defaults->id = C4_ContactOrgView::DEFAULT_ID;
     $view = C4_AbstractViewLoader::getView(C4_ContactOrgView::DEFAULT_ID, $defaults);
     $params = array();
     if ($query && false === strpos($query, '*')) {
         $query = '*' . $query . '*';
     }
     switch ($type) {
         case "name":
             $params[SearchFields_ContactOrg::NAME] = new DevblocksSearchCriteria(SearchFields_ContactOrg::NAME, DevblocksSearchCriteria::OPER_LIKE, strtolower($query));
             break;
         case "phone":
             $params[SearchFields_ContactOrg::PHONE] = new DevblocksSearchCriteria(SearchFields_ContactOrg::PHONE, DevblocksSearchCriteria::OPER_LIKE, strtolower($query));
             break;
     }
     $view->params = $params;
     $view->renderPage = 0;
     $view->renderSortBy = null;
     C4_AbstractViewLoader::setView(C4_ContactOrgView::DEFAULT_ID, $view);
     DevblocksPlatform::redirect(new DevblocksHttpResponse(array('contacts', 'orgs')));
 }
Example #10
0
 function showTab()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->cache_lifetime = "0";
     $tpl_path = dirname(dirname(__FILE__)) . '/templates/';
     $tpl->assign('path', $tpl_path);
     if (null == ($view = C4_AbstractViewLoader::getView(self::VIEW_ACTIVITY_FORUMS))) {
         $view = new C4_ForumsThreadView();
         $view->id = self::VIEW_ACTIVITY_FORUMS;
         $view->renderSortBy = SearchFields_ForumsThread::LAST_UPDATED;
         $view->renderSortAsc = 0;
         C4_AbstractViewLoader::setView($view->id, $view);
     }
     $tpl->assign('response_uri', 'activity/forums');
     $tpl->assign('view', $view);
     $tpl->assign('view_fields', C4_ForumsThreadView::getFields());
     $tpl->assign('view_searchable_fields', C4_ForumsThreadView::getSearchFields());
     $tpl->display($tpl_path . 'activity_tab/index.tpl');
 }
Example #11
0
 function showTab()
 {
     @($ticket_id = DevblocksPlatform::importGPC($_REQUEST['ticket_id'], 'integer', 0));
     $visit = CerberusApplication::getVisit();
     /* @var $visit CerberusVisit */
     $translate = DevblocksPlatform::getTranslationService();
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->assign('path', $this->tpl_path);
     $tpl->cache_lifetime = "0";
     $view = C4_AbstractViewLoader::getView('', 'audit_log');
     if (null == $view) {
         $view = new C4_TicketAuditLogView();
         $view->id = 'audit_log';
         $view->name = $translate->_('auditlog.audit_log');
         $view->view_columns = array(SearchFields_TicketAuditLog::CHANGE_DATE, SearchFields_TicketAuditLog::WORKER_ID, SearchFields_TicketAuditLog::CHANGE_FIELD, SearchFields_TicketAuditLog::CHANGE_VALUE);
         $view->params = array();
         $view->renderLimit = 15;
         $view->renderPage = 0;
         $view->renderSortBy = SearchFields_TicketAuditLog::CHANGE_DATE;
         $view->renderSortAsc = false;
     }
     $view->params = array(SearchFields_TicketAuditLog::TICKET_ID => new DevblocksSearchCriteria(SearchFields_TicketAuditLog::TICKET_ID, DevblocksSearchCriteria::OPER_EQ, $ticket_id));
     $view->renderPage = 0;
     C4_AbstractViewLoader::setView($view->id, $view);
     $tpl->assign('view', $view);
     $tpl->display('file:' . $this->tpl_path . '/display/log/index.tpl');
 }
Example #12
0
 function showTasksAction()
 {
     $translate = DevblocksPlatform::getTranslationService();
     @($ticket_id = DevblocksPlatform::importGPC($_REQUEST['ticket_id'], 'integer'));
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->assign('path', $this->_TPL_PATH);
     $ticket = DAO_Ticket::getTicket($ticket_id);
     $tpl->assign('ticket', $ticket);
     $view = C4_AbstractViewLoader::getView('C4_TaskView', 'ticket_tasks');
     $view->id = 'ticket_tasks';
     $view->name = $translate->_('tasks.ticket.tab.view');
     $view->view_columns = array(SearchFields_Task::SOURCE_EXTENSION, SearchFields_Task::DUE_DATE, SearchFields_Task::WORKER_ID);
     $view->params = array(SearchFields_Task::SOURCE_EXTENSION => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_EXTENSION, '=', 'cerberusweb.tasks.ticket'), SearchFields_Task::SOURCE_ID => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_ID, '=', $ticket_id));
     $tpl->assign('view', $view);
     C4_AbstractViewLoader::setView($view->id, $view);
     $tpl->display('file:' . $this->_TPL_PATH . 'display/modules/tasks/index.tpl');
 }
Example #13
0
 function showTab()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $response = DevblocksPlatform::getHttpResponse();
     $translate = DevblocksPlatform::getTranslationService();
     // are we displaying the main home page?
     $path = $response->path;
     array_shift($path);
     // iphone
     array_shift($path);
     // opportunities
     $action = array_shift($path);
     // current action (display)
     $id = array_shift($path);
     // opp id
     array_shift($path);
     // other
     $sub_tab = array_shift($path);
     // mailhistory
     $page = array_shift($path);
     // page
     $address = $tpl->getVariable('address')->value;
     //			$address = DAO_Address::getByEmail($address->email);
     $defaults = new C4_AbstractViewModel();
     $defaults->class_name = 'View_Ticket_iPhone';
     $defaults->id = 'iphone_opp_contact_history';
     $defaults->name = $translate->_('addy_book.history.view.title');
     $defaults->view_columns = array(SearchFields_Ticket::TICKET_LAST_ACTION_CODE, SearchFields_Ticket::TICKET_CREATED_DATE, SearchFields_Ticket::TICKET_TEAM_ID, SearchFields_Ticket::TICKET_CATEGORY_ID);
     $defaults->renderLimit = 10;
     $defaults->renderSortBy = SearchFields_Ticket::TICKET_CREATED_DATE;
     $defaults->renderSortAsc = false;
     $view = C4_AbstractViewLoader::getView('iphone_opp_contact_history', $defaults);
     $params[SearchFields_Ticket::REQUESTER_ADDRESS] = new DevblocksSearchCriteria(SearchFields_Ticket::REQUESTER_ADDRESS, '=', $address->email);
     $view->params = $params;
     if (isset($page)) {
         $view->renderPage = $page;
     }
     C4_AbstractViewLoader::setView($view->id, $view);
     $uri = "opportunities/display/{$id}/other/mailhistory";
     $tpl->assign('uri', $uri);
     $tpl->assign('view', $view);
     $tpl->assign('tickets', $tickets);
     $tpl->display('file:' . $this->_TPL_PATH . 'display/sub_tabs/mailhistory.tpl');
 }
Example #14
0
 function showTab()
 {
     @($ticket_id = DevblocksPlatform::importGPC($_REQUEST['ticket_id'], 'integer', 0));
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl_path = dirname(dirname(__FILE__)) . '/templates/';
     $tpl->assign('path', $tpl_path);
     $tpl->cache_lifetime = "0";
     $ticket = DAO_Ticket::getTicket($ticket_id);
     $tpl->assign('ticket_id', $ticket_id);
     $address = DAO_Address::get($ticket->first_wrote_address_id);
     $tpl->assign('address', $address);
     if (null == ($view = C4_AbstractViewLoader::getView('', 'ticket_opps'))) {
         $view = new C4_CrmOpportunityView();
         $view->id = 'ticket_opps';
     }
     if (!empty($address->contact_org_id)) {
         // org
         @($org = DAO_ContactOrg::get($address->contact_org_id));
         $view->name = "Org: " . $org->name;
         $view->params = array(SearchFields_CrmOpportunity::ORG_ID => new DevblocksSearchCriteria(SearchFields_CrmOpportunity::ORG_ID, '=', $org->id));
     } else {
         // address
         $view->name = "Requester: " . $address->email;
         $view->params = array(SearchFields_CrmOpportunity::PRIMARY_EMAIL_ID => new DevblocksSearchCriteria(SearchFields_CrmOpportunity::PRIMARY_EMAIL_ID, '=', $ticket->first_wrote_address_id));
     }
     C4_AbstractViewLoader::setView($view->id, $view);
     $tpl->assign('view', $view);
     $tpl->display('file:' . $tpl_path . 'crm/opps/ticket/tab.tpl');
 }
Example #15
0
 function showTab()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->cache_lifetime = "0";
     $tpl_path = dirname(dirname(__FILE__)) . '/templates/';
     $tpl->assign('path', $tpl_path);
     $defaults = new C4_AbstractViewModel();
     $defaults->class_name = 'C4_CallEntryView';
     $defaults->id = self::VIEW_ACTIVITY_CALLS;
     $defaults->renderSortBy = SearchFields_CallEntry::UPDATED_DATE;
     $defaults->renderSortAsc = 0;
     $view = C4_AbstractViewLoader::getView(self::VIEW_ACTIVITY_CALLS, $defaults);
     $view->name = "Calls";
     C4_AbstractViewLoader::setView($view->id, $view);
     $tpl->assign('response_uri', 'activity/calls');
     $tpl->assign('view', $view);
     $tpl->assign('view_fields', C4_CallEntryView::getFields());
     $tpl->assign('view_searchable_fields', C4_CallEntryView::getSearchFields());
     $tpl->display($tpl_path . 'activity_tab/index.tpl');
 }
Example #16
0
 function saveAddLanguagePanelAction()
 {
     $active_worker = CerberusApplication::getActiveWorker();
     // Make sure we're an active worker
     if (empty($active_worker) || empty($active_worker->id)) {
         return;
     }
     $codes = DAO_Translation::getDefinedLangCodes();
     @($add_lang_code = DevblocksPlatform::importGPC($_REQUEST['add_lang_code'], 'string', ''));
     @($copy_lang_code = DevblocksPlatform::importGPC($_REQUEST['copy_lang_code'], 'string', ''));
     @($del_lang_ids = DevblocksPlatform::importGPC($_REQUEST['del_lang_ids'], 'array', array()));
     if (!empty($del_lang_ids)) {
         if (is_array($del_lang_ids)) {
             foreach ($del_lang_ids as $lang_id) {
                 DAO_Translation::deleteByLangCodes($lang_id);
             }
         }
     }
     // Don't add blanks or the same language twice.
     if (!empty($add_lang_code) && !isset($codes[$add_lang_code])) {
         // English reference strings (to know our scope)
         $english_strings = DAO_Translation::getMapByLang('en_US');
         $copy_strings = array();
         // If we have a desired source language for defaults, load it.
         if (!empty($copy_lang_code)) {
             if (0 == strcasecmp('en_US', $copy_lang_code)) {
                 $copy_strings = $english_strings;
             } else {
                 $copy_strings = DAO_Translation::getMapByLang($copy_lang_code);
             }
         }
         // Loop through English strings for new language
         if (is_array($english_strings)) {
             foreach ($english_strings as $string_id => $src_en) {
                 /* @var $src_en Model_Translation */
                 $override = '';
                 // If we have a valid source, copy its override or its default (in that order)
                 @($copy_string = $copy_strings[$string_id]);
                 if (is_a($copy_string, 'Model_Translation')) {
                     $override = !empty($copy_string->string_override) ? $copy_string->string_override : $copy_string->string_default;
                 }
                 // Insert the new string as an override.  Only official translations are defaults
                 $fields = array(DAO_Translation::STRING_ID => $string_id, DAO_Translation::LANG_CODE => $add_lang_code, DAO_Translation::STRING_DEFAULT => '', DAO_Translation::STRING_OVERRIDE => $override);
                 DAO_Translation::create($fields);
             }
         }
     }
     // If we added a new language then change the view to display it
     if (!empty($add_lang_code)) {
         $defaults = new C4_AbstractViewModel();
         $defaults->class_name = 'C4_TranslationView';
         $defaults->id = C4_TranslationView::DEFAULT_ID;
         // Clear the existing view
         $view = C4_AbstractViewLoader::getView(C4_TranslationView::DEFAULT_ID, $defaults);
         $view->doResetCriteria();
         // Set search to untranslated strings that aren't English
         $view->renderSortBy = SearchFields_Translation::STRING_ID;
         $view->renderSortAsc = true;
         $view->params = array(SearchFields_Translation::LANG_CODE => new DevblocksSearchCriteria(SearchFields_Translation::LANG_CODE, DevblocksSearchCriteria::OPER_EQ, $add_lang_code));
         /*
          * If we didn't copy from another language, only show empty strings 
          * which makes it easier to translate in the GUI.
          */
         if (empty($copy_lang_code)) {
             $view->params[SearchFields_Translation::STRING_OVERRIDE] = new DevblocksSearchCriteria(SearchFields_Translation::STRING_OVERRIDE, DevblocksSearchCriteria::OPER_EQ, '');
         }
         C4_AbstractViewLoader::setView($view->id, $view);
     }
     self::_clearCache();
     DevblocksPlatform::redirect(new DevblocksHttpResponse(array('config', 'translations')));
 }
Example #17
0
 function showTabTemplatesAction()
 {
     @($tool_id = DevblocksPlatform::importGPC($_REQUEST['id'], 'integer', 0));
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->assign('path', $this->_TPL_PATH);
     if (null != ($tool = DAO_CommunityTool::get($tool_id))) {
         $tpl->assign('tool', $tool);
     }
     $defaults = new C4_AbstractViewModel();
     $defaults->id = 'portal_templates';
     $defaults->class_name = 'View_DevblocksTemplate';
     $view = C4_AbstractViewLoader::getView($defaults->id, $defaults);
     $view->name = 'Custom Templates';
     $view->params[SearchFields_DevblocksTemplate::TAG] = new DevblocksSearchCriteria(SearchFields_DevblocksTemplate::TAG, '=', 'portal_' . $tool->code);
     C4_AbstractViewLoader::setView($view->id, $view);
     $tpl->assign('view', $view);
     $tpl->assign('view_fields', View_DevblocksTemplate::getFields());
     $tpl->assign('view_searchable_fields', View_DevblocksTemplate::getSearchFields());
     $tpl->display('file:' . $this->_TPL_PATH . 'community/display/tabs/templates/index.tpl');
 }
Example #18
0
 function showTab()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->cache_lifetime = "0";
     $tpl_path = dirname(dirname(__FILE__)) . '/templates/';
     $tpl->assign('path', $tpl_path);
     if (null == ($view = C4_AbstractViewLoader::getView('', self::VIEW_ACTIVITY_TIMETRACKING))) {
         $view = new C4_TimeTrackingEntryView();
         $view->id = self::VIEW_ACTIVITY_TIMETRACKING;
         $view->renderSortBy = SearchFields_TimeTrackingEntry::LOG_DATE;
         $view->renderSortAsc = 0;
         C4_AbstractViewLoader::setView($view->id, $view);
     }
     $tpl->assign('response_uri', 'activity/timetracking');
     $tpl->assign('view', $view);
     $tpl->assign('view_fields', C4_TimeTrackingEntryView::getFields());
     $tpl->assign('view_searchable_fields', C4_TimeTrackingEntryView::getSearchFields());
     $tpl->display($tpl_path . 'activity_tab/index.tpl');
 }
Example #19
0
 function viewSaveCustomizeAction()
 {
     $translate = DevblocksPlatform::getTranslationService();
     @($id = DevblocksPlatform::importGPC($_REQUEST['id']));
     @($columns = DevblocksPlatform::importGPC($_REQUEST['columns'], 'array', array()));
     @($num_rows = DevblocksPlatform::importGPC($_REQUEST['num_rows'], 'integer', 10));
     $num_rows = max($num_rows, 1);
     // make 1 the minimum
     $view = C4_AbstractViewLoader::getView($id);
     $view->doCustomize($columns, $num_rows);
     $active_worker = CerberusApplication::getActiveWorker();
     // Conditional Persist
     if (substr($id, 0, 5) == "cust_") {
         // custom workspace
         $list_view_id = intval(substr($id, 5));
         // Special custom view fields
         @($title = DevblocksPlatform::importGPC($_REQUEST['title'], 'string', $translate->_('views.new_list')));
         $view->name = $title;
         // Persist Object
         $list_view = new Model_WorkerWorkspaceListView();
         $list_view->title = $title;
         $list_view->columns = $view->view_columns;
         $list_view->num_rows = $view->renderLimit;
         $list_view->params = $view->params;
         $list_view->sort_by = $view->renderSortBy;
         $list_view->sort_asc = $view->renderSortAsc;
         DAO_WorkerWorkspaceList::update($list_view_id, array(DAO_WorkerWorkspaceList::LIST_VIEW => serialize($list_view)));
     } else {
         $prefs = new C4_AbstractViewModel();
         $prefs->class_name = get_class($view);
         $prefs->view_columns = $view->view_columns;
         $prefs->renderLimit = $view->renderLimit;
         $prefs->renderSortBy = $view->renderSortBy;
         $prefs->renderSortAsc = $view->renderSortAsc;
         DAO_WorkerPref::set($active_worker->id, 'view' . $view->id, serialize($prefs));
     }
     C4_AbstractViewLoader::setView($id, $view);
     $view->render();
 }
Example #20
0
 function searchviewAction()
 {
     $visit = CerberusApplication::getVisit();
     $response = DevblocksPlatform::getHttpRequest();
     $path = $response->path;
     array_shift($path);
     // tickets
     array_shift($path);
     // searchview
     $id = array_shift($path);
     $view = C4_AbstractViewLoader::getView($id);
     if (!empty($view->params)) {
         $params = array();
         // Index by field name for search system
         if (is_array($view->params)) {
             foreach ($view->params as $key => $criteria) {
                 /* @var $criteria DevblocksSearchCriteria */
                 $params[$key] = $criteria;
             }
         }
     }
     if (null == ($search_view = C4_AbstractViewLoader::getView(CerberusApplication::VIEW_SEARCH))) {
         $search_view = C4_TicketView::createSearchView();
     }
     $search_view->params = $params;
     $search_view->renderPage = 0;
     C4_AbstractViewLoader::setView($search_view->id, $search_view);
     DevblocksPlatform::setHttpResponse(new DevblocksHttpResponse(array('tickets', 'search')));
 }
Example #21
0
 function doEditWorkspaceAction()
 {
     @($workspace = DevblocksPlatform::importGPC($_POST['workspace'], 'string', ''));
     @($rename_workspace = DevblocksPlatform::importGPC($_POST['rename_workspace'], 'string', ''));
     @($ids = DevblocksPlatform::importGPC($_POST['ids'], 'array', array()));
     @($names = DevblocksPlatform::importGPC($_POST['names'], 'array', array()));
     @($pos = DevblocksPlatform::importGPC($_POST['pos'], 'array', array()));
     @($deletes = DevblocksPlatform::importGPC($_POST['deletes'], 'array', array()));
     $db = DevblocksPlatform::getDatabaseService();
     $active_worker = CerberusApplication::getActiveWorker();
     $visit = CerberusApplication::getVisit();
     $worklists = DAO_WorkerWorkspaceList::getWhere(sprintf("%s = %s", DAO_WorkerWorkspaceList::WORKSPACE, $db->qstr($workspace)));
     // Reorder worklists, rename lists, delete lists, on workspace
     if (is_array($ids) && !empty($ids)) {
         foreach ($ids as $idx => $id) {
             if (false !== array_search($id, $deletes)) {
                 DAO_WorkerWorkspaceList::delete($id);
                 C4_AbstractViewLoader::deleteView('cust_' . $id);
                 // free up a little memory
             } else {
                 if (!isset($worklists[$id])) {
                     continue;
                 }
                 $list_view = $worklists[$id]->list_view;
                 /* @var $list_view Model_WorkerWorkspaceListView */
                 // If the name changed
                 if (isset($names[$idx]) && 0 != strcmp($list_view->title, $names[$idx])) {
                     $list_view->title = $names[$idx];
                     // Save the view in the session
                     $view = C4_AbstractViewLoader::getView('', 'cust_' . $id);
                     $view->name = $list_view->title;
                     C4_AbstractViewLoader::setView('cust_' . $id, $view);
                 }
                 DAO_WorkerWorkspaceList::update($id, array(DAO_WorkerWorkspaceList::LIST_POS => @intval($pos[$idx]), DAO_WorkerWorkspaceList::LIST_VIEW => serialize($list_view)));
             }
         }
     }
     // Rename workspace
     if (!empty($rename_workspace)) {
         $fields = array(DAO_WorkerWorkspaceList::WORKSPACE => $rename_workspace);
         DAO_WorkerWorkspaceList::updateWhere($fields, sprintf("%s = %s AND %s = %d", DAO_WorkerWorkspaceList::WORKSPACE, $db->qstr($workspace), DAO_WorkerWorkspaceList::WORKER_ID, $active_worker->id));
         $workspace = $rename_workspace;
     }
     // Change active tab
     $visit->set(CerberusVisit::KEY_HOME_SELECTED_TAB, 'w_' . $workspace);
     DevblocksPlatform::redirect(new DevblocksHttpResponse(array('home')));
 }
Example #22
0
	function getView($context=null, $context_id=null, $options=array()) {
		$view_id = str_replace('.','_',$this->id);

		$defaults = new C4_AbstractViewModel();
		$defaults->id = $view_id;
		$defaults->class_name = $this->getViewClass();
		$view = C4_AbstractViewLoader::getView($view_id, $defaults);
		//$view->name = 'Calls';

		$params_req = array();

		if(!empty($context) && !empty($context_id)) {
			$params_req = array(
			new DevblocksSearchCriteria(SearchFields_Issue::CONTEXT_LINK,'=',$context),
			new DevblocksSearchCriteria(SearchFields_Issue::CONTEXT_LINK_ID,'=',$context_id),
			);
		}

		$view->addParamsRequired($params_req, true);

		$view->renderTemplate = 'context';
		C4_AbstractViewLoader::setView($view_id, $view);
		return $view;
	}