There is at least one little glitch with the new visibility setting and I have to admit that I myself am not completely certain how to solve it.
Generally, the hidden status of a page will be maintained if a page is removed from a menu (that's desirable).
If a page is set to hidden in Main Menu, it's children will inherit the hidden status (also a good and intuitive feature - basically, but only at first glance)
Children of hidden pages may not be set to public. Hmm… why not? Of course, a hidden parent (menu entry) should prevent to render it's children *in this menu* but it should not force the children's general visibility status, because…
Pages which are children of hidden pages in Main Menu may also be part of other menus. Now I wonder, if they should be allowed to be visible then?
Currently, setting visibility in other menus acts erratic and, if it worked, it would still be hard to understand.
How to solve this without overly complicating it?
Do we need 2 types of invisibility: Page associated visibility and a menu-inherited one? I don't think so.
My proposal: Abandon menu-inherited visibility. Of course, child pages will not render in a navigation if the parent page is hidden here. But they shouldn't be inaccessible in general. So IMO, the only thing we need is some sort of highlighting that indicates that a child branch of a hidden parent page *will not render* in the navigation - but that's solely menu related. I think "Visibility" should expicitly and solely be a page property and not be inherited in any way.
What do you think?
Yeah, I think this kind of highlighting makes it quite clear that child pages of a hidden parent will not render in a menu.
But the vis switch of hidden parents' child pages still goes away and I also get "There was an error processing the last request" when draggin pages, although the action seems to actually work server-side, so only the reponse seems to contain errors.
I also get some Warnings when creating new pages.
But this all happens with a "updated" system where I only replaced the /include dir (and with tons of plugins installed :-), so maybe it shouldn't be taken too seriously.
I'll test it with a fresh RC1 install shortly and report back.