fields('c', array( 'id', 'number', 'name', 'preference_id' )); $query->addField('c', 'id', 'c_id'); $query->addField('c', 'number', 'c_number'); $query->addField('c', 'name', 'c_name'); $query->addField('c', 'preference_id', 'c_preference_id'); $query->innerJoin('textbook_companion_chapter', 'c', 'c.id = e.chapter_id'); $query->condition('e.approval_status', 0); $pending_chapter_q = $query->execute(); if (!$pending_chapter_q) { drupal_set_message(t('There are no pending code approvals.'), 'status'); return ''; } //!$pending_chapter_q $rows = array(); while ($row = $pending_chapter_q->fetchObject()) { /* get preference data */ /*$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE id = %d", $row->c_preference_id); $preference_data = db_fetch_object($preference_q);*/ $query = db_select('textbook_companion_preference'); $query->fields('textbook_companion_preference'); $query->condition('id', $row->c_preference_id); $result = $query->execute(); $preference_data = $result->fetchObject(); /* get proposal data */ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d", $preference_data->proposal_id); $proposal_data = db_fetch_object($proposal_q);*/ $query = db_select('textbook_companion_proposal'); $query->fields('textbook_companion_proposal'); $query->condition('id', $preference_data->proposal_id); $result = $query->execute(); $proposal_data = $result->fetchObject(); /* setting table row information */ $rows[] = array( $preference_data->book, $row->c_number, $row->c_name, $proposal_data->full_name, l('Edit', 'code_approval/approve/' . $row->c_id) ); } //$row = $pending_chapter_q->fetchObject() /* check if there are any pending proposals */ if (!$rows) { drupal_set_message(t('There are no pending proposals'), 'status'); return ''; } //!$rows $header = array( 'Title of the Book', 'Chapter Number', 'Title of the Chapter', 'Contributor Name', 'Actions' ); $output = theme('table', array( 'header' => $header, 'rows' => $rows )); return $output; } function code_approval_form($form_state) { /* get a list of unapproved chapters */ $chapter_id = arg(2); /*$pending_chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE id = %d", $chapter_id);*/ $query = db_select('textbook_companion_chapter'); $query->fields('textbook_companion_chapter'); $query->condition('id', $chapter_id); $pending_chapter_q = $query->execute(); if ($pending_chapter_data = $pending_chapter_q->fetchObject()) { /* get preference data */ /*$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE id = %d", $pending_chapter_data->preference_id); $preference_data = db_fetch_object($preference_q);*/ $query = db_select('textbook_companion_preference'); $query->fields('textbook_companion_preference'); $query->condition('id', $pending_chapter_data->preference_id); $result = $query->execute(); $preference_data = $result->fetchObject(); /* get proposal data */ /*$proposal_q = db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d", $preference_data->proposal_id); $proposal_data = db_fetch_object($proposal_q);*/ $query = db_select('textbook_companion_proposal'); $query->fields('textbook_companion_proposal'); $query->condition('id', $preference_data->proposal_id); $result = $query->execute(); $proposal_data = $result->fetchObject(); } //$pending_chapter_data = $pending_chapter_q->fetchObject() else { drupal_set_message(t('Invalid chapter selected.'), 'error'); drupal_goto('code_approval'); return; } $form['#tree'] = TRUE; $form['contributor'] = array( '#type' => 'item', '#markup' => $proposal_data->full_name, '#title' => t('Contributor Name') ); $form['book_details']['book'] = array( '#type' => 'item', '#markup' => $preference_data->book, '#title' => t('Title of the Book') ); $form['book_details']['number'] = array( '#type' => 'item', '#markup' => $pending_chapter_data->number, '#title' => t('Chapter Number') ); $form['book_details']['name'] = array( '#type' => 'item', '#markup' => $pending_chapter_data->name, '#title' => t('Title of the Chapter') ); $form['book_details']['back_to_list'] = array( '#type' => 'item', '#markup' => l('Back to Code Approval List', 'code_approval') ); /* get example data */ /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE chapter_id = %d AND approval_status = 0", $chapter_id);*/ $query = db_select('textbook_companion_example'); $query->fields('textbook_companion_example'); $query->condition('chapter_id', $chapter_id); $query->condition('approval_status', 0); $example_q = $query->execute(); while ($example_data = $example_q->fetchObject()) { $form['example_details'][$example_data->id] = array( '#type' => 'fieldset', '#collapsible' => FALSE, '#collapsed' => TRUE ); $form['example_details'][$example_data->id]['example_number'] = array( '#type' => 'item', '#markup' => $example_data->number, '#title' => t('Example Number') ); $form['example_details'][$example_data->id]['example_caption'] = array( '#type' => 'item', '#markup' => $example_data->caption, '#title' => t('Example Caption') ); $form['example_details'][$example_data->id]['download'] = array( '#type' => 'markup', '#markup' => l('Download Example', 'download/example/' . $example_data->id) ); $form['example_details'][$example_data->id]['approved'] = array( '#type' => 'radios', '#options' => array( 'Approved', 'Dis-approved' ) ); $form['example_details'][$example_data->id]['message'] = array( '#type' => 'textfield', '#title' => t('Reason for dis-approval') ); $form['example_details'][$example_data->id]['example_id'] = array( '#type' => 'hidden', '#value' => $example_data->id ); } //$example_data = $example_q->fetchObject() $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit') ); return $form; } function code_approval_form_submit($form, &$form_state) { global $user; foreach ($form_state['values']['example_details'] as $ex_id => $ex_data) { /*$example_q = db_query("SELECT * FROM {textbook_companion_example} WHERE id = %d LIMIT 1", $ex_data['example_id']); $example_data = db_fetch_object($example_q);*/ $query = db_select('textbook_companion_example'); $query->fields('textbook_companion_example'); $query->condition('id', $ex_data['example_id']); $query->range(0, 1); $result = $query->execute(); $example_data = $result->fetchObject(); /*$chapter_data = db_fetch_object(db_query("SELECT * FROM {textbook_companion_chapter} WHERE id = %d LIMIT 1", $example_data->chapter_id));*/ $query = db_select('textbook_companion_chapter'); $query->fields('textbook_companion_chapter'); $query->condition('id', $example_data->chapter_id); $query->range(0, 1); $result = $query->execute(); $chapter_data = $result->fetchObject(); /*$preference_data = db_fetch_object(db_query("SELECT * FROM {textbook_companion_preference} WHERE id = %d LIMIT 1", $chapter_data->preference_id));*/ $query = db_select('textbook_companion_preference'); $query->fields('textbook_companion_preference'); $query->condition('id', $chapter_data->preference_id); $query->range(0, 1); $result = $query->execute(); $preference_data = $result->fetchObject(); /*$proposal_data = db_fetch_object(db_query("SELECT * FROM {textbook_companion_proposal} WHERE id = %d LIMIT 1", $preference_data->proposal_id));*/ $query = db_select('textbook_companion_proposal'); $query->fields('textbook_companion_proposal'); $query->condition('id', $preference_data->proposal_id); $query->range(0, 1); $result = $query->execute(); $proposal_data = $result->fetchObject(); $user_data = user_load($proposal_data->uid); del_book_pdf($preference_data->id); if ($ex_data['approved'] == "0") { /*db_query("UPDATE {textbook_companion_example} SET approval_status = 1, approver_uid = %d, approval_date = %d WHERE id = %d", $user->uid, time(), $ex_data['example_id']);*/ $query = db_update('textbook_companion_example'); $query->fields(array( 'approval_status' => 1, 'approver_uid' => $user->uid, 'approval_date' => time() )); $query->condition('id', $ex_data['example_id']); $num_updated = $query->execute(); /* sending email */ $email_to = $user_data->mail; $from = variable_get('textbook_companion_from_email', ''); $bcc = variable_get('textbook_companion_emails', ''); $cc = variable_get('textbook_companion_cc_emails', ''); $params['example_approved']['example_id'] = $ex_data['example_id']; $params['example_approved']['user_id'] = $user_data->uid; $params['example_approved']['headers'] = array( 'From' => $from, 'MIME-Version' => '1.0', 'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes', 'Content-Transfer-Encoding' => '8Bit', 'X-Mailer' => 'Drupal', 'Cc' => $cc, 'Bcc' => $bcc ); if (!drupal_mail('textbook_companion', 'example_approved', $email_to, language_default(), $params, $from, TRUE)) drupal_set_message('Error sending email message.', 'error'); } //$ex_data['approved'] == "0" else if ($ex_data['approved'] == "1") { if (delete_example($ex_data['example_id'])) { /* sending email */ $email_to = $user_data->mail; $from = variable_get('textbook_companion_from_email', ''); $bcc = variable_get('textbook_companion_emails', ''); $cc = variable_get('textbook_companion_cc_emails', ''); $params['example_disapproved']['preference_id'] = $chapter_data->preference_id; $params['example_disapproved']['chapter_id'] = $example_data->chapter_id; $params['example_disapproved']['example_number'] = $example_data->number; $params['example_disapproved']['example_caption'] = $example_data->caption; $params['example_disapproved']['user_id'] = $user_data->uid; $params['example_disapproved']['message'] = $ex_data['message']; $params['example_disapproved']['headers'] = array( 'From' => $from, 'MIME-Version' => '1.0', 'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes', 'Content-Transfer-Encoding' => '8Bit', 'X-Mailer' => 'Drupal', 'Cc' => $cc, 'Bcc' => $bcc ); if (!drupal_mail('textbook_companion', 'example_disapproved', $email_to, language_default(), $params, $from, TRUE)) drupal_set_message('Error sending email message.', 'error'); } //delete_example($ex_data['example_id']) else { drupal_set_message('Error disapproving and deleting example. Please contact administrator.', 'error'); } } //$ex_data['approved'] == "1" } //$form_state['values']['example_details'] as $ex_id => $ex_data drupal_set_message('Updated successfully.', 'status'); drupal_goto('code_approval'); } /******************************************************************************/ /********************************* BULK APPROVAL ******************************/ /******************************************************************************/ function bulk_approval_form($form, &$form_state) { $options_first = _bulk_list_of_books(); $options_two = _ajax_bulk_get_chapter_list(); $selected = isset($form_state['values']['book']) ? $form_state['values']['book'] : key($options_first); $select_two = isset($form_state['values']['chapter']) ? $form_state['values']['chapter'] : key($options_two); $form['book'] = array( '#type' => 'select', '#title' => t('Title of the Book'), '#options' => _bulk_list_of_books(), '#default_value' => $selected, //'#tree' => TRUE, '#ajax' => array( 'callback' => 'ajax_bulk_chapter_list_callback' ), '#validated' => TRUE ); $form['download_book'] = array( '#type' => 'item', '#markup' => '
' ); $form['download_pdf'] = array( '#type' => 'item', '#markup' => '
' ); $form['regenrate_book'] = array( '#type' => 'item', '#markup' => '
' ); $form['notes_book'] = array( '#type' => 'item', '#markup' => '
' ); $form['book_actions'] = array( '#type' => 'select', '#title' => t('Please select action for selected book'), '#options' => _bulk_list_book_actions(), //'#default_value' => isset($form_state['values']['lab_actions']) ? $form_state['values']['lab_actions'] : 0, '#prefix' => '
', '#suffix' => '
', '#states' => array( 'invisible' => array( ':input[name="book"]' => array( 'value' => 0 ) ) ), '#validated' => TRUE ); $form['chapter'] = array( '#type' => 'select', '#title' => t('Title of the Chapter'), '#options' => _ajax_bulk_get_chapter_list($selected), //'#default_value' => $chapter_default_value, '#prefix' => '
', '#suffix' => '
', '#validated' => TRUE, // '#tree' => TRUE, '#ajax' => array( 'callback' => 'ajax_bulk_example_list_callback' ), '#states' => array( 'invisible' => array( ':input[name="book"]' => array( 'value' => 0 ) ) ) ); $form['download_chapter'] = array( '#type' => 'item', '#markup' => '
' ); $form['chapter_actions'] = array( '#type' => 'select', '#title' => t('Please select action for selected chapter'), '#options' => _bulk_list_chapter_actions(), //'#default_value' => isset($form_state['values']['lab_actions']) ? $form_state['values']['lab_actions'] : 0, '#prefix' => '
', '#suffix' => '
', '#states' => array( 'invisible' => array( ':input[name="book"]' => array( 'value' => 0 ) ) ), '#ajax' => array( 'callback' => 'ajax_bulk_chapter_actions_callback' ) ); $form['example'] = array( '#type' => 'select', '#title' => t('Example No. (Caption)'), '#options' => _ajax_bulk_get_examples($chapter_default_value), // '#default_value' => $example_default_value, '#validated' => TRUE, '#prefix' => '
', '#suffix' => '
', '#states' => array( 'invisible' => array( ':input[name="book"]' => array( 'value' => 0 ) ) ), '#ajax' => array( 'callback' => 'ajax_bulk_example_files_callback' ) ); $form['download_example'] = array( '#type' => 'item', '#markup' => '
' ); $form['edit_example'] = array( '#type' => 'item', '#markup' => '
' ); $form['example_files'] = array( '#type' => 'item', '#markup' => '', '#prefix' => '
', '#suffix' => '
' ); $form['example_actions'] = array( '#type' => 'select', '#title' => t('Please select action for selected example'), '#options' => _bulk_list_example_actions(), //'#default_value' => isset($form_state['values']['lab_actions']) ? $form_state['values']['lab_actions'] : 0, '#prefix' => '
', '#suffix' => '
', '#states' => array( 'invisible' => array( ':input[name="book"]' => array( 'value' => 0 ) ) ) ); $form['message'] = array( '#type' => 'textarea', '#title' => t('If Dis-Approved please specify reason for Dis-Approval'), '#states' => array( 'invisible' => array( ':input[name="book"]' => array( 'value' => 0 ) ) ) ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit'), '#validate' => array( 'bulk_approval_submit_validate' ), '#states' => array( 'invisible' => array( ':input[name="book"]' => array( 'value' => 0 ) ) ) ); return $form; } function bulk_approval_submit_validate($form, &$form_state) { if (($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 0)) drupal_set_message("Wrong selection of action. Please select any one action1", 'error'); return; if (($form_state['values']['book_actions'] != 0) && ($form_state['values']['chapter_actions'] != 0) && ($form_state['values']['example_actions'] != 0)) drupal_set_message("Wrong selection of action. Please select any one action2"); return; if (($form_state['values']['book_actions'] != 0) && ($form_state['values']['chapter_actions'] != 0) && ($form_state['values']['example_actions'] == 0)) drupal_set_message("Wrong selection of action. Please select any one action3", 'error'); return; if (($form_state['values']['book_actions'] != 0) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] != 0)) drupal_set_message("Wrong selection of action. Please select any one action4", 'error'); return; if (($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] != 0) && ($form_state['values']['lab_experiment_solution_actions'] != 0)) drupal_set_message("Wrong selection of action5. Please select any one action", 'error'); return; } function bulk_approval_form_submit($form, &$form_state) { global $user; $root_path = textbook_companion_path(); if ($form_state['clicked_button']['#value'] == 'Submit') { $book_name_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE id = :book_id",array(":book_id"=>$form_state['values']['book'])); $book_name= $book_name_q->fetchObject(); if ($form_state['values']['book']) del_book_pdf($form_state['values']['book']); if (user_access('bulk manage code')) { if (($form_state['values']['book_actions'] == 1) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 0)) { /* approving entire book */ /* $chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d", $form_state['values']['book']);*/ $query = db_select('textbook_companion_chapter'); $query->fields('textbook_companion_chapter'); $query->condition('preference_id', $form_state['values']['book']); $chapter_q = $query->execute(); while ($chapter_data = $chapter_q->fetchObject()) { /*db_query("UPDATE {textbook_companion_example} SET approval_status = 1, approver_uid = %d WHERE chapter_id = %d AND approval_status = 0", $user->uid, $chapter_data->id);*/ $query = db_update('textbook_companion_example'); $query->fields(array( 'approval_status' => 1, 'approver_uid' => $user->uid )); $query->condition('chapter_id', $chapter_data->id); $query->condition('approval_status', 0); $num_updated = $query->execute(); } //$chapter_data = $chapter_q->fetchObject() drupal_set_message(t('Approved Entire Book.'), 'status'); /* email */ $email_subject = t('[scilab.in] Your uploaded examples have been approved'); $email_body = array( 0 => t('Your all the uploaded examples for the book '. $book_name->book .' have been approved.') ); } //($form_state['values']['book_actions'] == 1) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 0) else if (($form_state['values']['book_actions'] == 2) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 0)) { /* approving entire book */ /*$chapter_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d", $form_state['values']['book']);*/ $query = db_select('textbook_companion_chapter'); $query->fields('textbook_companion_chapter'); $query->condition('preference_id', $form_state['values']['book']); $result = $query->execute(); while ($chapter_data = $chapter_q->fetchObject()) { /*db_query("UPDATE {textbook_companion_example} SET approval_status = 0 WHERE chapter_id = %d", $chapter_data->id);*/ $query = db_update('textbook_companion_example'); $query->fields(array( 'approval_status' => 0 )); $query->condition('chapter_id', $chapter_data->id); $num_updated = $query->execute(); } //$chapter_data = $chapter_q->fetchObject() drupal_set_message(t('Pending Review Entire Book.'), 'status'); /* email */ $email_subject = t('[scilab.in] Your uploaded examples have been marked as pending'); $email_body = array( 0 => t('Your all the uploaded examples for the book '. $book_name->book .' have been marked as pending to be review. You will be able to see the exmaples after they have been approved by one of our reviewers.') ); } //($form_state['values']['book_actions'] == 2) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 0) else if (($form_state['values']['book_actions'] == 3) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 0)) { if (!user_access('bulk delete code')) { drupal_set_message(t('You do not have permission to Bulk Dis-Approved and Deleted Entire Book.'), 'error'); return; } //!user_access('bulk delete code') if (delete_book($form_state['values']['book'])) { drupal_set_message(t('Dis-Approved and Deleted Entire Book.'), 'status'); } //delete_book($form_state['values']['book']) else { drupal_set_message(t('Error Dis-Approving and Deleting Entire Book.'), 'error'); } /* email */ $email_subject = t('[scilab.in] Your uploaded examples have been marked as dis-approved'); $email_body = array( 0 => t('Your all the uploaded examples for the whole book '. $book_name->book .' have been marked as dis-approved. Reason for dis-approval: ' . $form_state['values']['message']) ); } //($form_state['values']['book_actions'] == 3) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 0) elseif (($form_state['values']['book_actions'] == 4) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 0)) { if (!user_access('bulk delete code')) { drupal_set_message(t('You do not have permission to Bulk Delete Entire Book Including Proposal.'), 'error'); return; } //!user_access('bulk delete code') /* check if dependency files are present */ /*$dep_q = db_query("SELECT * FROM {textbook_companion_dependency_files} WHERE preference_id = %d", $form_state['values']['book']);*/ /* $query = db_select('textbook_companion_dependency_files'); $query->fields('textbook_companion_dependency_files'); $query->condition('preference_id', $form_state['values']['book']); $dep_q = $query->execute(); if ($dep_data =$dep_q->fetchObject()) { drupal_set_message(t("Cannot delete book since it has dependency files that can be used by others. First delete the dependency files before deleing the Book."), 'error'); return; } */ if (delete_book($form_state['values']['book'])) { drupal_set_message(t('Dis-Approved and Deleted Entire Book examples.'), 'status'); $dir_path = $root_path . $form_state['values']['book']; if (is_dir($dir_path)) { $res = rmdir($dir_path); if (!$res) { drupal_set_message(t("Cannot delete Book directory : " . $dir_path . ". Please contact administrator."), 'error'); return; } //!$res } //is_dir($dir_path) else { drupal_set_message(t("Book directory not present : " . $dir_path . ". Skipping deleting book directory."), 'status'); } /* deleting preference and proposal */ /*$preference_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE id = %d", $form_state['values']['book']); $preference_data = db_fetch_object($preference_q); */ $query = db_select('textbook_companion_preference'); $query->fields('textbook_companion_preference'); $query->condition('id', $form_state['values']['book']); $result = $query->execute(); $preference_data = $result->fetchObject(); $book_name = $preference_data->book; $proposal_id = $preference_data->proposal_id; drupal_set_message(t('Deleted Book Proposal.'), 'status'); /* email */ $email_subject = t('[scilab.in] Your uploaded examples including the book '. $book_name->book .' proposal have been deleted'); $email_body = array( 0 => t('Your all the uploaded examples including the book have been deleted permanently. Reason for deletion: ' . $form_state['values']['message']) ); /*db_query("DELETE FROM {textbook_companion_preference} WHERE proposal_id = %d", $proposal_id);*/ $query = db_delete('textbook_companion_preference'); $query->condition('proposal_id', $proposal_id); $num_deleted = $query->execute(); /*db_query("DELETE FROM {textbook_companion_proposal} WHERE id = %d", $proposal_id);*/ $query = db_delete('textbook_companion_proposal'); $query->condition('id', $proposal_id); $num_deleted = $query->execute(); } //delete_book($form_state['values']['book']) else { drupal_set_message(t('Error Dis-Approving and Deleting Entire Book.'), 'error'); } } //($form_state['values']['book_actions'] == 4) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 0) elseif (($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 1) && ($form_state['values']['example_actions'] == 0)) { /*db_query("UPDATE {textbook_companion_example} SET approval_status = 1, approver_uid = %d WHERE chapter_id = %d AND approval_status = 0", $user->uid, $form_state['values']['chapter']);*/ $query = db_update('textbook_companion_example'); $query->fields(array( 'approval_status' => 1, 'approver_uid' => $user->uid )); $query->condition('chapter_id', $form_state['values']['chapter']); $query->condition('approval_status', 0); $num_updated = $query->execute(); drupal_set_message(t('Approved Entire Chapter.'), 'status'); /* email */ $email_subject = t('[scilab.in] Your uploaded examples have been approved'); $email_body = array( 0 => t('Your all the uploaded examples for the chapter have been approved.') ); } //($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 1) && ($form_state['values']['example_actions'] == 0) else if (($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 2) && ($form_state['values']['example_actions'] == 0)) { /*db_query("UPDATE {textbook_companion_example} SET approval_status = 0 WHERE chapter_id = %d", $form_state['values']['chapter']);*/ $query = db_update('textbook_companion_example'); $query->fields(array( 'approval_status' => 0 )); $query->condition('chapter_id', $form_state['values']['chapter']); $num_updated = $query->execute(); drupal_set_message(t('Entire Chapter marked as Pending Review.'), 'status'); /* email */ $email_subject = t('[scilab.in] Your uploaded examples have been marked as pending'); $email_body = array( 0 => t('Your all the uploaded examples for the chapter have been marked as pending to be review.') ); } //($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 2) && ($form_state['values']['example_actions'] == 0) else if (($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 3) && ($form_state['values']['example_actions'] == 0)) { if (!user_access('bulk delete code')) { drupal_set_message(t('You do not have permission to Bulk Dis-Approved and Deleted Entire Chapter.'), 'error'); return; } //!user_access('bulk delete code') if (delete_chapter($form_state['values']['chapter'])) { drupal_set_message(t('Dis-Approved and Deleted Entire Chapter.'), 'status'); } //delete_chapter($form_state['values']['chapter']) else { drupal_set_message(t('Error Dis-Approving and Deleting Entire Chapter.'), 'error'); } /* email */ $email_subject = t('[scilab.in] Your uploaded example have been marked as dis-approved'); $email_body = array( 0 => t('Your uploaded example for the entire chapter have been marked as dis-approved. Reason for dis-approval: ' . $form_state['values']['message']) ); } //($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 3) && ($form_state['values']['example_actions'] == 0) else if (($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 1)) { /*db_query("UPDATE {textbook_companion_example} SET approval_status = 1, approver_uid = %d WHERE id = %d", $user->uid, $form_state['values']['example']);*/ $query = db_update('textbook_companion_example'); $query->fields(array( 'approval_status' => 1, 'approver_uid' => $user->uid )); $query->condition('id', $form_state['values']['example']); $num_updated = $query->execute(); drupal_set_message(t('Example approved.'), 'status'); /* email */ $email_subject = t('[scilab.in] Your uploaded example has been approved'); $email_body = array( 0 => t('Your uploaded example has been approved.') ); } //($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 1) else if (($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 2)) { /*db_query("UPDATE {textbook_companion_example} SET approval_status = 0 WHERE id = %d", $form_state['values']['example']);*/ $query = db_update('textbook_companion_example'); $query->fields(array( 'approval_status' => 0 )); $query->condition('id', $form_state['values']['example']); $num_updated = $query->execute(); drupal_set_message(t('Example marked as Pending Review.'), 'status'); /* email */ $email_subject = t('[scilab.in] Your uploaded example has been marked as pending'); $email_body = array( 0 => t('Your uploaded example has been marked as pending to be review.') ); } //($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 2) else if (($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 3)) { if (delete_example($form_state['values']['example'])) { drupal_set_message(t('Example Dis-Approved and Deleted.'), 'status'); } //delete_example($form_state['values']['example']) else { drupal_set_message(t('Error Dis-Approving and Deleting Example.'), 'error'); } /* email */ $email_subject = t('[scilab.in] Your uploaded example has been marked as dis-approved'); $email_body = array( 0 => t('Your uploaded example has been marked as dis-approved. Reason for dis-approval: ' . $form_state['values']['message']) ); } //($form_state['values']['book_actions'] == 0) && ($form_state['values']['chapter_actions'] == 0) && ($form_state['values']['example_actions'] == 3) /****** sending email when everything done ******/ if ($email_subject) { $email_to = $user->mail; $from = variable_get('textbook_companion_from_email', ''); $bcc = variable_get('textbook_companion_emails', ''); $cc = variable_get('textbook_companion_cc_emails', ''); //$params['proposal_disapproved']['proposal_id'] = $proposal_id; //$params['proposal_disapproved']['user_id'] = $row->uid; $params['standard']['headers'] = array( 'From' => $from, 'MIME-Version' => '1.0', 'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes', 'Content-Transfer-Encoding' => '8Bit', 'X-Mailer' => 'Drupal', 'Cc' => $cc, 'Bcc' => $bcc ); $params['standard']['subject'] = $email_subject; $params['standard']['body'] = $email_body; if (!drupal_mail('textbook_companion', 'standard', $email_to, language_default(), $params, variable_get('textbook_companion_from_email', NULL), TRUE)) drupal_set_message('Error sending email message.', 'error'); } //$email_subject } //user_access('bulk manage code') else { drupal_set_message(t('You do not have permission to bulk manage code.'), 'error'); } } //$form_state['clicked_button']['#value'] == 'Submit' } function _bulk_list_of_books() { $book_titles = array( '0' => 'Please select...' ); /*$book_titles_q = db_query("SELECT * FROM {textbook_companion_preference} WHERE approval_status = 1 OR approval_status = 3 ORDER BY book ASC");*/ $query = db_select('textbook_companion_preference'); $query->fields('textbook_companion_preference'); $or = db_or(); $or->condition('approval_status', 1); $or->condition('approval_status', 3); $query->condition($or); $query->orderBy('book', 'ASC'); $book_titles_q = $query->execute(); while ($book_titles_data = $book_titles_q->fetchObject()) { $book_titles[$book_titles_data->id] = $book_titles_data->book . ' (Written by ' . $book_titles_data->author . ')'; } //$book_titles_data = $book_titles_q->fetchObject() return $book_titles; } function _ajax_bulk_get_chapter_list($preference_id = 0) { $book_chapters = array( '0' => 'Please select...' ); /*$book_chapters_q = db_query("SELECT * FROM {textbook_companion_chapter} WHERE preference_id = %d ORDER BY number ASC", $preference_id);*/ $query = db_select('textbook_companion_chapter'); $query->fields('textbook_companion_chapter'); $query->condition('preference_id', $preference_id); $query->orderBy('number', 'ASC'); $book_chapters_q = $query->execute(); while ($book_chapters_data = $book_chapters_q->fetchObject()) { $book_chapters[$book_chapters_data->id] = $book_chapters_data->number . '. ' . $book_chapters_data->name; } //$book_chapters_data = $book_chapters_q->fetchObject() return $book_chapters; } function _ajax_bulk_get_examples($chapter_id = 0) { $book_examples = array( '0' => 'Please select...' ); /*$book_examples_q = db_query("SELECT * FROM {textbook_companion_example} WHERE chapter_id = %d ORDER BY CAST(SUBSTRING_INDEX(number, '.', 1) AS BINARY) ASC, CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(number , '.', 2), '.', -1) AS UNSIGNED) ASC, CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(number , '.', -1), '.', 1) AS UNSIGNED) ASC", $chapter_id);*/ $query = db_select('textbook_companion_example'); $query->fields('textbook_companion_example'); $query->condition('chapter_id', $chapter_id); //$query->orderBy('CAST', 'ASC'); //$query->orderBy('CAST', 'ASC'); //$query->orderBy('CAST', 'ASC'); $book_examples_q = $query->execute(); while ($book_examples_data = $book_examples_q->fetchObject()) { $book_examples[$book_examples_data->id] = $book_examples_data->number . ' (' . $book_examples_data->caption . ')'; } //$book_examples_data = $book_examples_q->fetchObject() return $book_examples; } function _bulk_list_book_actions() { $book_actions = array( 0 => 'Please select...' ); $book_actions[1] = 'Approve Entire Book'; $book_actions[2] = 'Pending Review Entire Book'; $book_actions[3] = 'Dis-Approve Entire Book (This will delete all the examples in the book)'; $book_actions[4] = 'Delete Entire Book Including Proposal'; return $book_actions; } function _bulk_list_chapter_actions() { $chapter_actions = array( 0 => 'Please select...' ); $chapter_actions[1] = 'Approve Entire Chapter'; $chapter_actions[2] = 'Pending Review Entire Chapter'; $chapter_actions[3] = 'Dis-Approve Entire Chapter (This will delete all the examples in the chapter)'; return $chapter_actions; } function _bulk_list_example_actions() { $example_actions = array( 0 => 'Please select...' ); $example_actions[1] = 'Approve Approve Example'; $example_actions[2] = 'Pending Review Example'; $example_actions[3] = 'Dis-approve Example (This will delete the example)'; return $example_actions; } /****************************** Ajax Callback function ***************************/ function ajax_bulk_chapter_list_callback($form, $form_state) { $commands = array(); $book_default_value = $form_state['values']['book']; if ($book_default_value > 0) { $commands[] = ajax_command_html('#ajax_selected_book', l('Download', 'full_download/book/' . $book_default_value) . ' ' . t('(Download all the approved and unapproved examples of the entire book)')); $commands[] = ajax_command_html('#ajax_selected_book_pdf', l('Download PDF', 'textbook_companion/generate_book/' . $book_default_value . '/1') . ' ' . t('(Download PDF of all the approved and unapproved examples of the entire book)')); $commands[] = ajax_command_html('#ajax_selected_book_regenerate_pdf', l('Regenerate PDF', 'textbook_companion/delete_book/' . $book_default_value) . ' ' . t('(Manually Regenerate PDF of the entire book)')); $commands[] = ajax_command_html('#ajax_selected_book_notes', l('Notes for Reviewers', 'code_approval/notes/' . $book_default_value)); $form['book_actions']['#options'] = _bulk_list_book_actions(); $commands[] = ajax_command_replace('#ajax_selected_book_action', drupal_render($form['book_actions'])); $form['chapter']['#options'] = _ajax_bulk_get_chapter_list($book_default_value); $commands[] = ajax_command_replace('#ajax_select_chapter_list', drupal_render($form['chapter'])); $commands[] = ajax_command_html('#ajax_download_chapter', ''); $form['chapter_actions']['#options'] = _bulk_list_book_actions(); $commands[] = ajax_command_replace('#ajax_selected_chapter_action', drupal_render($form['chapter_actions'])); $commands[] = ajax_command_html('#ajax_selected_chapter_action', ''); $commands[] = ajax_command_html('#ajax_selected_example', ''); $form['example_actions']['#options'] = _bulk_list_example_actions(); $commands[] = ajax_command_replace('#ajax_selected_example_action', drupal_render($form['example_actions'])); $commands[] = ajax_command_html('#ajax_selected_example_action', ''); $commands[] = ajax_command_html('#ajax_download_selected_example', ''); $commands[] = ajax_command_html('#ajax_edit_selected_example', ''); $form['example_files']['#title'] = ''; $form['example_files']['#markup'] = ''; $commands[] = ajax_command_replace('#ajax_example_files_list', drupal_render($form['example_files'])); } //$book_default_value > 0 else { $commands[] = ajax_command_html('#ajax_selected_book', ''); $commands[] = ajax_command_html('#ajax_selected_book_pdf', ''); $commands[] = ajax_command_html('#ajax_selected_book_regenerate_pdf', ''); $commands[] = ajax_command_html('#ajax_selected_book_notes', ''); $form['chapter']['#options'] = _ajax_bulk_get_chapter_list(); $commands[] = ajax_command_replace('#ajax_select_chapter_list', drupal_render($form['chapter'])); $commands[] = ajax_command_html('#ajax_select_chapter_list', ''); $form['book_actions']['#options'] = _bulk_list_book_actions(); $commands[] = ajax_command_replace('#ajax_selected_book_action', drupal_render($form['book_actions'])); $commands[] = ajax_command_html('#ajax_selected_book_action', ''); $form['chapter_actions']['#options'] = _bulk_list_chapter_actions(); $commands[] = ajax_command_replace('#ajax_selected_chapter_action', drupal_render($form['chapter_actions'])); $commands[] = ajax_command_html('#ajax_selected_chapter_action', ''); $commands[] = ajax_command_html('#ajax_download_chapter', ''); $commands[] = ajax_command_html('#ajax_selected_example', ''); $form['example_actions']['#options'] = _bulk_list_example_actions(); $commands[] = ajax_command_replace('#ajax_selected_example_action', drupal_render($form['example_actions'])); $commands[] = ajax_command_html('#ajax_selected_example_action', ''); $commands[] = ajax_command_html('#ajax_download_selected_example', ''); $commands[] = ajax_command_html('#ajax_edit_selected_example', ''); $form['example_files']['#title'] = ''; $form['example_files']['#markup'] = ''; $commands[] = ajax_command_replace('#ajax_example_files_list', drupal_render($form['example_files'])); } return array( '#type' => 'ajax', '#commands' => $commands ); } function ajax_bulk_example_list_callback($form, $form_state) { $commands = array(); $chapter_default_value = $form_state['values']['chapter']; if ($chapter_default_value > 0) { $commands[] = ajax_command_html('#ajax_download_chapter', l('Download', 'full_download/chapter/' . $chapter_default_value) . ' ' . t('(Download all the approved and unapproved examples of the entire chapter)')); $form['chapter_actions']['#options'] = _bulk_list_chapter_actions(); $commands[] = ajax_command_replace('#ajax_selected_chapter_action', drupal_render($form['chapter_actions'])); $form['example']['#options'] = _ajax_bulk_get_examples($chapter_default_value); $commands[] = ajax_command_replace('#ajax_selected_example', drupal_render($form['example'])); $commands[] = ajax_command_html('#ajax_download_selected_example', ''); $commands[] = ajax_command_html('#ajax_edit_selected_example', ''); $form['example_actions']['#options'] = _bulk_list_example_actions(); $commands[] = ajax_command_replace('#ajax_selected_example_action', drupal_render($form['example_actions'])); $commands[] = ajax_command_html('#ajax_selected_example_action', ''); $form['example_files']['#title'] = ''; $form['example_files']['#markup'] = ''; $commands[] = ajax_command_replace('#ajax_example_files_list', drupal_render($form['example_files'])); } //$chapter_default_value > 0 else { $commands[] = ajax_command_html('#ajax_download_chapter', ''); $form['chapter_actions']['#options'] = _bulk_list_chapter_actions(); $commands[] = ajax_command_replace('#ajax_selected_chapter_action', drupal_render($form['chapter_actions'])); $commands[] = ajax_command_html('#ajax_selected_chapter_action', ''); $form['example']['#options'] = _ajax_bulk_get_examples(); $commands[] = ajax_command_replace('#ajax_selected_example', drupal_render($form['example'])); $commands[] = ajax_command_html('#ajax_selected_example', ''); $commands[] = ajax_command_html('#ajax_download_selected_example', ''); $commands[] = ajax_command_html('#ajax_edit_selected_example', ''); $form['example_files']['#title'] = ''; $form['example_files']['#markup'] = ''; $commands[] = ajax_command_replace('#ajax_example_files_list', drupal_render($form['example_files'])); $form['example_actions']['#options'] = _bulk_list_example_actions(); $commands[] = ajax_command_replace('#ajax_selected_example_action', drupal_render($form['example_actions'])); $commands[] = ajax_command_html('#ajax_selected_example_action', ''); } return array( '#type' => 'ajax', '#commands' => $commands ); } function ajax_bulk_example_files_callback($form, $form_state) { $commands = array(); $example_list_default_value = $form_state['values']['example']; //var_dump($example_list_default_value); if ($example_list_default_value > 0) { /*************************************************************************************/ /*$example_list_q = db_query("SELECT * FROM {textbook_companion_example_files} WHERE example_id = %d", $form_state['values']['example']);*/ $query = db_select('textbook_companion_example_files'); $query->fields('textbook_companion_example_files'); $query->condition('example_id', $example_list_default_value); $example_list_q = $query->execute(); if ($example_list_q) { $example_files_rows = array(); while ($example_list_data = $example_list_q->fetchObject()) { $example_file_type = ''; switch ($example_list_data->filetype) { case 'S': $example_file_type = 'Source or Main file'; break; case 'R': $example_file_type = 'Result file'; break; case 'X': $example_file_type = 'xcos file'; break; default: $example_file_type = 'Unknown'; break; } //$example_list_data->filetype $example_files_rows[] = array( l($example_list_data->filename, 'download/file/' . $example_list_data->id), $example_file_type ); } //$example_list_data = $example_list_q->fetchObject() /* dependency files */ /*$dependency_list_q = db_query("SELECT dependency.id as dependency_id, dependency.filename as dependency_filename, dependency.caption as dependency_caption FROM {textbook_companion_example_dependency} example_dependency LEFT JOIN {textbook_companion_dependency_files} dependency ON example_dependency.dependency_id = dependency.id WHERE example_dependency.example_id = %d", $form_state['values']['example']);*/ $query = db_select('textbook_companion_example_dependency', 'example_dependency'); $query->fields('dependency', array( 'id', 'filename', 'caption' )); $query->addField('dependency', 'id', 'dependency_id'); $query->addField('dependency', 'filename', 'dependency_filename'); $query->addField('dependency', 'caption', 'dependency_caption'); $query->leftJoin('textbook_companion_dependency_files', 'dependency', 'example_dependency.dependency_id = dependency.id'); $query->condition('example_dependency.example_id', $form_state['values']['example']); $dependency_list_q = $query->execute(); while ($dependency_list_data = $dependency_list_q->fetchObject()) { $example_file_type = 'Dependency file'; $temp_caption = ''; if ($dependency_list_data->dependency_caption) $temp_caption = ' (' . $dependency_list_data->dependency_caption . ')'; $example_files_rows[] = array( l($dependency_list_data->dependency_filename, 'download/dependency/' . $dependency_list_data->dependency_id) . $temp_caption, $example_file_type ); } //$dependency_list_data = $dependency_list_q->fetchObject() /* creating list of files table */ $example_files_header = array( 'Filename', 'Type' ); $example_files = theme('table', array( 'header' => $example_files_header, 'rows' => $example_files_rows )); $form['example_files']['#title'] = 'List of example files'; $form['example_files']['#markup'] = $example_files; $commands[] = ajax_command_replace('#ajax_example_files_list', drupal_render($form['example_files'])); $commands[] = ajax_command_html('#ajax_download_selected_example', l('Download Example', 'download/example/' . $example_list_default_value)); $commands[] = ajax_command_html('#ajax_edit_selected_example', l('Edit Example', 'code_approval/editcode/' . $example_list_default_value)); $form['example_actions']['#options'] = _bulk_list_example_actions(); $commands[] = ajax_command_replace('#ajax_selected_example_action', drupal_render($form['example_actions'])); //$commands[] = ajax_command_html('#ajax_selected_example_action', '' ); } //$example_list_q } //$example_list_default_value > 0 else { $commands[] = ajax_command_html('#ajax_download_selected_example', ''); $commands[] = ajax_command_html('#ajax_edit_selected_example', ''); $form['example_files']['#title'] = ''; $form['example_files']['#markup'] = ''; $commands[] = ajax_command_replace('#ajax_example_files_list', drupal_render($form['example_files'])); $form['example_actions']['#options'] = _bulk_list_example_actions(); $commands[] = ajax_command_replace('#ajax_selected_example_action', drupal_render($form['example_actions'])); $commands[] = ajax_command_html('#ajax_selected_example_action', ''); } return array( '#type' => 'ajax', '#commands' => $commands ); } function ajax_bulk_chapter_actions_callback() { //if($form_state['values']['chapter_actions'] > 0){ // $form['book_actions']['#options'] = _bulk_list_book_actions(); //$commands[] = ajax_command_replace('#ajax_selected_book_action',drupal_render($form['book_actions'])); // } return array( '#type' => 'ajax', '#commands' => $commands ); }