Page MenuHomePhabricator

Plans: Phriction modern "v3" APIs, Drafts
Open, NormalPublic

Description

See PHI840. This may unravel somewhat, but the immediate path forward looks like adding draft phases and a publish operation.


This probably mostly revolves around an EditEngine upgrade. Other EditEngine stuff:

  • See T4274. This may be trivial after EditEngine.
  • See T5811. The modern draft stuff has better behavior.
  • See T9102, maybe. I think just declining this is also reasonable.
  • See T3963. EditEngine forms can roughly approximate this.
  • See T10859. Bundling additional data in the preview would be nice.

See T5410. I'm likely to just decline this.

History might need to become a real object?

  • See T12193. Notes could be comments? See also T1894. But we can pull mentions out of them, at a minimum.

See T4815. This is a minor but reasonable UI improvement.


Done

See PHI366. An instance wants more reasonable API access to Phriction. Phriction has weird v2 APIs and should have modern v3 APIs.

See T11163. I'll likely decline this.

See T10969. This is just a bug.

See T5941. Requires ferret or ngrams but those seem reasonable.

See T12344. This is "wrong" but we can probably make this work (maybe?) since "%" isn't a valid slug character anyway.

The contentID property on Document should probably not be nullable. We can generate a Document PHID first, save the Content with the right Document PHID, then save the Document with the content ID. Deleted/moved/stub documents still have Content, I'm pretty sure -- oh, except we can't do, this because Content uses documentID, not documentPHID. So maybe kick the can down the road. (This was resolved by swapping everything to PHIDs.)

Details

Commits
D19668 / rP0abf29765e05: Make Phriction diff-of-changes view draft-aware and clarify some language
D19664 / rP0089ef4b60e3: Don't show Phriction draft edit events in feed
D19663 / rPb6ba75d991df: Add a Phriction hint when a draft exists, and fix some draft editing bugs
D19662 / rP550028a8825a: Allow Phriction document edits to be saved as drafts
D19661 / rP152e7713eb06: Remove obsolete, nonfunctional draft auto-saving in Phriction
D19660 / rPe19c555913b1: Support (basic) commenting on Phriction documents
D19659 / rP2379c21fbbd1: Give Phriction documents a normal timeline
D19627 / rP26d9ee456f30: Hide the new Phriction "Publish" operation behind the "Prototype" toggle
D19626 / rP18e8d9a45265: Make the Phriction "History" view more aware of drafts
D19625 / rP3b1294cf4599: Store Phriction max version on Document, improve editing rules for editing…
D19622 / rP876638e42895: Add a UI element for navigating between versions of a Phriction document
D19621 / rP349686319e30: Allow the published version of a Phriction document to differ from the most…
D19620 / rP50f4adef64cf: Remove on-object mailkeys from Phriction
D19619 / rP64cee4a902da: Move Phriction internal document/content references from IDs to PHIDs
D19618 / rP04f8270a7466: Remove some unusual UI policy hints in Phriction
D19617 / rP4afb6446d97b: Allow DocumentView to render with a curtain, and make Phriction use a curtain
D19616 / rPfd0da4c41f82: Rename "PHUIDocumentViewPro" to "PHUIDocumentView"
D19125 / rP4cb62ca0d6ae: Support "phriction.document.search" queries by "parentPaths" or "ancestorPaths"
D19115 / rPcb2f7106069b: Provide the document content as a context object when rendering Phriction…
D19114 / rP66a7ca49b20c: Fix incorrect context extraction for relative Phriction links on Phriction pages
D19113 / rPdb3ef4021a5d: Freeze the "phriction.info" Conduit API method
D19112 / rP6d3177a3bf29: Allow "phriction.document.search" to query by path
D19111 / rPHU9f49d4ed21f1: Tweak handling of "[[ / ]]" and "[x](y)" where "y" has parentheses
D19110 / rP8796a6036ed1: Let users escape more easily from the autosuggester after typing "[" or "("
D19109 / rP0202c36b62d7: Suggest Phurl URLs on "((..." in Remarkup text areas
D19108 / rP8771b7d5c40c: Add autocomplete for Phriction documents on "[[ ..." in Remarkup
D19107 / rPf82206a4d1af: Add a rough Quick Search datasource for Phriction documents
D19106 / rPb8bb4d3ad590: Accept either "[[ %24doge ]]" or "[[ $doge ]]" as references to the "/w/$doge/"…
D19105 / rPbfdc9411f705: Provide context objects for remarkup mail rendering, fixing Phriction relative…
D19103 / rP45403b162aa5: Flesh out "phriction.document.search" slightly and provide page text for…
D19100 / rP143350fdba48: Give Phriction documents modern string status constants instead of numeric…
D19099 / rPc1056f6dab53: Partially clean up Phriction document status constants; introduce "phriction.
D19098 / rP48eb82f229be: Freeze "phriction.history" in favor of "phriction.content.search"
D19097 / rP8101bf74e9ce: Introduce a "phriction.content.search" API method to replace "phriction.history"
D19096 / rPa965d8d6ae5a: Make PhrictionContent "description" non-nullable
D19095 / rPf742d00c2894: Mostly use PhrictionContentQuery to load PhrictionContent objects
D19094 / rP9404e2b3d425: Implement PolicyInterface, ExtendedPolicyInterface, and DestructibleInterface…
D19093 / rPb2c829f2743b: Move PhrictionContent from RemarkupInterface (deprecated) to PHUIRemarkupView
D19092 / rPe492c717c657: Give PhrictionContent objects (older versions of wiki pages) legitimate PHIDs

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
ftdysa added a subscriber: ftdysa.Feb 15 2018, 1:43 PM
epriestley updated the task description. (Show Details)Feb 16 2018, 12:49 AM
epriestley moved this task from Backlog to Future on the Plans board.Mar 5 2018, 3:03 PM

The corresponding support ticket was likely addressed by these changes. The remaining stuff here is still planned, but probably not moving forward any time soon.

contentID on Document should probably not be nullable. We can generate a Document PHID first, save the Content with the right Document PHID, then save the Document with the content ID. Deleted/moved/stub documents still have Content, I'm pretty sure -- oh, except we can't do, this because Content uses documentID, not documentPHID. So maybe kick the can down the road.

D19619 fixes this, but now we have a different problem: if you create a new document and want the new document to be a draft, we have no way to represent that. I'm just going to not support that for now and figure it out later if there's interest in it.

epriestley moved this task from Future to Soon on the Plans board.Sep 5 2018, 1:32 PM
epriestley renamed this task from Plans: Phriction modern "v3" APIs to Plans: Phriction modern "v3" APIs, Drafts.Sep 5 2018, 2:35 PM
epriestley updated the task description. (Show Details)