"use strict"; /** * Edit_User_Modal - Modal for editing existing user information * * Displays form to update user profile information. * Uses Edit_User_Modal_Form component for UI and validation. * * Returns updated user record on success, false on cancel. */ class Edit_User_Modal extends Modal_Abstract { /** * Show edit user modal * * @param {number} user_id - ID of user to edit * @returns {Promise} Updated user record on success, false on cancel */ static async show(user_id) { // Load user data for editing let user_data; try { user_data = await Frontend_Settings_User_Management_Controller.get_user_for_edit({ user_id }); } catch (error) { await Modal.error(error, 'Failed to Load User'); return false; } const result = await Modal.form({ title: 'Edit User', component: 'Edit_User_Modal_Form', component_args: { data: user_data }, on_submit: async form => { try { const values = form.vals(); const result = await Frontend_Settings_User_Management_Controller.save_user(values); return result; // Close modal, return user data } catch (error) { // Render error (form handles both validation and generic errors) await form.render_error(error); return false; // Keep modal open } } }); return result || false; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFZGl0X1VzZXJfTW9kYWwiLCJNb2RhbF9BYnN0cmFjdCIsInNob3ciLCJ1c2VyX2lkIiwidXNlcl9kYXRhIiwiRnJvbnRlbmRfU2V0dGluZ3NfVXNlcl9NYW5hZ2VtZW50X0NvbnRyb2xsZXIiLCJnZXRfdXNlcl9mb3JfZWRpdCIsImVycm9yIiwiTW9kYWwiLCJyZXN1bHQiLCJmb3JtIiwidGl0bGUiLCJjb21wb25lbnQiLCJjb21wb25lbnRfYXJncyIsImRhdGEiLCJvbl9zdWJtaXQiLCJ2YWx1ZXMiLCJ2YWxzIiwic2F2ZV91c2VyIiwicmVuZGVyX2Vycm9yIl0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9zZXR0aW5ncy91c2VyX21hbmFnZW1lbnQvZWRpdF91c2VyX21vZGFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRWRpdF9Vc2VyX01vZGFsIC0gTW9kYWwgZm9yIGVkaXRpbmcgZXhpc3RpbmcgdXNlciBpbmZvcm1hdGlvblxuICpcbiAqIERpc3BsYXlzIGZvcm0gdG8gdXBkYXRlIHVzZXIgcHJvZmlsZSBpbmZvcm1hdGlvbi5cbiAqIFVzZXMgRWRpdF9Vc2VyX01vZGFsX0Zvcm0gY29tcG9uZW50IGZvciBVSSBhbmQgdmFsaWRhdGlvbi5cbiAqXG4gKiBSZXR1cm5zIHVwZGF0ZWQgdXNlciByZWNvcmQgb24gc3VjY2VzcywgZmFsc2Ugb24gY2FuY2VsLlxuICovXG5jbGFzcyBFZGl0X1VzZXJfTW9kYWwgZXh0ZW5kcyBNb2RhbF9BYnN0cmFjdCB7XG4gICAgLyoqXG4gICAgICogU2hvdyBlZGl0IHVzZXIgbW9kYWxcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1c2VyX2lkIC0gSUQgb2YgdXNlciB0byBlZGl0XG4gICAgICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0fGZhbHNlPn0gVXBkYXRlZCB1c2VyIHJlY29yZCBvbiBzdWNjZXNzLCBmYWxzZSBvbiBjYW5jZWxcbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgc2hvdyh1c2VyX2lkKSB7XG4gICAgICAgIC8vIExvYWQgdXNlciBkYXRhIGZvciBlZGl0aW5nXG4gICAgICAgIGxldCB1c2VyX2RhdGE7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB1c2VyX2RhdGEgPSBhd2FpdCBGcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnRfQ29udHJvbGxlci5nZXRfdXNlcl9mb3JfZWRpdCh7dXNlcl9pZH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgYXdhaXQgTW9kYWwuZXJyb3IoZXJyb3IsICdGYWlsZWQgdG8gTG9hZCBVc2VyJyk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBNb2RhbC5mb3JtKHtcbiAgICAgICAgICAgIHRpdGxlOiAnRWRpdCBVc2VyJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogJ0VkaXRfVXNlcl9Nb2RhbF9Gb3JtJyxcbiAgICAgICAgICAgIGNvbXBvbmVudF9hcmdzOiB7ZGF0YTogdXNlcl9kYXRhfSxcbiAgICAgICAgICAgIG9uX3N1Ym1pdDogYXN5bmMgKGZvcm0pID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBmb3JtLnZhbHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgRnJvbnRlbmRfU2V0dGluZ3NfVXNlcl9NYW5hZ2VtZW50X0NvbnRyb2xsZXIuc2F2ZV91c2VyKHZhbHVlcyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7IC8vIENsb3NlIG1vZGFsLCByZXR1cm4gdXNlciBkYXRhXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVuZGVyIGVycm9yIChmb3JtIGhhbmRsZXMgYm90aCB2YWxpZGF0aW9uIGFuZCBnZW5lcmljIGVycm9ycylcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZm9ybS5yZW5kZXJfZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIEtlZXAgbW9kYWwgb3BlblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQgfHwgZmFsc2U7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxlQUFlLFNBQVNDLGNBQWMsQ0FBQztFQUN6QztBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDSSxhQUFhQyxJQUFJQSxDQUFDQyxPQUFPLEVBQUU7SUFDdkI7SUFDQSxJQUFJQyxTQUFTO0lBQ2IsSUFBSTtNQUNBQSxTQUFTLEdBQUcsTUFBTUMsNENBQTRDLENBQUNDLGlCQUFpQixDQUFDO1FBQUNIO01BQU8sQ0FBQyxDQUFDO0lBQy9GLENBQUMsQ0FBQyxPQUFPSSxLQUFLLEVBQUU7TUFDWixNQUFNQyxLQUFLLENBQUNELEtBQUssQ0FBQ0EsS0FBSyxFQUFFLHFCQUFxQixDQUFDO01BQy9DLE9BQU8sS0FBSztJQUNoQjtJQUVBLE1BQU1FLE1BQU0sR0FBRyxNQUFNRCxLQUFLLENBQUNFLElBQUksQ0FBQztNQUM1QkMsS0FBSyxFQUFFLFdBQVc7TUFDbEJDLFNBQVMsRUFBRSxzQkFBc0I7TUFDakNDLGNBQWMsRUFBRTtRQUFDQyxJQUFJLEVBQUVWO01BQVMsQ0FBQztNQUNqQ1csU0FBUyxFQUFFLE1BQU9MLElBQUksSUFBSztRQUN2QixJQUFJO1VBQ0EsTUFBTU0sTUFBTSxHQUFHTixJQUFJLENBQUNPLElBQUksQ0FBQyxDQUFDO1VBQzFCLE1BQU1SLE1BQU0sR0FBRyxNQUFNSiw0Q0FBNEMsQ0FBQ2EsU0FBUyxDQUFDRixNQUFNLENBQUM7VUFDbkYsT0FBT1AsTUFBTSxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLE9BQU9GLEtBQUssRUFBRTtVQUNaO1VBQ0EsTUFBTUcsSUFBSSxDQUFDUyxZQUFZLENBQUNaLEtBQUssQ0FBQztVQUM5QixPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQ2xCO01BQ0o7SUFDSixDQUFDLENBQUM7SUFFRixPQUFPRSxNQUFNLElBQUksS0FBSztFQUMxQjtBQUNKIiwiaWdub3JlTGlzdCI6W119