summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--css/tbc_external_review.css15
-rwxr-xr-ximg/throbber.gifbin0 -> 2196 bytes
-rw-r--r--js/tbc_external_review.js46
-rw-r--r--tbc_external_review.module204
4 files changed, 265 insertions, 0 deletions
diff --git a/css/tbc_external_review.css b/css/tbc_external_review.css
new file mode 100644
index 0000000..d8c3db8
--- /dev/null
+++ b/css/tbc_external_review.css
@@ -0,0 +1,15 @@
+.form-radios .form-item {
+ display:inline;
+}
+#comment-form-wrapper #edit-chapter-wrapper,
+#comment-form-wrapper #edit-example-wrapper,
+#comment-form-wrapper #edit-submit,
+#comment-form-wrapper #comment-error-wrapper,
+#ajax-loader {
+ display: none;
+}
+.status {
+ padding: 5px;
+ background: lightgreen;
+ border: 2px solid green;
+}
diff --git a/img/throbber.gif b/img/throbber.gif
new file mode 100755
index 0000000..207e95c
--- /dev/null
+++ b/img/throbber.gif
Binary files differ
diff --git a/js/tbc_external_review.js b/js/tbc_external_review.js
new file mode 100644
index 0000000..bfd1142
--- /dev/null
+++ b/js/tbc_external_review.js
@@ -0,0 +1,46 @@
+$(document).ready(function() {
+ $book = $("#edit-book");
+ $chapter = $("#edit-chapter");
+ $chapter_wrapper = $("#edit-chapter-wrapper");
+ $example = $("#edit-example");
+ $example_wrapper = $("#edit-example-wrapper");
+ $error_wrapper = $("#comment-error-wrapper");
+ $submit = $("#edit-submit");
+ $ajax_loader = $("#ajax-loader");
+
+ $book.change(function() {
+ var pid = $(this).val();
+ $.ajax({
+ url: "ajax/book/"+pid,
+ type: "GET",
+ success: function(data) {
+ $chapter.html(data);
+ $chapter_wrapper.show();
+ },
+ });
+ });
+
+ $chapter.change(function() {
+ var cid = $(this).val();
+ $.ajax({
+ url: "ajax/chapter/"+cid,
+ type: "GET",
+ success: function(data) {
+ $example.html(data);
+ $example_wrapper.show();
+ },
+ });
+ });
+
+ $example.change(function() {
+ $error_wrapper.show();
+ $submit.show();
+ });
+
+ $(document).ajaxStart(function() {
+ $ajax_loader.show();
+ });
+ $(document).ajaxStop(function() {
+ $ajax_loader.hide();
+ });
+});
diff --git a/tbc_external_review.module b/tbc_external_review.module
index c900f55..e0608d9 100644
--- a/tbc_external_review.module
+++ b/tbc_external_review.module
@@ -32,6 +32,17 @@
"access arguments" => array("download tbc_external_review"),
"type" => MENU_NORMAL_ITEM
);
+ $items["tbc_external_review/comments"] = array(
+ "title" => "External Review Comments",
+ "page callback" => "tbc_external_review_comments_all",
+ "access arguments" => array("download tbc_external_review"),
+ "type" => MENU_NORMAL_ITEM
+ );
+ $items["tbc_external_review/ajax"] = array(
+ "page callback" => "tbc_external_review_ajax",
+ "access arguments" => array("download tbc_external_review"),
+ "type" => MENU_CALLBACK
+ );
return $items;
}
@@ -336,4 +347,197 @@
$page_content .= "</ol>";
return $page_content;
}
+
+ function tbc_external_review_comments_all() {
+ global $user;
+ $page_content = "";
+ $page_content = "* Use this form to notify only examples that have errors.";
+ $page_content .= drupal_get_form("tbc_external_review_comment_form");
+ return $page_content;
+ }
+
+ function tbc_external_review_comment_form($form_state) {
+ $form = array();
+ global $user;
+ global $base_url;
+ $form["wrapper"] = array(
+ "#type" => "fieldset",
+ "#title" => t("
+ Reviewer comments
+ <img id='ajax-loader' src='" . "{$base_url}/" . drupal_get_path("module", "tbc_external_review") ."/img/throbber.gif'>
+ "),
+ "#prefix" => "<div id='comment-form-wrapper'>",
+ "#suffix" => "</div>",
+ );
+ $form["wrapper"]["book"] = array(
+ "#type" => "select",
+ "#title" => t("Please select the book."),
+ "#options" => _get_books($user->uid),
+ );
+ $form["wrapper"]["chapter"] = array(
+ "#type" => "select",
+ "#title" => t("Please select the chapter"),
+ );
+ $form["wrapper"]["example"] = array(
+ "#type" => "select",
+ "#title" => t("Please select the example"),
+ );
+ $form["wrapper"]["error"] = array(
+ "#type" => "fieldset",
+ "#title" => "Types of errors found",
+ "#prefix" => "<div id='comment-error-wrapper'>",
+ "#suffix" => "</div>",
+ );
+ $form["wrapper"]["error"]["ncf"] = array(
+ "#type" => "radios",
+ "#title" => t("Naming convention followed? (Checklist point 1, 2 and 4)"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["eit"] = array(
+ "#type" => "radios",
+ "#title" => t("Error in textbook mentioned as comment?"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["axl"] = array(
+ "#type" => "radios",
+ "#title" => t("Axes labeled ?"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["sua"] = array(
+ "#type" => "radios",
+ "#title" => t("Symbols used are appropiate?"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["sfu"] = array(
+ "#type" => "radios",
+ "#title" => t("Scilab functions used?"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["sum"] = array(
+ "#type" => "radios",
+ "#title" => t("Solved using Matlab in textbook?"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["aci"] = array(
+ "#type" => "radios",
+ "#title" => t("Appropriate comments included as mentioned in checklist point 7 ?"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["auu"] = array(
+ "#type" => "radios",
+ "#title" => t("Appropriate units used as given in the textbook?"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["teo"] = array(
+ "#type" => "radios",
+ "#title" => t("Typographical errors in output and/or comments?"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["amt"] = array(
+ "#type" => "radios",
+ "#title" => t("Answers matching with the textbook?"),
+ "#options" => array(
+ t("Yes"),
+ t("No"),
+ ),
+ );
+ $form["wrapper"]["error"]["comment"] = array(
+ "#type" => "textarea",
+ "#title" => t("Other commment ? (if any)"),
+ );
+ $form["wrapper"]["submit"] = array(
+ "#type" => "submit",
+ "#value" => "Submit Comment"
+ );
+ return $form;
+ }
+
+ function tbc_external_review_comment_form_validate($form, &$form_state) {
+ // for future use
+ }
+
+ function tbc_external_review_comment_form_submit($form, &$form_state) {
+ global $user;
+ $v = $form_state["values"];
+ $query = "insert into {external_review_comments}
+ (uid, preference_id, chapter_id, example_id, ncf, eit, axl, sua, sfu, sum, aci, auu, teo, amt, comment)
+ values
+ (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, '%s')
+ ";
+ $result = db_query(
+ $query, $user->uid, $v["book"], $v["chapter"], $v["example"], $v["ncf"], $v["eit"], $v["axl"], $v["sua"], $v["sfu"], $v["sum"], $v["aci"], $v["auu"], $v["teo"], $v["amt"], $v["comment"]
+ );
+ drupal_set_message(t("Comment submited successfully"), "status");
+ }
+
+ /* Ajax Calls */
+ function tbc_external_review_ajax($item, $key) {
+ $data = "";
+ if($item == "book" && $key) {
+ $query = "select * from {textbook_companion_chapter} where preference_id = %d order by number";
+ $result = db_query($query, $key);
+
+ $data .= "<option value='0'>Please select the chapter.</option>";
+ while($row = db_fetch_object($result)) {
+ $data .= "<option value='{$row->id}'>{$row->number} {$row->name}</option>";
+ }
+ } else if($item == "chapter" && $key) {
+ $query = "select * from {textbook_companion_example} where chapter_id = %d order by number";
+ $result = db_query($query, $key);
+
+ $data .= "<option value='0'>Please select the example.</option>";
+ while($row = db_fetch_object($result)) {
+ $data .= "<option value='{$row->id}'>{$row->number} {$row->caption}</option>";
+ }
+ }
+ echo $data;
+ exit();
+ }
+
+ /* Comment form helper functions */
+ function _get_books($uid) {
+ $query = "select * from {textbook_companion_preference} where id in
+ (select preference_id from {external_review_details} where uid = %d)
+ ";
+ $result = db_query($query, $uid);
+
+ $books = array();
+ $books[0] = "Please select a book";
+ while($row = db_fetch_object($result)) {
+ $books[$row->id] = $row->book;
+ }
+ return $books;
+ }
+
+ function tbc_external_review_init() {
+ drupal_add_css(drupal_get_path("module", "tbc_external_review") . "/css/tbc_external_review.css");
+ drupal_add_js(drupal_get_path("module", "tbc_external_review") . "/js/tbc_external_review.js");
+ }
?>