_book_parent_select (via book_toc) and menu_parent_options call menu_tree_all_data without a second parameter. That's bad because in this case the menu system will attempt to load items into memory of a specificied menu -- this is not the bug, as this the desired behaviour.
However, this is a scalability bug. Everything else is carefully crafted to only as few menu items as possible -- we added a pager to the overview, we only retrieve those menu links that could be available on a screen (pending access check of course).
Our train of thought was that contrib will provide better parent selectors -- drilldown probably -- but the only plug in method to this is form_alter which is crying over spilt milk because the form is done at this point. The task is to provide plug in points for these two.
Comment | File | Size | Author |
---|---|---|---|
#60 | menu_parent_selector.patch | 20.11 KB | chx |
#57 | menu_parent_selector.patch | 27.72 KB | chx |
#55 | menu_parent_selector.patch | 19.55 KB | chx |
#46 | menu_parent_selector.patch | 23.06 KB | chx |
#44 | menu_parent_selector.patch | 21.11 KB | chx |
Comments
Comment #1
quicksketchI'm getting on the wagon to assist with this UI enhancement. To describe it in a way that I understood:
- Go to admin/build/menu/item/22/edit on a new D6 install. The drop-down select for parent contains the entire menu tree.
- Such a large tree is a huge scalability problem.
- We should replace this with a drill-down type of solution of a select list for each parent. Selecting a parent creates another select list of all that item's children.
Probably the best news of all of this is that no new javascript will be necessary (I hope) thanks to our new ahah.js file and javascript behaviors. We'll just need to make a menu callback and setup the #ahah properties.
I've made the deal that if chx (or anyone) writes the non-js version with an update button to update parents, I'll write the AHAH implementation.
Comment #2
chx CreditAttribution: chx commentedYes, I told quicksketch that I will write the chooser because this is a usability and a scalability bug. Try to pick a book parent right here on this site...
Comment #3
chx CreditAttribution: chx commentedNote that I have not yet this to CNR because the parents are not yet saved and I am not satisfied with the wiring in of
['menu']['parents'
. I will investigate more but, release early, release often, so here it is.Comment #4
chx CreditAttribution: chx commentedThough the node form element and the book needs to conversion, the menu item edit form works. Still you need #tree TRUE, this bothers me a bit. I will see what I can do.
Comment #5
chx CreditAttribution: chx commentedSo, if you have a widget like this where a button needs to act on other elements then put those elements in a wrapper and point a reference to that wrapper as a custom property of the button. Because you have
$form_state['clicked_button']
and you have a reference in there, it's surprisingly easy. It's even shorter than the #tree code but more versatile. Oh joy.Comment #6
chx CreditAttribution: chx commentedIf some JS guru adds AHAH and adds some JS which changes the select size from 1 to 5-8 and finally moves the selects besides, then do you know what we will get? iTunes.
Comment #7
dmitrig01 CreditAttribution: dmitrig01 commentedYou could call me the JS guru...
I have it all figured out, but I'm still running into problems with locating the form element...
SO...
I have one big code comment for chx to read when he gets back from his sleep
Comment #8
dmitrig01 CreditAttribution: dmitrig01 commentedthe status box seems not to work
/me files a bug
Comment #9
chx CreditAttribution: chx commentedI took a stab at this based on what poll does. You have not added the style changes discussed and the Update button does not disappear.
Comment #10
quicksketchHere's a patch that has the ahah request being made properly. Note that it adds a theme function so be sure to clear your cache.
Comment #11
quicksketchHere's another patch which takes the Update button out of the parents array and puts it into a separate wrapper element. Chx informed me the previous method was a bad idea, causing a recursion error.
Comment #12
chx CreditAttribution: chx commentedTry editing a menu item :D book and node edit is coming. Also, the patch depends on http://drupal.org/node/193191#comment-633100 .
Comment #13
chx CreditAttribution: chx commentedOK, now saving works based on http://drupal.org/node/193191#comment-633154 . As some of the burden is now on form.inc , the patch is smaller and a bit simpler.
Comment #14
chx CreditAttribution: chx commentedaclight complained about --- not working. Fixed. Added it to the first box so you can choose root.
Comment #15
aclight CreditAttribution: aclight commentedI tested this on FF 2.0.0.9 on WinXP, IE6 on WinXP, and IE7 on Vista and it works well. I think this is a big improvement over the select list that can get very long.
Two minor problems:
1. On IE6, occasionally when I clicked on one of the items in one of the children boxes, that box and all children boxes of that box (if any) would all turn gray, and I needed to click one of the items in the parent box to "unfreeze" things.
2. In both IE6 and IE7, when I select an item in the child box, the scroll position in that box is shifted such that the selected item is at the top of the visible items in the list. This is a bit inconvenient since, to select the "-----" item, I then have to scroll up in the box. It would be nice if the scroll position did not change, which is the case in FF.
Comment #16
chx CreditAttribution: chx commentedOpera and FF2 on Linux both work very well. The scroll issue is hardly a real/fixable issue, that's how IE behaves, I do not think we need to bother too much. That freezing thing... I do not know. it's minor and occasionally... so... if Nate can catch the bug, the we will fix otherwise, I say, it's OK.
Comment #17
webernet CreditAttribution: webernet commentedDid some quick testing:
-The UI shouldn't display parents that will result in the menu becoming too deep.
-I'd prefer to see appropriately indented drop down selects on separate lines, rather than the side by side scrolling selection boxes.
Comment #18
Gábor HojtsyI might not have understood the issue cleanly, but the issue cried for a better title. So if I did not understand well, please retitle and explain.
Comment #19
chx CreditAttribution: chx commentedComment #20
chx CreditAttribution: chx commentedI added menu select as the first box and fixed depth problems. Reviewers: unless http://drupal.org/node/193191#comment-634164 is committed by the time you review this, you need that, and don't forget the menu rebuild. Also, only review menu item edit/add, because only that works, with more coming.
Comment #21
starbow CreditAttribution: starbow commentedBug report:
I went to page http://localhost/d6/admin/build/menu/item/9/edit on a fresh d6 install. Then I applied this patch and http://drupal.org/node/193191#comment-634164 and reloaded the page. Then I clicked "parent" and saw the two select boxes, one after another. I clicked "My Account" in the first box. The page did an AHAH update, moving the two select boxes to be side-by-side, and the attached error box popped up.
Comment #22
starbow CreditAttribution: starbow commentedAh, I just needed to rebuild my menus, by going to admin/build/themes and saving.
Works for me. Slick! I still hope Nate's drag & drop menu reparenting gets in, but dynamic subselects are a fantastic widget for drupal to have.
Comment #23
anders.fajerson CreditAttribution: anders.fajerson commentedI get at "Fatal error: Call to undefined function menu_parent_options() in W:\www\drupal-cvs\modules\menu\menu.module on line 507" after applying this patch and visiting node/add/story, or any other content type.
Comment #24
Wim LeersCan't wait to let http://drupal.org/project/hierarchical_select take advantage of the same techniques!
I've found a bug: if JS is disabled, and you click the "Update" button, then the text fields you've just filled out are emptied.
Also, there's a "/* RTL */" comment in the LTR CSS instead of the RTL CSS :P
Comment #25
chx CreditAttribution: chx commentedReviewers: don't forget the menu rebuild. Also, only review menu item edit/add, because only that works, with more coming. fajerstarter skipped the second part of this note. starbow skipped the first part.
Comment #26
catchOK fresh install, patched before installing then enabled all contrib modules.
Very, very nice. The form refresh on firefox was a little slow, but not too much (and my connection has been terrible today so could be my end). So much better than the huge select list and this will be great for all kinds of stuff. Saving seemed to work fine etc.
Tested in IE7/FF2.
Comment #27
KentBye CreditAttribution: KentBye commentedThought I'd put together a 60-second video of this.
http://blip.tv/file/get/Kentbye_tech-MenuParentSelectors263.mov
Played around with it a bit on FF2.0.0.9 and it looks good.
Comment #29
Rowanw CreditAttribution: Rowanw commentedI like it.
How about moving Weight and Expanded to the Parents fieldset?
Comment #30
Dries CreditAttribution: Dries commentedIn the video, why is the title of the fieldset 'Parents'? Can you select multiple parents or just one? Shouldn't it be 'Parent' (singular)?
Why is the parents fieldset the only collapsed fieldset? That looks inconsistent with the rest of the form.
Why is the status message shown inside the fieldset? That is also inconsistent with the rest of Drupal.
Comment #31
Dries CreditAttribution: Dries commentedIf we're going to commit more usability improvements before tomorrow night, I'd suggest we focus on (i) the menu module DnD patch, (ii) the taxonomy DnD patch and (iii) the book module DnD patch. Let's tackle the other ones first so we don't risk losing our focus. If the other patched landed, we can look at this one. If not, it will have to wait for D7. Thanks.
Comment #32
catchDries, although this is also about usability, I think chx is rightly concerned about potentially many thousands of menu items being loaded into memory all at once. Although I'm a big fan of those other three patches they don't have the (potentially quite bad) scalability issues that this one deals with. Edit: and menu drag and drop is in! so it's just book and taxonomy left now.
Marking to needs work for the fieldset issues as identified in #29 and #30 and I'll go review drag and drop patches now!
Comment #33
pwolanin CreditAttribution: pwolanin commentedsubscribing - thanks chx for pointing me to this
Comment #34
chx CreditAttribution: chx commentedI hear and obey. With a heavy heart, I say, let's get the drilldown element into Drupal 7. But, we must have a way to override the default selectors or all our work to keep D6 menu scalable was in vain. This patch is the absolute, bare minimum I could come up with. After commit, please reset to 7.x-dev , code need work. Thanks.
Comment #35
chx CreditAttribution: chx commentedDo not get me wrong, I will post the menu parent patch as soon as it's ready which surely can't be more than a few hours away. But I am not risking all the hard work we did on a complex patch.
Comment #36
Gábor HojtsyWell, Dries' concerns in http://drupal.org/node/191360#comment-635000 does not look like unsolvable within this timeframe. Why not look into them?
Comment #37
chx CreditAttribution: chx commentedGabor, the patch above and what I have currently does not work with node form and I am not 100% I can fix it. If I can, great, if not, well, the fallback patch is there. I am trying :)
Comment #38
chx CreditAttribution: chx commentedThe node form needs more consideration than what little I can give it now. if it can get in past beta3 , good but if not, then let's get the plugin version in and see what we can come up in contrib and in D7.
Comment #39
KentBye CreditAttribution: KentBye commented@Dries: "Why is the status message shown inside the fieldset? That is also inconsistent with the rest of Drupal."
I believe was my fault in the production of the screencast.
I saved the theme form, but then shut the window before the status message could be displayed because it would've been 7-10 seconds of dead time.
When the theme page was saved, then the status message was incorrectly displayed on that page.
An edge mistake IMHO, and shouldn't reflect negatively on this patch.
Comment #40
Gábor Hojtsychx: Understood. So why not add some docs to this override? :)
Comment #41
chx CreditAttribution: chx commentedFrom
menu_parent_options
Comment #42
Gábor HojtsyOK, committed this for now. Happy hacking in D6 contrib :)
Comment #43
chx CreditAttribution: chx commentedComment #44
chx CreditAttribution: chx commentedStill only for menu items but the depth is working and also it's totally abstracted out: there is a drilldown eleement with process helpers in form.inc, the appropriate AHAH callback is now in system.pages.inc , the menu parent creator is in menu.inc so it can be reused in book and menu modules both. The depth limiter works. We are quite prepared fior node because now we do not run our submit instead we run a process. There is a CSS glitch, for some reason Weight also floats despite it's definitely out of the div.
Comment #45
pwolanin CreditAttribution: pwolanin commentedminor UI point: the weight select should be above or below the drill-down selectors. Now it's appearing to the right of the selects and is bumped around when changing selections (at least on FF 2 on linux).
In the code I'm not clear why you are adding a new possible -1 setting to the 'customized' attribute of menu links?
Also, why in the _menu_parent_depth_limit function that moved to menu.inc is the check for 'has_children' omitted compared to the original - seems a cheap check to make to avoid a function call and query.
Also, since you're moving _menu_parent_select_recurse to menu.inc, is the plan to try to re-use this function when doing a drill-down for book module?
Also, I don't know much about JS, but it looks as though you are submitting the entire form every time there is a change? Is this a better approach than rebuilding the form in the cache, as is being done now for the book parent selector? Seems like it would be much slower?
Comment #46
chx CreditAttribution: chx commentedAs said, I was quite prepared for the node form. The only thing missing was the node_form itself -- you see, this is not included by default so we need to store this fact. I have found a nice unused piece: cache headers. I store there and pass around the router_item_file in form_state. book is coming tomorrow. (Yes, preview keeps the picked menu parent, this is why we are not using submit but process.)
Comment #47
chx CreditAttribution: chx commentedForgot to react to pwolanin:
Comment #48
pwolanin CreditAttribution: pwolanin commentedIt's going to be a bit hard to re-use this for books, unless you split them apart from the existing book chooser - this contains options like "create a new book" and "none" which don't exist in the context of the menu module.
Comment #49
KentBye CreditAttribution: KentBye commentedI tested the patch in Safari and it looked good.
Here's is an updated video:
http://blip.tv/file/get/Kentbye_tech-Menu_Parent_Selectors_V2_476.mov
I had some weirdness in FF2.0.0.9 where the new child options were appearing below the parent instead of next to it.
I'll try to reproduce & capture it.
UPDATE: I was not able to reproduce the FF glitch.
Worked fine as well.
Comment #50
chx CreditAttribution: chx commentedI am resetting to review to get reviewers. We shall see what the book chooser will be, but just because of that, I am not setting this to CNW. I would like to get reviews. Also, I do plan to replace totally the current chooser. Again, we shall see. Kentbye, thanks for the video!
Comment #51
catchOK quick review in FF2 and IE7, this is looking good.
In FF2 I get the scrollbars regardless of if there's a need to scroll or not. In IE7 they appear depending on the number of items, which is nicer.
In both, it's very, very quick.
Only other thing I noticed was if you set menu options before entering a title in the node form, you get the "you must enter a title" validation error, that's not a big issue but it was a bit of a jolt considering the form hasn't been submitted or previewed by that point.
Comment #52
chx CreditAttribution: chx commentedI can remove displaying the errors, that's very easy. Is that what we want?
Comment #53
catchIt's pretty common to fill different bits of the form out at different times, so +1 for me for suppressing errors until a full preview/save.
Comment #54
BioALIEN CreditAttribution: BioALIEN commentedWhile I like where this is going, I don't like the way the new menu lists appear on the right. On a small screen resolution, this behaviour becomes a little tricky as bits start falling into a new line.
I would recommend something in the line of sliding menus. It allows greater control over the width without having elements fall due to screen size. dvessel's excellent lumen theme highly demonstrates this concept:
http://si-lumen.us
There was talk of Greggles ripping this out into a separate module but I'm not sure if this materialised:
http://groups.drupal.org/node/2839
I am against holding this up, but would be good if we can get the current functionality in for Beta 3, and then reopen the issue for UI improvements?
Comment #55
chx CreditAttribution: chx commentedThis is very, very close -- we might consider committing it. The book is almost ready and it'll be able to use this code and I will upload that soon, too but if this gets in that's already a big boon. I have upgraded the code to work with any number of drilldown elements,previously they all worked into the same form_state['drilldown'].
Comment #56
pwolanin CreditAttribution: pwolanin commentedok - selector seems to be working well on the menu item editing form except for a very minor complaint that if I have scrolled the select, the newly selected item jumps to the bottom of the select when the selector repopulates.
After saving the item on a page like admin/build/menu/item/362/edit, I did not get properly redirected to the menu overview. Instead I go back to the edit form, and the data in the select is stale - it shows the parent before editing started. However- I wonder if this is a bug in the AHAH JS?
The selector in the node form doesn't seem to work - it doesn't appear. If I submit the node form I get:
notice: Undefined index: select in /Users/Shared/www/drupal6/modules/menu/menu.module on line 351.
Note: testing node with FF 2.0 on Max 10.4
Comment #57
chx CreditAttribution: chx commentedProblems fixed, they were really minor. Sorry for posting w/o much testing, I was in a great haste, I have little time left before beta4 and now I missed a perfect opportunity to get an RTBC :(
Comment #58
Stefan Nagtegaal CreditAttribution: Stefan Nagtegaal commentedchx, how should one test this??
Comment #59
catchadmin/build/menu/item/%/edit is flawless, very speedy, very easy to use.
It's not saving the menu items from the node form for me though - they don't show up when I edit the node again, nor in the menu admin screen.
Stefan: it'll make sense when you see it, just remember to trigger a menu rebuild otherwise you'll get all kinds of craziness :)
Comment #60
chx CreditAttribution: chx commentedI just double checked and it does save -- if you have specified a menu link title. Seeing Drupal providing no feedback if you forgot, I added an error message to warn you. Yes, book is still not in the patch but there is a beta4 coming and I would like to see this in. Book is tantalizingly close but I would rather not miss beta4 because of that.
The only difference to #57 is the new error message and the omission of the not-yet-working book changes.
Comment #61
catchchx is right, I wasn't specifying a title. This all works very smoothly.
The only niggle I have is that with js disabled, the "update menu parent" item is inline with the select boxes, it should really be above or below. Maybe take it out of from['wrapper']?
Leaving at RTBC anyway since this that shouldn't hold this patch up.
Comment #62
dmitrig01 CreditAttribution: dmitrig01 commentedComment #63
Gábor HojtsyThis is all possible in contribs now with the extension points we added earlier to Drupal 6, right? I would not like to introduce a new UI concept again (with people rushing to find bazillion places to apply it in Drupal), in part because
- we are not covering these bazillion places in Drupal (inconsistent UI for the same tasks)
- we introduce a new UI concept which was debated above with its unfriendliness to not so wide layouts
- we make changes to the ever changing menu code again
- as said, you can do this in contrib now
Please understand that we try to concentrate on stabilizing and fixing bugs in Drupal 6, rather then adding new stuff to it. You are in a unique good position that these changes are doable in contrib for Drupal 6, and can be introduced in Drupal 7, with the UI concepts refined through the Drupal 6 lifetime. Thanks for all your work.
Comment #64
chx CreditAttribution: chx commentedI hope someone else takes this from here.
Comment #65
catchhttp://drupal.org/node/203010 was duplicate.
Comment #66
Bevan CreditAttribution: Bevan commentedsubscribe
Comment #67
catchWe still need this, but it no longer applies.
Comment #68
catchI reckon something like this is the most likely option for removing some of the confusion around 'parent item' (and the menu fieldset in general).
At the moment, we have a long list of almost undifferentiated links in a select - with this, we'd clearly display the top level menu, then children programmatically - and it might be enough to put "select menu position" and avoid parent/child language completely.
So, bump.
Comment #69
Wim LeersNote: Hierarchical Select 3 supports this. It will be ported to Drupal 6 very soon. But, in its current state, it cannot be accepted into Drupal core, it will have to be refactored. In any case: if you want to improve the usability of this, you can, for both Drupal 5 (today) and Drupal 6 (soon).
Second note: this issue also implies fixing a scalability issue: if the menu tree is huge, it'll work very slowly in its current state.
Comment #70
catchI'd like to see a similar method for choosing taxonomy parents, so something centralised (like hierarchical select) woudl be good for that - haven't looked at it for a while though.
Comment #71
Wim LeersTaxonomy is already supported! But now you mention it, I haven't overridden the form for creating/editing terms yet. Will do that later today.
EDIT: forgot to add this: I'm currently adding support for selecting Book page parents, too!
Comment #72
catchWim Leers - I know it's in hierarchical select, I meant getting a comprehensive solution for multiple-depth select forms into core - so we can have a unified UI between menus and taxonomy (and maybe book module on the node form as well).
Comment #73
Wim LeersI know I know, I'm only indicating that it's already supporting every place in core where it can be used :)
Comment #74
yoroy CreditAttribution: yoroy commentedSubscribe. This "comprehensive solution for multiple-depth select forms" is an excellent example of a useful new tool in the Drupal UI toolkit.
Let's see what we can do about this @Szeged Drupalcon.
Comment #75
Jaza CreditAttribution: Jaza commentedI wish I'd seen this thread earlier - then I would have understood the history behind the strange 'extension stub' which was all that made it into D6 for hierarchical parent selection. I've almost finished porting the Category module to D6, and I've borrowed the AHAH parent-select from book.module for it - would have been better to have implemented something more fancy.
I'll be keeping my eye on Hierarhical Select, and hopefully helping to get it ported to D6. Would be great to get all or part of it into core for 7.
Comment #76
robertDouglass CreditAttribution: robertDouglass commentedSubscribe.
Comment #77
kika CreditAttribution: kika commentedComment #78
grendzy CreditAttribution: grendzy commentedsubscribing
Comment #79
grendzy CreditAttribution: grendzy commentedComment #80
quicksketchI'd like to cross-reference this to #360128: Security fix for simplified AHAH callbacks, which could shorten-up this patch a little bit by taking out the menu callback and most of the page callback. Plus we wouldn't have to directly check $_POST.
Comment #81
rumander CreditAttribution: rumander commentedSubscribe
Comment #82
JohnAlbinI'm having this same problem with the Menu Block module. :-p My solution is a total hack though and doesn't scale. I can help out here if the js isn't too crazy. :-)
Comment #83
yoroy CreditAttribution: yoroy commentedSo, "getting a comprehensive solution for multiple-depth select forms into core - so we can have a unified UI between menus and taxonomy" (#72) seems to be the executive summary of the goal for this patch. Latest actual code is from 18 months ago (#60)
We still need this, can somebody look at the patch does and summarize what it tries to do? Can I be of help here by drawing pictures?
Comment #84
Bojhan CreditAttribution: Bojhan commentedtagging,as yoroy said its pretty crucial someone picks this up
Comment #85
yoroy CreditAttribution: yoroy commentedWe have this now on content type configuration screens:
Can we say that at least adresses part of this problem or even 'fixed' it for now? Checking if we can move away from 'critical' status here.
Comment #86
Wim LeersIt's still not scalable, so I think it's still critical. From a usability perspective it's probably no longer critical. Maybe it's better to mark this as a performance issue instead of a usability issue.
I doubt this will be fixed for D7 in core though. I know I won't — Forms API doesn't allow clean/readable enough code yet.
Comment #87
casey CreditAttribution: casey commentedSubscribing.
Do we have some kind of plan how this should look like? I could implement it.
Comment #88
yoroy CreditAttribution: yoroy commentedI don't think one week before alpha is a good time to try and start working on this :)
Comment #89
Bevan CreditAttribution: Bevan commented@casey #87; http://wimleers.com/demo/hierarchical-select/menu
I agree that the solution yoroy referred to in #85 isn't a fix for the real usability bug here, just a band aid that sometimes fixes it if the site builder takes the time to configure it such.
Comment #90
sunComment #91
Bojhan CreditAttribution: Bojhan commentedComment #92
Damien Tournoud CreditAttribution: Damien Tournoud commentedBugs cannot target D8, as the tree is not open yet.
Fortunately, this is arguably a feature request.
Comment #93
yoroy CreditAttribution: yoroy commentedhttp://drupal.org/project/chosen might be of use here
Comment #94
MustangGB CreditAttribution: MustangGB commentedTagging as performance because I ran into issues with menu_form_alter() doing a menu_parent_options() for $form['menu']['parent'] (Menu settings > Parent item) loading all {menu_links} which was kicking out 40,000 results and taking 30 seconds to load each /node/add/content_type page
Comment #95
Bojhan CreditAttribution: Bojhan commentedComment #96
catchComment #109
Olarin CreditAttribution: Olarin at Kosada commentedThis remains a (potentially severe) scalability issue. I'm working on a site with thousands of menu links, and users who don't have 'bypass node access' are experiencing extremely long load times on the admin page for adding a menu link (greater than 30 seconds wall clock time, and on my local dev copy of the site, it actually exceeds a PHP maximum execution time of 30 seconds). For users who do have 'bypass node access', the page loads reasonably quick, but the parent selector dropdown is still so big as to be nearly unusable (simply trying to open the dropdown causes Firefox to freeze for several seconds on my machine).
(Edit: I should note that there may be some extra influences to access checks on the site I'm looking at that are contributing to the slowdown - at a minimum, Group module is in play - but the scalability of loading so many links at once and the (un)usability of such an overloaded dropdown are still legitimate issues, regardless.)
Comment #110
Olarin CreditAttribution: Olarin at Kosada commentedLooking into this issue a bit further, I have a stupid question. When you go to add or edit a menu link, the name of a particular menu is right there in the URL for the admin page. So why does the parent selector show all links for all menus in the system? Just to provide a convenient way to move a link from one menu to another? It occurs to me that limiting the parent selector to the current menu of the new or edited link could take the edge off of the scalability issue considerably (you could still have thousands of links in one menu, but I'm guessing that's at least a somewhat less common use case than having dozens or hundreds of links each in dozens or hundreds of menus). This would of course only affect the add/edit menu link pages, not the node edit page, and even at that it wouldn't completely address the underlying issue, just a thought on what might be a relatively quick band-aid for at least some situations.
(Edit: I misspoke, the URL only contains a menu name for the add link, not the edit link - but menu link entities do store the name of the menu they belong to so it's not inaccessible in that case either.)
Comment #118
xjmWe should probably do this at the widget level rather than the menu feature level, because there are other long select fields (e.g. taxonomy term hierarchy) with this exact problem. So, closing as a duplicate of #2346973: Improve usability, accessibility, and scalability of long select lists.
Comment #119
bkosborneNote the issue raised in #110 was resolved for Drupal 10.2 via #3110371: When adding a new menu link, restrict the available parents to the current menu