Beispiel #1
0
 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');
 }
Beispiel #2
0
 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');
 }
Beispiel #3
0
 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;
     }
 }
Beispiel #4
0
 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');
 }
Beispiel #5
0
 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');
 }
Beispiel #6
0
 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');
 }
Beispiel #7
0
 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;
     }
 }
Beispiel #8
0
 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');
 }
Beispiel #9
0
 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');
 }
Beispiel #10
0
 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');
 }
Beispiel #11
0
 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');
 }
Beispiel #12
0
 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');
 }
Beispiel #13
0
 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;
     }
 }
Beispiel #14
0
 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');
 }
Beispiel #15
0
 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;
     }
 }
Beispiel #16
0
 /**
  * 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;
 }
Beispiel #17
0
 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');
 }
Beispiel #18
0
 /**
  * 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;
 }
Beispiel #19
0
 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;
     }
 }
Beispiel #20
0
 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');
     }
 }
Beispiel #21
0
 function render()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $active_worker = CerberusApplication::getActiveWorker();
     $memberships = $active_worker->getMemberships();
     $response = DevblocksPlatform::getHttpResponse();
     @($section = $response->path[1]);
     //print_r($_REQUEST);exit();
     //@$page = DevblocksPlatform::importGPC($_GET['password']);
     @($page = DevblocksPlatform::importGPC($_REQUEST['page'], 'integer'));
     if ($page == NULL) {
         $page = 0;
     }
     if (isset($_POST['a2'])) {
         @($section = $_POST['a2']);
     } else {
         @($section = $response->path[2]);
     }
     //print_r($section);
     //echo $section;
     switch ($section) {
         case 'search':
             $title = 'Search';
             $query = $_POST['query'];
             if ($query && false === strpos($query, '*')) {
                 $query = '*' . $query . '*';
             }
             if (!is_null($query)) {
                 $params = array();
                 $type = $_POST['type'];
                 switch ($type) {
                     case "mask":
                         $params[SearchFields_Ticket::TICKET_MASK] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_MASK, DevblocksSearchCriteria::OPER_LIKE, strtoupper($query));
                         break;
                     case "sender":
                         $params[SearchFields_Ticket::TICKET_FIRST_WROTE] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_FIRST_WROTE, DevblocksSearchCriteria::OPER_LIKE, strtolower($query));
                         break;
                     case "subject":
                         $params[SearchFields_Ticket::TICKET_SUBJECT] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_SUBJECT, DevblocksSearchCriteria::OPER_LIKE, $query);
                         break;
                     case "content":
                         $params[SearchFields_Ticket::TICKET_MESSAGE_CONTENT] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_MESSAGE_CONTENT, DevblocksSearchCriteria::OPER_LIKE, $query);
                         break;
                 }
             } else {
                 //show the search form because no search has been submitted
                 $tpl->display('file:' . dirname(__FILE__) . '/templates/tickets/search.tpl');
                 return;
             }
             break;
         case 'sidebar':
             $groups = DAO_Group::getAll();
             $tpl->assign('groups', $groups);
             $group_buckets = DAO_Bucket::getTeams();
             $tpl->assign('group_buckets', $group_buckets);
             $workers = DAO_Worker::getAll();
             $tpl->assign('workers', $workers);
             $group_counts = DAO_Overview::getGroupTotals();
             $tpl->assign('group_counts', $group_counts);
             $waiting_counts = DAO_Overview::getWaitingTotals();
             $tpl->assign('waiting_counts', $waiting_counts);
             $worker_counts = DAO_Overview::getWorkerTotals();
             $tpl->assign('worker_counts', $worker_counts);
             $tpl->display('file:' . dirname(__FILE__) . '/templates/tickets/sidebar.tpl');
             return;
             break;
         case 'overview':
         default:
             $workers = DAO_Worker::getAll();
             $group_buckets = DAO_Bucket::getTeams();
             $groups = DAO_Group::getAll();
             @($filter = $response->path[3]);
             switch ($filter) {
                 case 'group':
                     @($filter_group_id = $response->path[4]);
                     $params = array(SearchFields_Ticket::TICKET_CLOSED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED, '=', CerberusTicketStatus::OPEN), SearchFields_Ticket::TICKET_WAITING => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_WAITING, '=', 0), SearchFields_Ticket::TICKET_NEXT_WORKER_ID => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_NEXT_WORKER_ID, '=', 0));
                     if (!is_null($filter_group_id) && isset($groups[$filter_group_id])) {
                         $tpl->assign('filter_group_id', $filter_group_id);
                         $title = $groups[$filter_group_id]->name;
                         $params[SearchFields_Ticket::TICKET_TEAM_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, '=', $filter_group_id);
                         @($filter_bucket_id = $response->path[5]);
                         if (!is_null($filter_bucket_id)) {
                             $tpl->assign('filter_bucket_id', $filter_bucket_id);
                             @($title .= ': ' . ($filter_bucket_id == 0 ? 'Inbox' : $group_buckets[$filter_group_id][$filter_bucket_id]->name));
                             $params[SearchFields_Ticket::TICKET_CATEGORY_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CATEGORY_ID, '=', $filter_bucket_id);
                         } else {
                             @($title .= ' (Spam Filtered)');
                             $params[SearchFields_Ticket::TICKET_SPAM_SCORE] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_SPAM_SCORE, '<=', '0.9000');
                         }
                     }
                     break;
                 case 'waiting':
                     @($filter_waiting_id = $response->path[4]);
                     $params = array(SearchFields_Ticket::TICKET_CLOSED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED, '=', CerberusTicketStatus::OPEN), SearchFields_Ticket::TICKET_WAITING => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_WAITING, '=', 1));
                     if (!is_null($filter_waiting_id) && isset($groups[$filter_waiting_id])) {
                         $tpl->assign('filter_waiting_id', $filter_waiting_id);
                         $title = '[Waiting] ' . $groups[$filter_waiting_id]->name;
                         $params[SearchFields_Ticket::TICKET_TEAM_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, '=', $filter_waiting_id);
                         @($filter_bucket_id = $response->path[5]);
                         if (!is_null($filter_bucket_id)) {
                             $tpl->assign('filter_bucket_id', $filter_bucket_id);
                             @($title .= ': ' . ($filter_bucket_id == 0 ? 'Inbox' : $group_buckets[$filter_waiting_id][$filter_bucket_id]->name));
                             $params[SearchFields_Ticket::TICKET_CATEGORY_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CATEGORY_ID, '=', $filter_bucket_id);
                         }
                     }
                     break;
                 case 'worker':
                     @($filter_worker_id = $response->path[4]);
                     $params = array(SearchFields_Ticket::TICKET_CLOSED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED, '=', CerberusTicketStatus::OPEN), SearchFields_Ticket::TICKET_WAITING => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_WAITING, '=', 0), $params[SearchFields_Ticket::TICKET_TEAM_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, 'in', array_keys($memberships)));
                     if (!is_null($filter_worker_id)) {
                         $tpl->assign('filter_bucket_id', $filter_bucket_id);
                         $title = "For " . $workers[$filter_worker_id]->getName();
                         $params[SearchFields_Ticket::TICKET_NEXT_WORKER_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_NEXT_WORKER_ID, '=', $filter_worker_id);
                         @($filter_group_id = $response->path[5]);
                         if (!is_null($filter_group_id) && isset($groups[$filter_group_id])) {
                             $title .= ' in ' . $groups[$filter_group_id]->name;
                             $params[SearchFields_Ticket::TICKET_TEAM_ID] = new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, '=', $filter_group_id);
                         }
                     }
                     break;
                 case 'all':
                 default:
                     $title = 'All (Spam Filtered)';
                     $params = array(SearchFields_Ticket::TICKET_CLOSED => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED, '=', CerberusTicketStatus::OPEN), SearchFields_Ticket::TICKET_WAITING => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_WAITING, '=', 0), SearchFields_Ticket::TICKET_NEXT_WORKER_ID => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_NEXT_WORKER_ID, '=', 0), SearchFields_Ticket::TICKET_SPAM_SCORE => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_SPAM_SCORE, '<=', '0.9000'), SearchFields_Ticket::TICKET_TEAM_ID => new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID, 'in', array_keys($memberships)));
                     break;
             }
             //				$params = array(
             //						new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_CLOSED,'=',CerberusTicketStatus::OPEN),
             //						new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_NEXT_WORKER_ID,'=',0),
             //						new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_SPAM_SCORE,'<=','0.9000'),
             //						new DevblocksSearchCriteria(SearchFields_Ticket::TICKET_TEAM_ID,'in',array_keys($memberships))
             //				);
             //				$title = "Overview";
             break;
     }
     $mobileView = C4_AbstractViewLoader::getView('', "VIEW_MOBILE");
     //print_r($mobileView);
     if ($mobileView == NULL) {
         $mobileView = new C4_MobileTicketView();
         //C4_TicketView();
     }
     $mobileView->id = "VIEW_MOBILE";
     $mobileView->name = $title;
     $mobileView->view_columns = array(SearchFields_Ticket::TICKET_LAST_ACTION_CODE);
     $mobileView->params = $params;
     $mobileView->renderLimit = 10;
     //$overViewDefaults->renderLimit;
     $mobileView->renderPage = $page;
     $mobileView->renderSortBy = SearchFields_Ticket::TICKET_UPDATED_DATE;
     $mobileView->renderSortAsc = 0;
     C4_AbstractViewLoader::setView($mobileView->id, $mobileView);
     $views[] = $mobileView;
     $tpl->assign('views', $views);
     if ($filter == null) {
         $filter = 'all';
     }
     $tpl->assign('filter', $filter);
     $fid = $response->path[4];
     if ($fid == null) {
         $fid = '0';
     }
     $tpl->assign('fid', $fid);
     $bucket_id = $response->path[5];
     if ($bucket_id == null) {
         $buket_id = 0;
     }
     $tpl->assign('bid', $bucket_id);
     $tpl->assign('title', $title);
     $tpl->assign('tickets', $tickets[0]);
     $tpl->assign('next_page', $page + 1);
     $tpl->assign('prev_page', $page - 1);
     //print_r($tickets);exit();
     $tpl->display('file:' . dirname(__FILE__) . '/templates/tickets.tpl');
 }
Beispiel #22
0
 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;
 }
Beispiel #23
0
 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;
     }
 }
Beispiel #24
0
 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;
     }
 }
Beispiel #25
0
 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;
     }
 }
Beispiel #26
0
 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;
     }
 }