/** * Copyright (C) 2024 Puter Technologies Inc. * * This file is part of Puter. * * Puter is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ import UIWindow from './UIWindow.js' async function UIWindowChangePassword(){ const internal_id = window.uuidv4(); let h = ''; h += `
`; // error msg h += `
`; // success msg h += `
`; // current password h += `
`; h += ``; h += ``; h += `
`; // new password h += `
`; h += ``; h += ``; h += `
`; // confirm new password h += `
`; h += ``; h += ``; h += `
`; // Change Password h += ``; h += `
`; const el_window = await UIWindow({ title: 'Change Password', app: 'change-passowrd', single_instance: true, icon: null, uid: null, is_dir: false, body_content: h, has_head: true, selectable_body: false, draggable_body: false, allow_context_menu: false, is_resizable: false, is_droppable: false, init_center: true, allow_native_ctxmenu: false, allow_user_select: false, width: 350, height: 'auto', dominant: true, show_in_taskbar: false, onAppend: function(this_window){ $(this_window).find(`.current-password`).get(0).focus({preventScroll:true}); }, window_class: 'window-publishWebsite', body_css: { width: 'initial', height: '100%', 'background-color': 'rgb(245 247 249)', 'backdrop-filter': 'blur(3px)', } }) $(el_window).find('.change-password-btn').on('click', function(e){ const current_password = $(el_window).find('.current-password').val(); const new_password = $(el_window).find('.new-password').val(); const confirm_new_password = $(el_window).find('.confirm-new-password').val(); let data; if(current_password === '' || new_password === '' || confirm_new_password === ''){ $(el_window).find('.form-error-msg').html('All fields are required.'); $(el_window).find('.form-error-msg').fadeIn(); return; } else if(new_password !== confirm_new_password){ $(el_window).find('.form-error-msg').html('`New Password` and `Confirm New Password` do not match.'); $(el_window).find('.form-error-msg').fadeIn(); return; } $(el_window).find('.form-error-msg').hide(); $.ajax({ url: api_origin + "/passwd", type: 'POST', async: true, headers: { "Authorization": "Bearer "+auth_token }, contentType: "application/json", data: JSON.stringify({ old_pass: current_password, new_pass: new_password, }), success: function (data){ $(el_window).find('.form-success-msg').html('Password changed successfully.'); $(el_window).find('.form-success-msg').fadeIn(); $(el_window).find('input').val(''); }, error: function (err){ $(el_window).find('.form-error-msg').html(err.responseText); $(el_window).find('.form-error-msg').fadeIn(); } }); }) } export default UIWindowChangePassword