You are here

class AppointmentCalendarDeleteForm in Appointment Calendar 8

Hierarchy

Expanded class hierarchy of AppointmentCalendarDeleteForm

1 string reference to 'AppointmentCalendarDeleteForm'
appointment_calendar.routing.yml in ./appointment_calendar.routing.yml
appointment_calendar.routing.yml

File

src/Form/AppointmentCalendarDeleteForm.php, line 9

Namespace

Drupal\appointment_calendar\Form
View source
class AppointmentCalendarDeleteForm extends FormBase {
  protected $connection;

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'appointment_calendar_delete_form';
  }
  public function __construct(Connection $connection) {
    $this->connection = $connection;
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $db_conn = \Drupal::database();
    $from_date = \Drupal::request()->query
      ->get('date');

    // Checking for Booked slots.
    // If slots booked in particular date disable option for delete.
    if ($from_date != '') {
      $date = date('Y-m-d', $from_date);
      $delete_query = $db_conn
        ->select('node__field_appointment_date', 'ad');
      $delete_query
        ->fields('ad', [
        'field_appointment_date_value',
      ]);
      $delete_query
        ->condition('field_appointment_date_value', '%' . $this->connection
        ->escapeLike($date) . '%', 'LIKE');
      $delete_result = $delete_query
        ->execute()
        ->fetchAll();
      if (count($delete_result) >= 1) {
        $form['date'] = [
          '#markup' => $this
            ->t('Unable to delete ' . $date . '. Appointment already booked in selected date<br>If you still want to delete the selected date, delete timeslots booked and retry<br> '),
        ];
        $form['return'] = [
          '#type' => 'submit',
          '#value' => t('Return'),
        ];
      }
      else {
        $form['date_markup'] = [
          '#markup' => $this
            ->t('Are you sure to delete <b>:date</b>?<br>Note:All filled timeslots also will be deleted.<br>', array(
            ':date' => $date,
          )),
        ];
        $form['date'] = [
          '#type' => 'hidden',
          '#value' => $from_date,
        ];
        $form['delete'] = [
          '#type' => 'submit',
          '#value' => $this
            ->t('Yes'),
        ];
        $form['no'] = [
          '#type' => 'submit',
          '#value' => $this
            ->t('No'),
        ];
      }
      return $form;
    }
  }

  /**
   * {@inheritdoc}
   */
  public function validateForm(array &$form, FormStateInterface $form_state) {
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $values = $form_state
      ->getValues();
    $db_conn = \Drupal::database();
    $op = (string) $values['op'];

    // Delete Slot.
    if ($op == $this
      ->t('Yes')) {
      $db_conn
        ->delete('appointment_date')
        ->condition('date', $values['date'])
        ->execute();
      $this
        ->messenger()
        ->addStatus(t('Selected Date deleted successfully'));
      $form_state
        ->setRedirect('appointment_calendar.list_page');
    }

    // Go-to Listing Page.
    if ($op == $this
      ->t('No') || $op == $this
      ->t('Return')) {
      $form_state
        ->setRedirect('appointment_calendar.list_page');
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AppointmentCalendarDeleteForm::$connection protected property
AppointmentCalendarDeleteForm::buildForm public function Form constructor. Overrides FormInterface::buildForm
AppointmentCalendarDeleteForm::getFormId public function Returns a unique string identifying the form. Overrides FormInterface::getFormId
AppointmentCalendarDeleteForm::submitForm public function Form submission handler. Overrides FormInterface::submitForm
AppointmentCalendarDeleteForm::validateForm public function Form validation handler. Overrides FormBase::validateForm
AppointmentCalendarDeleteForm::__construct public function
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
FormBase::$configFactory protected property The config factory. 1
FormBase::$requestStack protected property The request stack. 1
FormBase::$routeMatch protected property The route match.
FormBase::config protected function Retrieves a configuration object.
FormBase::configFactory protected function Gets the config factory for this form. 1
FormBase::container private function Returns the service container.
FormBase::create public static function Instantiates a new instance of this class. Overrides ContainerInjectionInterface::create 87
FormBase::currentUser protected function Gets the current user.
FormBase::getRequest protected function Gets the request object.
FormBase::getRouteMatch protected function Gets the route match.
FormBase::logger protected function Gets the logger for a specific channel.
FormBase::redirect protected function Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait::redirect
FormBase::resetConfigFactory public function Resets the configuration factory.
FormBase::setConfigFactory public function Sets the config factory for this form.
FormBase::setRequestStack public function Sets the request stack object to use.
LinkGeneratorTrait::$linkGenerator protected property The link generator. 1
LinkGeneratorTrait::getLinkGenerator Deprecated protected function Returns the link generator.
LinkGeneratorTrait::l Deprecated protected function Renders a link to a route given a route name and its parameters.
LinkGeneratorTrait::setLinkGenerator Deprecated public function Sets the link generator service.
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
UrlGeneratorTrait::$urlGenerator protected property The url generator.
UrlGeneratorTrait::getUrlGenerator Deprecated protected function Returns the URL generator service.
UrlGeneratorTrait::setUrlGenerator Deprecated public function Sets the URL generator service.
UrlGeneratorTrait::url Deprecated protected function Generates a URL or path for a specific route based on the given parameters.