function tripal_bulk_loader_edit_template_record_form_submit
2.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_edit_template_record_form_submit($form, &$form_state) |
3.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_edit_template_record_form_submit($form, &$form_state) |
1.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_edit_template_record_form_submit($form, &$form_state) |
Edit Record Form Submit
D7 @todo: Needs to be debugged
Parameters
$form: The form that was submitted
$form_state: Contains the values and storage for the form
Related topics
File
- tripal_bulk_loader/
includes/ tripal_bulk_loader.admin.templates.inc, line 1148 - All functions in this file pertain to administrative management of bulk loader templates
Code
function tripal_bulk_loader_edit_template_record_form_submit($form, &$form_state) {
if ($form_state['values']['op'] == 'Save Record') {
$template = $form_state['storage']['template_array'];
$original_record_name = $template[$form_state['storage']['original_priority']]['record_id'];
// Edit Record
$record = $template[$form_state['storage']['original_priority']];
$record['record_id'] = $form_state['values']['record_name'];
$record['mode'] = $form_state['values']['mode'];
$record['table'] = $form_state['values']['chado_table'];
$record['select_if_duplicate'] = $form_state['values']['select_if_duplicate'];
$record['update_if_duplicate'] = $form_state['values']['update_if_duplicate'];
$record['select_optional'] = $form_state['values']['select_optional'];
$record['disable'] = $form_state['values']['disable'];
$record['optional'] = $form_state['values']['optional'];
if ($form_state['storage']['original_priority'] != $form_state['values']['field_group']) {
$record['fields'] = array_merge($record['fields'], $template[$form_state['values']['field_group']]['fields']);
$template[$form_state['values']['field_group']] = $record;
unset($template[$form_state['storage']['original_priority']]);
}
else {
$template[$form_state['storage']['original_priority']] = $record;
}
// Go through all records and update this record name where it was used for a foreign key
// Foreach field in each record that is of type: foreign key
foreach ($template as $priority => $record) {
foreach ($record['fields'] as $field_index => $field) {
if ($field['type'] === 'foreign key') {
// Check if this points to the old record name and if so, update it
if ($field['foreign key'] === $original_record_name) {
$template[$priority]['fields'][$field_index]['foreign key'] = $form_state['values']['record_name'];
}
}
}
}
// Save Template
$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('Successfully Updated Template Record'));
drupal_set_message(t('Template Saved.'));
$form_state['rebuild'] = FALSE;
$form_state['redirect'] = 'admin/tripal/loaders/bulk/template/' . $form_state['storage']['template']->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 ($form_state['values']['op'] == 'Cancel') {
$form_state['rebuild'] = FALSE;
$form_state['redirect'] = 'admin/tripal/loaders/bulk/template/' . $form_state['storage']['template']->template_id . '/edit';
}
}