function render() { $active_worker = PortSensorApplication::getActiveWorker(); $translate = DevblocksPlatform::getTranslationService(); $visit = PortSensorApplication::getVisit(); $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $response = DevblocksPlatform::getHttpResponse(); $tpl->assign('request_path', implode('/', $response->path)); // View $sensorsView = Ps_AbstractViewLoader::getView(self::VIEW_ALL_SENSORS); if (null == $sensorsView) { $sensorsView = new Ps_SensorView(); $sensorsView->id = self::VIEW_ALL_SENSORS; $sensorsView->name = $translate->_('core.menu.sensors'); $sensorsView->renderLimit = 25; $sensorsView->renderPage = 0; $sensorsView->renderSortBy = SearchFields_Sensor::NAME; $sensorsView->renderSortAsc = 1; $sensorsView->params = array(SearchFields_Sensor::IS_DISABLED => new DevblocksSearchCriteria(SearchFields_Sensor::IS_DISABLED, '=', 0)); Ps_AbstractViewLoader::setView($sensorsView->id, $sensorsView); } /* * [TODO] This doesn't need to save every display, but it was possible to * lose the params in the saved version of the view in the DB w/o recovery. * This should be moved back into the if(null==...) check in a later build. */ $tpl->assign('response_uri', 'sensors'); // $quick_search_type = $visit->get('crm.opps.quick_search_type'); // $tpl->assign('quick_search_type', $quick_search_type); $tpl->assign('view', $sensorsView); $tpl->assign('view_fields', Ps_SensorView::getFields()); $tpl->assign('view_searchable_fields', Ps_SensorView::getSearchFields()); $tpl->display('file:' . $this->_TPL_PATH . 'sensors/index.tpl'); }
function render() { $translate = DevblocksPlatform::getTranslationService(); $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $worker = CerberusApplication::getActiveWorker(); if (!$worker || !$worker->is_superuser) { echo $translate->_('common.access_denied'); return; } if (file_exists(APP_PATH . '/install/')) { $tpl->assign('install_dir_warning', true); } $tab_manifests = DevblocksPlatform::getExtensions('cerberusweb.config.tab', false); uasort($tab_manifests, create_function('$a, $b', "return strcasecmp(\$a->name,\$b->name);\n")); $tpl->assign('tab_manifests', $tab_manifests); // Selected tab $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; array_shift($stack); // config $tab_selected = array_shift($stack); $tpl->assign('tab_selected', $tab_selected); // [TODO] check showTab* hooks for active_worker->is_superuser (no ajax bypass) $tpl->display('file:' . $this->_TPL_PATH . 'configuration/index.tpl'); }
function render() { $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; array_shift($stack); // login $section = array_shift($stack); switch ($section) { case "forgot": $step = array_shift($stack); $tpl = DevblocksPlatform::getTemplateService(); switch ($step) { default: case "step1": if (@($failed = array_shift($stack)) == "failed") { $tpl->assign('failed', true); } $tpl->display('file:' . $this->_TPL_PATH . 'login/forgot1.tpl'); break; case "step2": $tpl->display('file:' . $this->_TPL_PATH . 'login/forgot2.tpl'); break; case "step3": $tpl->display('file:' . $this->_TPL_PATH . 'login/forgot3.tpl'); break; } break; default: $tpl = DevblocksPlatform::getTemplateService(); @($redir_path = explode('/', urldecode(DevblocksPlatform::importGPC($_REQUEST["url"], "string", "")))); $tpl->assign('original_path', count($redir_path) == 0 ? 'login' : implode(',', $redir_path)); $tpl->display('file:' . $this->_TPL_PATH . 'login/login.tpl'); break; } }
function render() { $active_worker = FegApplication::getActiveWorker(); $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->tpl_path); $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; array_shift($stack); // reports @($reportId = array_shift($stack)); $report = null; // We're given a specific report to display if (!empty($reportId)) { if (null != ($reportMft = DevblocksPlatform::getExtension($reportId))) { // Make sure we have a report group if (null == ($report_group_mft_id = $reportMft->params['report_group'])) { return; } // Make sure the report group exists if (null == ($report_group_mft = DevblocksPlatform::getExtension($report_group_mft_id))) { return; } // Check our permissions on the parent report group before rendering the report if (isset($report_group_mft->params['acl']) && !$active_worker->hasPriv($report_group_mft->params['acl'])) { return; } // Render if (null != ($report = $reportMft->createInstance()) && $report instanceof Extension_Report) { /* @var $report Extension_Report */ $report->render(); return; } } } // If we don't have a selected report yet if (empty($report)) { // Organize into report groups $report_groups = array(); $reportGroupMfts = DevblocksPlatform::getExtensions('feg.report.group', false); // [TODO] Alphabetize groups and nested reports // Load report groups if (!empty($reportGroupMfts)) { foreach ($reportGroupMfts as $reportGroupMft) { $report_groups[$reportGroupMft->id] = array('manifest' => $reportGroupMft, 'reports' => array()); } } $reportMfts = DevblocksPlatform::getExtensions('feg.report', false); // Load reports and file them under groups according to manifest if (!empty($reportMfts)) { foreach ($reportMfts as $reportMft) { $report_group = $reportMft->params['report_group']; if (isset($report_group)) { $report_groups[$report_group]['reports'][] = $reportMft; } } } $tpl->assign('report_groups', $report_groups); } $tpl->display('file:' . $this->tpl_path . '/reports/index.tpl'); }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $active_worker = CerberusApplication::getActiveWorker(); $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; $command = array_shift($stack); // groups $groups = DAO_Group::getAll(); $tpl->assign('groups', $groups); @($team_id = array_shift($stack)); // team_id // Only group managers and superusers can configure if (empty($team_id) || !$active_worker->isTeamManager($team_id) && !$active_worker->is_superuser) { // do nothing (only show list) } else { $teams = DAO_Group::getAll(); $team =& $teams[$team_id]; $tpl->assign('team', $team); @($tab_selected = array_shift($stack)); // tab if (!empty($tab_selected)) { $tpl->assign('tab_selected', $tab_selected); } } $tpl->display('file:' . $this->_TPL_PATH . 'groups/index.tpl'); }
function render() { $active_worker = PortSensorApplication::getActiveWorker(); $visit = PortSensorApplication::getVisit(); $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $response = DevblocksPlatform::getHttpResponse(); $tpl->assign('request_path', implode('/', $response->path)); // Remember the last tab/URL if (null == ($selected_tab = @$response->path[1])) { $selected_tab = $visit->get(PortSensorVisit::KEY_HOME_SELECTED_TAB, 'notifications'); } $tpl->assign('selected_tab', $selected_tab); $tab_manifests = DevblocksPlatform::getExtensions('portsensor.home.tab', false); $tpl->assign('tab_manifests', $tab_manifests); // Custom workspaces $workspaces = DAO_Worklist::getWorkspaces($active_worker->id); $tpl->assign('workspaces', $workspaces); // ====== Who's Online $whos_online = DAO_Worker::getAllOnline(); if (!empty($whos_online)) { $tpl->assign('whos_online', $whos_online); $tpl->assign('whos_online_count', count($whos_online)); } $tpl->display('file:' . $this->_TPL_PATH . 'home/index.tpl'); }
function render() { $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; array_shift($stack); // login $section = array_shift($stack); switch ($section) { case "forgot": $step = array_shift($stack); $tpl = DevblocksPlatform::getTemplateService(); switch ($step) { default: case "step1": if (@($failed = array_shift($stack)) == "failed") { $tpl->assign('failed', true); } $tpl->display('file:' . $this->_TPL_PATH . 'login/forgot1.tpl'); break; case "step2": $tpl->display('file:' . $this->_TPL_PATH . 'login/forgot2.tpl'); break; case "step3": $tpl->display('file:' . $this->_TPL_PATH . 'login/forgot3.tpl'); break; } break; default: $manifest = DevblocksPlatform::getExtension('login.default'); $inst = $manifest->createInstance(1); /* @var $inst Extension_LoginAuthenticator */ $inst->renderLoginForm(); break; } }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; $tpl->display('file:' . $this->_TPL_PATH . 'welcome/index.tpl'); }
function render() { $active_worker = FegApplication::getActiveWorker(); $visit = FegApplication::getVisit(); $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $response = DevblocksPlatform::getHttpResponse(); $tpl->assign('request_path', implode('/', $response->path)); // ====== Who's Online $whos_online = DAO_Worker::getAllOnline(); if (!empty($whos_online)) { $tpl->assign('whos_online', $whos_online); $tpl->assign('whos_online_count', count($whos_online)); } $tpl->display('file:' . $this->_TPL_PATH . 'stats/index.tpl'); }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->cache_lifetime = "0"; $tpl->assign('path', $this->_TPL_PATH); $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; array_shift($stack); // activity $tab_manifests = DevblocksPlatform::getExtensions('cerberusweb.activity.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 = 'tasks'; } $tpl->assign('tab_selected', $tab_selected); $tpl->display('file:' . $this->_TPL_PATH . 'activity/index.tpl'); }
function render() { $active_worker = CerberusApplication::getActiveWorker(); $visit = CerberusApplication::getVisit(); $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $response = DevblocksPlatform::getHttpResponse(); $tpl->assign('request_path', implode('/', $response->path)); // Remember the last tab/URL if (null == ($selected_tab = @$response->path[1])) { $selected_tab = $visit->get(CerberusVisit::KEY_HOME_SELECTED_TAB, 'events'); } $tpl->assign('selected_tab', $selected_tab); $tab_manifests = DevblocksPlatform::getExtensions('cerberusweb.home.tab', false); $tpl->assign('tab_manifests', $tab_manifests); // Custom workspaces $workspaces = DAO_WorkerWorkspaceList::getWorkspaces($active_worker->id); $tpl->assign('workspaces', $workspaces); $tpl->display('file:' . $this->_TPL_PATH . 'home/index.tpl'); }
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 render() { $translate = DevblocksPlatform::getTranslationService(); $tpl = DevblocksPlatform::getTemplateService(); $tpl_path = $this->_TPL_PATH; $tpl->assign('path', $tpl_path); $response = DevblocksPlatform::getHttpResponse(); $path = $response->path; array_shift($path); // preferences $tab_manifests = DevblocksPlatform::getExtensions('feg.preferences.tab', false); $tpl->assign('tab_manifests', $tab_manifests); @($section = array_shift($path)); // section switch ($section) { default: $tpl->assign('tab', $section); $tpl->display('file:' . $tpl_path . 'preferences/index.tpl'); break; } }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $active_worker = FegApplication::getActiveWorker(); $visit = FegApplication::getVisit(); $response = DevblocksPlatform::getHttpResponse(); $translate = DevblocksPlatform::getTranslationService(); $url = DevblocksPlatform::getUrlService(); $stack = $response->path; @array_shift($stack); // customer @($customer_id = array_shift($stack)); @($customer = DAO_CustomerAccount::get($customer_id)); if (empty($customer)) { echo "<H1>" . $translate->_('customer.display.invalid_customer') . "</H1>"; return; } $tpl->assign('customer_id', $customer_id); // Tabs $tab_manifests = DevblocksPlatform::getExtensions('feg.customer.tab', false); $tpl->assign('tab_manifests', $tab_manifests); @($tab_selected = array_shift($stack)); if (empty($tab_selected)) { $tab_selected = 'property'; } $tpl->assign('tab_selected', $tab_selected); switch ($tab_selected) { case 'property': @($tab_parm = array_shift($stack)); break; } // ====== Who's Online $whos_online = DAO_Worker::getAllOnline(); if (!empty($whos_online)) { $tpl->assign('whos_online', $whos_online); $tpl->assign('whos_online_count', count($whos_online)); } $tpl->display('file:' . $this->_TPL_PATH . 'customer/index.tpl'); }
function render() { $translate = DevblocksPlatform::getTranslationService(); $tpl = DevblocksPlatform::getTemplateService(); $tpl_path = $this->_TPL_PATH; $tpl->assign('path', $tpl_path); $tpl->cache_lifetime = "0"; $response = DevblocksPlatform::getHttpResponse(); $path = $response->path; array_shift($path); // preferences $tab_manifests = DevblocksPlatform::getExtensions('cerberusweb.preferences.tab', false); $tpl->assign('tab_manifests', $tab_manifests); @($section = array_shift($path)); // section switch ($section) { case 'confirm_email': @($code = array_shift($path)); $active_worker = CerberusApplication::getActiveWorker(); $worker_addresses = DAO_AddressToWorker::getWhere(sprintf("%s = '%s' AND %s = %d", DAO_AddressToWorker::CODE, addslashes(str_replace(' ', '', $code)), DAO_AddressToWorker::WORKER_ID, $active_worker->id)); @($worker_address = array_shift($worker_addresses)); if (!empty($code) && null != $worker_address && $worker_address->code == $code && $worker_address->code_expire > time()) { DAO_AddressToWorker::update($worker_address->address, array(DAO_AddressToWorker::CODE => '', DAO_AddressToWorker::IS_CONFIRMED => 1, DAO_AddressToWorker::CODE_EXPIRE => 0)); $output = array(vsprintf($translate->_('prefs.address.confirm.tip'), $worker_address->address)); $tpl->assign('pref_success', $output); } else { $errors = array($translate->_('prefs.address.confirm.invalid_code')); $tpl->assign('pref_errors', $errors); } $tpl->display('file:' . $tpl_path . 'preferences/index.tpl'); break; default: $tpl->assign('tab', $section); $tpl->display('file:' . $tpl_path . 'preferences/index.tpl'); break; } }
/** * Processes the HTTP request. * * @param DevblocksHttpRequest $request * @param boolean $is_ajax */ static function processRequest(DevblocksHttpRequest $request, $is_ajax = false) { $path = $request->path; $controller_uri = array_shift($path); // [JAS]: Offer the platform a chance to intercept. switch ($controller_uri) { // [JAS]: Plugin-supplied URIs default: $controllers = DevblocksPlatform::getExtensions('devblocks.controller', true); $router = DevblocksPlatform::getRoutingService(); /* * [JAS]: Try to find our command in the URI lookup first, and if we * fail then fall back to raw extension ids. */ if (null == ($controller_id = $router->getRoute($controller_uri)) || null == ($controller = $controllers[$controller_id])) { $controller = $controllers[APP_DEFAULT_CONTROLLER]; } if ($controller instanceof DevblocksHttpRequestHandler) { $controller->handleRequest($request); // [JAS]: If we didn't write a new response, repeat the request if (null == ($response = DevblocksPlatform::getHttpResponse())) { $response = new DevblocksHttpResponse($request->path); DevblocksPlatform::setHttpResponse($response); } // [JAS]: An Ajax request doesn't need the full Http cycle if (!$is_ajax) { $controller->writeResponse($response); } } else { header("Status: 404"); die; // [TODO] Improve } break; } return; }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->cache_lifetime = "0"; $tpl->assign('path', $this->_TPL_PATH); $visit = CerberusApplication::getVisit(); /* @var $visit CerberusVisit */ $response = DevblocksPlatform::getHttpResponse(); $active_worker = CerberusApplication::getActiveWorker(); $translate = DevblocksPlatform::getTranslationService(); $url = DevblocksPlatform::getUrlService(); $stack = $response->path; @array_shift($stack); // display @($id = array_shift($stack)); // Tabs $tab_manifests = DevblocksPlatform::getExtensions('cerberusweb.ticket.tab', false); $tpl->assign('tab_manifests', $tab_manifests); @($tab_selected = array_shift($stack)); if (empty($tab_selected)) { $tab_selected = 'conversation'; } $tpl->assign('tab_selected', $tab_selected); switch ($tab_selected) { case 'conversation': @($mail_always_show_all = DAO_WorkerPref::get($active_worker->id, 'mail_always_show_all', 0)); @($tab_option = array_shift($stack)); if ($mail_always_show_all || 0 == strcasecmp("read_all", $tab_option)) { $tpl->assign('expand_all', true); } break; } // [JAS]: Translate Masks if (!is_numeric($id)) { $id = DAO_Ticket::getTicketIdByMask($id); } $ticket = DAO_Ticket::getTicket($id); if (empty($ticket)) { echo "<H1>" . $translate->_('display.invalid_ticket') . "</H1>"; return; } // Permissions $active_worker_memberships = $active_worker->getMemberships(); // Check group membership ACL if (!isset($active_worker_memberships[$ticket->team_id])) { echo "<H1>" . $translate->_('common.access_denied') . "</H1>"; return; } $tpl->assign('ticket', $ticket); // TicketToolbarItem Extensions $ticketToolbarItems = DevblocksPlatform::getExtensions('cerberusweb.ticket.toolbaritem', true); if (!empty($ticketToolbarItems)) { $tpl->assign('ticket_toolbaritems', $ticketToolbarItems); } // Next+Prev: Does a series exist? if (null != ($series_info = $visit->get('ch_display_series', null))) { @($series = $series_info['series']); $cur = 1; $found = false; // Is this ID part of the series? If not, invalidate if (is_array($series)) { while ($mask = current($series)) { // Stop if we find it. if ($mask == $ticket->mask) { $found = true; break; } next($series); $cur++; } } if (!$found) { // not found $visit->set('ch_display_series', null); } else { // found $series_stats = array('title' => $series_info['title'], 'total' => $series_info['total'], 'count' => count($series)); $series_stats['cur'] = $cur; if (false !== prev($series)) { @($series_stats['prev'] = current($series)); next($series); // skip to current } else { reset($series); } next($series); // next @($series_stats['next'] = current($series)); $tpl->assign('series_stats', $series_stats); } } $quick_search_type = $visit->get('quick_search_type'); $tpl->assign('quick_search_type', $quick_search_type); // Comments [TODO] Eventually this can be cached on ticket.num_comments $comments_total = DAO_TicketComment::getCountByTicketId($id); $tpl->assign('comments_total', $comments_total); // Tasks Total [TODO] Eventually this can be ticket.num_tasks $tasks_total = DAO_Task::getCountBySourceObjectId('cerberusweb.tasks.ticket', $id); $tpl->assign('tasks_total', $tasks_total); $workers = DAO_Worker::getAll(); $tpl->assign('workers', $workers); $teams = DAO_Group::getAll(); $tpl->assign('teams', $teams); $team_categories = DAO_Bucket::getTeams(); $tpl->assign('team_categories', $team_categories); // Log Activity DAO_Worker::logActivity($active_worker->id, new Model_Activity('activity.display_ticket', array(sprintf("<a href='%s' title='[%s] %s'>#%s</a>", $url->write("c=display&id=" . $ticket->mask), htmlspecialchars(@$teams[$ticket->team_id]->name, ENT_QUOTES, LANG_CHARSET_CODE), htmlspecialchars($ticket->subject, ENT_QUOTES, LANG_CHARSET_CODE), $ticket->mask)))); $tpl->display('file:' . $this->_TPL_PATH . 'display/index.tpl'); }
/** * Processes the HTTP request. * * @param DevblocksHttpRequest $request * @param boolean $is_ajax */ static function processRequest(DevblocksHttpRequest $request, $is_ajax = false) { $path = $request->path; $controller_uri = array_shift($path); // [JAS]: Offer the platform a chance to intercept. switch ($controller_uri) { // [JAS]: Plugin-supplied URIs default: $routing = array(); $controllers = DevblocksPlatform::getExtensions('devblocks.controller', false); // Add any controllers which have definitive routing if (is_array($controllers)) { foreach ($controllers as $controller_mft) { if (isset($controller_mft->params['uri'])) { $routing[$controller_mft->params['uri']] = $controller_mft->id; } } } // [TODO] Ask the platform to look at any routing maps (extension manifest) or // controller objects // print_r($routing); // [TODO] Pages like 'tickets' currently work because APP_DEFAULT_CONTROLLER // is the ChPageController which looks up those URIs in manifests if (empty($controllers)) { die("No controllers are available!"); } // Set our controller based on the results $controller_mft = isset($routing[$controller_uri]) ? $controllers[$routing[$controller_uri]] : $controllers[APP_DEFAULT_CONTROLLER]; // Instance our manifest if (!empty($controller_mft)) { $controller = $controller_mft->createInstance(); } if ($controller instanceof DevblocksHttpRequestHandler) { $controller->handleRequest($request); // [JAS]: If we didn't write a new response, repeat the request if (null == ($response = DevblocksPlatform::getHttpResponse())) { $response = new DevblocksHttpResponse($request->path); DevblocksPlatform::setHttpResponse($response); } // [JAS]: An Ajax request doesn't need the full Http cycle if (!$is_ajax) { $controller->writeResponse($response); } } else { header("Status: 404"); die; // [TODO] Improve } break; } return; }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->cache_lifetime = "0"; $tpl_path = $this->plugin_path . '/templates/'; $tpl->assign('path', $tpl_path); $visit = CerberusApplication::getVisit(); $translate = DevblocksPlatform::getTranslationService(); $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; array_shift($stack); // crm $module = array_shift($stack); // opps switch ($module) { default: case 'opps': @($opp_id = intval(array_shift($stack))); if (null == ($opp = DAO_CrmOpportunity::get($opp_id))) { break; // [TODO] Not found } $tpl->assign('opp', $opp); $address = DAO_Address::get($opp->primary_email_id); $tpl->assign('address', $address); $workers = DAO_Worker::getAll(); $tpl->assign('workers', $workers); $task_count = DAO_Task::getCountBySourceObjectId('cerberusweb.tasks.opp', $opp_id); $tpl->assign('tasks_total', $task_count); $visit = CerberusApplication::getVisit(); // Does a series exist? if (null != ($series_info = $visit->get('ch_opp_series', null))) { @($series = $series_info['series']); // Is this ID part of the series? If not, invalidate if (!isset($series[$opp_id])) { $visit->set('ch_opp_series', null); } else { $series_stats = array('title' => $series_info['title'], 'total' => $series_info['total'], 'count' => count($series)); reset($series); $cur = 1; while (current($series)) { $pos = key($series); if (intval($pos) == intval($opp_id)) { $series_stats['cur'] = $cur; if (false !== prev($series)) { @($series_stats['prev'] = $series[key($series)][SearchFields_CrmOpportunity::ID]); next($series); // skip to current } else { reset($series); } next($series); // next @($series_stats['next'] = $series[key($series)][SearchFields_CrmOpportunity::ID]); break; } next($series); $cur++; } $tpl->assign('series_stats', $series_stats); } } $tpl->display($tpl_path . 'crm/opps/display/index.tpl'); break; } }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $response = DevblocksPlatform::getHttpResponse(); $tpl->assign('request_path', implode('/', $response->path)); $stack = $response->path; array_shift($stack); // community if (!empty($stack)) { @($code = array_shift($stack)); // code $tool = DAO_CommunityTool::getByCode($code); $tpl->assign('tool', $tool); $tpl->assign('tool_manifests', DevblocksPlatform::getExtensions('usermeet.tool', false)); // $tab_manifests = DevblocksPlatform::getExtensions('cerberusweb.activity.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 = 'settings'; } $tpl->assign('tab_selected', $tab_selected); $tpl->display('file:' . $this->_TPL_PATH . 'community/display/index.tpl'); } }
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'); }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $visit = CerberusApplication::getVisit(); $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; @array_shift($stack); // contacts @($selected_tab = array_shift($stack)); // orgs|addresses|* $tpl->assign('selected_tab', $selected_tab); // Allow a non-tab renderer switch ($selected_tab) { case 'import': switch (@array_shift($stack)) { case 'step2': $type = $visit->get('import.last.type', ''); switch ($type) { case 'orgs': $fields = DAO_ContactOrg::getFields(); $tpl->assign('fields', $fields); $custom_fields = DAO_CustomField::getBySource(ChCustomFieldSource_Org::ID); $tpl->assign('custom_fields', $custom_fields); break; case 'addys': $fields = DAO_Address::getFields(); $tpl->assign('fields', $fields); $custom_fields = DAO_CustomField::getBySource(ChCustomFieldSource_Address::ID); $tpl->assign('custom_fields', $custom_fields); break; } $tpl->display('file:' . $this->_TPL_PATH . 'contacts/import/mapping.tpl'); return; break; } break; // [TODO] The org display page should probably move to its own controller // [TODO] The org display page should probably move to its own controller case 'orgs': switch (@array_shift($stack)) { case 'display': $tab_manifests = DevblocksPlatform::getExtensions('cerberusweb.org.tab', false); $tpl->assign('tab_manifests', $tab_manifests); $id = array_shift($stack); $contact = DAO_ContactOrg::get($id); $tpl->assign('contact', $contact); $task_count = DAO_Task::getCountBySourceObjectId('cerberusweb.tasks.org', $contact->id); $tpl->assign('tasks_total', $task_count); $people_count = DAO_Address::getCountByOrgId($contact->id); $tpl->assign('people_total', $people_count); // Does a series exist? // [TODO] This is highly redundant if (null != ($series_info = $visit->get('ch_org_series', null))) { @($series = $series_info['series']); // Is this ID part of the series? If not, invalidate if (!isset($series[$contact->id])) { $visit->set('ch_org_series', null); } else { $series_stats = array('title' => $series_info['title'], 'total' => $series_info['total'], 'count' => count($series)); reset($series); $cur = 1; while ($pos = key($series)) { if (intval($pos) == intval($contact->id)) { $series_stats['cur'] = $cur; if (false !== prev($series)) { @($series_stats['prev'] = key($series)); next($series); // skip to current } else { reset($series); } next($series); // next @($series_stats['next'] = key($series)); break; } next($series); $cur++; } $tpl->assign('series_stats', $series_stats); } } $tpl->display('file:' . $this->_TPL_PATH . 'contacts/orgs/display.tpl'); return; break; // case 'orgs/display' } // switch (action) break; } // switch (tab) $tpl->display('file:' . $this->_TPL_PATH . 'contacts/index.tpl'); return; // case 'people': // $view = C4_AbstractViewLoader::getView('addybook_people'); // C4_AddressView::DEFAULT_ID // // if(null == $view) { // $view = new C4_AddressView(); // $view->id = 'addybook_people'; // $view->name = 'People'; // $view->params = array( // new DevblocksSearchCriteria(SearchFields_Address::CONTACT_ORG_ID,'!=',0), // ); // // C4_AbstractViewLoader::setView('addybook_people', $view); // } // // $tpl->assign('view', $view); // $tpl->assign('contacts_page', 'people'); // $tpl->assign('view_fields', C4_AddressView::getFields()); // $tpl->assign('view_searchable_fields', C4_AddressView::getSearchFields()); // $tpl->display('file:' . $this->_TPL_PATH . 'contacts/people/index.tpl'); // break; }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $visit = CerberusApplication::getVisit(); $translate = DevblocksPlatform::getTranslationService(); $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; array_shift($stack); // tasks $module = array_shift($stack); // display switch ($module) { default: case 'display': @($task_id = intval(array_shift($stack))); if (null == ($task = DAO_Task::get($task_id))) { break; // [TODO] Not found } $tpl->assign('task', $task); if (null == @($tab_selected = $stack[0])) { // $tab_selected = $visit->get(self::SESSION_OPP_TAB, ''); } $tpl->assign('tab_selected', $tab_selected); $workers = DAO_Worker::getAll(); $tpl->assign('workers', $workers); $visit = CerberusApplication::getVisit(); // Does a series exist? if (null != ($series_info = $visit->get('ch_task_series', null))) { @($series = $series_info['series']); // Is this ID part of the series? If not, invalidate if (!isset($series[$task_id])) { $visit->set('ch_task_series', null); } else { $series_stats = array('title' => $series_info['title'], 'total' => $series_info['total'], 'count' => count($series)); reset($series); $cur = 1; while (null !== current($series)) { $pos = key($series); if (intval($pos) == intval($task_id)) { $series_stats['cur'] = $cur; if (false !== prev($series)) { @($series_stats['prev'] = key($series)); next($series); // skip to current } else { reset($series); } next($series); // next @($series_stats['next'] = key($series)); break; } next($series); $cur++; } $tpl->assign('series_stats', $series_stats); } } $tpl->display($this->_TPL_PATH . 'tasks/display/index.tpl'); break; } }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $visit = CerberusApplication::getVisit(); $active_worker = $visit->getWorker(); $response = DevblocksPlatform::getHttpResponse(); $tpl->assign('request_path', implode('/', $response->path)); // Remember the last tab/URL if (null == ($selected_tab = @$response->path[1])) { $selected_tab = $visit->get(CerberusVisit::KEY_MAIL_MODE, ''); } $tpl->assign('selected_tab', $selected_tab); // ====== Renders switch ($selected_tab) { case 'compose': if (!$active_worker->hasPriv('core.mail.send')) { break; } $settings = DevblocksPlatform::getPluginSettingsService(); // Workers $workers = DAO_Worker::getAllActive(); $tpl->assign('workers', $workers); // Groups $teams = DAO_Group::getAll(); $tpl->assign_by_ref('teams', $teams); // Groups+Buckets $team_categories = DAO_Bucket::getTeams(); $tpl->assign('team_categories', $team_categories); // SendMailToolbarItem Extensions $sendMailToolbarItems = DevblocksPlatform::getExtensions('cerberusweb.mail.send.toolbaritem', true); if (!empty($sendMailToolbarItems)) { $tpl->assign('sendmail_toolbaritems', $sendMailToolbarItems); } // Attachments $tpl->assign('upload_max_filesize', ini_get('upload_max_filesize')); // Link to last created ticket if ($visit->exists('compose.last_ticket')) { $ticket_mask = $visit->get('compose.last_ticket'); $tpl->assign('last_ticket_mask', $ticket_mask); $visit->set('compose.last_ticket', null); // clear } $tpl->display('file:' . $this->_TPL_PATH . 'tickets/compose/index.tpl'); break; case 'create': if (!$active_worker->hasPriv('core.mail.log_ticket')) { break; } // Workers $workers = DAO_Worker::getAllActive(); $tpl->assign('workers', $workers); // Groups $teams = DAO_Group::getAll(); $tpl->assign('teams', $teams); // Destinations $destinations = CerberusApplication::getHelpdeskSenders(); $tpl->assign('destinations', $destinations); // Group+Buckets $team_categories = DAO_Bucket::getTeams(); $tpl->assign('team_categories', $team_categories); // LogMailToolbarItem Extensions $logMailToolbarItems = DevblocksPlatform::getExtensions('cerberusweb.mail.log.toolbaritem', true); if (!empty($logMailToolbarItems)) { $tpl->assign('logmail_toolbaritems', $logMailToolbarItems); } // Attachments $tpl->assign('upload_max_filesize', ini_get('upload_max_filesize')); // Link to last created ticket if ($visit->exists('compose.last_ticket')) { $ticket_mask = $visit->get('compose.last_ticket'); $tpl->assign('last_ticket_mask', $ticket_mask); $visit->set('compose.last_ticket', null); // clear } $tpl->display('file:' . $this->_TPL_PATH . 'tickets/create/index.tpl'); break; default: // Clear all undo actions on reload C4_TicketView::clearLastActions(); $quick_search_type = $visit->get('quick_search_type'); $tpl->assign('quick_search_type', $quick_search_type); $tpl->display('file:' . $this->_TPL_PATH . 'tickets/index.tpl'); break; } }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $translate = DevblocksPlatform::getTranslationService(); $response = DevblocksPlatform::getHttpResponse(); $path = $response->path; array_shift($path); // iphone array_shift($path); // tickets $action = array_shift($path); // current action switch ($action) { case 'display': $feedback_id = array_shift($path); $feedbackEntry = DAO_FeedbackEntry::get($feedback_id); if (!empty($feedbackEntry->quote_address_id)) { if (null != ($address = DAO_Address::get($feedbackEntry->quote_address_id))) { $tpl->assign('address', $address); } } $tpl->assign('feedbackEntry', $feedbackEntry); $tpl->display('file:' . $this->_TPL_PATH . 'feedback/display.tpl'); break; default: $defaults = new C4_AbstractViewModel(); $defaults->class_name = 'View_FeedbackEntry_iPhone'; $defaults->id = self::VIEW_FEEDBACK; $defaults->name = $translate->_('feedback.activity.tab'); $defaults->view_columns = array(SearchFields_FeedbackEntry::LOG_DATE, SearchFields_FeedbackEntry::ADDRESS_EMAIL, SearchFields_FeedbackEntry::SOURCE_URL, SearchFields_FeedbackEntry::QUOTE_MOOD); $defaults->renderSortBy = SearchFields_FeedbackEntry::LOG_DATE; $defaults->renderSortAsc = 0; $view = C4_AbstractViewLoader::getView(self::VIEW_FEEDBACK, $defaults); $tpl->assign('view', $view); $tpl->display('file:' . $this->_TPL_PATH . 'feedback/home.tpl'); break; } }
function render() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->cache_lifetime = "0"; $tpl->assign('path', dirname(__FILE__) . '/templates/'); $session = DevblocksPlatform::getSessionService(); $response = DevblocksPlatform::getHttpResponse(); $stack = $response->path; @array_shift($stack); // home switch (array_shift($stack)) { default: $tpl->display('file:' . dirname(__FILE__) . '/templates/login/index.tpl.php'); break; } }