Merge "Added description to meter types yang model."
[controller.git] / opendaylight / web / root / src / main / resources / js / lib.js
index 90fd49772a71f0027811817cd3a07671db19f0d1..c265760b97d28ff95210822e7bb0bf02293af925 100644 (file)
@@ -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) {
@@ -215,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);
 
@@ -230,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
@@ -251,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 = {};
@@ -261,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);
             });
@@ -336,6 +371,18 @@ one.lib.nav = {
     }
 }
 
+one.lib.helper = {
+    parseInt : function(value) {
+        return (value != null && value.trim() !== '') ?
+            parseInt(value) : ''
+    },
+    parseFloat : function(value) {
+        return (value != null && value.trim() !== '') ?
+            parseFloat(value) : ''
+    }
+}
+
+
 /** ALERT */
 one.lib.alert = function(alert) {
     $("#alert p").text(alert);