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'); }
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'); }
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'); }
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'); }
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'); }
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'))); }
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'); }
/** * 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); } }
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'))); }
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'); }
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'); }
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'); }
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'); }
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'); }
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'); }
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'))); }
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'); }
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'); }
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(); }
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'))); }
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'))); }
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; }