class ForenaController in Forena Reports 8
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\forena\Controller\ForenaController
Expanded class hierarchy of ForenaController
1 file declares its use of ForenaController
- ForenaControllerTest.php in tests/
src/ Unit/ ForenaControllerTest.php
File
- src/
Controller/ ForenaController.php, line 22
Namespace
Drupal\forena\ControllerView source
class ForenaController extends ControllerBase {
/**
* Render a single report.
*
* @param $report
* @return array | string
*/
public function report($report) {
$content = ReportManager::instance()
->report($report, $_GET);
$d = DocManager::instance();
$doc_type = $d
->getDocumentType();
switch ($doc_type) {
case 'drupal':
case 'email':
if ($content === FALSE) {
throw new AccessDeniedHttpException();
}
if (!$content) {
throw new NotFoundHttpException();
}
return $content;
break;
default:
$response = new Response();
$doc = $d
->getDocument();
if ($doc->headers) {
foreach ($doc->headers as $k => $header) {
$response->headers
->set($k, $header);
}
}
$response
->setContent($content);
return $response;
}
}
/**
* Ajax callback handler for ajax requests.
*
* @param String $report
* Name of Report.
* @param String $js_mode
* Either nojs to imply disabled javascript or ajax to perform replacement.
* @param string $command
* Type of replacement that is to be performed.
* @param string $id
* ID to replace.
* @return \Drupal\Core\Ajax\AjaxResponse|array
*/
public function ajaxReport($report, $js_mode, $id = 'report', $command = 'html') {
$report = $this
->report($report);
if ($js_mode == 'ajax') {
$reponse = new AjaxResponse();
$commands = Frx::instance()
->getDocument()
->getAjaxCommands();
if (isset($commands['pre'])) {
foreach ($commands['pre'] as $cmd) {
$reponse
->addCommand($cmd);
}
}
switch ($command) {
case 'after':
$reponse
->addCommand(new AfterCommand("#{$id}", $report));
break;
case 'append':
$reponse
->addCommand(new AppendCommand("#{$id}", $report));
break;
case 'modal':
$reponse
->addCommand(new OpenModalDialogCommand($report['title'], $report));
break;
case 'before':
$reponse
->addCommand(new BeforeCommand("#{$id}", $report));
break;
case 'html':
$reponse
->addCommand(new HtmlCommand("#{$id}", $report));
break;
case 'replace':
$reponse
->addCommand(new ReplaceCommand("#{$id}", $report));
break;
}
if (isset($commands['post'])) {
foreach ($commands['post'] as $cmd) {
$reponse
->addCommand($cmd);
}
}
return $reponse;
}
else {
return $report;
}
}
/**
* Generate the list of user reports.
*
* @return string
*/
public function listUserReports() {
$content = [];
$reports = ReportFileSystem::instance()
->reportsByCategory();
if (!$reports) {
$content = [
'#type' => 'html_tag',
'#value' => 'No Reports Found',
'#tag' => 'p',
];
}
else {
$links = [];
$output = '';
foreach ($reports as $category => $cat_reports) {
$links[] = '<li><a href="#' . urlencode($category) . '">' . $category . '</a></li> ';
$output .= '<h3 id="' . urlencode($category) . '">' . $category . '</h3>';
$output .= '<ul>';
foreach ($cat_reports as $r) {
$report = str_replace('/', '.', $r['report_name']);
$parms = [
'report' => $report,
];
$output .= '<li>' . $this
->l($r['title'], Url::fromRoute('forena.report', $parms)) . '</li>';
}
$output .= '</ul>';
}
$content['#markup'] = $output;
}
return $content;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
40 |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
ForenaController:: |
public | function | Ajax callback handler for ajax requests. | |
ForenaController:: |
public | function | Generate the list of user reports. | |
ForenaController:: |
public | function | Render a single report. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |