|
|
|
|
@ -29,13 +29,6 @@ window.Popup = new (class { |
|
|
|
|
open(name) { |
|
|
|
|
const self = this; |
|
|
|
|
const popupName = `${name}Popup`; |
|
|
|
|
const $contentWrapper = $('.content-wrapper') |
|
|
|
|
if ($contentWrapper.length > 0) { |
|
|
|
|
const contentWrapper = $contentWrapper[0]; |
|
|
|
|
this._getTopStack().scrollTop = contentWrapper.scrollTop; |
|
|
|
|
// scroll from e.g. delete comment to the top (where the confirm button is)
|
|
|
|
|
$contentWrapper.scrollTop(0); |
|
|
|
|
} |
|
|
|
|
function clickFromPopup(evt) { |
|
|
|
|
return $(evt.target).closest('.js-pop-over').length !== 0; |
|
|
|
|
} |
|
|
|
|
@ -83,6 +76,14 @@ window.Popup = new (class { |
|
|
|
|
dataContext: (this && this.currentData && this.currentData()) || (options && options.dataContextIfCurrentDataIsUndefined) || this, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const $contentWrapper = $('.content-wrapper') |
|
|
|
|
if ($contentWrapper.length > 0) { |
|
|
|
|
const contentWrapper = $contentWrapper[0]; |
|
|
|
|
self._getTopStack().scrollTop = contentWrapper.scrollTop; |
|
|
|
|
// scroll from e.g. delete comment to the top (where the confirm button is)
|
|
|
|
|
$contentWrapper.scrollTop(0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// If there are no popup currently opened we use the Blaze API to render
|
|
|
|
|
// one into the DOM. We use a reactive function as the data parameter that
|
|
|
|
|
// return the complete along with its top element and depends on our
|
|
|
|
|
@ -139,8 +140,10 @@ window.Popup = new (class { |
|
|
|
|
const $contentWrapper = $('.content-wrapper') |
|
|
|
|
if ($contentWrapper.length > 0) { |
|
|
|
|
const contentWrapper = $contentWrapper[0]; |
|
|
|
|
const stack = this._stack[this._stack.length - 1 - n]; |
|
|
|
|
if (contentWrapper.scrollTopMax && stack.scrollTop > contentWrapper.scrollTopMax) { |
|
|
|
|
const stack = this._stack[this._stack.length - n]; |
|
|
|
|
// scrollTopMax and scrollLeftMax only available at Firefox (https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTopMax)
|
|
|
|
|
const scrollTopMax = contentWrapper.scrollTopMax || contentWrapper.scrollHeight - contentWrapper.clientHeight; |
|
|
|
|
if (scrollTopMax && stack.scrollTop > scrollTopMax) { |
|
|
|
|
// sometimes scrollTopMax is lower than scrollTop, so i need this dirty hack
|
|
|
|
|
setTimeout(() => { |
|
|
|
|
$contentWrapper.scrollTop(stack.scrollTop); |
|
|
|
|
|