aboutsummaryrefslogtreecommitdiffstats
path: root/vid/src/main/webapp/app/vid/scripts/directives/popupWindowDirective.js
diff options
context:
space:
mode:
Diffstat (limited to 'vid/src/main/webapp/app/vid/scripts/directives/popupWindowDirective.js')
-rw-r--r--vid/src/main/webapp/app/vid/scripts/directives/popupWindowDirective.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/vid/src/main/webapp/app/vid/scripts/directives/popupWindowDirective.js b/vid/src/main/webapp/app/vid/scripts/directives/popupWindowDirective.js
new file mode 100644
index 000000000..a52d5862a
--- /dev/null
+++ b/vid/src/main/webapp/app/vid/scripts/directives/popupWindowDirective.js
@@ -0,0 +1,88 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+"use strict";
+
+var popupWindowDirective = function($log, $window) {
+
+ function getZIndex(element) {
+ var maxZIndex = 0;
+ $(window.document).find("*").each(function() {
+ var zIndex = parseInt($(this).css("z-index"));
+ if (zIndex > maxZIndex) {
+ maxZIndex = zIndex;
+ }
+ });
+
+ return maxZIndex;
+ }
+
+ var scrollPosition = {
+ x : 0,
+ y : 0
+ };
+
+ var link = function(scope, element, attrs, controller, transcludeFn) {
+
+ var zIndex = getZIndex(element.parent()) + 1;
+
+ element.css("z-index", zIndex + 1);
+
+ var backgroundStyle = "display: none; position: fixed; z-index:"
+ + zIndex + ";" + "top: 0; left: 0; width: 100%; height: 100%;"
+ + "background-color: #000000; opacity: 0.5";
+
+ var className = attrs["class"];
+ var classString = "";
+ if (className !== undefined && className !== null && className !== "") {
+ element.children().children().children().children().addClass(
+ className);
+ element.removeClass(className);
+ }
+
+ element.before("<div style='" + backgroundStyle + "'></div>");
+
+ attrs.$observe("ngxShow", function(value) {
+ if (value === "true") {
+ scrollPosition = {
+ x : $window.pageXOffset,
+ y : $window.pageYOffset
+ }
+ $window.scrollTo(0, 0);
+ element.css("display", "table");
+ element.prev().css("display", "block");
+ } else if (value === "false") {
+ element.css("display", "none");
+ element.prev().css("display", "none");
+ $window.scrollTo(scrollPosition.x, scrollPosition.y);
+ }
+ });
+ }
+
+ return {
+ restrict : "EA",
+ transclude : true,
+ replace : true,
+ link : link,
+ templateUrl : "app/vid/scripts/view-models/popupWindow.htm"
+ };
+}
+
+app.directive("popupWindow", [ "$log", "$window", popupWindowDirective ]);