function tripal_bulk_loader_template_field_form_submit
2.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_template_field_form_submit($form, &$form_state) |
3.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_template_field_form_submit($form, &$form_state) |
Add Field Submit
Parameters
$form: The form that was submitted
$form_state: The values and storage for the form
Related topics
File
- tripal_bulk_loader/
includes/ tripal_bulk_loader.admin.templates.inc, line 2249 - All functions in this file pertain to administrative management of bulk loader templates
Code
function tripal_bulk_loader_template_field_form_submit($form, &$form_state) {
$op = $form_state['values'][$form_state['clicked_button']['#name']];
if ($op == 'Save Changes') {
$template = $form_state['storage']['template_array'];
// If new record
if (preg_match('/NEW/', $form_state['values']['field_group'])) {
$record_name = $form_state['values']['record_name'];
$priority = sizeof($form_state['storage']['template_array']) + 1;
$record2priority[$record_name] = $priority;
$template[$priority]['table'] = $form_state['values']['chado_table'];
$template[$priority]['record_id'] = $record_name;
$template[$priority]['mode'] = $form_state['values']['record_mode'];
}
else {
$priority = $form_state['storage']['record_id'];
}
// Add field to template array
if ($form_state['values']['field_type'] == 'table field') {
$field = array(
'type' => 'table field',
'title' => $form_state['values']['field_title'],
'field' => $form_state['values']['chado_field'],
'required' => $form_state['values']['required'],
//'allowed values' => empty by default,
'spreadsheet column' => $form_state['values']['column_number'],
'exposed' => $form_state['values']['column_exposed'],
'exposed_description' => $form_state['values']['column_exposed_desc'],
);
}
elseif ($form_state['values']['field_type'] == 'constant') {
$field = array(
'type' => 'constant',
'title' => $form_state['values']['field_title'],
'field' => $form_state['values']['chado_field'],
'required' => $form_state['values']['required'],
//'allowed values' => empty by default,
'constant value' => $form_state['values']['constant_value'],
'exposed' => $form_state['values']['constant_exposed'],
'exposed_validate' => $form_state['values']['constant_validate'],
);
}
elseif ($form_state['values']['field_type'] == 'foreign key') {
$field = array(
'type' => 'foreign key',
'title' => $form_state['values']['field_title'],
'field' => $form_state['values']['chado_field'],
'show_all_records' => $form_state['values']['show_all_records'],
'foreign key' => $form_state['values']['foreign_record'],
'foreign field' => $form_state['values']['foreign_field'],
'required' => $form_state['values']['required'],
);
}
// Save old transformation rules if they exist.
if (isset($form_state['values']['old_rules'])) {
$field['regex'] = unserialize($form_state['values']['old_rules']);
}
// Deal with any additional options
if (!empty($form_state['values']['regex_pattern']) AND !empty($form_state['values']['regex_replace'])) {
if (!preg_match('/^\/.*\/$/', $form_state['values']['regex_pattern'])) {
$form_state['values']['regex_pattern'] = '/' . $form_state['values']['regex_pattern'] . '/';
}
$field['regex']['pattern'] = array($form_state['values']['regex_pattern']);
$field['regex']['replace'] = array($form_state['values']['regex_replace']);
}
// Save Template
if ($form_state['storage']['mode'] == 'create') {
$template[$priority]['fields'][] = $field;
$success_msg = 'Successfully Added Field to Template';
}
else {
$template[$priority]['fields'][$form_state['storage']['field_index']] = $field;
$success_msg = 'Successfully Updated Field';
}
$form_state['storage']['template']->template_array = serialize($template);
$form_state['storage']['template']->changed = time();
$success = drupal_write_record('tripal_bulk_loader_template', $form_state['storage']['template'], array('template_id'));
if ($success) {
drupal_set_message(t($success_msg));
drupal_set_message(t('Template Saved.'));
$form_state['rebuild'] = FALSE;
$form_state['redirect'] = 'admin/tripal/loaders/bulk/template/' . $form_state['storage']['template_id'] . '/edit';
}
else {
drupal_set_message(t('Unable to Save Template!'), 'error');
tripal_report_error('T_bulk_loader',
TRIPAL_ERROR,
'Unable to save bulk loader template: %template',
array('%template' => print_r($form_state['storage']['template'], TRUE))
);
}
}
elseif ($op == 'Cancel') {
$form_state['rebuild'] = FALSE;
$form_state['redirect'] = 'admin/tripal/loaders/bulk/template/' . $form_state['storage']['template_id'] . '/edit';
}
}