From 14c05fd6f6c4d3e5df6ced22bb9951c6baa19a4a Mon Sep 17 00:00:00 2001 From: DianaXWiki <139217939+DianaXWiki@users.noreply.github.com> Date: Sat, 16 Mar 2024 16:42:09 +0100 Subject: [PATCH 1/5] Fix button placement + maintenance --- www/newadmin/inner.js | 82 +++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/www/newadmin/inner.js b/www/newadmin/inner.js index 8e7c21dcb..7e9766214 100644 --- a/www/newadmin/inner.js +++ b/www/newadmin/inner.js @@ -1994,10 +1994,9 @@ define([ var nav = blocks.nav([btn]); var form = blocks.form([ input, - passwordContainer, - results + passwordContainer ], nav); - + form.append(results); $passwordContainer.hide(); disable($btn); @@ -2155,9 +2154,9 @@ define([ var results = blocks.inline([]); var nav = blocks.nav([btn]); var form = blocks.form([ - input, - results + input ], nav); + form.append(results); var pending = false; var getInputState = function () { @@ -2280,9 +2279,9 @@ define([ var nav = blocks.nav([btn]); var form = blocks.form([ - textarea, - results + textarea ], nav); + form.append(results); disable($btn); var pending = false; @@ -2489,7 +2488,7 @@ define([ let attr = {'class': 'cp-strong'}; let entries = Object.keys(obj).map(function (k) { return [ - {attr, content:(k === 'total' ? k : '/' + k)}, + k === 'total' ? k : '/' + k, obj[k] ]; }); @@ -2596,11 +2595,10 @@ define([ sidebar.addItem('maintenance', function(cb){ var form = blocks.form([]); - var refresh = getApi(function (Broadcast) { var button = blocks.button('primary', '', Messages.admin_maintenanceButton); var $button = $(button); - var removeButton = blocks.button('btn-danger', '', Messages.admin_maintenanceCancel ); + var removeButton = blocks.button('danger', '', Messages.admin_maintenanceCancel ); var active; if (Broadcast && Broadcast.maintenance) { @@ -2616,14 +2614,14 @@ define([ } } var start = blocks.input({ - type: 'text', // Change the input type to text + type: 'date', id: 'cp-admin-start-input', - class: 'flatpickr-input' // Add a class for Flatpickr initialization + class: 'flatpickr-input' }); var end = blocks.input({ - type: 'text', // Change the input type to text + type: 'date', id: 'cp-admin-end-input', - class: 'flatpickr-input' // Add a class for Flatpickr initialization + class: 'flatpickr-input' }); var $start = $(start); var $end = $(end); @@ -2721,34 +2719,32 @@ define([ }); sidebar.addItem('survey', function(cb){ - var button = blocks.button('primary', '',Messages.admin_surveyButton); - var $button = $(button); - var removeButton = blocks.button('btn-danger', '',Messages.admin_surveyCancel ); - var active; - var nav = blocks.nav([button]); - - var input = blocks.input({ - type:'url' - }); - var $input = $(input); - var label = blocks.labelledInput(Messages.broadcast_surveyURL, input); - - var form = blocks.form([ - active, - label - ], nav); - + var form = blocks.form([]); var refresh = getApi(function (Broadcast) { - if (Broadcast && Broadcast.surveyURL) { - let a = blocks.link(Messages.admin_surveyActive, - Broadcast.surveyURL, false); - active = blocks.block([ - blocks.paragraph(a), - removeButton - ], 'cp-broadcast-active'); + var button = blocks.button('primary', '', Messages.admin_surveyButton); + var $button = $(button); + var removeButton = blocks.button('danger', '', Messages.admin_surveyCancel); + var active; + if (Broadcast && Broadcast.surveyURL) { + var a = h('a', {href: Broadcast.surveyURL}, Messages.admin_surveyActive); + $(a).click(function (e) { + e.preventDefault(); + common.openUnsafeURL(Broadcast.surveyURL); + }); + active = h('div.cp-broadcast-active', [ + h('p', a), + removeButton + ]); } + var input = blocks.input({ + type: 'text', + id: 'cp-admin-survey-url-input' + }); + var label = h('label', { for: 'cp-admin-survey-url-input' }, Messages.broadcast_surveyURL); + var $input = $(input); + // Extract form data var getData = function () { var url = $input.val(); @@ -2794,6 +2790,16 @@ define([ send(""); }); + $(form).empty().append([ + active, + label, + input, + h('br'), + h('div.cp-broadcast-form-submit', [ + button + ]) + ]); + }); refresh(); From d8ea21d92526ad9432a394c992955e1319c5e069 Mon Sep 17 00:00:00 2001 From: DianaXWiki <139217939+DianaXWiki@users.noreply.github.com> Date: Sat, 16 Mar 2024 16:48:55 +0100 Subject: [PATCH 2/5] Add additional styling --- customize.dist/src/less2/include/sidebar-layout.less | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/customize.dist/src/less2/include/sidebar-layout.less b/customize.dist/src/less2/include/sidebar-layout.less index 742201741..c7855a311 100644 --- a/customize.dist/src/less2/include/sidebar-layout.less +++ b/customize.dist/src/less2/include/sidebar-layout.less @@ -133,7 +133,8 @@ padding: 7px; } td { - padding: 2px; + padding: 0.3rem; + margin-right: 2px; } .cp-checkmark { padding: 0.5rem; @@ -155,6 +156,9 @@ font-weight: bold; } } + li.cp-notification{ + display: none; + } } .cp-sidebarlayout-description { display: block; From b7d9e4087c69f0dd0608ff96d191acb81b1692f0 Mon Sep 17 00:00:00 2001 From: yflory Date: Mon, 18 Mar 2024 16:21:21 +0100 Subject: [PATCH 3/5] Re-add fixes that were lost during merge --- www/newadmin/inner.js | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/www/newadmin/inner.js b/www/newadmin/inner.js index 33fd5d70f..57b6b939c 100644 --- a/www/newadmin/inner.js +++ b/www/newadmin/inner.js @@ -1358,29 +1358,22 @@ define([ }); sidebar.addItem('setlimit', function(cb){ - var user = blocks.input({ - type:'text', - id: 'cp-admin-setlimit-user', - value: '' - }); + var user = blocks.input({ type:'text', class: 'cp-setlimit-user'}); var userBlock = blocks.labelledInput(Messages.admin_limitUser, user); var $key = $(user); var limit = blocks.input({ type: 'number', min: 0, value: 0, - id: 'cp-admin-setlimit-value' + class: 'cp-setlimit-limit' }); var limitBlock = blocks.labelledInput(Messages.admin_limitMB, limit); - var note = blocks.input({ - type: 'text', - id: 'cp-admin-setlimit-note' - }); + var note = blocks.input({ type: 'text', class: 'cp-setlimit-note' }); var noteBlock = blocks.labelledInput(Messages.admin_limitSetNote, note); var $note = $(note); - var remove = blocks.button('danger', '',Messages.fc_remove ); - var set = blocks.button('primary', '', Messages.admin_setlimitButton); + var remove = blocks.button('danger', '', Messages.fc_remove ); + var set = blocks.button('primary', '', Messages.admin_setlimitButton); var nav = blocks.nav([set, remove]); var form = blocks.form([ @@ -2486,7 +2479,7 @@ define([ let attr = {'class': 'cp-strong'}; let entries = Object.keys(obj).map(function (k) { return [ - k === 'total' ? k : '/' + k, + {attr, content: (k === 'total' ? k : '/' + k)}, obj[k] ]; }); From 2357d64a02bb17334f29a7898ce28e39439e08fb Mon Sep 17 00:00:00 2001 From: DianaXWiki <139217939+DianaXWiki@users.noreply.github.com> Date: Tue, 19 Mar 2024 11:44:15 +0100 Subject: [PATCH 4/5] Commit modified labelledInput function + changes from review --- .../src/less2/include/sidebar-layout.less | 3 -- www/common/inner/sidebar-layout.js | 22 ++++++---- www/newadmin/inner.js | 43 ++++++------------- 3 files changed, 26 insertions(+), 42 deletions(-) diff --git a/customize.dist/src/less2/include/sidebar-layout.less b/customize.dist/src/less2/include/sidebar-layout.less index c7855a311..b89ea5b1c 100644 --- a/customize.dist/src/less2/include/sidebar-layout.less +++ b/customize.dist/src/less2/include/sidebar-layout.less @@ -156,9 +156,6 @@ font-weight: bold; } } - li.cp-notification{ - display: none; - } } .cp-sidebarlayout-description { display: block; diff --git a/www/common/inner/sidebar-layout.js b/www/common/inner/sidebar-layout.js index 12e38b7cf..5ae42940b 100644 --- a/www/common/inner/sidebar-layout.js +++ b/www/common/inner/sidebar-layout.js @@ -23,7 +23,6 @@ define([ ) { const Sidebar = {}; - Sidebar.create = function (common, app, $container) { const $leftside = $(h('div#cp-sidebarlayout-leftside')).appendTo($container); const $rightside = $(h('div#cp-sidebarlayout-rightside')).appendTo($container); @@ -35,11 +34,10 @@ define([ let uid = Util.uid(); let id = `cp-${app}-item-${uid}`; input.setAttribute('id', id); - return [ - h('label', { for: id }, label), - input, - ]; + let labelElement = h('label', { for: id }, label); + return h('div', { class: 'cp-labelled-input' }, [labelElement, input]); }; + blocks.button = (type, icon, text) => { type = type || 'primary'; if (icon && icon.indexOf('-') !== -1) { @@ -94,10 +92,16 @@ define([ blocks.unorderedList = function (entries) { const ul = h('ul'); - entries.forEach(entry => { - const li = h('li', [h('strong', entry)]); - ul.appendChild(li); - }); + + ul.updateContent = (entries) => { + ul.innerHTML = ''; + entries.forEach(entry => { + const li = h('li', entry); + ul.appendChild(li); + }); + }; + ul.updateContent(entries); + return ul; }; diff --git a/www/newadmin/inner.js b/www/newadmin/inner.js index 57b6b939c..4af588e63 100644 --- a/www/newadmin/inner.js +++ b/www/newadmin/inner.js @@ -2408,6 +2408,7 @@ define([ pre.append(String(e || data.error)); return; } + pre.innerText=''; pre.append(String(data)); }); }; @@ -2433,23 +2434,12 @@ define([ cb(pre); }); - function updateUnorderedList(ul, entries) { - ul.innerHTML = ''; - entries.forEach(entry => { - const li = document.createElement('li'); - const strong = document.createElement('strong'); - strong.textContent = entry[0] + ': ' + entry[1]; - li.appendChild(strong); - ul.appendChild(li); - }); - } - sidebar.addItem('disk-usage', function(cb){ var button = blocks.button('primary', '', Messages.admin_diskUsageButton); var $button = $(button); var called = false; var nav = blocks.nav([button]); - var content = blocks.unorderedList([]); + var content = blocks.table([], []); var form = blocks.form([ content ], nav); @@ -2483,7 +2473,7 @@ define([ obj[k] ]; }); - updateUnorderedList(content, entries); + content.updateContent(entries); }); }); }); @@ -2711,29 +2701,27 @@ define([ sidebar.addItem('survey', function(cb){ var form = blocks.form([]); + var $form = $(form); var refresh = getApi(function (Broadcast) { var button = blocks.button('primary', '', Messages.admin_surveyButton); - var $button = $(button); + let nav = blocks.nav([button]); var removeButton = blocks.button('danger', '', Messages.admin_surveyCancel); var active; - + var $button = $(button); if (Broadcast && Broadcast.surveyURL) { - var a = h('a', {href: Broadcast.surveyURL}, Messages.admin_surveyActive); + var a = blocks.link(Messages.admin_surveyActive, Broadcast.surveyURL); $(a).click(function (e) { e.preventDefault(); common.openUnsafeURL(Broadcast.surveyURL); }); - active = h('div.cp-broadcast-active', [ - h('p', a), - removeButton - ]); + active = blocks.nav([a, removeButton]); } var input = blocks.input({ type: 'text', id: 'cp-admin-survey-url-input' }); - var label = h('label', { for: 'cp-admin-survey-url-input' }, Messages.broadcast_surveyURL); + var labelledInput = blocks.labelledInput(Messages.broadcast_surveyURL, input); var $input = $(input); // Extract form data @@ -2781,14 +2769,10 @@ define([ send(""); }); - $(form).empty().append([ + $form.empty().append([ active, - label, - input, - h('br'), - h('div.cp-broadcast-form-submit', [ - button - ]) + labelledInput, + nav ]); }); @@ -2814,8 +2798,7 @@ define([ var $button = $(button); var removeButton = blocks.button('danger', '', Messages.admin_broadcastCancel); var activeContent = Messages.admin_broadcastActive; - var active = blocks.block( blocks.inline(activeContent), 'cp-broadcast-active' - ); + var active = blocks.block(blocks.inline(activeContent), 'cp-broadcast-active'); var $active = $(active); var activeUid; var deleted = []; From 5f5371e75658a05656dc25f1963b6dd65fb49814 Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 19 Mar 2024 12:55:51 +0100 Subject: [PATCH 5/5] Survey: refresh only the link and not the form --- www/newadmin/inner.js | 129 ++++++++++++++++++++---------------------- 1 file changed, 61 insertions(+), 68 deletions(-) diff --git a/www/newadmin/inner.js b/www/newadmin/inner.js index 4af588e63..53e0be9a0 100644 --- a/www/newadmin/inner.js +++ b/www/newadmin/inner.js @@ -2700,85 +2700,77 @@ define([ }); sidebar.addItem('survey', function(cb){ - var form = blocks.form([]); - var $form = $(form); + var button = blocks.button('primary', '', Messages.admin_surveyButton); + var $button = $(button); + let nav = blocks.nav([button]); + let active = blocks.block([], ''); + let $active = $(active); + + var input = blocks.input({ + type: 'text', + id: 'cp-admin-survey-url-input' + }); + var labelledInput = blocks.labelledInput(Messages.broadcast_surveyURL, input); + var $input = $(input); + + let send = function () {}; var refresh = getApi(function (Broadcast) { - var button = blocks.button('primary', '', Messages.admin_surveyButton); - let nav = blocks.nav([button]); var removeButton = blocks.button('danger', '', Messages.admin_surveyCancel); - var active; - var $button = $(button); - if (Broadcast && Broadcast.surveyURL) { - var a = blocks.link(Messages.admin_surveyActive, Broadcast.surveyURL); - $(a).click(function (e) { - e.preventDefault(); - common.openUnsafeURL(Broadcast.surveyURL); - }); - active = blocks.nav([a, removeButton]); - } - - var input = blocks.input({ - type: 'text', - id: 'cp-admin-survey-url-input' - }); - var labelledInput = blocks.labelledInput(Messages.broadcast_surveyURL, input); - var $input = $(input); - - // Extract form data - var getData = function () { - var url = $input.val(); - if (!Util.isValidURL(url)) { - console.error('Invalid URL', url); - return false; - } - return url; - }; - - var send = function (data) { - $button.prop('disabled', 'disabled'); - sFrameChan.query('Q_ADMIN_RPC', { - cmd: 'ADMIN_DECREE', - data: ['SET_SURVEY_URL', [data]] - }, function (e, response) { - if (e || response.error) { - $button.prop('disabled', ''); - UI.warn(Messages.error); - console.error(e, response); - return; - } - // Maintenance applied, send notification - common.mailbox.sendTo('BROADCAST_SURVEY', { - url: data - }, {}, function () { - checkLastBroadcastHash(function () { - setTimeout(refresh, 300); - }); - }); - }); - - }; - - Util.onClickEnter($(button), function () { - var data = getData(); - if (data === false) { return void UI.warn(Messages.error); } - send(data); - }); UI.confirmButton(removeButton, { classes: 'btn-danger', }, function () { send(""); }); - $form.empty().append([ - active, - labelledInput, - nav - ]); - + $active.empty(); + if (Broadcast && Broadcast.surveyURL) { + var a = blocks.link(Messages.admin_surveyActive, Broadcast.surveyURL); + $(a).click(function (e) { + e.preventDefault(); + common.openUnsafeURL(Broadcast.surveyURL); + }); + $active.append(blocks.block([a, removeButton])); + } }); - refresh(); + send = function (data) { + $button.prop('disabled', 'disabled'); + sFrameChan.query('Q_ADMIN_RPC', { + cmd: 'ADMIN_DECREE', + data: ['SET_SURVEY_URL', [data]] + }, function (e, response) { + $button.prop('disabled', ''); + if (e || response.error) { + UI.warn(Messages.error); + console.error(e, response); + return; + } + // Maintenance applied, send notification + common.mailbox.sendTo('BROADCAST_SURVEY', { + url: data + }, {}, function () { + checkLastBroadcastHash(function () { + setTimeout(refresh, 300); + }); + }); + }); + }; + // Extract form data + var getData = function () { + var url = $input.val(); + if (!Util.isValidURL(url)) { + console.error('Invalid URL', url); + return false; + } + return url; + }; + Util.onClickEnter($(button), function () { + var data = getData(); + if (data === false) { return void UI.warn(Messages.error); } + send(data); + }); + common.makeUniversal('broadcast', { onEvent: function (obj) { var cmd = obj.ev; @@ -2787,6 +2779,7 @@ define([ } }); + var form = blocks.form([active, labelledInput], nav); cb(form); });