function showTab() { $visit = CerberusApplication::getVisit(); $translate = DevblocksPlatform::getTranslationService(); $tpl = DevblocksPlatform::getTemplateService(); $tpl->cache_lifetime = "0"; $tpl_path = dirname(dirname(__FILE__)) . '/templates/'; $tpl->assign('path', $tpl_path); @($request_path = DevblocksPlatform::importGPC($_REQUEST['request'], 'string', '')); $tpl->assign('request_path', $request_path); @($stack = explode('/', $request_path)); @array_shift($stack); // research @array_shift($stack); // fnr @($action = array_shift($stack)); switch ($action) { default: // if(null == ($view = C4_AbstractViewLoader::getView(null, self::VIEW_RESEARCH_FNR_SEARCH))) { // $view = new C4_KbArticleView(); // $view->id = self::VIEW_RESEARCH_FNR_SEARCH; // $view->name = $translate->_('common.search_results'); // C4_AbstractViewLoader::setView($view->id, $view); // } // // $tpl->assign('view', $view); // $tpl->assign('view_fields', C4_KbArticleView::getFields()); // $tpl->assign('view_searchable_fields', C4_KbArticleView::getSearchFields()); // $tpl->assign('response_uri', 'research/fnr/search'); $fnr_topics = DAO_FnrTopic::getWhere(); $tpl->assign('fnr_topics', $fnr_topics); $tpl->display($tpl_path . 'research_tab/index.tpl'); break; } }
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 isVisible() { // check login $visit = CerberusApplication::getVisit(); if (empty($visit)) { return false; } else { return true; } }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $visit = CerberusApplication::getVisit(); $translate = DevblocksPlatform::getTranslationService(); $response = DevblocksPlatform::getHttpResponse(); $tpl->assign('request_path', implode('/', $response->path)); $stack = $response->path; array_shift($stack); // research $tab_manifests = DevblocksPlatform::getExtensions('cerberusweb.research.tab', false); uasort($tab_manifests, create_function('$a, $b', "return strcasecmp(\$a->name,\$b->name);\n")); $tpl->assign('tab_manifests', $tab_manifests); @($tab_selected = array_shift($stack)); if (empty($tab_selected)) { $tab_selected = ''; } $tpl->assign('tab_selected', $tab_selected); $tpl->display('file:' . $this->_TPL_PATH . 'research/index.tpl'); }
function showContactHistoryAction() { $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); $requesters = $ticket->getRequesters(); $contact = DAO_Address::get($ticket->first_wrote_address_id); $tpl->assign('contact', $contact); $visit = CerberusApplication::getVisit(); /* @var $visit CerberusVisit */ $view = C4_AbstractViewLoader::getView('', 'contact_history'); if (null == $view) { $view = new C4_TicketView(); $view->id = 'contact_history'; $view->name = $translate->_('addy_book.history.view.title'); $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); $view->params = array(); $view->renderLimit = 10; $view->renderSortBy = SearchFields_Ticket::TICKET_CREATED_DATE; $view->renderSortAsc = false; } $view->name = vsprintf($translate->_('addy_book.history.view.requester'), intval(count($requesters))); $view->params = array(SearchFields_Ticket::REQUESTER_ID => new DevblocksSearchCriteria(SearchFields_Ticket::REQUESTER_ID, 'in', array_keys($requesters)), SearchFields_Ticket::TICKET_DELETED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_DELETED, DevblocksSearchCriteria::OPER_EQ, 0)); $view->renderPage = 0; $tpl->assign('view', $view); C4_AbstractViewLoader::setView($view->id, $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 . 'display/modules/history/index.tpl'); }
function viewDoCopyAction() { $translate = DevblocksPlatform::getTranslationService(); $active_worker = CerberusApplication::getActiveWorker(); $visit = CerberusApplication::getVisit(); @($view_id = DevblocksPlatform::importGPC($_POST['view_id'], 'string')); $view = C4_AbstractViewLoader::getView($view_id); @($list_title = DevblocksPlatform::importGPC($_POST['list_title'], 'string', '')); @($workspace = DevblocksPlatform::importGPC($_POST['workspace'], 'string', '')); @($new_workspace = DevblocksPlatform::importGPC($_POST['new_workspace'], 'string', '')); if (empty($workspace) && empty($new_workspace)) { $new_workspace = $translate->_('mail.workspaces.new'); } if (empty($list_title)) { $list_title = $translate->_('mail.workspaces.new_list'); } $workspace_name = !empty($new_workspace) ? $new_workspace : $workspace; // Find the proper workspace source based on the class of the view $source_manifests = DevblocksPlatform::getExtensions(Extension_WorkspaceSource::EXTENSION_POINT, false); $source_manifest = null; if (is_array($source_manifests)) { foreach ($source_manifests as $mft) { if (is_a($view, $mft->params['view_class'])) { $source_manifest = $mft; break; } } } if (!is_null($source_manifest)) { // View params inside the list for quick render overload $list_view = new Model_WorkerWorkspaceListView(); $list_view->title = $list_title; $list_view->num_rows = $view->renderLimit; $list_view->columns = $view->view_columns; $list_view->params = $view->params; $list_view->sort_by = $view->renderSortBy; $list_view->sort_asc = $view->renderSortAsc; // Save the new worklist $fields = array(DAO_WorkerWorkspaceList::WORKER_ID => $active_worker->id, DAO_WorkerWorkspaceList::WORKSPACE => $workspace_name, DAO_WorkerWorkspaceList::SOURCE_EXTENSION => $source_manifest->id, DAO_WorkerWorkspaceList::LIST_VIEW => serialize($list_view), DAO_WorkerWorkspaceList::LIST_POS => 99); $list_id = DAO_WorkerWorkspaceList::create($fields); } // Select the workspace tab $visit->set(CerberusVisit::KEY_HOME_SELECTED_TAB, 'w_' . $workspace_name); DevblocksPlatform::redirect(new DevblocksHttpResponse(array('home'))); }
function browseOppsAction() { $visit = CerberusApplication::getVisit(); /* @var $visit CerberusVisit */ $request = DevblocksPlatform::getHttpRequest(); $stack = $request->path; array_shift($stack); // crm array_shift($stack); // browseOpps @($id = array_shift($stack)); $opp = DAO_CrmOpportunity::get($id); if (empty($opp)) { echo "<H1>Invalid Opportunity ID.</H1>"; return; } // Display series support (inherited paging from Display) @($view_id = array_shift($stack)); if (!empty($view_id)) { $view = C4_AbstractViewLoader::getView('', $view_id); // Restrict to the active worker's groups $active_worker = CerberusApplication::getActiveWorker(); // $memberships = $active_worker->getMemberships(); // $view->params['tmp'] = new DevblocksSearchCriteria(SearchFields_CrmOpportunity::TEAM_ID, 'in', array_keys($memberships)); $range = 100; $pos = $view->renderLimit * $view->renderPage; $page = floor($pos / $range); list($series, $series_count) = DAO_CrmOpportunity::search($view->view_columns, $view->params, $range, $page, $view->renderSortBy, $view->renderSortAsc, false); $series_info = array('title' => $view->name, 'total' => count($series), 'series' => $series); $visit->set('ch_opp_series', $series_info); } DevblocksPlatform::redirect(new DevblocksHttpResponse(array('crm', 'opps', $opp->id))); exit; }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('id', $this->id); $view_path = DEVBLOCKS_PLUGIN_PATH . 'cerberusweb.mobile/templates/tickets/'; $tpl->assign('view_path_mobile', $view_path_mobile); $tpl->assign('view', $this); $visit = CerberusApplication::getVisit(); $results = self::getData(); $tpl->assign('results', $results); @($ids = array_keys($results[0])); $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); // [TODO] Is this even used here or did mfogg copy it blindly? $ticket_fields = DAO_CustomField::getBySource(ChCustomFieldSource_Ticket::ID); $tpl->assign('ticket_fields', $ticket_fields); // Undo? // [TODO] Is this even used here or did mfogg copy it blindly? $last_action = C4_TicketView::getLastAction($this->id); $tpl->assign('last_action', $last_action); if (!empty($last_action) && !is_null($last_action->ticket_ids)) { $tpl->assign('last_action_count', count($last_action->ticket_ids)); } $tpl->cache_lifetime = "0"; $tpl->assign('view_fields', $this->getColumns()); $tpl->display('file:' . $view_path . 'ticket_view.tpl'); }
function doImportAction() { $active_worker = CerberusApplication::getActiveWorker(); if (!$active_worker->hasPriv('crm.opp.actions.import')) { return; } @($pos = DevblocksPlatform::importGPC($_REQUEST['pos'], 'array', array())); @($field = DevblocksPlatform::importGPC($_REQUEST['field'], 'array', array())); @($sync_dupes = DevblocksPlatform::importGPC($_REQUEST['sync_dupes'], 'array', array())); @($include_first = DevblocksPlatform::importGPC($_REQUEST['include_first'], 'integer', 0)); @($is_blank_unset = DevblocksPlatform::importGPC($_REQUEST['is_blank_unset'], 'integer', 0)); @($opt_assign = DevblocksPlatform::importGPC($_REQUEST['opt_assign'], 'integer', 0)); @($opt_assign_worker_id = DevblocksPlatform::importGPC($_REQUEST['opt_assign_worker_id'], 'integer', 0)); $visit = CerberusApplication::getVisit(); $db = DevblocksPlatform::getDatabaseService(); $workers = DAO_Worker::getAllActive(); $csv_file = $visit->get('crm.import.last.csv', ''); $fp = fopen($csv_file, "rt"); if (!$fp) { return; } // [JAS]: Do we need to consume a first row of headings? if (!$include_first) { @fgetcsv($fp, 8192, ',', '"'); } while (!feof($fp)) { $parts = fgetcsv($fp, 8192, ',', '"'); if (empty($parts) || 1 == count($parts) && is_null($parts[0])) { continue; } $fields = array(); $custom_fields = array(); $sync_fields = array(); foreach ($pos as $idx => $p) { $key = $field[$idx]; $val = $parts[$idx]; // Special handling if (!empty($key)) { switch ($key) { case 'amount': if (0 != strlen($val) && is_numeric($val)) { @($val = floatval($val)); } else { unset($key); } break; // Translate e-mail address to ID // Translate e-mail address to ID case 'email': if (null != ($addy = CerberusApplication::hashLookupAddress($val, true))) { $key = 'primary_email_id'; $val = $addy->id; } else { unset($key); } break; // Bools // Bools case 'is_won': case 'is_closed': if (0 != strlen($val)) { @($val = !empty($val) ? 1 : 0); } else { unset($key); } break; // Dates // Dates case 'created_date': case 'updated_date': case 'closed_date': if (0 != strlen($val)) { @($val = !is_numeric($val) ? strtotime($val) : $val); } else { unset($key); } break; // Worker by name // Worker by name case 'worker': unset($key); if (is_array($workers)) { foreach ($workers as $worker_id => $worker) { if (0 == strcasecmp($val, $worker->getName())) { $key = 'worker_id'; $val = $worker_id; } } } break; } if (!isset($key)) { continue; } // Custom fields if ('cf_' == substr($key, 0, 3)) { $custom_fields[substr($key, 3)] = $val; } elseif (!empty($key)) { $fields[$key] = $val; } // Find dupe combos if (in_array($idx, $sync_dupes)) { $search_field = ''; $search_val = ''; switch ($key) { case 'primary_email_id': $search_field = SearchFields_CrmOpportunity::PRIMARY_EMAIL_ID; $search_val = intval($val); break; case 'title': $search_field = SearchFields_CrmOpportunity::NAME; $search_val = $val; break; case 'amount': $search_field = SearchFields_CrmOpportunity::AMOUNT; $search_val = floatval($val); break; case 'is_won': $search_field = SearchFields_CrmOpportunity::IS_WON; $search_val = intval($val); break; case 'is_closed': $search_field = SearchFields_CrmOpportunity::IS_CLOSED; $search_val = intval($val); break; case 'created_date': $search_field = SearchFields_CrmOpportunity::CREATED_DATE; $search_val = intval($val); break; case 'updated_date': $search_field = SearchFields_CrmOpportunity::UPDATED_DATE; $search_val = intval($val); break; case 'closed_date': $search_field = SearchFields_CrmOpportunity::CLOSED_DATE; $search_val = intval($val); break; case 'worker_id': $search_field = SearchFields_CrmOpportunity::WORKER_ID; $search_val = intval($val); break; default: // Custom field dupe if ('cf_' == substr($key, 0, 3)) { $search_field = $key; // [TODO] Need to format this for proper custom fields $search_val = $val; } break; } if (!empty($search_field) && !empty($search_val)) { $sync_fields[$search_field] = new DevblocksSearchCriteria($search_field, '=', $search_val); } } } } // end foreach($pos) // Dupe checking if (!empty($fields) && !empty($sync_fields)) { list($dupes, $null) = DAO_CrmOpportunity::search(array(), $sync_fields, 1, 0, null, false, false); } if (!empty($fields)) { if (isset($fields['primary_email_id'])) { // Make sure a minimum amount of fields are provided if (!isset($fields[DAO_CrmOpportunity::UPDATED_DATE])) { $fields[DAO_CrmOpportunity::UPDATED_DATE] = time(); } if ($opt_assign && !isset($fields[DAO_CrmOpportunity::WORKER_ID])) { $fields[DAO_CrmOpportunity::WORKER_ID] = $opt_assign_worker_id; } if (empty($dupes)) { // [TODO] Provide an import prefix for blank names if (!isset($fields[DAO_CrmOpportunity::NAME]) && isset($addy)) { $fields[DAO_CrmOpportunity::NAME] = $addy->email; } if (!isset($fields[DAO_CrmOpportunity::CREATED_DATE])) { $fields[DAO_CrmOpportunity::CREATED_DATE] = time(); } $id = DAO_CrmOpportunity::create($fields); } else { $id = key($dupes); DAO_CrmOpportunity::update($id, $fields); } } } if (!empty($custom_fields) && !empty($id)) { // Format (typecast) and set the custom field types $source_ext_id = CrmCustomFieldSource_Opportunity::ID; DAO_CustomFieldValue::formatAndSetFieldValues($source_ext_id, $id, $custom_fields, $is_blank_unset); } } @unlink($csv_file); // nuke the imported file $visit->set('crm.import.last.csv', null); DevblocksPlatform::redirect(new DevblocksHttpResponse(array('activity', 'opps'))); }
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'))); }
public static function clearLastActions() { $visit = CerberusApplication::getVisit(); /* @var $visit CerberusVisit */ $visit->set(CerberusVisit::KEY_VIEW_LAST_ACTION, array()); }
private function _renderExplorerNavigation($stack) { $visit = CerberusApplication::getVisit(); if (null == ($posts = $visit->get('forums_explorer_results', null))) { return; } $pos = $visit->get('forums_explorer_results_pos', -1); // Advance our pointer if (!empty($pos) && isset($posts[$pos])) { while (key($posts) != $pos) { next($posts); } } $tpl = DevblocksPlatform::getTemplateService(); $tpl->cache_lifetime = "0"; $tpl->assign('path', $this->tpl_path); $translate = DevblocksPlatform::getTranslationService(); $tpl->assign('translate', $translate); $workers = DAO_Worker::getAll(); $tpl->assign('workers', $workers); switch (array_shift($stack)) { case 'next': next($posts); $key = key($posts); $visit->set('forums_explorer_results_pos', $key); break; case 'prev': prev($posts); $key = key($posts); $visit->set('forums_explorer_results_pos', $key); break; } if (null != ($post = DAO_ForumsThread::get(key($posts)))) { $tpl->assign('current_post', $post); } // Check for previous position if (prev($posts)) { $current = current($posts); $tpl->assign('prev_post', $current); next($posts); //re-advance } else { reset($posts); } // Check for next position if (next($posts)) { $current = current($posts); $tpl->assign('next_post', $current); } else { end($posts); } $tpl->assign('active_worker', $visit->getWorker()); $tpl->display('file:' . $this->tpl_path . '/explorer/navigation.tpl'); }
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 showTaskNotesTabAction() { @($task_id = DevblocksPlatform::importGPC($_REQUEST['id'], 'integer')); $tpl = DevblocksPlatform::getTemplateService(); $tpl_path = dirname(dirname(dirname(__FILE__))) . '/templates/'; $tpl->assign('path', $tpl_path); $visit = CerberusApplication::getVisit(); // $visit->set(self::SESSION_OPP_TAB, 'notes'); $task = DAO_Task::get($task_id); $tpl->assign('task', $task); list($notes, $null) = DAO_Note::search(array(new DevblocksSearchCriteria(SearchFields_Note::SOURCE_EXT_ID, '=', ChNotesSource_Task::ID), new DevblocksSearchCriteria(SearchFields_Note::SOURCE_ID, '=', $task->id)), 25, 0, SearchFields_Note::CREATED, false, false); $tpl->assign('notes', $notes); $active_workers = DAO_Worker::getAllActive(); $tpl->assign('active_workers', $active_workers); $workers = DAO_Worker::getAllWithDisabled(); $tpl->assign('workers', $workers); $tpl->display('file:' . $tpl_path . 'tasks/display/tabs/notes.tpl'); }
function showContactHistoryAction() { $visit = CerberusApplication::getVisit(); /* @var $visit CerberusVisit */ $translate = DevblocksPlatform::getTranslationService(); @($ticket_id = DevblocksPlatform::importGPC($_REQUEST['ticket_id'], 'integer')); $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); // Ticket $ticket = DAO_Ticket::getTicket($ticket_id); $tpl->assign('ticket', $ticket); $requesters = $ticket->getRequesters(); // Addy $contact = DAO_Address::get($ticket->first_wrote_address_id); $tpl->assign('contact', $contact); // Scope $scope = $visit->get('display.history.scope', ''); // [TODO] Sanitize scope preference // Defaults $defaults = new C4_AbstractViewModel(); $defaults->class_name = 'C4_TicketView'; $defaults->id = '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->params = array(); $defaults->renderLimit = 10; $defaults->renderSortBy = SearchFields_Ticket::TICKET_CREATED_DATE; $defaults->renderSortAsc = false; // View $view = C4_AbstractViewLoader::getView('contact_history', $defaults); // Sanitize scope options if ('org' == $scope) { if (empty($contact->contact_org_id)) { $scope = ''; } if (null == ($contact_org = DAO_ContactOrg::get($contact->contact_org_id))) { $scope = ''; } } if ('domain' == $scope) { $email_parts = explode('@', $contact->email); if (!is_array($email_parts) || 2 != count($email_parts)) { $scope = ''; } } switch ($scope) { case 'org': $view->params = array(SearchFields_Ticket::TICKET_FIRST_CONTACT_ORG_ID => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_FIRST_CONTACT_ORG_ID, '=', $contact->contact_org_id), SearchFields_Ticket::TICKET_DELETED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_DELETED, '=', 0)); $view->name = ucwords($translate->_('contact_org.name')) . ": " . $contact_org->name; break; case 'domain': $view->params = array(SearchFields_Ticket::REQUESTER_ADDRESS => new DevblocksSearchCriteria(SearchFields_Ticket::REQUESTER_ADDRESS, 'like', '*@' . $email_parts[1]), SearchFields_Ticket::TICKET_DELETED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_DELETED, '=', 0)); $view->name = ucwords($translate->_('common.email')) . ": *@" . $email_parts[1]; break; default: case 'email': $scope = 'email'; $view->params = array(SearchFields_Ticket::REQUESTER_ID => new DevblocksSearchCriteria(SearchFields_Ticket::REQUESTER_ID, 'in', array_keys($requesters)), SearchFields_Ticket::TICKET_DELETED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_DELETED, '=', 0)); $view->name = ucwords($translate->_('common.email')) . ": " . $contact->email; break; } $tpl->assign('scope', $scope); $view->renderPage = 0; $tpl->assign('view', $view); C4_AbstractViewLoader::setView($view->id, $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 . 'display/modules/history/index.tpl'); }
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 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; }
function render() { // check whether extensions are loaded or not $extensions = array( 'oauth' => extension_loaded('oauth') ); $tpl = DevblocksPlatform::getTemplateService(); $visit = CerberusApplication::getVisit(); $visit->set(ChConfigurationPage::ID, 'issue'); $params = array( 'client_id' => DevblocksPlatform::getPluginSetting('wgm.issues', 'client_id', ''), 'client_secret' => DevblocksPlatform::getPluginSetting('wgm.issues', 'client_secret', ''), 'repos' => DAO_Repository::getAll(), 'users' => DAO_User::getWhere(), ); $tpl->assign('params', $params); $tpl->assign('extensions', $extensions); $tpl->display('devblocks:wgm.issues::setup/index.tpl'); }