calendar_event_notifications-1.0.0/js/calendar_event_notifications.js

js/calendar_event_notifications.js
(function ($, Drupal) {
  Drupal.behaviors.calendarEventNotifications = {
    attach: function (context, settings) {
      if (settings.calendar_event_notifications && settings.calendar_event_notifications.event_create == true) {
        $('.fc-day-top', context).click((e) => {
          e.preventDefault();
          var clickedElement = $(e.currentTarget); // Using e.currentTarget to get the clicked element
          var dateValue = clickedElement.data('date');

          if (typeof dateValue !== 'undefined') {
              $.magnificPopup.open({
              items: {
                src: './node/add/calendar_event_notification',
              },
              type: 'ajax',
              midClick: false,
              closeOnContentClick: false,
              closeOnBgClick: false,
              enableEscapeKey: false,
              callbacks: {
                ajaxContentAdded: () => {
                  // This callback is triggered when the content is added to the DOM
                  $('#edit-field-event-date-0-value-date', context).val(dateValue);
                  const value = $('#edit-field-event-date-0-value-date', context).val();
                  const setvalue = setValResult(dateValue);
                },
              },
            });
          } else {
            console.error('Date Value is undefined or not found.');
          }

          return false;
        });

      } else {
        const buttonhide = document.querySelectorAll('.btn-views');
      }


      var fcWeekElements = context.querySelectorAll('.fc-week');
      fcWeekElements.forEach(function (fcWeekElement, index) {
        // Find the corresponding thead td with class .fc-past
        var theadTd = fcWeekElement.querySelectorAll('.fc-content-skeleton thead tr:first-child td');
        const tbodyTd = fcWeekElement.querySelectorAll('.fc-content-skeleton tbody tr:first-child td');
        const greedTd = fcWeekElement.querySelectorAll('.fc-bg tbody td');
        let eventColor = [
          { "1": 0 },
          { "2": 0 },
          { "3": 0 },
          { "4": 0 },
          { "5": 0 },
          { "6": 0 },
          { "7": 0 },
        ];
        var indexHandler = 0;

        tbodyTd.forEach(function (tbodyTd, tbodyIndex) {
          if (tbodyTd.hasAttribute("colspan")) {
            var colspan = Number(tbodyTd.getAttribute("colspan"));
            for (let i = 0; i <= 5; i++) {}
            for (let i = 0; i < colspan; i++) {
              indexHandler++;
              eventColor[indexHandler - 1][indexHandler] = 1;
            }
          } else {
            indexHandler++;
            if (tbodyTd.textContent.trim() !== '') {
              eventColor[indexHandler - 1][indexHandler] = 1;
            }
          }
        });

        theadTd.forEach(function (theadTd, theadIndex) {
          if (theadTd.classList.contains('fc-past') && eventColor[theadIndex][theadIndex + 1] == 1) {
            greedTd[theadIndex].style.backgroundColor = '#eb9a9a66';
          } else if (theadTd.classList.contains('fc-future') && eventColor[theadIndex][theadIndex + 1] == 1) {
            greedTd[theadIndex].style.backgroundColor = '#d3f5d380';
          }
        });
      });
    },
  };
})(jQuery, Drupal);

function setValResult(dateValue) {
  const newone = document.getElementById('edit-field-event-date-0-value-date');
  newone.defaultValue = dateValue;
  return "yes";
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc