You are here

function nr_views_handler_field_boolean_togglable::render in Node registration 7

Override views_handler_field_boolean::render().

Overrides views_handler_field_boolean::render

File

includes/views/nr_views_handler_field_boolean_togglable.inc, line 33

Class

nr_views_handler_field_boolean_togglable

Code

function render($values) {
  $html = parent::render($values);
  if ($this->options['togglable']) {
    $rid = $values->registration_id;
    $registration = node_registration_load($rid);
    $node = node_load($registration->nid);
    if (node_access('update', $node) && node_registration_access($registration, 'update')) {
      drupal_add_library('system', 'drupal.ajax');
      $new_value = (int) (!$this
        ->get_value($values));
      $token = drupal_get_token("nr_toggle_{$this->field}_{$new_value}");
      $options = array(
        'query' => drupal_get_destination() + array(
          'token' => $token,
        ),
        'attributes' => array(
          'class' => array(
            'use-ajax',
          ),
        ),
      );
      $html = l($html, 'registration/' . $rid . '/toggle/nojs/' . $this->field . '/' . $new_value, $options);
    }
  }
  return $html;
}