diff bts_webui/amancay/static/amancay_interface.js @ 3:026d1bcf0746 draft

The migration to the new interface is almost done
author marga
date Mon, 09 Jul 2007 21:47:39 +0000 (2007-07-09)
parents 009ede2396ab
children 71c2dd718293
line wrap: on
line diff
--- a/bts_webui/amancay/static/amancay_interface.js
+++ b/bts_webui/amancay/static/amancay_interface.js
@@ -1,142 +1,115 @@
 
-var packages_changed = function(request) {
-	var package_list = MochiKit.Async.evalJSONRequest(request)["package_list"];
-	var cells = new Array(package_list.length);
-	for (var i=0; i < package_list.length; i++) {
-		cells[i] = [ TD(null, INPUT({"type":"checkbox",
-		"name":"package_select", "id":"package_select", "value":
-		package_list[i]}, null)), TD(null, package_list[i]) ];
-	}
-	var rows = map(partial(TR, null), cells);
-	var dom_package_list = document.getElementById("package_list");
-	if (! dom_package_list) {
-		dom_package_list = TABLE({"id":"package_list"})
-		var dom_form = document.getElementById("package_selection");
-		var dom_remove = INPUT({"type":"submit", "value": "Remove"})
-    	MochiKit.Signal.connect( dom_form, 'onsubmit', send_package_selected );
-		replaceChildNodes(dom_form, dom_package_list, dom_remove)
-	}
-	replaceChildNodes(dom_package_list, rows);
-	get_package_bugs();
+function reload_current_view(evt) {
+	var view = document.getElementById("current_view").value;
+	load_bugs(evt,"/"+view+"_table/");
 }
 
-var package_remove_failed = function (err) {
-  alert("The package/s could not be removed");
-  alert(err);
-};
+var items_changed = function(request) {
+	var item_type = document.getElementById("item").name;
+	var item_list = MochiKit.Async.evalJSONRequest(request)["item_list"];
+	if (item_list.length == 0) {
+		var dom_form = document.getElementById("item_selection");
+		new_span = SPAN({'class': 'toolbox_message'}, "No items selected");
+		replaceChildNodes(dom_form, new_span);
+	} else {
+		var cells = new Array(item_list.length);
+		for (var i=0; i < item_list.length; i++) {
+			cells[i] = [ TD({"class":"item_select"}, INPUT({"type":"checkbox",
+			"name":item_type+"_select", "id":"item_select", "value":
+			item_list[i]}, null)), TD({"class":"item_name"}, item_list[i]) ];
+		}
+		var rows = map(partial(TR, null), cells);
+		var dom_item_table = document.getElementById("item_list");
+		if (! dom_item_table) {
+			dom_item_table = TABLE({"id":"item_list"})
+			dom_item_list = TBODY(null, null)
+			replaceChildNodes(dom_item_table, dom_item_list);
+			var dom_form = document.getElementById("item_selection");
+			var dom_remove = DIV({"class":"toolbox_remove"},
+			INPUT({"type":"submit", "value": "Remove", "class": "toolbox_remove"}))
+	    	MochiKit.Signal.connect( dom_form, 'onsubmit', send_item_selected );
+			replaceChildNodes(dom_form, dom_item_table, dom_remove)
+		} else {
+			dom_item_list = dom_item_table.getElementsByTagName("tbody")[0];
+		}
+		replaceChildNodes(dom_item_list, rows);
+	}
+	reload_current_view();
+}
 
-var package_add_failed = function (err) {
-  alert("The package could not be added");
+var item_remove_failed = function (err) {
+  alert("The item/s could not be removed");
   alert(err);
 };
 
-var send_add_package = function (ev) {
-	ev.preventDefault();
-	var content = queryString(["package_name"], 
-                  [document.getElementById("package_name").value]);
-	var d = doXHR("/index/?xhr=1", {"method": "post", "sendContent": content});
-	d.addCallbacks(packages_changed, package_add_failed);
-	document.getElementById("package_name").value = "";
-}
-
-var send_package_selected = function (ev) {
-	ev.preventDefault();
-	table = document.getElementById("package_list");
-	boxes = table.getElementsByTagName("input");
-
-	var selected_packages = Array();
-	for (var i=0; i < boxes.length; i++) {
-		if (boxes[i].checked == true) {
-			selected_packages[i] = boxes[i].value;
-		}
-	}
-	var content = queryString({"package_select": filter(null,selected_packages)});
-	var d = doXHR("/index/?xhr=1", {"method": "post", "sendContent": content});
-	d.addCallbacks(packages_changed, package_remove_failed);
-}
-
-var bugs_changed = function(request) {
-	var bug_list = MochiKit.Async.evalJSONRequest(request)["bug_list"];
-	var cells = new Array(bug_list.length);
-	for (var i=0; i < bug_list.length; i++) {
-		cells[i] = [ TD(null, INPUT({"type":"checkbox",
-		"name":"bug_select", "id":"bug_select", "value":
-		bug_list[i]}, null)), TD(null, bug_list[i]) ];
-	}
-	var rows = map(partial(TR, null), cells);
-	var dom_bug_list = document.getElementById("bug_list");
-	if (! dom_bug_list) {
-		dom_bug_list = TABLE({"id": "bug_list"})
-		var dom_form = document.getElementById("bug_selection");
-		var dom_remove = INPUT({"type":"submit", "value": "Remove"})
-    	MochiKit.Signal.connect( dom_form, 'onsubmit', send_bug_selected );
-		replaceChildNodes(dom_form, dom_bug_list, dom_remove)
-	}
-	replaceChildNodes(dom_bug_list, rows);
-	get_selected_bugs();
-}
-
-var bug_remove_failed = function (err) {
-  alert("The bug/s could not be removed");
+var item_add_failed = function (err) {
+  alert("The item could not be added");
   alert(err);
 };
 
-var bug_add_failed = function (err) {
-  alert("The bug could not be added");
-  alert(err);
-};
-
-var send_add_bug = function (ev) {
+var send_item_add = function (ev) {
 	ev.preventDefault();
-	var content = queryString(["bug_number"], 
-                  [document.getElementById("bug_number").value]);
+	var content = queryString([document.getElementById("item").name],
+	                          [document.getElementById("item").value]);
 	var d = doXHR("/index/?xhr=1", {"method": "post", "sendContent": content});
-	d.addCallbacks(bugs_changed, bug_add_failed);
-	document.getElementById("bug_number").value = "";
+	d.addCallbacks(items_changed, item_add_failed);
+	document.getElementById("item").value = "";
 }
 
-var send_bug_selected = function (ev) {
+var send_item_selected = function (ev) {
 	ev.preventDefault();
-	table = document.getElementById("bug_list");
-	boxes = table.getElementsByTagName("input");
-
-	var selected_bugs = Array();
-	for (var i=0; i < boxes.length; i++) {
-		if (boxes[i].checked == true) {
-			selected_bugs[i] = boxes[i].value;
-		}
-	}
-	var content = queryString(["bug_select"], filter(null, selected_bugs));
+	item_name = document.getElementById("item").name+"_select";
+	table = document.getElementById("item_list");
+	var content = queryString(table);
 	var d = doXHR("/index/?xhr=1", {"method": "post", "sendContent": content});
-	d.addCallbacks(bugs_changed, bug_remove_failed);
+	d.addCallbacks(items_changed, item_remove_failed);
 }
 
-function place_bug_table(place, request) {
+function loading_bugs() {
+		new_span = SPAN({'class': 'loading'}, "Loading...");
+		replaceChildNodes(document.getElementById("loading"), new_span);
+}
+function loading_finished() {
+	new_span = SPAN();
+	replaceChildNodes(document.getElementById("loading"), new_span);
+}
+
+
+var got_bugs = function(request) {
+	place = document.getElementById("bug_list");
 	if (strip(request.responseText) != "") {
 		new_table = TABLE();
 		new_table.innerHTML = request.responseText;
 		replaceChildNodes(place, new_table);
 	} 
 	else {
-		new_span = SPAN({'class': 'loading'}, "No bugs found");
+		new_span = SPAN({'class': 'error'}, "No bugs found");
+		replaceChildNodes(place, new_span);
+	}
+	loading_finished();
+}
+var failed_bugs = function(request) {
+	new_span = SPAN({'class': 'error'}, "ERROR: bug list couldn't be loaded");
+	replaceChildNodes(document.getElementById("bug_list"), new_span);
+	loading_finished();
+}
+
+var got_toolbox = function(request) {
+	place = document.getElementById("toolbox");
+	if (strip(request.responseText) != "") {
+		new_div = DIV();
+		new_div.innerHTML = request.responseText;
+		replaceChildNodes(place, new_div);
+		toolboxConnect();
+	} 
+	else {
+		new_span = SPAN({'class': 'error'}, "No toolbox");
 		replaceChildNodes(place, new_span);
 	}
 }
-
-function failed_bug_table(place, request) {
-	new_span = SPAN({'class': 'loading'}, "ERROR: bug list couldn't be loaded");
-	replaceChildNodes(place, new_span);
-};
-
-function loading_bugs() {
-		new_span = SPAN({'class': 'loading'}, "Loading... Please wait");
-		replaceChildNodes(document.getElementById("bug_list"), new_span);
-}
-var got_bugs = function(request) {
-	place_bug_table(document.getElementById("bug_list"), request);
-}
-var failed_bugs = function(request) {
-	failed_bug_table(document.getElementById("bug_list"), request);
+var failed_toolbox = function(request) {
+	new_span = SPAN({'class': 'error'}, "ERROR: Unable to load toolbox");
+	replaceChildNodes(document.getElementById("toolbox"), new_span);
 }
 
 function load_bugs(evt, url) {
@@ -146,48 +119,48 @@
 	evt.preventDefault();
 }
 
+function load_toolbox(url) {
+	var d = doXHR(url);
+	d.addCallbacks(got_toolbox, failed_toolbox);
+}
+
 function get_submitted_bugs(evt) {
 	load_bugs(evt,"/submitted_bugs_table/");
+	load_toolbox("/submitted_bugs_toolbox/");
 }
 function get_received_bugs(evt) {
 	load_bugs(evt,"/received_bugs_table/");
+	load_toolbox("/received_bugs_toolbox/");
 }
 function get_package_bugs(evt) {
 	load_bugs(evt,"/package_bugs_table/");
+	load_toolbox("/package_bugs_toolbox/");
 }
 function get_selected_bugs(evt) {
 	load_bugs(evt,"/selected_bugs_table/");
+	load_toolbox("/selected_bugs_toolbox/");
 }
 function get_tagged_bugs(evt) {
 	load_bugs(evt,"/tagged_bugs_table/");
+	load_toolbox("/tagged_bugs_toolbox/");
 }
 function get_search_form(evt) {
 	load_bugs(evt,"/search_form/");
+	load_toolbox("/search_form_toolbox/");
+}
+
+function toolboxConnect() {
+	var item_add = document.getElementById("add_item");
+    MochiKit.Signal.connect( item_add, 'onsubmit', send_item_add );
+	var item_selection = document.getElementById("item_selection");
+    MochiKit.Signal.connect( item_selection, 'onsubmit', send_item_selected );
 }
 
 function myLoadFunction()
 {
-/*	get_submitted_bugs();
-	get_received_bugs();
-	get_package_bugs();
-	get_selected_bugs();
-*/
-	/* Signal connection */
-/*	var add_package = document.getElementById("add_package");
-    MochiKit.Signal.connect( add_package, 'onsubmit', send_add_package );
-
-	var package_selection = document.getElementById("package_selection");
-    MochiKit.Signal.connect( package_selection, 'onsubmit', send_package_selected );
-
-	var add_bug = document.getElementById("add_bug");
-    MochiKit.Signal.connect( add_bug, 'onsubmit', send_add_bug );
-
-	var bug_selection = document.getElementById("bug_selection");
-    MochiKit.Signal.connect( bug_selection, 'onsubmit', send_bug_selected
-	);*/
+	toolboxConnect();
 
 	var link;
-
 	link = document.getElementById("submitted_bugs_link");
     MochiKit.Signal.connect( link, 'onclick', get_submitted_bugs );
 
@@ -205,7 +178,6 @@
 
 	link = document.getElementById("search_link");
     MochiKit.Signal.connect( link, 'onclick', get_search_form );
-
 }
 
 /*connect our event handlers right off*/