X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fweb%2Fflows%2Fsrc%2Fmain%2Fresources%2Fjs%2Fpage.js;h=b8eb29aaa7f9742f1bb2a0da2a8cb8ac6342e479;hb=c97615f9dcd902079b828eebaafb420a0de61193;hp=2a2dbf5b4d1b0dc38e5c87bb4463d53eefd9ee21;hpb=67a8679ab2eb3ad8d7914756e844243eac3cbd32;p=controller.git
diff --git a/opendaylight/web/flows/src/main/resources/js/page.js b/opendaylight/web/flows/src/main/resources/js/page.js
index 2a2dbf5b4d..b8eb29aaa7 100644
--- a/opendaylight/web/flows/src/main/resources/js/page.js
+++ b/opendaylight/web/flows/src/main/resources/js/page.js
@@ -48,7 +48,8 @@ one.f.address = {
main : "/main",
flows : "/node-flows",
nodes : "/node-ports",
- flow : "/flow"
+ flow : "/flow",
+ deleteFlows:"/flow/deleteFlows"
}
}
@@ -251,9 +252,11 @@ one.f.flows = {
id : {
dashlet : {
add : "one_f_flows_id_dashlet_add",
+ removeMultiple : "one_f_flows_id_dashlet_removeMultiple",
remove : "one_f_flows_id_dashlet_remove",
toggle : "one_f_flows_id_dashlet_toggle",
- datagrid: "one_f_flows_id_dashlet_datagrid"
+ datagrid : "one_f_flows_id_dashlet_datagrid",
+ selectAllFlows : "one_f_flows_id_dashlet_selectAllFlows"
},
modal : {
install : "one_f_flows_id_modal_install",
@@ -327,6 +330,40 @@ one.f.flows = {
$modal.modal();
});
$dashlet.append($button);
+ var button = one.lib.dashlet.button.single("Remove Flow Entry", one.f.flows.id.dashlet.removeMultiple, "btn-danger", "btn-mini");
+ var $button = one.lib.dashlet.button.button(button);
+
+ $button.click(function() {
+ var checkedCheckBoxes = $('.flowEntry[type=checkbox]:checked');
+ if (checkedCheckBoxes.size() === 0) {
+ alert('Please select at least one flow');
+ return false;
+ }
+
+ var requestData = [];
+
+ var resource = {};
+ checkedCheckBoxes.each(function(index, value) {
+ var flowEntry = {};
+ flowEntry['name'] = checkedCheckBoxes[index].name;
+ flowEntry['node'] = checkedCheckBoxes[index].getAttribute("node");
+ requestData.push(flowEntry);
+ });
+ resource['body'] = JSON.stringify(requestData);
+
+ $.post(one.f.address.root+one.f.address.flows.deleteFlows, resource, function(response) {
+ if(response == "Success") {
+ one.lib.alert("Flow(s) successfully removed");
+ } else {
+ one.lib.alert(response);
+ }
+ one.main.dashlet.right.bottom.empty();
+ one.f.detail.dashlet(one.main.dashlet.right.bottom);
+ one.main.dashlet.left.top.empty();
+ one.f.flows.dashlet(one.main.dashlet.left.top);
+ });
+ });
+ $dashlet.append($button);
}
@@ -339,15 +376,22 @@ one.f.flows = {
$dashlet.append($gridHTML);
var dataSource = one.f.flows.data.flowsDataGrid(data);
$("#" + one.f.flows.id.dashlet.datagrid).datagrid({dataSource: dataSource}).on("loaded", function() {
- $("#" + one.f.flows.id.dashlet.datagrid).find("tbody tr").each(function(index, tr) {
+ $("#"+one.f.flows.id.dashlet.datagrid.selectAllFlows).click(function() {
+ $("#" + one.f.flows.id.dashlet.datagrid).find(':checkbox').prop('checked',
+ $("#"+one.f.flows.id.dashlet.datagrid.selectAllFlows).is(':checked'));
+ });
+
+ $("#" + one.f.flows.id.dashlet.datagrid).find("tbody tr").each(function(index, tr) {
$tr = $(tr);
$span = $("td span", $tr);
var flowstatus = $span.data("flowstatus");
- var installInHw = $span.data("installinhw").toString();
- if(installInHw == "true" && flowstatus == "Success") {
- $tr.addClass("success");
- } else {
- $tr.addClass("warning");
+ if($span.data("installinhw") != null) {
+ var installInHw = $span.data("installinhw").toString();
+ if(installInHw == "true" && flowstatus == "Success") {
+ $tr.addClass("success");
+ } else {
+ $tr.addClass("warning");
+ }
}
// attach mouseover to show pointer cursor
$tr.mouseover(function() {
@@ -355,10 +399,22 @@ one.f.flows = {
});
// attach click event
$tr.click(function() {
- var $td = $($(this).find("td")[0]);
+ var $td = $($(this).find("td")[1]);
var id = $td.text();
var node = $td.find("span").data("nodeid");
- one.f.flows.detail(id, node);
+ one.f.flows.detail(id, node);
+ });
+ $(".flowEntry").click(function(e){
+ if (!$('.flowEntry[type=checkbox]:not(:checked)').length) {
+ $("#"+one.f.flows.id.dashlet.datagrid.selectAllFlows)
+ .prop("checked",
+ true);
+ } else {
+ $("#"+one.f.flows.id.dashlet.datagrid.selectAllFlows)
+ .prop("checked",
+ false);
+ }
+ e.stopPropagation();
});
});
});
@@ -1191,6 +1247,11 @@ one.f.flows = {
flowsDataGrid: function(data) {
var source = new StaticDataSource({
columns: [
+ {
+ property: 'selector',
+ label: "",
+ sortable: false
+ },
{
property: 'name',
label: 'Flow Name',
@@ -1205,7 +1266,13 @@ one.f.flows = {
data: data.flows,
formatter: function(items) {
$.each(items, function(index, item) {
- item["name"] = '' + item["name"] + '';
});
@@ -1220,6 +1287,8 @@ one.f.flows = {
$(data).each(function(index, value) {
var tr = {};
var entry = [];
+
+
entry.push(value['name']);
entry.push(value['node']);
if (value['flow']['installInHw'] == 'true' && value['flow']['status'] == 'Success')
@@ -1242,12 +1311,12 @@ one.f.flows = {
var $table = one.lib.dashlet.table.table(attributes);
var headers = ['Flow Name', 'Node'];
+
var $thead = one.lib.dashlet.table.header(headers);
$table.append($thead);
var $tbody = one.lib.dashlet.table.body(body);
$table.append($tbody);
-
return $table;
}
}