app/soc/content/js/bulk-review.js
author Lennard de Rijk <ljvderijk@gmail.com>
Thu, 26 Feb 2009 20:25:56 +0000
changeset 1535 a5277d506a21
parent 1506 app/soc/content/js/org-accept.js@b908d671624e
child 1570 cda9f118bfef
permissions -rw-r--r--
Renamed org-accept.js to bulk-review.js Patch by: Lennard de Rijk Reviewed by: to-be-reviewed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     1
$(document).ready(function() {
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     2
	$("#applications_progress_bar").progressBar({showText: false});
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     3
});
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     4
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
     5
function bulkReviewInit(bulk_review_link) {
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
     6
	// get the JSON object with details of every application for bulk acceptance
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
     7
	$.getJSON(bulk_review_link+"?_="+(new Date().getTime()),
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
     8
		function(data){
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
     9
			// If there are applications to review...
1367
9899e92121b7 Style fixes in org-accept.js file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1364
diff changeset
    10
			if (data.nr_applications != 0) {
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
    11
				//...then fade out the button, show the progress bar and call the function for review
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
    12
				$("#button_bulk_review").fadeOut("slow",
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    13
					function() {
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    14
						$("#applications_progress_bar").progressBar(0);
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    15
						$("#description_done").html("");
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
    16
						$("#applications_progress_bar").fadeIn("slow", bulkReview(data));
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    17
					}
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    18
				);
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    19
			}else {
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    20
				$("#description_done").html("<strong>No organizations to accept</strong>");
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    21
			}
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    22
		}
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    23
	);
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    24
}
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    25
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
    26
function bulkReview(data) {
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    27
	// some global constants
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    28
	var GLOBAL_LINK = data.link;
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    29
	var TOTAL_APPLICATIONS = data.nr_applications;
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    30
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    31
	// some global variables set needed for internal iteration
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    32
	var application_index = 0;
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    33
	// number of iteration is not taken from data.nr_applications
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    34
	// to ensure avoidance of array out of bounds errors
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    35
	var total_index = data.applications.length;
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    36
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    37
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
    38
	// call immediately the function for review
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    39
	// real iteration is inside
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    40
	setTimeout(function(){
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    41
		var error_happened = false;
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    42
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    43
		var application = data.applications[application_index];
1367
9899e92121b7 Style fixes in org-accept.js file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1364
diff changeset
    44
		var current_application = application_index + 1;
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    45
		// regular expression to find a valid scope path inside matching parenthesis
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    46
		var re = /\((\w*)\)/;
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    47
		var scope_path = GLOBAL_LINK.match(re)[1];
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    48
		// the URL is obtained by using the scope path found in the matching parenthesis
1367
9899e92121b7 Style fixes in org-accept.js file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1364
diff changeset
    49
		var url_to_call = GLOBAL_LINK.replace(re, eval("application." + scope_path));
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    50
		// now we can call the URL found
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    51
		$.ajax({
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    52
			async: false,
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    53
			cache: false,
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    54
			url: url_to_call,
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    55
			timeout: 10000,
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    56
			success: function(data) {
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    57
				if (data) {
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    58
					// update progress bar percentage and description
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    59
					var percentage = Math.floor(100 * (current_application) / (TOTAL_APPLICATIONS));
1367
9899e92121b7 Style fixes in org-accept.js file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1364
diff changeset
    60
					$("#description_progressbar").html(" Processed application " + application.name + " (" + (current_application) + "/" + TOTAL_APPLICATIONS + ")");
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    61
					$("#applications_progress_bar").progressBar(percentage);
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    62
				}
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    63
			},
1367
9899e92121b7 Style fixes in org-accept.js file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1364
diff changeset
    64
			error: function(XMLHttpRequest, textStatus, errorThrown) {
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
    65
				// if there is an error return the button and leave a try again message
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    66
				error_happened = true;
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
    67
				$("#button_bulk_review").fadeIn("slow", function() {
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    68
					$("#description_done").html("<strong class='error'> Error encountered, try again</strong>");
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    69
				});
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    70
			}
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    71
		});
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    72
		// if there were no errors, continue the iteration
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    73
		if (!error_happened) {
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    74
			// prepare for new iteration and then recall this function
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    75
			application_index++;
1367
9899e92121b7 Style fixes in org-accept.js file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1364
diff changeset
    76
			if (application_index < total_index) {
9899e92121b7 Style fixes in org-accept.js file.
Pawel Solyga <Pawel.Solyga@gmail.com>
parents: 1364
diff changeset
    77
				setTimeout(arguments.callee, 0);
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    78
			}
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    79
			else {
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    80
				// all ok, tell the user we are done
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    81
				$("#applications_progress_bar").fadeOut("slow",
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    82
					function() {
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    83
						$("#applications_progress_bar").progressBar(0);
1535
a5277d506a21 Renamed org-accept.js to bulk-review.js
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1506
diff changeset
    84
						$("#button_bulk_review").fadeIn("slow");
1364
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    85
					}
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    86
				);
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    87
				$("#description_progressbar").html("");
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    88
				$("#description_done").html("<strong>Done!</strong>");
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    89
			}
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    90
		}
b2709805fafe Update org bulk accept script.
Lennard de Rijk <ljvderijk@gmail.com>
parents: 1356
diff changeset
    91
	},0);
1356
32d8d83678cd Make various JS methods into their own file
Sverre Rabbelier <srabbelier@gmail.com>
parents:
diff changeset
    92
}