function guifi_node_distances_form($form_state, $node) { global $base_url; guifi_log(GUIFILOG_TRACE, 'function guifi_node_distances_form()', $form_state); $form = array(); $form_state['#redirect'] = FALSE; // default values $filters = array('dmin' => 0, 'sn' => 1, 'dmax' => 30, 'search' => NULL, 'max' => 25, 'skip' => 0, 'status' => "All", 'from_node' => $node->id, 'azimuth' => "0,360"); // initialize filters using default values or passed by form if (!empty($form_state['values']['filters'])) { $form_state['values']['filters'] = array_merge($filters, $form_state['values']['filters']); } else { $form_state['values']['filters'] = $filters; } $form['filters_region'] = guifi_devices_select_filter($form_state, 'guifi_node_distances'); $form['list-devices'] = guifi_node_distances_list($form_state['values']['filters'], $node); return $form; }
/** * Select device * * URL: http://guifi.net/guifi/js/select-device/% */ function guifi_ahah_select_device() { $cid = 'form_' . $_POST['form_build_id']; $cache = cache_get($cid, 'cache_form'); $action = arg(3); if ($cache) { $form = $cache->data; if ($action == 'guifi_node_distances') { $node = guifi_node_load($_POST['filters']['from_node']); $form['list-devices'] = guifi_node_distances_list($_POST['filters'], $node); } else { $form['list-devices'] = guifi_devices_select($_POST['filters'], $action); } cache_set($cid, $form, 'cache_form', $cache->expire); // Build and render the new select element, then return it in JSON format. $form_state = array(); $form['#post'] = array(); $form = form_builder($form['form_id']['#value'], $form, $form_state); $output = drupal_render($form['list-devices']); drupal_json(array('status' => TRUE, 'data' => $output)); } else { drupal_json(array('status' => FALSE, 'data' => '')); } exit; }