datex-8.x-1.8/datex_fullcalendar/datexfullcalendar.js

datex_fullcalendar/datexfullcalendar.js
/**
 * @file
 * Provides FullCalendar defaults and functions.
 */

(function ($, Drupal, drupalSettings) {
  "use strict";

  Drupal.fullcalendar = Drupal.fullcalendar || {};
  Drupal.fullcalendar.plugins = Drupal.fullcalendar.plugins || {};
  Drupal.fullcalendar.cache = Drupal.fullcalendar.cache || {};

  // Alias old fullCalendar namespace.
  Drupal.fullCalendar = Drupal.fullcalendar;

  Drupal.fullcalendar.fullcalendar = function (dom_id) {
    this.dom_id = dom_id;
    this.$calendar = $(dom_id);
    this.$options = {
        isJalaali: true,
        isRTL: true,
        lang: 'fa'
    };
    this.navigate = false;
    this.refetch = false;

    // Allow other modules to overwrite options.
    var $plugins = Drupal.fullcalendar.plugins;

    for (var i = 0; i < drupalSettings.fullcalendar[dom_id]['weights'].length; i++) {
      var $plugin = drupalSettings.fullcalendar[dom_id]['weights'][i];

      if ($plugins.hasOwnProperty($plugin) && $.isFunction($plugins[$plugin].options)) {
        $.extend(this.$options, $plugins[$plugin].options(this, drupalSettings.fullcalendar[this.dom_id]));
      }
    }

    this.$calendar.find('.fullcalendar').once().fullCalendar(this.$options);

    $(this.$calendar)
      .delegate('.fullcalendar-status-close', 'click', function () {
        $(this).parent().slideUp();
        return false;
      });
  };

  Drupal.fullcalendar.fullcalendar.prototype.update = function (result) {
    var fcStatus = $(result.dom_id).find('.fullcalendar-status');
    if (fcStatus.is(':hidden')) {
      fcStatus.html(result.msg).slideDown();
    }
    else {
      fcStatus.effect('highlight');
    }
    Drupal.attachBehaviors();
    return false;
  };

  /**
   * Parse Drupal events from the DOM.
   */
  Drupal.fullcalendar.fullcalendar.prototype.parseEvents = function (callback) {
    var events = [];
    var details = this.$calendar.find('.fullcalendar-event-details');

    for (var i = 0; i < details.length; i++) {
      var event = $(details[i]);

      events.push({
        field: event.data('field'),
        index: event.data('index'),
        eid: event.data('eid'),
        entity_type: event.data('entity-type'),
        title: event.attr('title'),
        start: event.data('start'),
        end: event.data('end'),
        url: event.attr('href'),
        allDay: (event.data('all-day') === 1),
        className: event.data('cn'),
        editable: true || (event.data('editable') === 1),
        dom_id: this.dom_id
      });
    }

    callback(events);
  };

})(jQuery, Drupal, drupalSettings);

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

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