From e08aa14ec0dd67a8b07a4366ac886e8afa81de83 Mon Sep 17 00:00:00 2001 From: DianaXWiki <139217939+DianaXWiki@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:57:31 +0100 Subject: [PATCH] Commit changes for sidebar --- www/admin/inner.js | 2 +- www/common/inner/sidebar-layout.js | 11 ++- www/newadmin/inner.js | 136 +++++++++++++++++++++++++++-- 3 files changed, 142 insertions(+), 7 deletions(-) diff --git a/www/admin/inner.js b/www/admin/inner.js index 7ad80c1c5..f96dc55dc 100644 --- a/www/admin/inner.js +++ b/www/admin/inner.js @@ -1449,7 +1449,7 @@ Example return function () { var state = data.getState(); var key = data.key; - var $div = makeBlock(key); + var $div = makeBlock(key); //sidebar.addItem(data.key); var $hint; if (data.hintElement) { $hint = $div.find('.cp-sidebarlayout-description'); diff --git a/www/common/inner/sidebar-layout.js b/www/common/inner/sidebar-layout.js index 15bcf1d95..c8444929b 100644 --- a/www/common/inner/sidebar-layout.js +++ b/www/common/inner/sidebar-layout.js @@ -63,7 +63,16 @@ define([ blocks.text = (value) => { return h('span', value); }; - + blocks.checkbox = (key, label, state, opts) => { + var box = UI.createCheckbox(`cp-${app}-${key}`, + label, + state, { label: { class: 'noTitle' } }); + if (opts && opts.spinner) { + box.spinner = UI.makeSpinner($(box)); + } + return box; + }; + sidebar.addItem = (key, get) => { const safeKey = key.replace(/-([a-z])/g, function(g) { return g[1].toUpperCase(); }); diff --git a/www/newadmin/inner.js b/www/newadmin/inner.js index 61c6b297a..beeff4d1f 100644 --- a/www/newadmin/inner.js +++ b/www/newadmin/inner.js @@ -48,20 +48,129 @@ define([ 'general': { icon: 'fa fa-user-o', content: [ - 'flush-cache' + 'flush-cache', + 'update-limit', + 'enableembeds', + 'forcemfa', + 'email', + + 'instance-info-notice', + + 'name', + 'description', + 'jurisdiction', + 'notice', + ] + }, + 'users' : { + icon : 'fa fa-address-card-o', + content : [ + 'registration', + 'invitation', + 'users' ] }, 'quota': { icon: 'fa fa-hdd-o', content: [ - 'defaultlimit' + 'defaultlimit', + 'setlimit', + 'getlimits', ] }, + 'database' : { + icon : 'fa fa-database', + content : [ + 'account-metadata', + 'document-metadata', + 'block-metadata', + 'totp-recovery', + + ] + }, + 'stats' : { + icon : 'fa fa-line-chart', + content : [ + 'refresh-stats', + 'uptime', + 'active-sessions', + 'active-pads', + 'open-files', + 'registered', + 'disk-usage', + ] + }, + 'support' : { + icon : 'fa fa-life-ring', + content : [ + 'support-list', + 'support-init', + 'support-priv', + ] + }, + 'broadcast' : { + icon: 'fa fa-bullhorn', + content : [ + 'maintenance', + 'survey', + 'broadcast', + ] + }, + 'performance' : { + icon : 'fa fa-heartbeat', + content : [ + 'refresh-performance', + 'performance-profiling', + 'enable-disk-measurements', + 'bytes-written', + ] + }, + 'network' : { + icon : 'fa fa-sitemap', + content : [ + 'update-available', + 'checkup', + 'block-daily-check', + 'provide-aggregate-statistics', + 'list-my-instance', + + 'consent-to-contact', + 'remove-donate-button', + 'instance-purpose', + ] + } }; const blocks = sidebar.blocks; + var makeAdminCheckbox = function (sidebar, data) { + return function () { + var state = data.getState(); + var key = data.key; + + sidebar.addItem(key, function (cb) { + var labelKey = 'admin_' + keyToCamlCase(key) + 'Label'; + var titleKey = 'admin_' + keyToCamlCase(key) + 'Title'; + var label = Messages[labelKey] || Messages[titleKey]; + var box = blocks.checkbox(key, label, state, { spinner: true }); + var $cbox = $(box); + var spinner = box.spinner; + var $checkbox = $cbox.find('input').on('change', function() { + spinner.spin(); + var val = $checkbox.is(':checked') || false; + $checkbox.attr('disabled', 'disabled'); + data.query(val, function (state) { + spinner.done(); + $checkbox[0].checked = state; + $checkbox.removeAttr('disabled'); + }); + }); + cb(box); + }); + }; + }; + //general blocks sidebar.addItem('flush-cache', function (cb) { - var button = blocks.button('primary', 'fa-ban', Messages.admin_flushCacheButton); + var button = blocks.button('primary', '', Messages.admin_flushCacheButton); var called = false; Util.onClickEnter($(button), function () { if (called) { return; } @@ -76,8 +185,26 @@ define([ cb(button); }); - var getPrettySize = UIElements.prettySize; + sidebar.addItem('update-limit', function (cb) { + var button = blocks.button('primary', '', Messages.admin_updateLimitButton); + var called = false; + Util.onClickEnter($(button), function () { + if (called) { return; } + called = true; + sFrameChan.query('Q_ADMIN_RPC', { + cmd: 'Q_UPDATE_LIMIT', + }, function (e, data) { + called = false; + UI.alert(data ? Messages.admin_updateLimitDone || 'done' : 'error' + e); + }); + }); + cb(button); + }); + create['enableembeds'] = makeAdminCheckbox(sidebar, data); + var getPrettySize = UIElements.prettySize; + //user blocks + //storage blocks sidebar.addItem('defaultlimit', function (cb) { var _limit = APP.instanceStatus.defaultStorageLimit; @@ -96,7 +223,6 @@ define([ var nav = blocks.nav([button]); // create current value text var text = blocks.text(Messages._getKey('admin_limit', [limit])); - // add these items in a form var form = blocks.form([ text,