comparison core/misc/dialog/dialog.position.js @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents 4c8ae668cc8c
children af1871eacc83
comparison
equal deleted inserted replaced
16:c2387f117808 17:129ea1e6d783
5 * @preserve 5 * @preserve
6 **/ 6 **/
7 7
8 (function ($, Drupal, drupalSettings, debounce, displace) { 8 (function ($, Drupal, drupalSettings, debounce, displace) {
9 drupalSettings.dialog = $.extend({ autoResize: true, maxHeight: '95%' }, drupalSettings.dialog); 9 drupalSettings.dialog = $.extend({ autoResize: true, maxHeight: '95%' }, drupalSettings.dialog);
10
11 function resetPosition(options) {
12 var offsets = displace.offsets;
13 var left = offsets.left - offsets.right;
14 var top = offsets.top - offsets.bottom;
15
16 var leftString = (left > 0 ? '+' : '-') + Math.abs(Math.round(left / 2)) + 'px';
17 var topString = (top > 0 ? '+' : '-') + Math.abs(Math.round(top / 2)) + 'px';
18 options.position = {
19 my: 'center' + (left !== 0 ? leftString : '') + ' center' + (top !== 0 ? topString : ''),
20 of: window
21 };
22 return options;
23 }
10 24
11 function resetSize(event) { 25 function resetSize(event) {
12 var positionOptions = ['width', 'height', 'minWidth', 'minHeight', 'maxHeight', 'maxWidth', 'position']; 26 var positionOptions = ['width', 'height', 'minWidth', 'minHeight', 'maxHeight', 'maxWidth', 'position'];
13 var adjustedOptions = {}; 27 var adjustedOptions = {};
14 var windowHeight = $(window).height(); 28 var windowHeight = $(window).height();
35 adjustedOptions = resetPosition(adjustedOptions); 49 adjustedOptions = resetPosition(adjustedOptions);
36 } 50 }
37 event.data.$element.dialog('option', adjustedOptions).trigger('dialogContentResize'); 51 event.data.$element.dialog('option', adjustedOptions).trigger('dialogContentResize');
38 } 52 }
39 53
40 function resetPosition(options) {
41 var offsets = displace.offsets;
42 var left = offsets.left - offsets.right;
43 var top = offsets.top - offsets.bottom;
44
45 var leftString = (left > 0 ? '+' : '-') + Math.abs(Math.round(left / 2)) + 'px';
46 var topString = (top > 0 ? '+' : '-') + Math.abs(Math.round(top / 2)) + 'px';
47 options.position = {
48 my: 'center' + (left !== 0 ? leftString : '') + ' center' + (top !== 0 ? topString : ''),
49 of: window
50 };
51 return options;
52 }
53
54 $(window).on({ 54 $(window).on({
55 'dialog:aftercreate': function dialogAftercreate(event, dialog, $element, settings) { 55 'dialog:aftercreate': function dialogAftercreate(event, dialog, $element, settings) {
56 var autoResize = debounce(resetSize, 20); 56 var autoResize = debounce(resetSize, 20);
57 var eventData = { settings: settings, $element: $element }; 57 var eventData = { settings: settings, $element: $element };
58 if (settings.autoResize === true || settings.autoResize === 'true') { 58 if (settings.autoResize === true || settings.autoResize === 'true') {