You are here

function draggable_dashboard_form_block_form_alter in Draggable dashboard 8

Implements hook_form_FORM_ID_alter().

File

./draggable_dashboard.module, line 40
Contains draggable_dashboard.module.

Code

function draggable_dashboard_form_block_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  if (strpos(\Drupal::request()
    ->get('region'), 'draggable_dashboard') !== FALSE) {
    $relation = json_decode(base64_decode(str_replace('draggable_dashboard-', '', \Drupal::request()
      ->get('region'))), TRUE);
  }
  else {
    $entity = $form_state
      ->getBuildInfo()['callback_object']
      ->getEntity();
    $dashboards = \Drupal::entityQuery('dashboard_entity')
      ->execute();
    foreach ($dashboards as $dashboardID) {
      $dashboard = DashboardEntity::load($dashboardID);
      $blocks = json_decode($dashboard
        ->get('blocks'), TRUE);
      if (!empty($blocks)) {
        foreach ($blocks as $block) {
          if ($block['bid'] == $entity
            ->id()) {
            $relation = $block;
            $relation['did'] = $dashboardID;
            break;
          }
        }
      }
    }
  }
  if (!empty($relation['did'])) {
    $form['actions']['submit']['#submit'] = [
      'Drupal\\draggable_dashboard\\Controller\\DraggableDashboardController::assignBlock',
    ];
    $dashboard = DashboardEntity::load($relation['did']);
    $regions = [];
    for ($i = 1; $i <= $dashboard
      ->get('columns'); $i++) {
      $regions[$i] = t('Column') . ' ' . $i;
    }
    $form['region']['#options'] = $regions;
    $form['region']['#default_value'] = str_replace('draggable_dashboard-', '', $relation['cln']);
    $form['visibility']['#access'] = FALSE;
    $form['theme']['#access'] = FALSE;
    if (isset($form['actions']['delete']['#url']) && isset($relation['bid'])) {
      $form['actions']['delete']['#url'] = Url::fromRoute('draggable_dashboard.delete_block', [
        'did' => $relation['did'],
        'bid' => $relation['bid'],
      ]);
    }
    $form['dashboard_id'] = [
      '#type' => 'hidden',
      '#value' => $relation['did'],
    ];
  }
}