From 84aad5da106a9dd4fd74ecdb877931fdbbaa796c Mon Sep 17 00:00:00 2001 From: NovemLinguae Date: Sat, 4 Nov 2023 00:46:25 -0700 Subject: [PATCH 1/5] twinkle: Put TW menu back on the right side of the More menu Fixes #1886 Related #1881 --- twinkle.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/twinkle.js b/twinkle.js index 966dfa5fc..ecd51a666 100644 --- a/twinkle.js +++ b/twinkle.js @@ -262,11 +262,24 @@ Twinkle.addPortlet = function(navigation, id, text, type, nextnodeid) { } return null; } + if (type === 'menu') { // In order to get mw.util.addPortlet to generate a dropdown menu in vector and vector-2022, the nextnodeid must be p-cactions. Any other nextnodeid will generate a non-dropdown portlet instead. nextnodeid = 'p-cactions'; } - return mw.util.addPortlet(id, text, '#' + nextnodeid); + + let portlet = mw.util.addPortlet(id, text, '#' + nextnodeid); + + if (mw.config.get('skin') === 'vector') { + $('#p-twinkle').insertAfter('#p-cactions'); + } else if (mw.config.get('skin') === 'vector-2022') { + $('#p-twinkle-dropdown').insertAfter('.vector-page-tools-landmark'); + // this creates two #p-twinkle-dropdowns for some reason, in different spots on the DOM. maybe some JS in vector 2022? delete the bad one: + $('.vector-column-end > #p-twinkle-dropdown').remove(); + portlet = $('#p-twinkle-dropdown'); + } + + return portlet; }; /** From f79e2112af36094ae6f33bc9b3a9b989b66ad004 Mon Sep 17 00:00:00 2001 From: NovemLinguae Date: Fri, 10 Nov 2023 09:45:16 -0800 Subject: [PATCH 2/5] use var instead of let --- twinkle.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/twinkle.js b/twinkle.js index ecd51a666..4466c4522 100644 --- a/twinkle.js +++ b/twinkle.js @@ -268,7 +268,7 @@ Twinkle.addPortlet = function(navigation, id, text, type, nextnodeid) { nextnodeid = 'p-cactions'; } - let portlet = mw.util.addPortlet(id, text, '#' + nextnodeid); + var portlet = mw.util.addPortlet(id, text, '#' + nextnodeid); if (mw.config.get('skin') === 'vector') { $('#p-twinkle').insertAfter('#p-cactions'); From b817b9ff3696201f1180437ab65b93815628557b Mon Sep 17 00:00:00 2001 From: NovemLinguae Date: Fri, 10 Nov 2023 09:50:26 -0800 Subject: [PATCH 3/5] comment --- twinkle.js | 1 + 1 file changed, 1 insertion(+) diff --git a/twinkle.js b/twinkle.js index 4466c4522..72087c6e2 100644 --- a/twinkle.js +++ b/twinkle.js @@ -271,6 +271,7 @@ Twinkle.addPortlet = function(navigation, id, text, type, nextnodeid) { var portlet = mw.util.addPortlet(id, text, '#' + nextnodeid); if (mw.config.get('skin') === 'vector') { + // The Twinkle dropdown menu has been added to the left of p-cactions. Move it to the right. $('#p-twinkle').insertAfter('#p-cactions'); } else if (mw.config.get('skin') === 'vector-2022') { $('#p-twinkle-dropdown').insertAfter('.vector-page-tools-landmark'); From 37326b7e44a9c8d93534ea2a70e5e4f99be7d6bc Mon Sep 17 00:00:00 2001 From: NovemLinguae Date: Fri, 10 Nov 2023 09:54:55 -0800 Subject: [PATCH 4/5] fix double element bug --- twinkle.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/twinkle.js b/twinkle.js index 72087c6e2..6f7c8dbb7 100644 --- a/twinkle.js +++ b/twinkle.js @@ -274,10 +274,7 @@ Twinkle.addPortlet = function(navigation, id, text, type, nextnodeid) { // The Twinkle dropdown menu has been added to the left of p-cactions. Move it to the right. $('#p-twinkle').insertAfter('#p-cactions'); } else if (mw.config.get('skin') === 'vector-2022') { - $('#p-twinkle-dropdown').insertAfter('.vector-page-tools-landmark'); - // this creates two #p-twinkle-dropdowns for some reason, in different spots on the DOM. maybe some JS in vector 2022? delete the bad one: - $('.vector-column-end > #p-twinkle-dropdown').remove(); - portlet = $('#p-twinkle-dropdown'); + return $('#p-twinkle-dropdown').detach().insertAfter('.vector-page-tools-landmark'); } return portlet; From fd156cb9ab2efce6be0b43befe3d1eeb7af2b94b Mon Sep 17 00:00:00 2001 From: NovemLinguae Date: Fri, 10 Nov 2023 11:27:29 -0800 Subject: [PATCH 5/5] log, fix bug --- twinkle.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/twinkle.js b/twinkle.js index 6f7c8dbb7..9aa0953a6 100644 --- a/twinkle.js +++ b/twinkle.js @@ -270,11 +270,16 @@ Twinkle.addPortlet = function(navigation, id, text, type, nextnodeid) { var portlet = mw.util.addPortlet(id, text, '#' + nextnodeid); + // The Twinkle dropdown menu has been added to the left of p-cactions. Move it to the right. if (mw.config.get('skin') === 'vector') { - // The Twinkle dropdown menu has been added to the left of p-cactions. Move it to the right. $('#p-twinkle').insertAfter('#p-cactions'); } else if (mw.config.get('skin') === 'vector-2022') { - return $('#p-twinkle-dropdown').detach().insertAfter('.vector-page-tools-landmark'); + $('#p-twinkle-dropdown').appendTo('.vector-page-tools-landmark'); + + // .vector-page-tools-landmark is unstable and could change. If so, log it to console, to hopefully get someone's attention. + if (!document.querySelector('.vector-page-tools-landmark')) { + mw.log.warn('Unexpected change in DOM'); + } } return portlet;