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 66 - @todo Add file header description
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_query("UPDATE {tripal_bulk_loader} SET job_id=%d WHERE nid=%d", $job_id, $form_state['values']['nid']);
// change status
db_query("UPDATE {tripal_bulk_loader} SET job_status='%s' WHERE nid=%d", 'Submitted to Queue', $form_state['values']['nid']);
}
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_jobs_rerun($form_state['values']['job_id']);
db_query("UPDATE {tripal_bulk_loader} SET job_status='%s' WHERE nid=%d", 'Submitted to Queue', $form_state['values']['nid']);
}
elseif (preg_match('/Cancel Job/', $form_state['values']['op'])) {
db_query("UPDATE {tripal_bulk_loader} SET job_status='%s' WHERE nid=%d", 'Job Cancelled', $form_state['values']['nid']);
tripal_jobs_cancel($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=%d ORDER BY tripal_bulk_loader_inserted_id DESC', $form_state['values']['nid']);
while ($r = db_fetch_object($resource)) {
$ids = preg_split('/,/', $r->ids_inserted);
db_query('DELETE FROM {%s} WHERE %s IN (%s)', $r->table_inserted_into, $r->table_primary_key, $r->ids_inserted);
$result = db_fetch_object(db_query('SELECT true as present FROM {%s} WHERE %s IN (%s)', $r->table_inserted_into, $r->table_primary_key, $r->ids_inserted));
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=%d', $r->tripal_bulk_loader_inserted_id);
}
else {
drupal_set_message(t('Unable to remove data Inserted into the %tableto table!', array('%tableto' => $r->table_inserted_into)), 'error');
}
}
// reset status
db_query("UPDATE {tripal_bulk_loader} SET job_status='%s' WHERE nid=%d", 'Reverted -Data Deleted', $form_state['values']['nid']);
}
}