Make various JS methods into their own file
authorSverre Rabbelier <srabbelier@gmail.com>
Sun, 15 Feb 2009 20:25:35 +0000
changeset 1356 32d8d83678cd
parent 1355 7a00bcfa0371
child 1357 3dd1507aa723
Make various JS methods into their own file This facilitates re-use of these files. Patch by: Sverre Rabbelier
app/soc/content/js/datetime-loader.js
app/soc/content/js/feed-loader.js
app/soc/content/js/org-accept.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/content/js/datetime-loader.js	Sun Feb 15 20:25:35 2009 +0000
@@ -0,0 +1,5 @@
+$(function()
+{
+$('.datetime-pick').datetimepicker();
+});
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/content/js/feed-loader.js	Sun Feb 15 20:25:35 2009 +0000
@@ -0,0 +1,8 @@
+google.load("feeds", "1");
+
+function initialize() {
+  var blog = new BlogPreview(document.getElementById("blog"));
+  blog.show("{{ entity.feed_url }}", 3);
+}
+google.setOnLoadCallback(initialize);
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/soc/content/js/org-accept.js	Sun Feb 15 20:25:35 2009 +0000
@@ -0,0 +1,45 @@
+$(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>");
+
+}
+