It's a major maintenance pain, doesn't work on mobile (we had to make a killswitch for it to not open on mobile), relies on an old js library to handle url hash changes instead of the standard and cleaner pushState (not available for IE9 so core couldn't use it anyway, but contrib could). And as webchick very rightly points out: "once the Seven style guide is all done, there's a clear enough boundary between "front-end" and "back-end" that the extra chrome is no longer needed".
List of issues that can't be fixed properly because of overlay:
#1129578: Overlay doesn't respect internal anchor links
#2078951-19: Highlight the row of block that was just placed
Other made really complicated because of it:
#1440628: [Meta] javascript toolbar/tableheader with url fragment mess
#655388: Many ways to lose data on form input in the overlay
And that's just the open ones.
Related: #1889150: Simplify overlay look, *only use for contextual operations*.
Comment | File | Size | Author |
---|---|---|---|
#56 | 2088121-56-remove-overlay.patch | 184.29 KB | joelpittet |
#2 | core-overlay-remove-2088121-2.patch | 121.28 KB | nod_ |
Comments
Comment #1
webchickI'm staying out of this one, but in fairness, I also pointed out that Overlay is quite handy from contextual links, and that most of the rage is because it opens all the time everywhere. So I'm +1 to the "use only for contextual operations." And I believe I said the chrome "could" be no longer needed, not "is." :)
Comment #2
nod_And here is a patch. Sorry about the misquote webchick.
Just looking at how much code there is all over the place to cater for overlay kinda points to the issue as well.
Comment #3
jibran+1 and I want to RTBC it.
Comment #5
LewisNymanI was really into the idea of using a stripped down overlay for just the contextual links. #1889150: Simplify overlay look, *only use for contextual operations*
Comment #6
tsphethean CreditAttribution: tsphethean commentedI'd support removing overlay, disabling it is usually the first thing I do on a site.
Comment #7
nod_To be fair, this other issue turns the overlay into something way, way better #1889150: Simplify overlay look, *only use for contextual operations*.
Comment #8
Gábor HojtsyFunny thing is the Spark team at Acquia worked really hard to effectively remove the overlay in Drupal 8 (especially @tkoleary and myself). The problem with removing the overlay wholesale is we still think contextual operations make sense (and they should let you quickly get back to your page). So if you hit the "Configure block" contextual link on a block, a *modal dialog* should open and let you do your stuff, submit and close. If the contextual link leads you to a whole new page, that is not very useful. So why not use the Drupal 8 modal for these thing?. We reiterated this *several times* in our meetings and came to these two key points:
- these modals need to show up on a frontend themed Drupal website; we don't have a 100% surefire way to ensure we can display a modal that is themed like a backend UI and does not interfere with the underlying page or vice versa; and Drupal can swap your backend looks independent of your frontend looks, so these are roles of two different themes; an iframe serves this purpose of sandboxing in HTML basically
- the CSS technologies available to do responsive pages does not let us work with "width of a part of the page", it only let us work with width of the whole page; so if the backend modal content needs to adapt to the available width of the modal, it can only do so without JS fiddling if the modal is an iframe
Then it would theoretically still be possible to put an iframe into a modal and ignore the overlay, but then the whole content of the modal would be an iframe, so the modal would have very tiny use in the whole process and most of its backend would need to be ignored and a whole iframe based thing implemented. Which is .... already implemented in overlay.
So therefore the plan in #1889150: Simplify overlay look, *only use for contextual operations* was to make the overlay totally look like a modal and only use it when a modal needs to happen on top of the frontend. It would not be the overlay as we know it in Drupal 7 (and currently in 8). @tkoleary posted this great piece at https://groups.drupal.org/node/294848 explaining all the things.
The funny thing is Spark has been really putting in lots of time and resources to make the overlay go away :) There is maybe not much demonstration of the community opposition to that idea in the groups post, but if you look at Ryan Weal's related issue to not include the overlay in the standard profile at #2004836: Disable overlay in standard profile you'll see how much community opposition there is.
In the end this was de-prioritized from the Spark queue to avoid fighting with community members who wanted to keep the overlay. Such irony.
Comment #9
falcon03 CreditAttribution: falcon03 commentedYAY, +1 for removing the overlay. I've always been against it since I started using Drupal! :-)
If it can't be removed, then its usage should be restricted to contextual operations. Maybe (but this is only a random thought that should be verified) restricting its usage would make it easier to use for screen reader users! :-)
And, if its usage can't be restricted to contextual operations, then it should be disabled in the standard profile. Not to mention that using Voiceover + OS X + Safari it can *easily* make the browser crash! Not sure if this depends on my local environment, though.
Comment #10
ParisLiakos CreditAttribution: ParisLiakos commentedi wish that dream would ever come true:P
+10000
contextual links or not..just ?destination works for me there.
related #2004836: Disable overlay in standard profile
Comment #11
geerlingguy CreditAttribution: geerlingguy commentedMajor +1 from me, too. If overlay wants to exist, it should exist in contrib. It's much too fragile to be part of core.
To add to the list of things overlay makes harder:
Comment #12
brianV CreditAttribution: brianV commentedI'll +1 the basic idea as well here.
I've found the the overlay mostly just interferes with the development process, can have inconsistent behavior at times, and consequently is usually the first thing I shut off when starting a new client site.
The only time I've ever intentionally enabled overlay was for a client who really liked the 'shiny stuff', and they were impressed by overlay.
I'm all for downgrading it to contrib so the people that want it can have it, while not adding a burden to the core development team.
Comment #13
LewisNymanEvery feature is a burden on the "core development team".
The main benefit of the overlay is for new users, new users don't even know what a contrib module is. Moving it to contrib just because it's annoying for experienced devs to turn it off is backwards logic.
Comment #14
catchWhile every feature requires maintenance, there are plenty of features in core that core developers use regularly - whether it's the comment form, Seven, or the Views UI.
There's a massive difference between maintaining something you use, vs. maintaining something you're not bothered about, vs. maintaining something you go out of your way to avoid/disable.
Comment #15
RobLoachComment #16
LewisNymanI think this is where we disagree. Core development is not just for core developers, we build a framework for a lot of users who do not develop for core.
I'm not saying it's not a valid factor, maintenance is always an issue, but it should not be the only factor in a decision.
Comment #17
catchYes we do. And that's why usability testing is great - to ensure that core UIs don't cater for core developers. Again that's completely different from adding/keeping UIs that core developers actively avoid using because they get in the way.
Comment #18
webchickWe talked about this on IRC, and I believe we agreed to do this.
Postponing on #1889150: Simplify overlay look, *only use for contextual operations* since that eliminates 99.9% of the complaints with Overlay.
If that doesn't get done by release, then we'll revisit this one.
Comment #19
RobLoachWould be good to still have a passing .patch, hopefully... http://github.com/RobLoach/drupalmirror/compare/2088121
Two changes:
Comment #20
RobLoachDidn't mean to change status.
Comment #21
RobLoachMeant to upload the .patch, not the .diff.
Comment #22
YesCT CreditAttribution: YesCT commentedFor testbot
Comment #23
YesCT CreditAttribution: YesCT commentedBack to postponed
Comment #24
nod_Viable alternative being worked on in #787896: Add a link so that administrators can return to their most recently visited non-admin page that would enable us to remove the overlay. Patch possible to try out in #2098713: Overlay alternative. to see what the behavior looks like.
Comment #25
nod_Removed jquery.bbq as well (yay!) New JS in tour module needs testing for multipage and tips filtering.
Just want to know what testbot says. git said:
43 files changed, 29 insertions(+), 4529 deletions(-)
, not bad :DComment #27
nod_Haha, I did not expect new files to be added to the overlay module :)
Comment #29
saltednutDoes work on this and #787896: Add a link so that administrators can return to their most recently visited non-admin page mean that #1889150: Simplify overlay look, *only use for contextual operations* should be closed (wont fix)?
edit: fixed issue #
Comment #30
nod_Changing a 5 in a 2, let's see what happens.
Comment #31
saltednutI don't think everything is gone yet. Using ack to search for overlay found a few things.
Also I am seeing (via manual testing) that tour module is now throwing this error on every page.
Comment #32
nod_- Removed the example code in hook_batch_alter(), might need a new code sample though.
- Removed a @todo in a js file.
- I'm leaving the overlay references in the D7 file, since that's D7 anyway.
I can't reproduce the JS problem, your browser cache is clear?
Comment #33
nod_Change notice to update: https://drupal.org/node/2116417
I tested the changes I made to the tour module with nick_schuch over IRC, everything still works. Can't reproduce #31.
Comment #34
ParisLiakos CreditAttribution: ParisLiakos commentedI cant reproduce it either
lets restore that
Besides that looks good
Comment #35
ParisLiakos CreditAttribution: ParisLiakos commentedalso we should probably remove this hook_alter implementation from toolbar:
Comment #36
nod_Thanks, fixed :)
Comment #37
nod_Yeah wasn't sure about that hook. Took it out, never seen anything using it.
Comment #38
ParisLiakos CreditAttribution: ParisLiakos commentedThanks!
Lets do it.
This feels so awesome..
Comment #39
nod_indeed :D
Comment #40
nod_#787896: Add a link so that administrators can return to their most recently visited non-admin page Should be committed first though. Otherwise we'd get a critical regression from UX team :)
Comment #41
ParisLiakos CreditAttribution: ParisLiakos commentedWe can also commit this now and mark the issue you linked as critical, to make sure D8 wont ship before it gets committed ;)
Comment #50
Bojhan CreditAttribution: Bojhan commentedI don't think this needs Dries yet. And yes, the other patch should be committed first.
Comment #52
nod_37: core-overlay-remove-2088121-37.patch queued for re-testing.
head should be fixed now right?
Comment #53
nod_Green, back to RTBC
Comment #54
webchickBack to Dries, and I guess postponed?
Comment #55
webchickSorry, due to #2140447: Open redirect in overlay (which was a critical security issue in D7, thus taking precedence over this patch) this will need a re-roll. :(
Comment #56
joelpittetVery excited about this issue... re-rolled!
Comment #57
nod_Comment #58
Bojhan CreditAttribution: Bojhan commentedComment #59
nod_let's try again.
Comment #60
Bojhan CreditAttribution: Bojhan commentedApparently I do not have the correct rights to mark it "Postponed". :D
nod_ suggested that we might now have to postpone twice, for it to really work.
Comment #61
Dries CreditAttribution: Dries commentedCommitted to 8.x! :)
Comment #62
xjmThis issue needs to be added to https://drupal.org/node/2116417 but unfortunately we can't do that until #2135759: DATA LOSS: Change record issue reference field is single-value is resolved.
Comment #63
nod_Updated change record.
Comment #64
nod_Follow-up
Comment #65
YesCT CreditAttribution: YesCT commentedSo, I was thinking overlay was moved to contrib. but I just want I verify that is *not* the case.
Overlay is not gong to be a contrib module.(?)
Comment #66
nod_No, as it was, it's not possible to implement from contrib.
Comment #67
LewisNymanI'd be interested in having the Overlay in contrib with the changes in #1889150: Simplify overlay look, *only use for contextual operations*
Comment #68
nod_You mean using modals (with an iframe or not) to handle contextual links? why not. That patch only makes sense for 7.x now. D8 version of this should use our modals.
Comment #69
LewisNymanThe reason I like the Overlay is because it uses an iframe. Any admin UI in the ctools modal gets completely destroyed by the front-facing theme.
Comment #71
dsnopekI'm going to attempt to port Modalframe to Drupal 8 when I find the time. Maybe that could be the answer for a contrib-based Overlay-like thing?