domReady(function () { TBG = tbgjs; jQuery = jquery; require(['scriptaculous']); var f_init = function() {TBG.initialize({ basepath: '<?php echo $webroot; ?> ', data_url: '<?php echo make_url('userdata'); ?> ', autocompleter_url: '<?php echo \thebuggenie\core\framework\Context::isProjectContext() ? make_url('project_quicksearch', array('project_key' => \thebuggenie\core\framework\Context::getCurrentProject()->getKey())) : make_url('quicksearch'); ?> '})}; <?php if (\thebuggenie\core\framework\Context::isDebugMode()) { ?> TBG.debug = true; TBG.debugUrl = '<?php echo make_url('debugger', array('debug_id' => '___debugid___')); ?> '; <?php $load_time = \thebuggenie\core\framework\Context::getLoadTime(); $load_time = $load_time >= 1 ? round($load_time, 2) . 's' : round($load_time * 1000, 1) . 'ms'; ?> TBG.Core.AjaxCalls.push({location: 'Page loaded', time: new Date(), debug_id: '<?php echo \thebuggenie\core\framework\Context::getDebugID(); ?> ', loadtime: '<?php echo $load_time;
echo link_tag(make_url('about'), 'The Bug Genie') . ' ' . \thebuggenie\core\framework\Settings::getVersion(); ?> <?php if ($tbg_user->canAccessConfigurationPage()) { ?> | <b><?php echo link_tag(make_url('configure'), __('Configure %thebuggenie_name', array('%thebuggenie_name' => \thebuggenie\core\framework\Settings::getSiteHeaderName()))); ?> </b> <?php } ?> | <a href="http://www.thebuggenie.com/support">Support</a> | <a href="http://www.thebuggenie.com/feedback">Feedback</a> <?php if (\thebuggenie\core\framework\Context::isDebugMode() && \thebuggenie\core\framework\Logging::isEnabled()) { ?> <script> function tbg_debug_show_menu_tab(tab, clicked) { $('debug-bar').childElements().each(function (unclicked) { unclicked.removeClassName('selected'); }); clicked.addClassName('selected'); $('debug-frames-container').childElements().each(function (container) { (container.id == tab) ? container.addClassName('selected') : container.removeClassName('selected'); }); } </script> <div id="tbg___DEBUGINFO___" style="position: fixed; bottom: 0; left: 0; z-index: 100; display: none; width: 100%;"> </div> <?php
public function __($text, $replacements = array(), $html_decode = false) { if (isset($this->_strings[$text])) { $retstring = $this->_strings[$text]; } else { $retstring = $this->__e($text); if (Context::isDebugMode()) { Logging::log('The text "' . $text . '" does not exist in list of translated strings.', 'i18n'); $this->_missing_strings[$text] = true; } } if (!empty($replacements)) { $retstring = str_replace(array_keys($replacements), array_values($replacements), $retstring); } if ($html_decode) { $retstring = html_entity_decode($retstring); } return $retstring; }
/** * Partial backdrop loader * * @Route(name="get_partial_for_backdrop", url="/get/partials/:key/*") * @AnonymousRoute * * @param framework\Request $request * * @return bool */ public function runGetBackdropPartial(framework\Request $request) { if (!$request->isAjaxCall()) { return $this->return404($this->getI18n()->__('You need to enable javascript for The Bug Genie to work properly')); } try { $template_name = null; if ($request->hasParameter('issue_id')) { $issue = entities\Issue::getB2DBTable()->selectById($request['issue_id']); $options = array('issue' => $issue); } else { $options = array(); } switch ($request['key']) { case 'usercard': $template_name = 'main/usercard'; if ($user_id = $request['user_id']) { $user = entities\User::getB2DBTable()->selectById($user_id); $options['user'] = $user; } break; case 'login': $template_name = 'main/loginpopup'; $options = $request->getParameters(); $options['content'] = $this->getComponentHTML('login', array('section' => $request->getParameter('section', 'login'))); $options['mandatory'] = false; break; case 'uploader': $template_name = 'main/uploader'; $options = $request->getParameters(); $options['uploader'] = $request['uploader'] == 'dynamic' ? 'dynamic' : 'standard'; break; case 'attachlink': $template_name = 'main/attachlink'; break; case 'openid': $template_name = 'main/openid'; break; case 'notifications': $template_name = 'main/notifications'; $options['first_notification_id'] = $request['first_notification_id']; $options['last_notification_id'] = $request['last_notification_id']; break; case 'workflow_transition': $transition = entities\WorkflowTransition::getB2DBTable()->selectById($request['transition_id']); $template_name = $transition->getTemplate(); $options['transition'] = $transition; if ($request->hasParameter('issue_ids')) { $options['issues'] = array(); foreach ($request['issue_ids'] as $issue_id) { $options['issues'][$issue_id] = new entities\Issue($issue_id); } } else { $options['issue'] = new entities\Issue($request['issue_id']); } $options['show'] = true; $options['interactive'] = true; $options['project'] = $this->selected_project; break; case 'reportissue': $this->_loadSelectedProjectAndIssueTypeFromRequestForReportIssueAction($request); if ($this->selected_project instanceof entities\Project && !$this->selected_project->isLocked() && $this->getUser()->canReportIssues($this->selected_project)) { $template_name = 'main/reportissuecontainer'; $options['selected_project'] = $this->selected_project; $options['selected_issuetype'] = $this->selected_issuetype; $options['locked_issuetype'] = $this->locked_issuetype; $options['selected_milestone'] = $this->_getMilestoneFromRequest($request); $options['parent_issue'] = $this->_getParentIssueFromRequest($request); $options['board'] = $this->_getBoardFromRequest($request); $options['selected_build'] = $this->_getBuildFromRequest($request); $options['issuetypes'] = $this->issuetypes; $options['errors'] = array(); } else { throw new \Exception($this->getI18n()->__('You are not allowed to do this')); } break; case 'move_issue': $template_name = 'main/moveissue'; $options['multi'] = (bool) $request->getParameter('multi', false); break; case 'issue_permissions': $template_name = 'main/issuepermissions'; break; case 'issue_subscribers': $template_name = 'main/issuesubscribers'; break; case 'issue_spenttimes': $template_name = 'main/issuespenttimes'; $options['initial_view'] = $request->getParameter('initial_view', 'list'); break; case 'issue_spenttime': $template_name = 'main/issuespenttime'; $options['entry_id'] = $request->getParameter('entry_id'); break; case 'relate_issue': $template_name = 'main/relateissue'; break; case 'project_build': $template_name = 'project/build'; $options['project'] = entities\Project::getB2DBTable()->selectById($request['project_id']); if ($request->hasParameter('build_id')) { $options['build'] = entities\Build::getB2DBTable()->selectById($request['build_id']); } break; case 'project_icons': $template_name = 'project/projecticons'; $options['project'] = entities\Project::getB2DBTable()->selectById($request['project_id']); break; case 'project_workflow': $template_name = 'project/projectworkflow'; $options['project'] = entities\Project::getB2DBTable()->selectById($request['project_id']); break; case 'permissions': $options['key'] = $request['permission_key']; $target_module = $request['target_module'] !== 'core' ? $request['target_module'] : null; if ($details = framework\Context::getPermissionDetails($options['key'], null, $target_module)) { $template_name = 'configuration/permissionspopup'; $options['mode'] = $request['mode']; $options['module'] = $request['target_module']; $options['target_id'] = $request['target_id']; $options['item_name'] = $details['description']; $options['access_level'] = $request['access_level']; } break; case 'issuefield_permissions': $options['item_key'] = $request['item_key']; if ($details = framework\Context::getPermissionDetails($options['item_key'])) { $template_name = 'configuration/issuefieldpermissions'; $options['item_name'] = $details['description']; $options['item_id'] = $request['item_id']; $options['access_level'] = $request['access_level']; } break; case 'site_icons': $template_name = 'configuration/siteicons'; break; case 'project_config': $template_name = 'project/projectconfig_container'; $project = entities\Project::getB2DBTable()->selectById($request['project_id']); $options['project'] = $project; $options['section'] = $request->getParameter('section', 'info'); if ($request->hasParameter('edition_id')) { $edition = entities\Edition::getB2DBTable()->selectById($request['edition_id']); $options['edition'] = $edition; $options['selected_section'] = $request->getParameter('section', 'general'); } break; case 'issue_add_item': $issue = entities\Issue::getB2DBTable()->selectById($request['issue_id']); $template_name = 'main/issueadditem'; break; case 'client_users': $options['client'] = entities\Client::getB2DBTable()->selectById($request['client_id']); $template_name = 'main/clientusers'; break; case 'dashboard_config': $template_name = 'main/dashboardconfig'; $options['tid'] = $request['tid']; $options['target_type'] = $request['target_type']; $options['previous_route'] = $request['previous_route']; $options['mandatory'] = true; break; case 'archived_projects': $template_name = 'main/archivedprojects'; $options['mandatory'] = true; break; case 'team_archived_projects': $template_name = 'main/archivedprojects'; $options['target'] = 'team'; $options['id'] = $request['tid']; $options['mandatory'] = true; break; case 'client_archived_projects': $template_name = 'main/archivedprojects'; $options['target'] = 'client'; $options['id'] = $request['cid']; $options['mandatory'] = true; break; case 'project_archived_projects': $template_name = 'main/archivedprojects'; $options['target'] = 'project'; $options['id'] = $request['pid']; $options['mandatory'] = true; break; case 'bulk_workflow': $template_name = 'search/bulkworkflow'; $options['issue_ids'] = $request['issue_ids']; break; case 'confirm_username': $template_name = 'main/confirmusername'; $options['username'] = $request['username']; break; case 'add_dashboard_view': $template_name = 'main/adddashboardview'; break; case 'userscopes': if (!framework\Context::getScope()->isDefault()) { throw new \Exception($this->getI18n()->__('This is not allowed outside the default scope')); } $template_name = 'configuration/userscopes'; $options['user'] = new entities\User((int) $request['user_id']); break; case 'milestone': $template_name = 'project/milestone'; $options['project'] = \thebuggenie\core\entities\tables\Projects::getTable()->selectById($request['project_id']); if ($request->hasParameter('milestone_id')) { $options['milestone'] = \thebuggenie\core\entities\tables\Milestones::getTable()->selectById($request['milestone_id']); } break; default: $event = new \thebuggenie\core\framework\Event('core', 'get_backdrop_partial', $request['key']); $event->triggerUntilProcessed(); $options = $event->getReturnList(); $template_name = $event->getReturnValue(); } if ($template_name !== null) { return $this->renderJSON(array('content' => $this->getComponentHTML($template_name, $options))); } } catch (\Exception $e) { $this->getResponse()->cleanBuffer(); $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array('error' => framework\Context::getI18n()->__('An error occured: %error_message', array('%error_message' => $e->getMessage())))); } $this->getResponse()->cleanBuffer(); $this->getResponse()->setHttpStatus(400); $error = framework\Context::isDebugMode() ? framework\Context::getI18n()->__('Invalid template or parameter') : $this->getI18n()->__('Could not show the requested popup'); return $this->renderJSON(array('error' => $error)); }
?> ]</strong> <span style="color: #555; font-size: 10px; font-style: italic;"><?php echo $entry['time']; ?> </span> <?php echo $entry['message']; ?> </div> <?php } ?> <?php } ?> <?php if (class_exists("\\b2db\\Core") && \thebuggenie\core\framework\Context::isDebugMode() && (!isset($exception) || !$exception instanceof \thebuggenie\core\framework\exceptions\ComposerException)) { ?> <h3>SQL queries:</h3> <ol> <?php foreach (\b2db\Core::getSQLHits() as $details) { ?> <li> <span class="faded_out dark small"><b>[<?php echo $details['time'] >= 1 ? round($details['time'], 2) . ' seconds' : round($details['time'] * 1000, 1) . 'ms'; ?> ]</b></span> from <b><?php echo $details['filename']; ?> , line <?php