function tripal_bulk_loader_add_loader_job_form_submit
2.x tripal_bulk_loader.loader.inc | tripal_bulk_loader_add_loader_job_form_submit($form, $form_state) |
3.x tripal_bulk_loader.loader.inc | tripal_bulk_loader_add_loader_job_form_submit($form, $form_state) |
1.x tripal_bulk_loader.loader.inc | tripal_bulk_loader_add_loader_job_form_submit($form, $form_state) |
Add Loader Job Form (Submit)
Related topics
File
- tripal_bulk_loader/
includes/ tripal_bulk_loader.loader.inc, line 68 - Handles the actual loading of data.
Code
function tripal_bulk_loader_add_loader_job_form_submit($form, $form_state) {
global $user;
if (preg_match('/Submit Job/', $form_state['values']['op'])) {
//Submit Tripal Job
$job_args[1] = $form_state['values']['nid'];
if (is_readable($form_state['values']['file'])) {
$fname = basename($form_state['values']['file']);
$job_id = tripal_add_job("Bulk Loading Job: $fname", 'tripal_bulk_loader', 'tripal_bulk_loader_load_data', $job_args, $user->uid);
// add job_id to bulk_loader node
$success = db_update('tripal_bulk_loader')->fields(array(
'job_id' => $job_id,
'job_status' => 'Submitted to Queue'
))->condition('nid', $form_state['values']['nid'])->execute();
}
else {
drupal_set_message(t("Can not open %file. Job not scheduled.", array('%file' => $form_state['values']['file'])));
}
}
elseif (preg_match('/Re-Submit Job/', $form_state['values']['op'])) {
tripal_rerun_job($form_state['values']['job_id']);
$success = db_update('tripal_bulk_loader')->fields(array(
'job_status' => 'Submitted to Queue'
))->condition('nid', $form_state['values']['nid'])->execute();
}
elseif (preg_match('/Cancel Job/', $form_state['values']['op'])) {
$success = db_update('tripal_bulk_loader')->fields(array(
'job_status' => 'Job Cancelled'
))->condition('nid', $form_state['values']['nid'])->execute();
tripal_cancel_job($form_state['values']['job_id']);
}
elseif (preg_match('/Revert/', $form_state['values']['op'])) {
// Remove the records from the database that were already inserted
$resource = db_query('SELECT * FROM {tripal_bulk_loader_inserted} WHERE nid=:nid ORDER BY tripal_bulk_loader_inserted_id DESC', array(':nid' => $form_state['values']['nid']));
while ($r = $resource->fetchObject()) {
$ids = preg_split('/,/', $r->ids_inserted);
db_query('DELETE FROM {' . $r->table_inserted_into . '} WHERE ' . $r->table_primary_key . ' IN (' . $r->ids_inserted . ')')->execute();
$result = db_query('SELECT true as present FROM {' . $r->table_inserted_into . '} WHERE ' . $r->table_primary_key . ' IN (' . $r->ids_inserted . ')')->fetchObject();
if (!$result->present) {
drupal_set_message(t('Successfully Removed data Inserted into the %tableto table.', array('%tableto' => $r->table_inserted_into)));
db_query('DELETE FROM {tripal_bulk_loader_inserted} WHERE tripal_bulk_loader_inserted_id=:id', array(':id' => $r->tripal_bulk_loader_inserted_id))->execute();
}
else {
drupal_set_message(t('Unable to remove data Inserted into the %tableto table!', array('%tableto' => $r->table_inserted_into)), 'error');
}
}
// reset status
$success = db_update('tripal_bulk_loader')->fields(array(
'job_status' => 'Reverted -Data Deleted'
))->condition('nid', $form_state['values']['nid'])->execute();
}
}