]> git.openstreetmap.org Git - osqa.git/commitdiff
We check if the AJAX dialogs get into the browser viewport. If not, we change their...
authorjordan <jordan@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Tue, 28 Dec 2010 13:39:32 +0000 (13:39 +0000)
committerjordan <jordan@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Tue, 28 Dec 2010 13:39:32 +0000 (13:39 +0000)
git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@646 0cfe37f9-358a-4d5e-be75-b63607b5c754

forum/skins/default/media/js/osqa.main.js

index 43120b252980a00c32c340fd71627b2c2f7b6ccf..f83d3b5de87cb9698a2087ef1d30ba684c21217f 100644 (file)
@@ -185,10 +185,26 @@ function show_dialog (extern) {
         top: options.pos.y,\r
         left: options.pos.x\r
     });\r
         top: options.pos.y,\r
         left: options.pos.x\r
     });\r
-\r
+    \r
+    top_position_change = (options.dim.h / 2)\r
+    left_position_change = (options.dim.w / 2)\r
+    \r
+    new_top_position = options.pos.y - top_position_change\r
+    new_left_position = options.pos.x - left_position_change\r
+    \r
+    if (new_left_position < 0) {\r
+        left_position_change = 0\r
+    }\r
+    if (($(window).scrollTop() - new_top_position) > 0) {\r
+        top_position_change = 0\r
+    }\r
+    if ((options.event.pageY + options.dim.h) > ($(window).height() + $(window).scrollTop())) {\r
+        top_position_change = options.dim.h\r
+    }\r
+    \r
     $dialog.animate({\r
     $dialog.animate({\r
-        top: "-=" + (options.dim.h / 2),\r
-        left: "-=" + (options.dim.w / 2),\r
+        top: "-=" + top_position_change,\r
+        left: "-=" + left_position_change,\r
         width: options.dim.w,\r
         height: options.dim.h\r
     }, 200, function() {\r
         width: options.dim.w,\r
         height: options.dim.h\r
     }, 200, function() {\r