// SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors // // SPDX-License-Identifier: AGPL-3.0-or-later define([ 'jquery', '/common/toolbar.js', '/components/nthen/index.js', '/common/sframe-common.js', '/common/common-interface.js', '/common/common-ui-elements.js', '/common/common-util.js', '/common/common-hash.js', '/common/inner/sidebar-layout.js', '/common/inner/badges.js', '/common/inner/common-mediatag.js', '/customize/messages.js', '/common/hyperscript.js', '/common/common-credential.js', '/customize/application_config.js', '/api/config', '/common/make-backup.js', '/common/common-feedback.js', '/common/common-constants.js', '/customize.dist/login.js', '/common/sframe-common-codemirror.js', 'cm/lib/codemirror', '/common/common-icons.js', 'cm/mode/gfm/gfm', '/common/jscolor.js', '/components/file-saver/FileSaver.min.js', 'css!/components/codemirror/lib/codemirror.css', 'css!/components/codemirror/addon/dialog/dialog.css', 'css!/components/codemirror/addon/fold/foldgutter.css', 'css!/components/bootstrap/dist/css/bootstrap.min.css', 'less!/settings/app-settings.less', ], function( $, Toolbar, nThen, SFCommon, UI, UIElements, Util, Hash, Sidebar, Badges, MT, Messages, h, Cred, AppConfig, ApiConfig, Backup, Feedback, Constants, Login, SFCodeMirror, CodeMirror, Icons ) { var saveAs = window.saveAs; var APP = window.APP = {}; var common; var metadataMgr; var privateData; var sframeChan; var onProfileEvt = Util.mkEvent(); var categories = { 'account': [ // Msg.settings_cat_account 'cp-settings-own-drive', 'cp-settings-info-block', 'cp-settings-language-selector', 'cp-settings-mediatag-size', 'cp-settings-delete' ], 'profile': [ // Msg.settings_cat_profile 'cp-settings-profile-header', 'cp-settings-profile-name', 'cp-settings-profile-avatar', 'cp-settings-profile-badges', 'cp-settings-profile-link', 'cp-settings-profile-description', ], 'security': [ // Msg.settings_cat_security 'cp-settings-logout-everywhere', 'cp-settings-mfa', 'cp-settings-change-password', 'cp-settings-safe-links', 'cp-settings-userfeedback', 'cp-settings-cache', 'cp-settings-remove-owned' ], 'style': [ // Msg.settings_cat_style 'cp-settings-colortheme', 'cp-settings-custom-theme', ], 'drive': [ 'cp-settings-redirect', 'cp-settings-resettips', 'cp-settings-autostore', 'cp-settings-drive-duplicate', 'cp-settings-thumbnails', 'cp-settings-drive-backup', 'cp-settings-drive-import-local', 'cp-settings-trim-history', //'cp-settings-drive-reset' ], 'cursor': [ // Msg.settings_cat_cursor 'cp-settings-cursor-color', 'cp-settings-cursor-share', 'cp-settings-cursor-show', ], 'pad': [ // Msg.settings_cat_pad 'cp-settings-pad-width', 'cp-settings-pad-spellcheck', 'cp-settings-pad-notif', 'cp-settings-pad-openlink', ], 'code': [ // Msg.settings_cat_code 'cp-settings-code-indent-unit', 'cp-settings-code-indent-type', 'cp-settings-code-brackets', 'cp-settings-code-font-size', 'cp-settings-code-spellcheck', ], 'kanban': [ // Msg.settings_cat_kanban 'cp-settings-kanban-tags', ], 'notifications': [ 'cp-settings-notif-calendar' ] }; if (AppConfig.disableFeedback) { var feedbackIdx = categories.security.indexOf('cp-settings-userfeedback'); categories.security.splice(feedbackIdx, 1); } if (AppConfig.disableProfile) { delete categories.profile; } var create = {}; var SPECIAL_HINTS_HANDLER = { safeLinks: function() { return $('', { 'class': 'cp-sidebarlayout-description' }) .html(Messages._getKey('settings_safeLinksHint', [''])); }, }; var DEFAULT_HINT_HANDLER = function(safeKey) { return $('', { 'class': 'cp-sidebarlayout-description' }) .text(Messages['settings_' + safeKey + 'Hint'] || 'Coming soon...'); }; var makeBlock = function(key, getter, full, isNew) { var safeKey = key.replace(/-([a-z])/g, function(g) { return g[1].toUpperCase(); }); create[key] = function() { var $div = $('
', { 'class': 'cp-settings-' + key + ' cp-sidebarlayout-element' }); if (isNew) { $div.attr('data-item', key); } if (full) { $('