You are here

public function Selection::content in Flot 8

Selection.

1 string reference to 'Selection::content'
flot_examples.routing.yml in flot_examples/flot_examples.routing.yml
flot_examples/flot_examples.routing.yml

File

flot_examples/src/Controller/Selection.php, line 15

Class

Selection
Display a chart that demonstrates region selection and zooming.

Namespace

Drupal\flot_examples\Controller

Code

public function content() {
  $data = $this::readData();
  $options = [
    'series' => [
      'lines' => [
        'show' => TRUE,
      ],
      'points' => [
        'show' => TRUE,
      ],
    ],
    'legend' => [
      'noColumns' => 2,
    ],
    'xaxis' => [
      'tickDecimals' => 0,
    ],
    'yaxis' => [
      'min' => 0,
    ],
    'selection' => [
      'mode' => 'x',
    ],
  ];
  $text = [];
  $array = [
    ':one' => 'http://en.wikipedia.org/wiki/List_of_countries_by_carbon_dioxide_emissions_per_capita',
  ];
  $text[] = $this
    ->t('1000 kg. CO<sub>2</sub> emissions per year per capita for various countries (source: <a href=":one">Wikipedia</a>).', $array);
  $text[] = $this
    ->t('Flot supports selections through the selection plugin. You can enable rectangular selection or one-dimensional selection if the user should only be able to select on one axis. Try left-click and drag on the plot above where selection on the x axis is enabled.');
  $text[] = $this
    ->t('You selected: <span id="selection"></span>');
  $text[] = $this
    ->t('The plot command returns a plot object you can use to control the selection. Click the buttons below.');
  $text[] = [
    [
      '#type' => 'button',
      '#value' => $this
        ->t('Clear selection'),
      '#attributes' => [
        'id' => [
          'clearSelection',
        ],
      ],
    ],
    [
      '#type' => 'button',
      '#value' => $this
        ->t('Select year 1994'),
      '#attributes' => [
        'id' => [
          'setSelection',
        ],
      ],
    ],
  ];
  $text[] = $this
    ->t('Selections are really useful for zooming. Just replot the chart with min and max values for the axes set to the values in the "plotselected" event triggered. Enable the checkbox below and select a region again.');
  $text[] = [
    [
      '#type' => 'checkbox',
      '#attributes' => [
        'id' => [
          'zoom',
        ],
      ],
      '#title' => $this
        ->t('Zoom to selection'),
    ],
  ];
  $output['flot'] = [
    '#type' => 'flot',
    '#theme' => 'flot_examples',
    '#data' => $data,
    '#options' => $options,
    '#attached' => [
      'library' => [
        'flot_examples/selection',
      ],
    ],
    '#text' => $text,
  ];
  return $output;
}