[Kimchi-devel] [PATCH 30/38] Move isElementInViewport() back to wok

Lucio Correia luciojhc at linux.vnet.ibm.com
Thu May 21 21:33:43 UTC 2015


From: Lucio <luciojhc at linux.vnet.ibm.com>

---
 plugins/kimchi/ui/js/src/kimchi.host.js  |    2 +-
 plugins/kimchi/ui/js/src/kimchi.utils.js |   25 -----------------
 ui/js/src/wok.popable.js                 |    2 +-
 ui/js/src/wok.utils.js                   |   43 ++++++++++++++++++++++++++++++
 4 files changed, 45 insertions(+), 27 deletions(-)
 create mode 100644 ui/js/src/wok.utils.js

diff --git a/plugins/kimchi/ui/js/src/kimchi.host.js b/plugins/kimchi/ui/js/src/kimchi.host.js
index 7fdf820..0b4ffd0 100644
--- a/plugins/kimchi/ui/js/src/kimchi.host.js
+++ b/plugins/kimchi/ui/js/src/kimchi.host.js
@@ -219,7 +219,7 @@ kimchi.host_main = function() {
                     var progressArea = $('#' + progressAreaID)[0];
                     $('#software-updates-progress-container').removeClass('hidden');
                     $(progressArea).text('');
-                    !kimchi.isElementInViewport(progressArea) &&
+                    !wok.isElementInViewport(progressArea) &&
                         progressArea.scrollIntoView();
                     $(updateButton).text(i18n['KCHUPD6007M']).prop('disabled', true);
 
diff --git a/plugins/kimchi/ui/js/src/kimchi.utils.js b/plugins/kimchi/ui/js/src/kimchi.utils.js
index f26a560..b22e2ed 100644
--- a/plugins/kimchi/ui/js/src/kimchi.utils.js
+++ b/plugins/kimchi/ui/js/src/kimchi.utils.js
@@ -17,31 +17,6 @@
  */
 
 /**
- * To check whether a given DOM node is entirely within the viewport
- * of a browser.
- * @param {DOMObject} el The given DOM node to check.
- *
- * @returns {true|false|undefined}
- *     true if the node is within viewport, or
- *     false if the node is not entirely visible, or
- *     undefined if the given parameter is invalid.
- */
-kimchi.isElementInViewport = function(el) {
-    if (!el || !el.getBoundingClientRect) {
-        return undefined;
-    }
-
-    var rect = el.getBoundingClientRect();
-
-    return (
-        rect.top >= 0 &&
-        rect.left >= 0 &&
-        rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
-        rect.right <= (window.innerWidth || document.documentElement.clientWidth)
-    );
-};
-
-/**
  * To change the byte to proper unit.
  * @param number needed to change unit.
  * @param digits after the decimal point.
diff --git a/ui/js/src/wok.popable.js b/ui/js/src/wok.popable.js
index 19f1555..7c01a0e 100644
--- a/ui/js/src/wok.popable.js
+++ b/ui/js/src/wok.popable.js
@@ -28,7 +28,7 @@ wok.popable = function() {
 
         // Scroll the popup menu into viewport if invisible.
         !$(popup).is(':visible') ||
-            kimchi.isElementInViewport(popup) ||
+            wok.isElementInViewport(popup) ||
             popup.scrollIntoView();
     });
 };
diff --git a/ui/js/src/wok.utils.js b/ui/js/src/wok.utils.js
new file mode 100644
index 0000000..5756323
--- /dev/null
+++ b/ui/js/src/wok.utils.js
@@ -0,0 +1,43 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2013-2014
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * To check whether a given DOM node is entirely within the viewport
+ * of a browser.
+ * @param {DOMObject} el The given DOM node to check.
+ *
+ * @returns {true|false|undefined}
+ *     true if the node is within viewport, or
+ *     false if the node is not entirely visible, or
+ *     undefined if the given parameter is invalid.
+ */
+wok.isElementInViewport = function(el) {
+    if (!el || !el.getBoundingClientRect) {
+        return undefined;
+    }
+
+    var rect = el.getBoundingClientRect();
+
+    return (
+        rect.top >= 0 &&
+        rect.left >= 0 &&
+        rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
+        rect.right <= (window.innerWidth || document.documentElement.clientWidth)
+    );
+};
+
-- 
1.7.1




More information about the Kimchi-devel mailing list