You are here

function availability_calendars_add_js_inc in Availability Calendars 7.2

See also

availability_calendars_add_js()

1 call to availability_calendars_add_js_inc()
availability_calendars_add_js in ./availability_calendars.module
Adds required js files, script, and settings.

File

./availability_calendars.inc, line 129
General helper methods for Availability Calendars, like database access and settings.

Code

function availability_calendars_add_js_inc($node, $js_settings, $mode) {
  static $api_added = FALSE;
  static $viewport_count = 0;
  if (!$api_added) {

    // Add the base client side API if not already done so
    drupal_add_js(drupal_get_path('module', 'availability_calendars') . '/availability_calendars.js', array(
      'type' => 'file',
    ));
    $api_added = TRUE;
  }
  if (stripos($mode, 'edit') !== FALSE) {
    drupal_add_js(drupal_get_path('module', 'availability_calendars') . '/availability_calendars.edit.js', array(
      'type' => 'file',
    ));
    drupal_add_js(array(
      'availabilityCalendars' => array(
        'edit' => array(
          'nid' => $node->nid,
          'settings' => availability_calendars_get_js_settings($node, 'all'),
        ),
      ),
    ), array(
      'type' => 'setting',
    ));
  }
  if (stripos($mode, 'viewport') !== FALSE) {
    drupal_add_js(drupal_get_path('module', 'availability_calendars') . '/availability_calendars.view.js', array(
      'type' => 'file',
    ));
    drupal_add_js(array(
      'availabilityCalendars' => array(
        "viewport{$viewport_count}" => array(
          'nid' => $node->nid,
          'settings' => availability_calendars_get_js_settings($node, 'available'),
          'viewport' => $js_settings,
        ),
      ),
    ), array(
      'type' => 'setting',
    ));
    drupal_add_js("Drupal.behaviors.availabilityCalendarsViewport{$viewport_count} = {\n        attach: function(context, settings) {\n          Drupal.availabilityCalendars.viewport{$viewport_count} = new Drupal.availabilityCalendars.Viewport(\n            Drupal.availabilityCalendars.get(settings.availabilityCalendars.viewport{$viewport_count}.nid,\n              settings.availabilityCalendars.viewport{$viewport_count}.settings),\n            settings.availabilityCalendars.viewport{$viewport_count}.viewport.settings,\n            settings.availabilityCalendars.viewport{$viewport_count}.viewport.backwardSelector,\n            settings.availabilityCalendars.viewport{$viewport_count}.viewport.forwardSelector\n          );\n        }\n      };", array(
      'type' => 'inline',
      'scope' => 'footer',
    ));
    $viewport_count++;
  }
}