From a6dd6854e4b8d0063ebf4628cf5ae039d1d6994c Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Sun, 14 Nov 2021 19:37:14 +0100 Subject: [PATCH 1/5] fix issue #77 --- lib/Controller/PersonalSettingController.php | 1 + src/admin.js | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/Controller/PersonalSettingController.php b/lib/Controller/PersonalSettingController.php index 99bc65a..90fb758 100644 --- a/lib/Controller/PersonalSettingController.php +++ b/lib/Controller/PersonalSettingController.php @@ -54,6 +54,7 @@ class PersonalSettingController extends Controller /** * @NoAdminRequired + * @NoCSRFRequired * * @param mixed $name * @param mixed $value diff --git a/src/admin.js b/src/admin.js index 3058e24..92d1948 100644 --- a/src/admin.js +++ b/src/admin.js @@ -21,16 +21,17 @@ const selector = '#side-menu-message' const userConfig = (name, value, callbacks) => { const url = OC.generateUrl('/apps/side_menu/personalSetting/valueSet') - const formData = new FormData() - formData.append('name', name) - formData.append('value', value) + const formData = [] + + formData.push('name=' + encodeURIComponent(name)) + formData.push('value=' + encodeURIComponent(value)) fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, - body: formData + body: formData.join('&') }) .then(callbacks.success) .catch(callbacks.error) -- 2.20.1 From 1aea6ee4f4c6c9b00e6550c101fe6cc8c230a16a Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Sun, 14 Nov 2021 20:01:43 +0100 Subject: [PATCH 2/5] fix #78: top menu is broken - invisible apps are shown --- templates/js/_topMenuApps.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/templates/js/_topMenuApps.js b/templates/js/_topMenuApps.js index dee32c8..043eb58 100644 --- a/templates/js/_topMenuApps.js +++ b/templates/js/_topMenuApps.js @@ -103,7 +103,6 @@ const updateTopMenu = function() { let k = 0 let notInHeader = 0 - for (let app of appShown) { const name = app.getAttribute('data-id') const li = querySelector('#apps li[data-id=' + name + '].app-external-site') @@ -199,8 +198,8 @@ const updateTopMenu = function() { menuCache = menu.innerHTML + menu.nextSibling.innerHTML } -for (let timeout of [300, 500, 700, 900, 1100]) { - setTimeout(updateTopMenu, timeout) +for (let i = 0; i < 3000; i+= 100) { + setTimeout(updateTopMenu, i) } let resizeTimeout = null; -- 2.20.1 From d37773cf5f7cd961dc2720cf1736a313b06249e7 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Sun, 14 Nov 2021 20:04:36 +0100 Subject: [PATCH 3/5] fix js error on the personal settings page (undefined sortable) --- templates/settings/admin-form.php | 1 - templates/settings/personal-form.php | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/templates/settings/admin-form.php b/templates/settings/admin-form.php index 2aa15fb..9b53d7d 100644 --- a/templates/settings/admin-form.php +++ b/templates/settings/admin-form.php @@ -40,7 +40,6 @@ $choicesSizes = [ ]; ?> -

diff --git a/templates/settings/personal-form.php b/templates/settings/personal-form.php index 7337a01..69cd7dd 100644 --- a/templates/settings/personal-form.php +++ b/templates/settings/personal-form.php @@ -16,6 +16,7 @@ * along with this program. If not, see . */ +vendor_script('side_menu', 'html5sortable.min'); script('side_menu', 'admin'); style('side_menu', 'admin'); @@ -25,8 +26,6 @@ $choicesYesNo = [ ]; ?> - -
-- 2.20.1 From 1b0418a4669e5b6bd4ea50a3e529bb990238cd3a Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Sun, 14 Nov 2021 20:04:58 +0100 Subject: [PATCH 4/5] fix js error on the personal settings page (undefined sortable) --- src/admin.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/admin.js b/src/admin.js index 92d1948..2d63eca 100644 --- a/src/admin.js +++ b/src/admin.js @@ -191,13 +191,16 @@ document.addEventListener('DOMContentLoaded', () => { placeholderClass: 'side-menu-setting-list-drop' }) - sortable('#categories-list .side-menu-setting-list')[0].addEventListener('sortstop', (e) => { - let value = [] + try { + sortable('#categories-list .side-menu-setting-list')[0].addEventListener('sortstop', (e) => { + let value = [] - for (let item of document.querySelectorAll('#categories-list .side-menu-setting-list-item')) { - value.push(item.getAttribute('data-id')) - } + for (let item of document.querySelectorAll('#categories-list .side-menu-setting-list-item')) { + value.push(item.getAttribute('data-id')) + } - document.querySelector('input[name="categories-order"]').value = JSON.stringify(value) - }) + document.querySelector('input[name="categories-order"]').value = JSON.stringify(value) + }) + } catch (e) { + } }) -- 2.20.1 From b6fb1783bad94ab168b4778053b3900fdf885908 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Sun, 14 Nov 2021 20:05:22 +0100 Subject: [PATCH 5/5] release v2.0.1 --- CHANGELOG.md | 6 ++++++ appinfo/info.xml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ed448a..24d5413 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ## [Unreleased] +## 2.0.1 +### Fixed +- fix #78: Top menu is broken - invisible apps are shown +- fix #77: Update personal settings - HTTP error 412 (Precondition Failed) +- fix js error on the personal settings page (undefined sortable) + ## 2.0.0 ### Fixed - fix #66: removing usage of setInterval diff --git a/appinfo/info.xml b/appinfo/info.xml index dec246d..d48d084 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -26,7 +26,7 @@ If you like this application and if you want to support the development: * [Donate with liberapay](https://liberapay.com/deblan) * [Leave a comment](https://apps.nextcloud.com/apps/side_menu#comments) ]]> - 2.0.0 + 2.0.1 agpl Simon Vieille SideMenu -- 2.20.1