Block level document revision
A method, computer system, and computer program manage revisions in a document. The document is displayed in a graphical user interface. The document comprises a structured data object composed from a set of tiles, wherein each tile corresponds to one or more data nodes. The tiles are composable according to a domain-specific language of an integrated development environment. One or more revisions to the structured data object are received in sequence. The revisions to each data node of the set of tiles composing the structured data object are independently managed, enabling each revision to be independently reverted to a prior state irrespective of the sequence and revisions to other data nodes of the set of tiles and without reverting the other data nodes of the structured data object to their prior state.
1 . A system, comprising:
one or more processors, coupled with memory, to:
execute a computer software that comprises a development environment and a graphical user interface, the development environment is interactable via the graphical user interface;
display, in the graphical user interface, a document comprising a structured data object, the structured data object corresponding to a plurality of data nodes, each data node of the plurality of data nodes defining an execution context for another data node of the plurality of data nodes;
identify, based on a first interaction with the development environment via the graphical user interface, a revision to the structured data object, the revision including a change of the plurality of data nodes from a first state to a second state;
display, via the graphical user interface, responsive to the revision, a first revision of the document according to the second state of the plurality of data nodes;
receive, based on a second interaction with the development environment via the graphical user interface, a selection of a data node of the plurality of data nodes to revert a state of the data node from the second state of the data node to the first state;
revert, responsive to the selection, the state of the data node from the second state to the first state while maintaining remaining data nodes of the plurality of data nodes in the second state; and
display, via the graphical user interface, a second revision of the document according to the first state of the data node and the second state of the remaining data nodes.
2 . The system of claim 1 , wherein the structured data object comprises a tile that includes the plurality of data nodes, and the one or more processors further:
receive, via the graphical user interface, the revision to the tile of the structured data object; and
generate, responsive to the revision, the first revision of the document according to the second state of the plurality of data nodes of the tile.
3 . The system of claim 1 , wherein the structured data object comprises a plurality of tiles, the plurality of tiles including a first tile comprising the data node of the plurality of data nodes and a second tile comprising the remaining data nodes of the plurality of data nodes, and the one or more processors further:
receive, via the graphical user interface, the revision to the plurality of tiles of the structured data object;
generate, responsive to the revision, the first revision of the document according to the first state of the data node of the first tile and the second state of the remaining data nodes of the second tile; and
generate, responsive to the selection, the second revision of the document according to the first state of the data node of the first tile and the second state of the remaining data nodes of the second tile.
4 . The system of claim 1 , wherein at least one of the revision or the selection comprises at least one of:
changing a property of a data node of the plurality of data nodes,
changing a value of a data node of the plurality of data nodes,
appending an additional tile to the structured data object, or
deleting a tile comprising the plurality of data nodes from the structured data object.
5 . The system of claim 1 , wherein the development environment comprises a menu providing access to a sequence of revisions comprising the revision in a draft history for the document.
6 . The system of claim 5 , wherein the draft history comprises:
a list of data nodes of the plurality of data nodes that were changed; and
an undo control associated with each data node of the plurality of data nodes in the list.
7 . The system of claim 6 , wherein the selection corresponds to the data node of the plurality of data nodes from the list, and the one or more processors further:
focus, responsive to the selection, onto a first area of a plurality of areas of the graphical user interface corresponding to the data node; and
highlight the revision in a second area of the plurality of areas of the graphical user interface.
8 . The system of claim 1 , wherein the one or more processors further:
receive, via the graphical user interface, a second selection of an undo control associated with the data node of the plurality of data nodes; and
revert, responsive to the second selection, the state of the data node from the first state to the second state.
9 . The system of claim 1 , wherein the graphical user interface further comprises a visual indicator to highlight the data node of the plurality of data nodes that was reverted to the first state.
10 . The system of claim 1 , wherein the one or more processors further:
identify, via the graphical user interface, from a history of revisions, a sequence of revisions of the structured data object of the document corresponding to prior versions of the document; and
identify the revision responsive to an interaction with the history of revisions via the graphical user interface.
11 . The system of claim 1 , wherein the one or more processors further:
display, via the graphical user interface, a comparison view of differences between the first revision of the document and the second revision of the document based on the first state of the data node and the second state of the remaining data nodes of the plurality of data nodes.
12 . The system of claim 1 , wherein the one or more processors further:
generate, for display via the graphical user interface, in the first state subsequent to reversion from the second state.
13 . The system of claim 1 , wherein the one or more processors further:
receive, via the graphical user interface, a third selection to revert a subset of the remaining data nodes of the plurality of data nodes from the second state to a third state; and
revert, responsive to the third selection, the state of the subset of the remaining data nodes from the second state to the third state while maintaining other of the remaining data nodes in the second state.
14 . A method, comprising:
displaying, by one or more processors coupled with memory, in a graphical user interface, a document comprising a structured data object, the structured data object corresponding to a plurality of data nodes, each data node of the plurality of data nodes defining an execution context for another data node of the plurality of data nodes;
identifying, by the one or more processors, based on a first interaction with a development environment displayed via the graphical user interface, a revision to the structured data object, the revision including a change of the plurality of data nodes from a first state to a second state;
displaying, by the one or more processors, via the graphical user interface, responsive to the revision, a first revision of the document according to the second state of the plurality of data nodes;
receiving, by the one or more processors, based on a second interaction with the development environment displayed via the graphical user interface, a selection of a data node of the plurality of data nodes to revert a state of the data node from the second state of the data node to the first state;
reverting, by the one or more processors, responsive to the selection, the state of the data node from the second state to the first state while maintaining remaining data nodes of the plurality of data nodes in the second state; and
displaying, by the one or more processors, via the graphical user interface, a second revision of the document according to the first state of the data node and the second state of the remaining data nodes.
15 . The method of claim 14 , wherein the structured data object comprises a tile that includes the plurality of data nodes, the method comprising:
receiving, by the one or more processors, via the graphical user interface, the revision to the tile of the structured data object; and
generating, by the one or more processors, responsive to the revision, the first revision of the document according to the second state of the plurality of data nodes of the tile.
16 . The method of claim 14 , wherein the structured data object comprises a plurality of tiles, the plurality of tiles including a first tile comprising the data node of the plurality of data nodes and a second tile comprising the remaining data nodes of the plurality of data nodes, the method comprising:
receiving, by the one or more processors, via the graphical user interface, the revision to the plurality of tiles of the structure data object;
generating, by the one or more processors, responsive to the revision, the first revision of the document according to the first state of the data node of the first tile and the second state of the remaining data nodes of the second tile; and
generating, by the one or more processors, responsive to the selection, the second revision of the document according to the first state of the data node of the first tile and the second state of the remaining data nodes of the second tile.
17 . The method of claim 14 , wherein at least one of the revision or the selection comprises at least one of:
changing a property of a data node of the plurality of data nodes,
changing a value of a data node of the plurality of data nodes,
appending an additional tile to the structured data object, or
deleting a tile comprising the plurality of data nodes from the structured data object.
18 . A non-transitory computer readable media storing program instructions for causing one or more processors to:
display, via a graphical user interface, a document comprising a structured data object, the structured data object corresponding to a plurality of data nodes, each data node of the plurality of data nodes defining an execution context for another data node of the plurality of data nodes;
identify, based on a first interaction with a development environment displayed via the graphical user interface, a revision to the structured data object, the revision including a change of the plurality of data nodes from a first state to a second state;
display, via the graphical user interface, responsive to the revision, a first revision of the document according to the second state of the plurality of data nodes;
receive, based on a second interaction with the development environment displayed via the graphical user interface, a selection of a data node of the plurality of data nodes to revert a state of the data node from the second state of the data node to the first state;
revert, responsive to the selection, the state of the data node from the second state to the first state while maintaining remaining data nodes of the plurality of data nodes in the second state; and
display, via the graphical user interface, a second revision of the document according to the first state of the data node and the second state of the remaining data nodes.