Mercurial > hg > bts-webui
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*/