-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Post gets automatically published without a confirmation #10021
Comments
Solution to this ticket is dependant on(blocked by) #9555. |
Changing the status field in settings isn't a great experience, especially if it's going to be saved without confirmation. This is an issue that requires a UI/UX review. |
If I understand correctly this is the same as #9555 but just publishing from settings rather than the publish button. Could I suggest we bring the two in-line by doing the following when user changes post status to Publish
That would bring the two experiences closer together |
@osullivanchris I'd like to confirm the behavior before we start implementing it. I've added an extra step (confirmation dialog) into the current flow. However, the flow seems a bit inconsistent.
|
@malinajirka thanks for pointing out this hole in the design! Thought it was gonna break it, but actually think we can just shift the confirmation dialogue a little. Nothing happens until the user leaves the editor. So when they are leaving the editor, then confirm that they really intend to publish the post. Brings it in line with the general solution I've proposed. Then if online they get the usual toast message and moves to published. If offline they get the 'publishing when online' status, cancel etc per #9555 This means (a) we've gotten extra confirmation from the user on their intention and (b) we tell them that we're gonna do it for them when online. So the issue discussed shouldn't be a problem in future, as they'll know what to expect and can also cancel. Hope you don't mind all the lo-fi sketches :D Just the quickest way to turn this around! |
A user issue that's related to this: p4a5px-2pG-p2. |
Thanks @osullivanchris. I like the idea and the flow makes sense. However, I believe the solution doesn't cover all the cases.
Having said all that, I think we could solve this by having a flag (eg. publishConfirmed) in the database as we discussed in some other ticket. The AutoUploader wouldn't publish any posts unless their publishing was explicitly confirmed by the user. If we had this, this flow could more or less work... We would still have posts with local 'published" status which haven't been confirmed. We could show a new label (eg. Waits for confirmation) and wait for a user interaction.
|
@malinajirka I did think about that. I don't think we should ever set something to publish before reaching that confirmation dialogue. So the UX here basically says you haven't really updated the status of the post to published until you hit that confirmation dialogue. Would it also be possible to limit that in the code, only commit that change to the status after the user hits the confirm on the dialogue? Then that would stop these scenarios from happening rather than having to come up with solutions for them. Then if user changes from draft to publish in the UI, change is not committed on the backend. If they crash before they get to the dialogue, then open the app again, its back on draft. |
@malinajirka - In iOS we have something like the flag you propose, but it's different. Instead of being a timestamp, it's a field that hold the desired status the user wanted for the post. This allows the user to signal not only that they wanted to publish a post, but even that they wanted to move a published post back to draft, or make other status changes. |
@malinajirka I also like @diegoreymendez' suggestion. 😄 It looks like we can use the same field for the intent to send to trash? |
We've improved this since I posted this comment. We were discussing using "publishConfirmedAt" timestamp instead. The main benefit of using a timestamps is that you don't need to change
Thanks for sharing @osullivanchris ! Yes, it's possible. However, the fix is useful not just for this ticket but for other tickets as well. Moreover, I'm a bit concerned it would bring another issues.
Thanks for sharing @diegoreymendez. I think both solutions have their pros and cons. Tbh I feel like they are trying to solve a bit different issues. If we use "publishConfirmedAt" timestamp If we use "field that hold the desired status the user wanted for the post" (I'm not sure I understand it correctly, so please correct me if I'm wrong) I think it's worth considering combining these two solutions. Having access to the remotePostStatus makes sense to me and I believe it could be useful in various scenarios. However, we need to make sure it'll work as expected - afaik for example "Scheduled" status doesn't exist on the server, it's just a status in the Android (?iOS?) app. I'm also wondering if the action (push, trash) should belong to PostModel and not just UploadModel. (It's also worth mentioning that the app currently relies on the "postStatus" field being up-to-date with what the user desires and the app changes the UI state accordingly. So it might require more changes than we can anticipate right now (🙈 changes in EditPostActivity).) cc @shiki |
@malinajirka haven't had time to come back to this one yet, but now thinking it would be simpler to just remove publishing from settings, and I think this has traction. See the comment on wordpress-mobile/WordPress-iOS#12099 (comment) |
@osullivanchris I think another scenario which might result in a post being published without user's confirmation is when the user sets a publish date to the future -> the post status is changed to "SCHEDULED". I'm not sure we can come up with a simple workaround for this case - we can't simply remove it from the options. |
@malinajirka for scheduled, is your concern for an offline user or an online user? For an online user, they choose a publishing time, and tap the word 'schedule'. I think its quite a deliberate action. I am not sure it requires an extra confirmation layer on top of what is there already. I am primarily concerned with publishing from the 'Status' setting as it seems like a very light weight interaction considering the consequences. Scheduling does not feel so lightweight to me. The only concerns I have looking at scheduling are:
Let me know if we're not on the same page or if there's something I've missed here |
The trick is that they don't need to click on "Schedule". As soon as they pick a date, the status of the post is changed to "Scheduled" (I'm 90% sure about this:D). It's not an issue now but will become an issue when we start auto-uploading. However, the "publishedConfirmedAt" solution fixes this, so it should be fine.
I think the users are used to this now, so I'd suggest not changing it. Basically we'll never publish/schedule a post unless the user explicitly clicks on the action. |
@malinajirka - This is a very interesting discussion because in iOS I currently have an issue assigned to try to also upload posts that weren't explicitly saved / published by the user. Bear with me for a second for going back to the Is the Does this flag you're adding prevent other types of unwanted status changes when uploading posts? (like draft to scheduled or vice-versa) |
Also an interesting question: if the post status for a post was changed from published to draft, and the app crashed... when reopening it would the post be saved as a draft? Bottom line is: I'm wondering if we should auto-upload at all when the user hasn't confirmed a save operation explicitly. |
Tbh I'm really interested in understanding this approach. So please bear with me @diegoreymendez :D.
I'm sorry, but I'm probably still missing something here:(. I'd suggest discussing this synchronously so we can get on the same page:). Some of the scenarios I'm not sure about:
It's for any change to a post whatsoever. The name isn't final - the current proposal is
Any change needs to be confirmed. So if the user didn't click on save/submit/publish/schedule before the crash, the change wouldn't be visible to the readers of the site (it can be only autosaved or auto-uploaded if it's a remote draft). |
@malinajirka - I'm interested in having a synch chat as well. It would be ideal for me if we could discuss it sometime soon, as it would unlock this open PR on my end: wordpress-mobile/WordPress-iOS#12178 |
This was fixed via - #10174 |
Update: The issue got hotfixed in 0abedf6. However, I believe we should keep this ticket open as there is an ongoing discussion about a proper fix.
Expected behavior
LocalDraftUploadService uploads only local drafts and never publishes them.
Actual behavior
LocalDraftUploadService publishes posts which status was set to "Publish" in the Post settings.
Steps to reproduce the behavior
Tested on [device], Android [version], WPAndroid [version]
Emulator API 27
The text was updated successfully, but these errors were encountered: