Fix the stacking of notification messages
authorAlexander Ebert <ebert@woltlab.com>
Thu, 6 Apr 2023 13:49:13 +0000 (15:49 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Thu, 6 Apr 2023 13:49:13 +0000 (15:49 +0200)
Fixes #5396

ts/WoltLabSuite/Core/Ui/Notification.ts
wcfsetup/install/files/js/WoltLabSuite/Core/Ui/Notification.js

index b858d2914e03965a621b13258b4b14d54577a22e..c61f9913ffcf8b846db21478b3c595d2bc89d359 100644 (file)
@@ -6,7 +6,8 @@
  * @license  GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  */
 
-import * as Language from "../Language";
+import { getPageOverlayContainer } from "../Helper/PageOverlay";
+import { getPhrase } from "../Language";
 
 type Callback = () => void;
 
@@ -30,7 +31,7 @@ function init() {
   _message.addEventListener("click", hide);
   _notificationElement.appendChild(_message);
 
-  document.body.appendChild(_notificationElement);
+  getPageOverlayContainer().appendChild(_notificationElement);
 }
 
 /**
@@ -61,7 +62,7 @@ export function show(message?: string, callback?: Callback | null, cssClassName?
 
   _callback = typeof callback === "function" ? callback : null;
   _message.className = cssClassName || "success";
-  _message.textContent = Language.get(message || "wcf.global.success");
+  _message.textContent = getPhrase(message || "wcf.global.success");
 
   _notificationElement.classList.add("active");
   _timeout = setTimeout(hide, 2000);
index 71456a37e9b74735050891a28e9fac2bdb1ddd5b..bbce221e9064a4191ac1c03f5832bb7db648e7d2 100644 (file)
@@ -5,11 +5,10 @@
  * @copyright  2001-2019 WoltLab GmbH
  * @license  GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  */
-define(["require", "exports", "tslib", "../Language"], function (require, exports, tslib_1, Language) {
+define(["require", "exports", "../Helper/PageOverlay", "../Language"], function (require, exports, PageOverlay_1, Language_1) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });
     exports.show = void 0;
-    Language = tslib_1.__importStar(Language);
     let _busy = false;
     let _callback = null;
     let _didInit = false;
@@ -26,7 +25,7 @@ define(["require", "exports", "tslib", "../Language"], function (require, export
         _message = document.createElement("p");
         _message.addEventListener("click", hide);
         _notificationElement.appendChild(_message);
-        document.body.appendChild(_notificationElement);
+        (0, PageOverlay_1.getPageOverlayContainer)().appendChild(_notificationElement);
     }
     /**
      * Hides the notification and invokes the callback if provided.
@@ -50,7 +49,7 @@ define(["require", "exports", "tslib", "../Language"], function (require, export
         init();
         _callback = typeof callback === "function" ? callback : null;
         _message.className = cssClassName || "success";
-        _message.textContent = Language.get(message || "wcf.global.success");
+        _message.textContent = (0, Language_1.getPhrase)(message || "wcf.global.success");
         _notificationElement.classList.add("active");
         _timeout = setTimeout(hide, 2000);
     }