Jelajahi Sumber

TableAjax fix bug in positioning inline edit modal box when scrolled

Piotr Labudda 10 tahun lalu
induk
melakukan
124d6b07bd
1 mengubah file dengan 13 tambahan dan 4 penghapusan
  1. 13 4
      SE/se-lib/TableAjax.php

+ 13 - 4
SE/se-lib/TableAjax.php

@@ -942,8 +942,6 @@ class TableAjax extends ViewAjax {
 				_table.find('tbody').remove();
 				_body = $('<tbody></tbody>').insertAfter(_head);
 				_body.on('change', '.unique', priv.rowChecked);
-				//_body.on('click', 'td', priv.rowClicked);
-				//_body.on('dbclick', 'td', priv.rowDBClicked);
 
 				//find out what rows to show next...
 				var rowsAdded = 0;
@@ -2306,12 +2304,23 @@ class TableAjax extends ViewAjax {
 				_inlineEditBox.on('shown.bs.modal', function(e) {
 					var dialogBox = jQuery(this).find('.modal-dialog'),
 							modalBody = dialogBox.find('.modal-body'),
-							offset = dialogBox.offset();
-					dialogBox.css({position: 'absolute', margin:0, top: offset.top, left: offset.left});
+							boudingRect = dialogBox.get(0).getBoundingClientRect();
+					dialogBox.css({position: 'absolute', margin:0, top: boudingRect.top, left: boudingRect.left});
 					modalBody.css({overflow: 'scroll'});
 					dialogBox.resizable({minHeight: 300, minWidth: 300, alsoResize: modalBody});
 					dialogBox.draggable();
 				});
+				_inlineEditBox.on('hidden.bs.modal', function(e) {
+					var dialogBox = jQuery(this).find('.modal-dialog'),
+							modalBody = dialogBox.find('.modal-body');
+					dialogBox.removeAttr('style');
+					modalBody.removeAttr('style');
+					modalBody.css({padding: '0'});
+					dialogBox.resizable();
+					dialogBox.draggable();
+					dialogBox.resizable('destroy');
+					dialogBox.draggable('destroy');
+				});
 				_inlineEditBox.find('input[name=ID]').val(e.data.id);
 				_inlineEditBox.find('input[name=col]').val(e.data.col);
 				_inlineEditBox.find('.inlineEditBox-cnt').html('<span class="loading-info"> loading ...</span>');