You are here

public function UpdateController::drop in FullCalendar 8

Same name and namespace in other branches
  1. 8.5 src/Controller/UpdateController.php \Drupal\fullcalendar\Controller\UpdateController::drop()
  2. 8.2 src/Controller/UpdateController.php \Drupal\fullcalendar\Controller\UpdateController::drop()
  3. 8.3 src/Controller/UpdateController.php \Drupal\fullcalendar\Controller\UpdateController::drop()
  4. 8.4 src/Controller/UpdateController.php \Drupal\fullcalendar\Controller\UpdateController::drop()

@todo.

Parameters

\Drupal\Core\Entity\EntityInterface $entity:

string $field:

int $index:

\Symfony\Component\HttpFoundation\Request $request:

Return value

\Symfony\Component\HttpFoundation\JsonResponse

1 string reference to 'UpdateController::drop'
fullcalendar.routing.yml in ./fullcalendar.routing.yml
fullcalendar.routing.yml

File

src/Controller/UpdateController.php, line 29

Class

UpdateController
@todo.

Namespace

Drupal\fullcalendar\Controller

Code

public function drop(EntityInterface $entity, $field, $index, Request $request) {
  if ($request->request
    ->has('day_delta') && $request->request
    ->has('minute_delta')) {
    $day_delta = Html::escape($request->request
      ->get('day_delta'));
    $minute_delta = Html::escape($request->request
      ->get('minute_delta'));
    $delta = " {$day_delta} days {$minute_delta} minutes";
    $field_item = $entity->{$field}
      ->get($index);
    $value = $field_item->value;
    $field_item
      ->set('value', date(DateTimeItemInterface::DATETIME_STORAGE_FORMAT, strtotime($value . $delta)));

    // Save the new start/end values.
    $entity
      ->save();
    $url = Url::fromUserInput('/');
    $link = Link::fromTextAndUrl($this
      ->t('Close'), $url);
    $link = $link
      ->toRenderable();
    $link['#attributes']['class'][] = 'fullcalendar-status-close';
    $message = $this
      ->t('The new event time has been saved.');
    $message .= ' [' . \Drupal::service('renderer')
      ->render($link) . ']';
  }
  else {
    $message = $this
      ->t('The event has not been updated.');
  }
  return new JsonResponse([
    'msg' => $message,
    'dom_id' => $request->request
      ->get('dom_id'),
  ]);
}