X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fweb%2Froot%2Fsrc%2Fmain%2Fresources%2Fjs%2Flib.js;h=00eacdfce6b9eba6fed4b472a95f4a265748877b;hb=9cec08e30cb7d7da40d6bb716623c92c1db41f54;hp=81188571644552e6159aeca5b4cec813d0eda1bd;hpb=3591b13ae3e6f237db9e4b63cb3b07e020f576ca;p=controller.git
diff --git a/opendaylight/web/root/src/main/resources/js/lib.js b/opendaylight/web/root/src/main/resources/js/lib.js
index 8118857164..00eacdfce6 100644
--- a/opendaylight/web/root/src/main/resources/js/lib.js
+++ b/opendaylight/web/root/src/main/resources/js/lib.js
@@ -26,6 +26,17 @@ one.lib.dashlet = {
$h4.text(header);
return $h4;
},
+ label : function(name, type) {
+ var $span = $(document.createElement('span'));
+ $span.addClass('label');
+ if (type !== undefined) {
+ $span.addClass(type);
+ } else if (type !== null) {
+ $span.addClass('label-info');
+ }
+ $span.append(name);
+ return $span;
+ },
list : function(list) {
var $ul = $(document.createElement('ul'));
$(list).each(function(index, value) {
@@ -67,6 +78,68 @@ one.lib.dashlet = {
return $buttonGroup;
}
},
+ datagrid: {
+ /*
+ * The init function returns HTML markup for the datagrid per the options provided. Each consumer
+ * of the datagrid must first call init and then provide the datasource for the grid.
+ * id: this is the id of the table
+ * options: {
+ * searchable: true/false,
+ * pagination: turned off for now,
+ * flexibleRowsPerPage: turned off
+ * }
+ * classes : String containing bootstrap related classes. For ex: "table-striped table-condensed"
+ * The classes "table", "table-bordered" and "datagrid" will be added by default
+ */
+ init: function(id, options, classes) {
+ var $fuelGridContainerDiv = $(document.createElement("div"));
+ $fuelGridContainerDiv.addClass("fuelux");
+ $table = $(document.createElement("table"));
+ $table.attr("id", id);
+ $table.addClass("table table-bordered datagrid");
+ $table.addClass(classes);
+ // create datagrid header
+ $thead = $(document.createElement("thead"));
+ $headertr = $(document.createElement("tr"));
+ $headerth = $(document.createElement("th"));
+ // create datagrid footer
+ $tfoot = $(document.createElement("tfoot"));
+ $footertr = $(document.createElement("tr"));
+ $footerth = $(document.createElement("th"));
+ if(options.searchable == true) {
+ $headerth.append(one.lib.dashlet.datagrid._searchable());
+ }
+ if(options.flexibleRowsPerPage == true) {
+ $footerth.append(one.lib.dashlet.datagrid._rowsPerPage(options.popout));
+ }
+ if(options.pagination == true) {
+ $footerth.append(one.lib.dashlet.datagrid._pagination());
+ }
+ $headertr.append($headerth);
+ $thead.append($headertr);
+ $footertr.append($footerth);
+ $tfoot.append($footertr);
+ $table.append($thead).append($tfoot);
+ $fuelGridContainerDiv.append($table);
+ return $fuelGridContainerDiv;
+ },
+ _searchable: function() {
+ var searchHTML = "
";
+ return searchHTML;
+ },
+ _pagination: function() {
+ var html = '';
+ return html;
+ },
+ _rowsPerPage: function(popout) {
+ if(popout) {
+ var html = '';
+ } else {
+ var html = '';
+ }
+ return html;
+ }
+ },
table : {
table : function(classes, id) {
var $table = $(document.createElement('table'));
@@ -95,9 +168,9 @@ one.lib.dashlet = {
if (body.length == 0 && !(typeof thead === 'undefined')) {
var $tr = $(document.createElement('tr'));
var $td = $(document.createElement('td'));
- $td.attr("colspan", thead.length);
- $td.text("No data available");
- $td.addClass("empty");
+ $td.attr('colspan', thead.length);
+ $td.text('No data available');
+ $td.addClass('empty');
$tr.append($td);
$tbody.append($tr);
return $tbody;
@@ -105,21 +178,25 @@ one.lib.dashlet = {
// else, populate as usual
$(body).each(function(index, value) {
var $tr = $(document.createElement('tr'));
- // data-id
- if (value['id'] != undefined) {
- $tr.attr('data-id', value['id']);
- }
- // add classes
- $(value["type"]).each(function(index, value) {
- $tr.addClass(value);
- });
- // add entries
- $(value["entry"]).each(function(index, value) {
- var $td = $(document.createElement('td'));
- $td.append(value);
- $tr.append($td);
+ $.each(value, function(key, value) {
+ if (key == 'type') {
+ // add classes
+ $(value).each(function(index, value) {
+ $tr.addClass(value);
+ });
+ } else if (key == 'entry') {
+ // add entries
+ $(value).each(function(index, value) {
+ var $td = $(document.createElement('td'));
+ $td.append(value);
+ $tr.append($td);
+ });
+ } else {
+ // data field
+ $tr.attr('data-' + key, value);
+ }
+ $tbody.append($tr);
});
- $tbody.append($tr);
});
return $tbody;
}
@@ -149,7 +226,10 @@ one.lib.modal = {
return $clone;
},
// populate modal
- populate : function($modal, header, $body, footer) {
+ populate : function($modal, header, $body, footer, ajax) {
+ if (ajax === undefined && ajax !== false) {
+ $.getJSON('/web.json'); // session check per modal
+ }
var $h3 = $modal.find("h3");
$h3.text(header);
@@ -164,6 +244,9 @@ one.lib.modal = {
spawn : function(id, header, $body, footer) {
var $modal = one.lib.modal.clone(id);
one.lib.modal.populate($modal, header, $body, footer);
+ $modal.on('hide', function () {
+ $('.modal-body').scrollTop(0);
+ });
return $modal;
},
// empty modal
@@ -185,7 +268,7 @@ one.lib.modal = {
one.lib.form = {
// create select-option form element
select : {
- create : function(options, multiple) {
+ create : function(options, multiple, sort) {
// assert - auto assign
if (options == undefined)
options = {};
@@ -195,6 +278,24 @@ one.lib.form = {
$select.attr("multiple", "multiple");
}
var optionArray = one.lib.form.select.options(options);
+
+ // If specified, sort the option elements based on their text field
+ if (sort == true && optionArray.length > 1) {
+ var shifted = true;
+ var limit = optionArray.length;
+ while (shifted) {
+ shifted = false;
+ for ( var i = 1; i < limit; i++) {
+ if (optionArray[i - 1].text() > optionArray[i].text()) {
+ var swap = optionArray[i - 1];
+ optionArray[i - 1] = optionArray[i];
+ optionArray[i] = swap;
+ shifted = true;
+ }
+ }
+ }
+ }
+
$(optionArray).each(function(index, value) {
$select.append(value);
});
@@ -270,6 +371,18 @@ one.lib.nav = {
}
}
+one.lib.helper = {
+ parseInt : function(value) {
+ return (value !== null && value !== '') ?
+ parseInt(value) : ''
+ },
+ parseFloat : function(value) {
+ return (value !== null && value !== '') ?
+ parseFloat(value) : ''
+ }
+}
+
+
/** ALERT */
one.lib.alert = function(alert) {
$("#alert p").text(alert);
@@ -279,4 +392,4 @@ one.lib.alert = function(alert) {
one.lib.registry.alert = setTimeout(function() {
$("#alert").slideUp();
}, 8000);
-}
\ No newline at end of file
+}