Page MenuHomePhabricator

Disable live previews
Closed, ResolvedPublic

Description

Live previews can be distracting / annoying when you're trying to write a lot of text and it's infrequently updating beneath.

My proposal is a simple checkbox above every live preview box that you can tick to disable the liveness of the preview box. It allows you then activate it again to see if you have formatted your text correctly.. or if you've accidentally activated some image-macro.

The implementation:

  • a checkbox above every preview box
  • configuration allowing users to decide if the box should be checked by default or not (maybe an overkill?)
  • a stop() method in ShapredRequest.js

Revisions and Commits

rP Phabricator
D14856

Related Objects

StatusAssignedTask
Resolvedepriestley
Resolvedepriestley
Resolvedepriestley
Resolvedepriestley
Resolvedepriestley
Resolvedhsb
Resolvedepriestley
Resolvedepriestley

Event Timeline

hsb added a project: Phriction.
hsb added subscribers: hsb, btrahan.

I think in general this auto-preview stuff is worth a second look. My understanding is @chad agrees that we can do better here; I might be making that up. :)

I love the checkbox idea as a stopgap. That said, I find myself not as distracted / annoyed as you. Can you color your pain more vividly for us? :)

One quasi-related issue is in differential if you have a diff with many files touched it can be hard to enter a comment in the main comment area / action area due to the screen constantly shifting downward. I bring this up in case it lights up any neurons about what Phabricator should do most generally when people are trying to enter text and know what they are doing.

Curious about @chad's take on this. I personally like the live previews but have definitely heard some grumbling about them. They also probably make less sense on mobile.

Implementation-wise, I'm pretty open to whatever, although I'd probably prefer a global on/off state (on = live, off = preview button) to pause/resume.

If we stop() the ShapedRequest we stop saving drafts, so we still need to send the requests if we don't want to also change the draft behavior.

For the Differential shifting thing, we could stop laying in diffs if you focus the text box, I suppose. We'd probably need a visual indication that loading was paused, but we should ideally have a better status element there anyway.

(I do find previews a bit less awesome in Phriction.)

I haven't written tons of wiki docs, but its in Phame and I am not the biggest fan of it there. It seems less useful as a function of the amount of text you are posting.

You can also hit "Z" in Differential to get the "haunted" panel but that doesn't work in Audit.

The checkbox would clutter the interface.

Shouldn't that be implemented as an user preference setting instead?

@btrahan Sure can. My pain is that the live preview box doesn't dance to the rhythm of my keyboard. It sometimes lags, it sometimes is on time and then it lags again completely messing with my hand/eye-coordination ... somehow. A quicker fix could be to increased the refresh-rate but that could maybe hurt the servers performance if many users are editing some text at the same time?

@epriestley ah, didn't notice ShapedRequest was also creating drafts. So it would have to "not update" the preview box instead of not sending the requests?

@dereckson I though about the clutter issue but there has to be some way for the user to preview his text to see if he is formatting it correctly.
My workflow was usually: Disable live preview, write a lot of text, enable live preview for finishing touches (very much plural). That's why I thought a checkbox would be better and the user-setting (default checked/ not checked) easiest. I don't think a global "never do live preview" user setting is the way to go but I'm up for other ideas.

I also tried a button-triggered-refresh on my installation but that got tiring really quickly because of the number of the small fixes you usually have to do on a large document.

There already is a "Preview" label on most of the preview boxes, so maybe a drop down arrow next to it where you can turn live on off? Or make the Preview label into a button, green [Live Preview] that you can click to get a blue [Dead Preview] ? :)

Just triaging this -- my plan is to build it into ApplicationTransactions and then everything will get it for free after T2217 / T2222.

Just thought I'd throw my two cents in: on mobile devices the Live preview causes a significant amount of lag in typing, often you can type 20 characters or so before the screen will update at all. By this I don't mean that the live preview takes ages to update; I mean even showing the characters in the text area itself lags because the mobile device probably can't handle the number of requests or processing power required to do it. On mobile I think it should be disabled by default unless explicitly enabled in a user's profile, because otherwise the site is basically unusable to comment or reply to things on a phone or tablet.

Krenair changed the visibility from "All Users" to "Public (No Login Required)".May 17 2015, 2:53 PM
Krenair added a subscriber: Krenair.

I think this task should be reopened, because there is no way to disable live preview in desktop currently.

Full screen disables live previews in any remarkup box.

Thanks @chad, but it seems not good enough.

I would need to cross-reference task description while writing. Is it possible to implement a UI button (or something like that) to turn on/off it?