X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fweb%2Fdevices%2Fsrc%2Fmain%2Fresources%2Fjs%2Fpage.js;h=9524a76b012a1cb2d6a568aba3c51cb3ad975ac9;hp=f48a46d204ac05a2c50ae5859bf6a59dc3b8d57b;hb=f8815d752083c207a66f29e4e7afa45f2823afb2;hpb=a98556048975c29541849689396e58c813b7558e
diff --git a/opendaylight/web/devices/src/main/resources/js/page.js b/opendaylight/web/devices/src/main/resources/js/page.js
index f48a46d204..9524a76b01 100644
--- a/opendaylight/web/devices/src/main/resources/js/page.js
+++ b/opendaylight/web/devices/src/main/resources/js/page.js
@@ -14,7 +14,7 @@ one.f = {};
one.f.dashlet = {
nodesLearnt : {
id : 'nodesLearnt',
- name : 'Nodes Learnt'
+ name : 'Nodes Learned'
},
staticRouteConfig : {
id : 'staticRouteConfig',
@@ -74,8 +74,11 @@ one.f.switchmanager.nodesLearnt = {
},
modal: {
modal: "one_f_switchmanager_nodesLearnt_id_modal_modal",
+ configure: "one_f_switchmanager_nodesLearnt_id_modal_configure",
+ ports: "one_f_switchmanager_nodesLearnt_id_modal_ports",
save: "one_f_switchmanager_nodesLearnt_id_modal_save",
datagrid: "one_f_switchmanager_nodesLearnt_id_modal_datagrid",
+ portsDatagrid: "one_f_switchmanager_nodesLearnt_id_modal_portsDatagrid",
form: {
nodeId: "one_f_switchmanager_nodesLearnt_id_modal_form_nodeid",
nodeName : "one_f_switchmanager_nodesLearnt_id_modal_form_nodename",
@@ -102,6 +105,13 @@ one.f.switchmanager.nodesLearnt = {
$("#" + one.f.switchmanager.nodesLearnt.id.dashlet.datagrid).datagrid({dataSource: dataSource}).on("loaded", function() {
$(this).find("tbody a").click(one.f.switchmanager.nodesLearnt.modal.initialize.updateNode);
});
+
+ $("#" + one.f.switchmanager.nodesLearnt.id.dashlet.datagrid).datagrid({dataSource: dataSource}).on("loaded", function() {
+ $(this).find("tbody span").click(function(){
+ one.f.switchmanager.nodesLearnt.modal.initialize.displayPorts($(this));
+ });
+ });
+
});
},
ajax : {
@@ -128,7 +138,7 @@ one.f.switchmanager.nodesLearnt = {
h3 = 'Node Information';
}
- var $modal = one.lib.modal.spawn(one.f.switchmanager.nodesLearnt.id.modal.modal, h3, "", footer);
+ var $modal = one.lib.modal.spawn(one.f.switchmanager.nodesLearnt.id.modal.configure, h3, "", footer);
// bind save button
$('#' + one.f.switchmanager.nodesLearnt.id.modal.save, $modal).click(function() {
one.f.switchmanager.nodesLearnt.modal.save($modal);
@@ -140,11 +150,35 @@ one.f.switchmanager.nodesLearnt = {
});
},
popout: function() {
- var h3 = "Nodes Learnt";
+ var h3 = "Nodes Learned";
var footer = one.f.switchmanager.nodesLearnt.modal.footer.popout();
var $modal = one.lib.modal.spawn(one.f.switchmanager.nodesLearnt.id.modal.modal, h3, "", footer);
var $body = one.f.switchmanager.nodesLearnt.modal.body.popout($modal);
return $modal;
+ },
+ displayPorts: function(ports) {
+ var content = JSON.parse(decodeURIComponent(ports.attr("ports")));
+
+ var h3 = ((ports.attr("nodeName") == "None")? ports.attr("nodeId") : ports.attr("nodeName"))
+ var footer = [];
+ var $modal = one.lib.modal.spawn(one.f.switchmanager.nodesLearnt.id.modal.ports, h3, "", footer);
+
+ var $gridHTML = one.lib.dashlet.datagrid.init(one.f.switchmanager.nodesLearnt.id.modal.portsDatagrid, {
+ searchable: true,
+ filterable: false,
+ pagination: true,
+ flexibleRowsPerPage: true,
+ popout: true
+ }, "table-striped table-condensed");
+ one.lib.modal.inject.body($modal, $gridHTML);
+ $modal.on("shown", function() {
+ var dataSource = one.f.switchmanager.nodesLearnt.data.gridDataSource.displayPorts(content);
+ $("#" + one.f.switchmanager.nodesLearnt.id.modal.portsDatagrid).datagrid({
+ dataSource: dataSource,
+ stretchHeight: false
+ });
+ });
+ $modal.modal();
}
},
body: {
@@ -190,7 +224,8 @@ one.f.switchmanager.nodesLearnt = {
searchable: true,
filterable: false,
pagination: true,
- flexibleRowsPerPage: true
+ flexibleRowsPerPage: true,
+ popout: true
}, "table-striped table-condensed");
one.lib.modal.inject.body($modal, $gridHTML);
// attach to shown event of modal
@@ -200,7 +235,12 @@ one.f.switchmanager.nodesLearnt = {
var dataSource = one.f.switchmanager.nodesLearnt.data.gridDataSource.popout(content);
$("#" + one.f.switchmanager.nodesLearnt.id.modal.datagrid).datagrid({
dataSource: dataSource,
- stretchHeight: true
+ stretchHeight: false
+ })
+ .on("loaded", function() {
+ $("#" + one.f.switchmanager.nodesLearnt.id.modal.datagrid).find("tbody span").click(function(){
+ one.f.switchmanager.nodesLearnt.modal.initialize.displayPorts($(this));
+ });
});
});
});
@@ -275,9 +315,20 @@ one.f.switchmanager.nodesLearnt = {
data: data.nodeData,
formatter: function(items) {
$.each(items, function (index, item) {
+ var nodeName = item.nodeName;
var nodeNameEntry = item.nodeName ? item.nodeName : "Click to update";
item.nodeName = '' + nodeNameEntry + '';
+
+ var ports = item.ports;
+ var portsMatch = ports.match(/<\/span>/g);
+ var portsLength = 0;
+ if (portsMatch != null) {
+ portsLength = portsMatch.length;
+ }
+ item.ports = '' + portsLength +'';
});
},
delay: 0
@@ -305,7 +356,7 @@ one.f.switchmanager.nodesLearnt = {
},
{
property: 'mac',
- label: 'Mac',
+ label: 'MAC',
sortable: true
},
{
@@ -315,8 +366,44 @@ one.f.switchmanager.nodesLearnt = {
}
],
data: data.nodeData,
+ formatter: function(items) {
+ $.each(items, function (index, item) {
+ var ports = item.ports;
+ var portsMatch = ports.match(/<\/span>/g);
+ var portsLength = 0;
+ if (portsMatch != null) {
+ portsLength = portsMatch.length;
+ }
+ item.ports = '' + portsLength +'';
+ });
+ },
+ delay: 0
+ });
+ return source;
+ },
+ displayPorts: function(content){
+ var data=[];
+ var start=0;;
+ var finish=content.indexOf("
",start);
+ while(finish != -1){
+ data.push({"ports":content.substring(start,finish)});
+ start=finish+4
+ finish=content.indexOf("
",start);
+ }
+ var source = new StaticDataSource({
+ columns: [
+ {
+ property: 'ports',
+ label: 'Ports',
+ sortable: true
+ }
+ ],
+ data:data,
delay: 0
});
+
return source;
}
},
@@ -372,10 +459,12 @@ one.f.switchmanager.subnetGatewayConfig = {
addIPAddress: "one_f_switchmanager_subnetGatewayConfig_id_dashlet_addIP",
addPorts: "one_f_switchmanager_subnetGatewayConfig_id_dashlet_addPorts",
removeIPAddress: "one_f_switchmanager_subnetGatewayConfig_id_dashlet_removeIP",
- datagrid: "one_f_switchmanager_subnetGatewayConfig_id_dashlet_datagrid"
+ datagrid: "one_f_switchmanager_subnetGatewayConfig_id_dashlet_datagrid",
+ selectAll: "one_f_switchmanager_subnetGatewayConfig_id_dashlet_selectAll"
},
modal: {
modal: "one_f_switchmanager_subnetGatewayConfig_id_modal_modal",
+ ports : "one_f_switchmanager_subnetGatewayConfig_id_modal_ports",
save: "one_f_switchmanager_subnetGatewayConfig_id_modal_save",
form: {
name : "one_f_switchmanager_subnetGatewayConfig_id_modal_form_gatewayname",
@@ -404,8 +493,8 @@ one.f.switchmanager.subnetGatewayConfig = {
$dashlet.append($button);
// Delete gateway ip address button
- var button = one.lib.dashlet.button.single("Delete Gateway IP Address(es)",
- one.f.switchmanager.subnetGatewayConfig.id.dashlet.removeIPAddress, "btn-primary", "btn-mini");
+ var button = one.lib.dashlet.button.single("Delete Gateway IP Address",
+ one.f.switchmanager.subnetGatewayConfig.id.dashlet.removeIPAddress, "btn-danger", "btn-mini");
var $button = one.lib.dashlet.button.button(button);
$button.click(function() {
var requestData = {};
@@ -414,16 +503,21 @@ one.f.switchmanager.subnetGatewayConfig = {
checkedCheckBoxes.each(function(index, value) {
gatewaysToDelete.push(checkedCheckBoxes[index].id);
});
+ if (checkedCheckBoxes.size() === 0) {
+ alert('Please select at least one gateway');
+ return false;
+ }
if (gatewaysToDelete.length > 0) {
requestData["gatewaysToDelete"] = gatewaysToDelete.toString();
var url = one.f.switchmanager.rootUrl + "/subnetGateway/delete";
one.f.switchmanager.subnetGatewayConfig.ajax.main(url, requestData, function(response) {
if (response.status == true) {
- // refresh dashlet by passing dashlet div as param
- one.f.switchmanager.subnetGatewayConfig.dashlet($("#right-bottom .dashlet"));
+ // refresh dashlet by passing dashlet div as param
+ one.lib.alert("Subnet Gateway(s) successfully removed");
} else {
- alert(response.message);
+ one.lib.alert(response.message);
}
+ one.f.switchmanager.subnetGatewayConfig.dashlet($("#right-bottom .dashlet"));
});
}
});
@@ -447,7 +541,25 @@ one.f.switchmanager.subnetGatewayConfig = {
}, "table-striped table-condensed");
$dashlet.append($gridHTML);
var dataSource = one.f.switchmanager.subnetGatewayConfig.data.devicesgrid(content);
- $("#" + one.f.switchmanager.subnetGatewayConfig.id.dashlet.datagrid).datagrid({dataSource: dataSource});
+ $("#" + one.f.switchmanager.subnetGatewayConfig.id.dashlet.datagrid).datagrid({dataSource: dataSource})
+ .on("loaded", function() {
+ $("#"+one.f.switchmanager.subnetGatewayConfig.id.dashlet.selectAll).click(function() {
+ $("#" + one.f.switchmanager.subnetGatewayConfig.id.dashlet.datagrid).find(':checkbox').prop('checked',
+ $("#"+one.f.switchmanager.subnetGatewayConfig.id.dashlet.selectAll).is(':checked'));
+ });
+ $(".subnetGatewayConfig").click(function(e){
+ if (!$('.subnetGatewayConfig[type=checkbox]:not(:checked)').length) {
+ $("#"+one.f.switchmanager.subnetGatewayConfig.id.dashlet.selectAll)
+ .prop("checked",
+ true);
+ } else {
+ $("#"+one.f.switchmanager.subnetGatewayConfig.id.dashlet.selectAll)
+ .prop("checked",
+ false);
+ }
+ e.stopPropagation();
+ });
+ });
});
},
ajax : {
@@ -475,7 +587,7 @@ one.f.switchmanager.subnetGatewayConfig = {
ports: function() {
var h3 = "Add Ports";
var footer = one.f.switchmanager.subnetGatewayConfig.modal.footer();
- var $modal = one.lib.modal.spawn(one.f.switchmanager.subnetGatewayConfig.id.modal.modal, h3, "", footer);
+ var $modal = one.lib.modal.spawn(one.f.switchmanager.subnetGatewayConfig.id.modal.ports, h3, "", footer);
// bind save button
$('#' + one.f.switchmanager.subnetGatewayConfig.id.modal.save, $modal).click(function() {
one.f.switchmanager.subnetGatewayConfig.modal.save.ports($modal);
@@ -623,7 +735,8 @@ one.f.switchmanager.subnetGatewayConfig = {
columns: [
{
property: 'selector',
- label: ' ',
+ label: "",
sortable: false
},
{
@@ -637,7 +750,7 @@ one.f.switchmanager.subnetGatewayConfig = {
sortable: true
},
{
- property: 'json',
+ property: 'nodePorts',
label: 'Node/Ports',
sortable: false
}
@@ -645,20 +758,22 @@ one.f.switchmanager.subnetGatewayConfig = {
data: data.nodeData,
formatter: function(items) {
$.each(items, function(index, tableRow) {
- tableRow["selector"] = '';
- var json = tableRow["json"];
- var subnetConfigObject = JSON.parse(json);
+ tableRow["selector"] = '';
+ var json = tableRow["nodePorts"];
+ var nodePorts = JSON.parse(json);
var nodePortHtml = "