function tripal_bulk_loader_add_template_field_form_submit
1.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_add_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 1611 - All functions in this file pertain to administrative management of bulk loader templates
Code
function tripal_bulk_loader_add_template_field_form_submit($form, &$form_state) {
$op = $form_state['values'][$form_state['clicked_button']['#name']];
if (!$form_state['ahah_submission']) {
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;
}
else {
$priority = $form_state['values']['field_group'];
$record_name = $record2priority[$priority];
}
// 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'],
);
}
// Deal with any additional options
if ($form_state['storage']['regex']) {
$field['regex'] = $form_state['storage']['regex'];
}
// Save Template
$template[$priority]['fields'][] = $field;
$form_state['storage']['template']->template_array = serialize($template);
$success = drupal_write_record('tripal_bulk_loader_template', $form_state['storage']['template'], array('template_id'));
if ($success) {
drupal_set_message(t('Successfully Added Field to Template'));
drupal_set_message(t('Template Saved.'));
$path = explode('?', $form_state['storage']['referring URL']);
parse_str($path[1], $query);
$query['template_id'] = $form_state['storage']['template']->template_id;
drupal_goto($path[0], $query);
}
else {
drupal_set_message(t('Unable to Save Template!'), 'error');
watchdog('T_bulk_loader',
'Unable to save bulk loader template: %template',
array('%template' => print_r($form_state['storage']['template'], TRUE)),
WATCHDOG_ERROR
);
}
}
elseif ($op == 'Cancel') {
$path = explode('?', $form_state['storage']['referring URL']);
parse_str($path[1], $query);
$query['template_id'] = $form_state['storage']['template']->template_id;
drupal_goto($path[0], $query);
}
elseif ($op == 'Add Transformation') {
// Add transformation rule to original field
$form_state['storage']['regex']['pattern'][] = '/' . $form_state['values']['pattern'] . '/';
$form_state['storage']['regex']['replace'][] = $form_state['values']['replace'];
drupal_set_message(t('Successfully Added Transformation Rule'));
}
elseif ($op == 'Save Transformation Rule Order') {
// Generate new regex array
$new_regex = array();
$old_regex = $form_state['storage']['regex'];
foreach ($form_state['values']['regex-data'] as $key => $element) {
$new_regex['pattern'][$element['new_index']] = $old_regex['pattern'][$element['old_index']];
$new_regex['replace'][$element['new_index']] = $old_regex['replace'][$element['old_index']];
}
// sort new regex arrays
ksort($new_regex['pattern']);
ksort($new_regex['replace']);
$form_state['storage']['regex'] = $new_regex;
}
elseif ($op == 'Delete Transformation') {
// Unset regex rule
$index = $form_state['clicked_button']['#name'];
unset($form_state['storage']['regex']['pattern'][$index]);
unset($form_state['storage']['regex']['replace'][$index]);
}
elseif ($op == 'Test Transformation Rules') {
$patterns = $form_state['storage']['regex']['pattern'];
$replaces = $form_state['storage']['regex']['replace'];
$test_string = $form_state['values']['test_string'];
$form_state['storage']['test_regex_result'] = preg_replace($patterns, $replaces, $test_string);
$form_state['storage']['test_regex_test'] = $test_string;
}
}
}