function tripal_bulk_loader_modify_template_base_form_submit
2.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_modify_template_base_form_submit($form, &$form_state) |
3.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_modify_template_base_form_submit($form, &$form_state) |
1.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_modify_template_base_form_submit($form, &$form_state) |
Submit for tripal_bulk_loader_modify_template_base_form
Related topics
File
- tripal_bulk_loader/
includes/ tripal_bulk_loader.admin.templates.inc, line 355 - All functions in this file pertain to administrative management of bulk loader templates
Code
function tripal_bulk_loader_modify_template_base_form_submit($form, &$form_state) {
$form_state['rebuild'] = TRUE;
if ($form_state['storage']['template_id']) {
$sql = "SELECT * FROM {tripal_bulk_loader_template} WHERE template_id=%d";
$result = db_fetch_object(db_query($sql, $form_state['storage']['template_id']));
$form_state['storage']['template'] = unserialize($result->template_array);
}
$op = $form_state['values'][$form_state['clicked_button']['#name']];
// part of fix for 1st button set not working on records list (edit record, duplicate record, add field)
if ($form_state['clicked_button']['#name'] === 'zero') {
$form_state['clicked_button']['#name'] = '0';
}
switch ($op) {
// Initialize after template is chosen ----------------------------------------
case 'Edit Template':
$form_state['storage']['template_id'] = $form_state['values']['template_id'];
$sql = "SELECT * FROM {tripal_bulk_loader_template} WHERE template_id=%d";
$result = db_fetch_object(db_query($sql, $form_state['storage']['template_id']));
$form_state['storage']['template'] = unserialize($result->template_array);
$form_state['storage']['template_name'] = $result->name;
$form_state['storage']['record2priority'] = array();
foreach ($form_state['storage']['template'] as $priority => $record_array) {
if (!is_array($record_array)) {
continue;
}
$form_state['storage']['record2priority'][$record_array['record_id']] = $priority;
}
break;
case 'Create Template':
$record = array(
'name' => $form_state['values']['new_template_name'],
'template_array' => array(),
);
drupal_write_record('tripal_bulk_loader_template', $record);
$form_state['storage']['template_id'] = $record['template_id'];
$form_state['storage']['template_name'] = $record['name'];
$form_state['storage']['template'] = array();
break;
// Save Reordered Records -----------------------------------------------------
case 'Save Order':
$new_template = $form_state['storage']['template'];
// unset old elements
$form_state['storage']['record2priority'] = array();
foreach ($new_template as $priority => $record_array) {
if (preg_match('/\d+/', $priority)) {
unset($new_template[$priority]);
}
}
//set elements in new order
foreach ($form_state['values']['records-data'] as $item) {
$new_template[$item['new_priority']] = $form_state['storage']['template'][$item['old_priority']];
$record_name = $new_template[$item['new_priority']]['record_id'];
$form_state['storage']['record2priority'][$record_name] = $item['new_priority'];
}
ksort($new_template);
$form_state['storage']['template'] = $new_template;
break;
case 'New Record/Field':
$query = array(
'template_id' => $form_state['storage']['template_id'],
'record_id' => 'NEW',
);
drupal_goto('admin/tripal/tripal_bulk_loader_template/add_field', $query);
break;
case 'Edit Record':
$query = array(
'template_id' => $form_state['storage']['template_id'],
'record_id' => $form_state['clicked_button']['#name'],
);
drupal_goto('admin/tripal/tripal_bulk_loader_template/edit_record', $query);
break;
case 'Delete Record':
$form_state['storage']['record2priority'] = array();
$new_template = tripal_bulk_loader_delete_record($form_state['clicked_button']['#name'], $form_state['storage']['template']);
if (!empty($new_template)) {
$form_state['storage']['template'] = $new_template;
}
break;
case 'Add Field':
$query = array(
'template_id' => $form_state['storage']['template_id'],
'record_id' => $form_state['clicked_button']['#name'],
);
drupal_goto('admin/tripal/tripal_bulk_loader_template/add_field', $query);
break;
case 'Duplicate Record':
// original record (one to be duplicated)
$orig_priority = $form_state['clicked_button']['#name'];
$record = $form_state['storage']['template'][$orig_priority];
// new record
$new_priority = sizeof($form_state['storage']['template']) + 1;
$record['record_id'] = $record['record_id'] . '_' . date('YzHi');
$form_state['storage']['template'][$new_priority] = $record;
break;
case 'Edit Field':
$field_data_index = $form_state['clicked_button']['#name'];
$query = array(
'template_id' => $form_state['storage']['template_id'],
'record_id' => $form_state['values']['fields-data'][$field_data_index]['priority_hidden'],
'field_index' => $form_state['values']['fields-data'][$field_data_index]['field_index'],
);
drupal_goto('admin/tripal/tripal_bulk_loader_template/edit_field', $query);
break;
case 'Delete Field':
// Delete Field
$field_data = $form_state['values']['fields-data'][$form_state['clicked_button']['#name']];
$priority = $field_data['priority_hidden'];
$field_key = $field_data['field_index'];
$new_template = tripal_bulk_loader_delete_field($priority, $field_key, $form_state['storage']['template']);
if (!empty($new_template)) {
$form_state['storage']['template'] = $new_template;
}
drupal_set_message(t('Deleted Field from Template.'));
break;
} //end of switch
// Save Template
$record = array(
'template_id' => $form_state['storage']['template_id'],
'template_array' => serialize($form_state['storage']['template'])
);
drupal_write_record('tripal_bulk_loader_template', $record, array('template_id'));
drupal_set_message(t('Template Saved.'));
}