app/soc/content/js/bulk-review.js
author Lennard de Rijk <ljvderijk@gmail.com>
Sat, 28 Feb 2009 13:06:04 +0000
changeset 1559 283046e54c01
parent 1535 a5277d506a21
child 1570 cda9f118bfef
permissions -rw-r--r--
Fixed issue 205. Registered students can't apply to become an organization. If for some reason the org sign up period and student sign up period are run in parallel and a student has applied to become an org, the application will still go through the normal system. Although the student won't be able to become an org admin until he has been invalidated as a student. 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
}