app/soc/content/js/org-accept.js
author Sverre Rabbelier <srabbelier@gmail.com>
Sun, 15 Feb 2009 20:25:35 +0000
changeset 1356 32d8d83678cd
child 1364 b2709805fafe
permissions -rw-r--r--
Make various JS methods into their own file This facilitates re-use of these files. Patch by: Sverre Rabbelier

$(document).ready(function() {
	$("#applications_progress_bar").progressBar({showText: false});
});

function acceptOrgInit() {
	$("#acceptance_text").fadeOut("slow",
		function() {
			$("#applications_progress_bar").fadeIn("slow");
		}
	);
	$.getJSON("{{ bulk_accept_link|safe }}",
		function(data){
			setTimeout(function(){acceptOrg(data)}, 0);
		}
	);
}

function acceptOrg(accepted_applications) {
	var application_index = 0, max_applications=accepted_applications.applications.length;
	for (application_index; application_index<max_applications; application_index++) {
		// regular expression to find a valid scope path inside matching parenthesis
		var re = /\((\w*)\)/;
		var scope_path = accepted_applications.link.match(re)[1];
		// the URL is obtained by using the scope path found in the matching parenthesis
		var url_to_call = accepted_applications.link.replace(re,eval("accepted_applications.applications[application_index]."+scope_path));
		// now we can call the URL found
		$.ajax({
			async: false,
			url: url_to_call,
			timeout: 10000,
			complete: function(data) {
				if (data) {
					// update progress bar percentage and description
					var percentage = Math.floor(100 * (application_index+1) / (accepted_applications.nr_applications));
					$("#description_progressbar").html(" Processed application "+accepted_applications.applications[application_index].name+" ("+(application_index+1)+"/"+accepted_applications.nr_applications+")");
					$("#applications_progress_bar").progressBar(percentage);
				}
			}
		});
	}
	// tell the user we are done
	$("#description_done").html(" <strong>Done!</strong>");

}