123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- /**
- * 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 <https://www.gnu.org/licenses/>.
- */
- import UIWindowChangePassword from '../UIWindowChangePassword.js';
- import UIWindowChangeEmail from './UIWindowChangeEmail.js';
- import UIWindowChangeUsername from '../UIWindowChangeUsername.js';
- import UIWindowConfirmUserDeletion from './UIWindowConfirmUserDeletion.js';
- import UIWindowManageSessions from '../UIWindowManageSessions.js';
- // About
- export default {
- id: 'account',
- title_i18n_key: 'account',
- icon: 'user.svg',
- html: () => {
- let h = `<h1>${i18n('account')}</h1>`;
- // change password button
- if(!window.user.is_temp){
- h += `<div class="settings-card">`;
- h += `<strong>${i18n('password')}</strong>`;
- h += `<div style="flex-grow:1;">`;
- h += `<button class="button change-password" style="float:right;">${i18n('change_password')}</button>`;
- h += `</div>`;
- h += `</div>`;
- }
- // change username button
- h += `<div class="settings-card">`;
- h += `<div>`;
- h += `<strong style="display:block;">${i18n('username')}</strong>`;
- h += `<span class="username" style="display:block; margin-top:5px;">${html_encode(window.user.username)}</span>`;
- h += `</div>`;
- h += `<div style="flex-grow:1;">`;
- h += `<button class="button change-username" style="float:right;">${i18n('change_username')}</button>`;
- h += `</div>`
- h += `</div>`;
- // change email button
- if(window.user.email){
- h += `<div class="settings-card">`;
- h += `<div>`;
- h += `<strong style="display:block;">${i18n('email')}</strong>`;
- h += `<span class="user-email" style="display:block; margin-top:5px;">${html_encode(window.user.email)}</span>`;
- h += `</div>`;
- h += `<div style="flex-grow:1;">`;
- h += `<button class="button change-email" style="float:right;">${i18n('change_email')}</button>`;
- h += `</div>`;
- h += `</div>`;
- }
- // session manager
- h += `<div class="settings-card">`;
- h += `<strong>${i18n('sessions')}</strong>`;
- h += `<div style="flex-grow:1;">`;
- h += `<button class="button manage-sessions" style="float:right;">${i18n('manage_sessions')}</button>`;
- h += `</div>`;
- h += `</div>`;
- // 'Delete Account' button
- h += `<div class="settings-card settings-card-danger">`;
- h += `<strong style="display: inline-block;">${i18n("delete_account")}</strong>`;
- h += `<div style="flex-grow:1;">`;
- h += `<button class="button button-danger delete-account" style="float:right;">${i18n("delete_account")}</button>`;
- h += `</div>`;
- h += `</div>`;
- return h;
- },
- init: ($el_window) => {
- $el_window.find('.change-password').on('click', function (e) {
- UIWindowChangePassword({
- window_options:{
- parent_uuid: $el_window.attr('data-element_uuid'),
- disable_parent_window: true,
- parent_center: true,
- }
- });
- });
- $el_window.find('.change-username').on('click', function (e) {
- UIWindowChangeUsername({
- window_options:{
- parent_uuid: $el_window.attr('data-element_uuid'),
- disable_parent_window: true,
- parent_center: true,
- }
- });
- });
- $el_window.find('.change-email').on('click', function (e) {
- UIWindowChangeEmail({
- window_options:{
- parent_uuid: $el_window.attr('data-element_uuid'),
- disable_parent_window: true,
- parent_center: true,
- }
- });
- });
- $el_window.find('.manage-sessions').on('click', function (e) {
- UIWindowManageSessions({
- window_options:{
- parent_uuid: $el_window.attr('data-element_uuid'),
- disable_parent_window: true,
- parent_center: true,
- }
- });
- });
- $el_window.find('.delete-account').on('click', function (e) {
- UIWindowConfirmUserDeletion({
- window_options:{
- parent_uuid: $el_window.attr('data-element_uuid'),
- disable_parent_window: true,
- parent_center: true,
- }
- });
- });
- },
- };
|