Add independent SendNewPassword handler
authorjoshuaruesweg <ruesweg@woltlab.com>
Fri, 18 Jun 2021 11:43:55 +0000 (13:43 +0200)
committerjoshuaruesweg <ruesweg@woltlab.com>
Mon, 28 Jun 2021 15:28:46 +0000 (17:28 +0200)
ts/WoltLabSuite/Core/Acp/Ui/User/Action/Handler/SendNewPassword.ts [new file with mode: 0644]
ts/WoltLabSuite/Core/Acp/Ui/User/Action/SendNewPasswordAction.ts
wcfsetup/install/files/js/WoltLabSuite/Core/Acp/Ui/User/Action/Handler/SendNewPassword.js [new file with mode: 0644]
wcfsetup/install/files/js/WoltLabSuite/Core/Acp/Ui/User/Action/SendNewPasswordAction.js

diff --git a/ts/WoltLabSuite/Core/Acp/Ui/User/Action/Handler/SendNewPassword.ts b/ts/WoltLabSuite/Core/Acp/Ui/User/Action/Handler/SendNewPassword.ts
new file mode 100644 (file)
index 0000000..4dc42b2
--- /dev/null
@@ -0,0 +1,49 @@
+import * as Language from "../../../../../Language";
+import * as UiConfirmation from "../../../../../Ui/Confirmation";
+import AcpUiWorker from "../../../Worker";
+
+interface AjaxResponse {
+  loopCount: number;
+  parameters: ArbitraryObject;
+  proceedURL: string;
+  progress: number;
+  template?: string;
+}
+
+type CallbackSuccess = (data: AjaxResponse) => void;
+
+/**
+ * @author  Joshua Ruesweg
+ * @copyright  2001-2021 WoltLab GmbH
+ * @license  GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @module  WoltLabSuite/Core/Acp/Ui/User/Action/Handler
+ * @since       5.5
+ */
+export class SendNewPassword {
+  private userIDs: number[];
+  private successCallback: CallbackSuccess | null;
+
+  public constructor(userIDs: number[], successCallback: CallbackSuccess | null) {
+    this.userIDs = userIDs;
+    this.successCallback = successCallback;
+  }
+
+  send(): void {
+    UiConfirmation.show({
+      confirm: () => {
+        new AcpUiWorker({
+          dialogId: "sendingNewPasswords",
+          dialogTitle: Language.get("wcf.acp.user.sendNewPassword.workerTitle"),
+          className: "wcf\\system\\worker\\SendNewPasswordWorker",
+          parameters: {
+            userIDs: this.userIDs,
+          },
+          callbackSuccess: this.successCallback,
+        });
+      },
+      message: Language.get("wcf.acp.user.action.sendNewPassword.confirmMessage"),
+    });
+  }
+}
+
+export default SendNewPassword;
index 53d2555e25b436f2ee560f244e2ac1a80853765f..9bfde2d23955cfd16b3f7997a7c5ddb828b79de4 100644 (file)
@@ -1,6 +1,5 @@
-import * as EventHandler from "../../../../Event/Handler";
-import * as Language from "../../../../Language";
 import AbstractUserAction from "./AbstractUserAction";
+import SendNewPassword from "./Handler/SendNewPassword";
 
 /**
  * @author  Joshua Ruesweg
@@ -14,20 +13,10 @@ export class SendNewPasswordAction extends AbstractUserAction {
     this.button.addEventListener("click", (event) => {
       event.preventDefault();
 
-      // emulate clipboard selection
-      EventHandler.fire("com.woltlab.wcf.clipboard", "com.woltlab.wcf.user", {
-        data: {
-          actionName: "com.woltlab.wcf.user.sendNewPassword",
-          parameters: {
-            confirmMessage: Language.get("wcf.acp.user.action.sendNewPassword.confirmMessage"),
-            objectIDs: [this.userId],
-          },
-        },
-        responseData: {
-          actionName: "com.woltlab.wcf.user.sendNewPassword",
-          objectIDs: [this.userId],
-        },
+      const sendNewPasswordHandler = new SendNewPassword([this.userId], () => {
+        location.reload();
       });
+      sendNewPasswordHandler.send();
     });
   }
 }
diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/Acp/Ui/User/Action/Handler/SendNewPassword.js b/wcfsetup/install/files/js/WoltLabSuite/Core/Acp/Ui/User/Action/Handler/SendNewPassword.js
new file mode 100644 (file)
index 0000000..b0ad9ab
--- /dev/null
@@ -0,0 +1,39 @@
+define(["require", "exports", "tslib", "../../../../../Language", "../../../../../Ui/Confirmation", "../../../Worker"], function (require, exports, tslib_1, Language, UiConfirmation, Worker_1) {
+    "use strict";
+    Object.defineProperty(exports, "__esModule", { value: true });
+    exports.SendNewPassword = void 0;
+    Language = tslib_1.__importStar(Language);
+    UiConfirmation = tslib_1.__importStar(UiConfirmation);
+    Worker_1 = tslib_1.__importDefault(Worker_1);
+    /**
+     * @author  Joshua Ruesweg
+     * @copyright  2001-2021 WoltLab GmbH
+     * @license  GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+     * @module  WoltLabSuite/Core/Acp/Ui/User/Action/Handler
+     * @since       5.5
+     */
+    class SendNewPassword {
+        constructor(userIDs, successCallback) {
+            this.userIDs = userIDs;
+            this.successCallback = successCallback;
+        }
+        send() {
+            UiConfirmation.show({
+                confirm: () => {
+                    new Worker_1.default({
+                        dialogId: "sendingNewPasswords",
+                        dialogTitle: Language.get("wcf.acp.user.sendNewPassword.workerTitle"),
+                        className: "wcf\\system\\worker\\SendNewPasswordWorker",
+                        parameters: {
+                            userIDs: this.userIDs,
+                        },
+                        callbackSuccess: this.successCallback,
+                    });
+                },
+                message: Language.get("wcf.acp.user.action.sendNewPassword.confirmMessage"),
+            });
+        }
+    }
+    exports.SendNewPassword = SendNewPassword;
+    exports.default = SendNewPassword;
+});
index 2714c94180a57cb1b5b50a7e5b7f2343ae4aaf92..020425e13c7feda5d0316857705e6c96a3bb031b 100644 (file)
@@ -1,10 +1,9 @@
-define(["require", "exports", "tslib", "../../../../Event/Handler", "../../../../Language", "./AbstractUserAction"], function (require, exports, tslib_1, EventHandler, Language, AbstractUserAction_1) {
+define(["require", "exports", "tslib", "./AbstractUserAction", "./Handler/SendNewPassword"], function (require, exports, tslib_1, AbstractUserAction_1, SendNewPassword_1) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });
     exports.SendNewPasswordAction = void 0;
-    EventHandler = tslib_1.__importStar(EventHandler);
-    Language = tslib_1.__importStar(Language);
     AbstractUserAction_1 = tslib_1.__importDefault(AbstractUserAction_1);
+    SendNewPassword_1 = tslib_1.__importDefault(SendNewPassword_1);
     /**
      * @author  Joshua Ruesweg
      * @copyright  2001-2021 WoltLab GmbH
@@ -16,20 +15,10 @@ define(["require", "exports", "tslib", "../../../../Event/Handler", "../../../..
         init() {
             this.button.addEventListener("click", (event) => {
                 event.preventDefault();
-                // emulate clipboard selection
-                EventHandler.fire("com.woltlab.wcf.clipboard", "com.woltlab.wcf.user", {
-                    data: {
-                        actionName: "com.woltlab.wcf.user.sendNewPassword",
-                        parameters: {
-                            confirmMessage: Language.get("wcf.acp.user.action.sendNewPassword.confirmMessage"),
-                            objectIDs: [this.userId],
-                        },
-                    },
-                    responseData: {
-                        actionName: "com.woltlab.wcf.user.sendNewPassword",
-                        objectIDs: [this.userId],
-                    },
+                const sendNewPasswordHandler = new SendNewPassword_1.default([this.userId], () => {
+                    location.reload();
                 });
+                sendNewPasswordHandler.send();
             });
         }
     }