You are here

function forena_report_parameters_form in Forena Reports 8

Same name and namespace in other branches
  1. 7.5 forena.report.inc \forena_report_parameters_form()
  2. 7.4 forena.report.inc \forena_report_parameters_form()

File

./forena.report.inc, line 1253

Code

function forena_report_parameters_form($form, &$form_state, $report_name) {
  $r = Frx::Editor($report_name);
  $r_link = $r->report_link;
  if (!isset($form_state['storage']['parameters'])) {
    $form_state['storage']['parameters'] = $r->frxReport
      ->parametersArray();
  }
  $parameters = $form_state['storage']['parameters'];
  $links = array();
  $links[] = array(
    'href' => $r->report_link . '/edit/add-parameter',
    'title' => 'Add Parameter',
  );
  $form['add_link'] = array(
    '#type' => 'markup',
    '#markup' => _theme('links', array(
      'links' => $links,
      'attributes' => array(
        'class' => 'action-links',
      ),
    )),
  );
  $i = 0;
  $form['parameters'] = array(
    '#tree' => TRUE,
  );
  foreach ($parameters as $parameter) {
    $id = urlencode($parameter['id']);
    $ctl = array();
    $ctl['id_label'] = array(
      '#type' => 'item',
      '#title' => 'id',
      '#title_display' => 'invisible',
      '#markup' => check_plain($parameter['id']) . $r
        ->l_icon("{$r_link}/edit/edit-parameter/{$id}", 'configure.png', 'Configure Parameter'),
    );
    $ctl['label'] = array(
      '#type' => 'textfield',
      '#size' => 30,
      '#default_value' => @$parameter['label'],
      '#title' => t('Label or Prompt'),
      '#title_display' => 'invisible',
    );
    $ctl['default'] = array(
      '#type' => 'textfield',
      '#size' => 30,
      '#title' => t('Default Value'),
      '#default_value' => @$parameter['default'],
      '#title_display' => 'invisible',
    );
    $ctl['actions'] = array(
      '#type' => 'actions',
      '#title' => t('Actions'),
      '#title_display' => 'invisible',
    );
    $ctl['actions']['remove'] = array(
      '#type' => 'submit',
      '#value' => t('Remove'),
      '#submit' => array(
        'forena_report_parameters_remove_submit',
      ),
      '#name' => 'remove-' . $parameter['id'],
    );
    $ctl['weight'] = array(
      '#type' => 'weight',
      '#title' => 'Weight',
      '#default_value' => $i,
      '#title_display' => 'invisible',
    );
    $i++;
    $form['parameters'][$parameter['id']] = $ctl;
  }
  $form['report_name'] = array(
    '#type' => 'value',
    '#value' => $report_name,
  );
  $form['update'] = array(
    '#type' => 'submit',
    '#value' => t('Update'),
  );
  $form['cancel'] = array(
    '#type' => 'submit',
    '#value' => t('Cancel'),
    '#submit' => array(
      'forena_update_cancel',
    ),
  );
  return $form;
}