Providing fine-grained version histories of electronic documents at a platform
A first version of an electronic document is provided via a first region of a graphical user interface (GUI) for presentation to a first user of a collaborative document platform. A second region of the GUI includes an edit history GUI element that enables one or more users to access each edit made to the electronic document. A user selection of a portion of the edit history GUI element is detected. The user-selected portion of the edit history GUI element corresponds to edits made to the electronic document by a second user. A determination is made of a state of the electronic document following the edits made by the second user. The first region of the GUI is updated to include a rendering of a second version of the electronic document. The second version is rendered in view of the determined document state.
1. A method comprising:
providing, for presentation to one or more of a plurality of users of a collaborative electronic document platform, a first version of an electronic document via a first region of a graphical user interface (GUI) of the collaborative document platform and an edit history GUI element via, a second region of the GUI, wherein the edit history GUI element enables the one or more of the plurality of users to access each iteration of edits made to the electronic document between a first time period and a second time period, the edit history GUI element comprising:
a first visual representation of one or more first edits made to the electronic document between the first time period and the second time period, wherein the first visual representation indicates a first user of the plurality of users that provided the first edits and a first location of the electronic document that comprises a first content item subject to the one or more first edits, and
a second visual representation of one or more second edits made to the electronic document between the first time period and the second time period, wherein the second visual representation indicates a second user of the plurality of users that provided the second edits and a second location of the electronic document that comprises a second content item subject to the one or more second edits;
detecting a user selection of a portion of the edit history GUI element, wherein the user-selected portion of the edit history GUI element corresponds to a particular iteration of at least one of the one or more first edits or the one or more second edits;
determining, based on metadata for the electronic document, a state of the electronic document when the particular iteration of the at least one of the one or more first edits or the one or more second edits was completed; and
updating the first region of the GUI to include a rendering of a second version of the electronic document, wherein the second version of the electronic document is rendered in view of the determined state of the electronic document.
2. The method of claim 1 , wherein the metadata for the electronic document comprises an edit data structure, wherein each entry of the edit data structure comprises a mapping between a time period at which a particular edit was made to the electronic document, a type of the particular edit, and a coordinate associated with a section of the electronic document corresponding to the particular edit.
3. The method of claim 2 , further comprising:
identifying a set of pixels of the GUI that correspond to the user-selected portion of the edit history GUI element;
determining, using a pixel-to-time period mapping, a time period associated with the identified set of pixels, wherein the determined time period corresponds to at least one of the first time period or the second time period;
identifying a respective timestamp of a set of timestamps generated for edits made to the electronic document that satisfies a time period criterion in view of the determined time period associated with the identified set of pixels;
identifying an entry of the edit data structure that corresponds to the respective timestamp; and
extracting the type of each of the at least one of the one or more first edits or the one or more second edits and a coordinate associated with at least one of the first location or the second location of the electronic document corresponding to a respective edit iteration of the at least one of the one or more first edits or the one or more second edits from the identified mapping, wherein the second version of the electronic document is generated based on the extracted type of the respective edit iteration and the coordinate associated with the at least one of the first location or the second location of the electronic document corresponding to the respective edit iteration.
4. The method of claim 1 , further comprising:
responsive to detecting the one or more first edits made to the electronic document by the first user, generating, for each of the one or more first edits, a mapping between a time of the first time period at which a respective edit was made, a type of the respective edit, and a coordinate associated with a section of the electronic document corresponding to the respective edit; and
updating an entry of an edit data structure included in metadata for the electronic document to include the generated mapping.
5. The method of claim 1 , further comprising:
detecting another user selection of an additional portion of the edit history GUI element, wherein the additional portion of the edit history GUI element corresponds to one or more additional edits made to the electronic document by at least one of the second user or a third user of the plurality of users;
determining, based on the metadata for the electronic document, an additional state of the electronic document following the one or more additional edits previously made to the electronic document by the at least one of the second user or the third user; and
updating the first region of the GUI to include a third version of the electronic document, wherein the third version of the electronic document is generated in view of the determined additional state of the electronic document.
6. The method of claim 1 , wherein at least one of the one or more first edits or the one or more second edits comprise at least one of an addition of at least one of the first content item or the second content item to the electronic document, a deletion of at least one of the first content item or the second content item from the electronic document, a modification of at least one of a format or a style of at least one of the first content item or the second content item in the electronic document, or a movement of at least one of the first content item or the second content item from a first section of the electronic document to a second section of the electronic document.
7. The method of claim 1 , wherein at least one of the first content item or the second content item comprises at least one of one or more alphanumeric characters, one or more symbolic characters, one or more image objects, or one or more drawing objects.
8. The method of claim 1 , wherein updating the first region of the GUI to include the rendering of the second version of the electronic document further comprises:
updating the first region of the GUI to include a first GUI element and a second GUI element, wherein the first GUI element indicates the first location comprising the first content item subject to the one or more first edits and the second GUI element indicates the second location comprising the second content item subject to the one or more second edits.
9. A system comprising:
a memory device; and
a processing device coupled to the memory device, the processing device to perform operations comprising:
providing, for presentation to one or more of a plurality of users of a collaborative electronic document platform, a first version of an electronic document via a first region of a graphical user interface (GUI) of the collaborative electronic document platform and an edit history GUI element via a second region of the GUI, wherein the edit history GUI element enables the one or more of the plurality of users to access each iteration of edits made to the electronic document between a first time period and a second time period, the edit history GUI element comprising:
a first visual representation of one or more first edits made to the electronic document between the first time period and the second time period, wherein the first visual representation indicates a first user of the plurality of users that provided the first edits and a first location of the electronic document that comprises a first content item subject to the one or more first edits, and
a second visual representation of one or more second edits made to the electronic document between the first time period and the second time period, wherein the second visual representation indicates a second user of the plurality of users that provided the second edits and a second location of the electronic document that comprises a second content item subject to the one or more second edits;
detecting a user selection of a portion of the edit history GUI element, wherein the user-selected portion of the edit history GUI element corresponds to a particular iteration of at least one of the one or more first edits or the one or more second edits;
determining, based on metadata for the electronic document, a state of the electronic document when the particular iteration of the at least one of the one or more first edits or the one or more second edits was completed; and
updating the first region of the GUI to include a rendering of a second version of the electronic document, wherein the second version of the electronic document is rendered in view of the determined state of the electronic document.
10. The system of claim 9 , wherein the metadata for the electronic document comprises an edit data structure, wherein each entry of the edit data structure comprises a mapping between a time period at which a particular edit was made to the electronic document, a type of the particular edit, and a coordinate associated with a section of the electronic document corresponding to the particular edit.
11. The system of claim 10 , wherein the operations further comprise:
identifying a set of pixels of the GUI that correspond to the user-selected portion of the edit history GUI element;
determining, using a pixel-to-time period mapping, a time period associated with the identified set of pixels, wherein the determined time period corresponds to at least one of the first time period or the second time period;
identifying a respective timestamp of a set of timestamps generated for edits made to the electronic document that satisfies a time period criterion in view of the determined time period associated with the identified set of pixels;
identifying an entry of the edit data structure that corresponds to the respective timestamp; and
extracting the type of each of the at least one of the one or more first edits or the one or more second edits and a coordinate associated with at least one of the first location or the second location of the electronic document corresponding to a respective edit iteration of the at least one of the one or more first edits or the one or more second edits from the identified mapping, wherein the second version of the electronic document is generated based on the extracted type of the respective edit iteration and the coordinate associated with the at least one of the first location or the second location of the electronic document corresponding to the respective edit iteration.
12. The system of claim 9 , wherein the operations further comprise:
responsive to detecting the one or more first edits made to the electronic document by the first user, generating, for each of the one or more first edits, a mapping between a time of the first time period at which a respective edit was made, a type of the respective edit, and a coordinate associated with a section of the electronic document corresponding to the respective edit; and
updating an entry of an edit data structure included in metadata for the electronic document to include the generated mapping.
13. The system of claim 9 , wherein the operations further comprise:
detecting another user selection of an additional portion of the edit history GUI element, wherein the additional portion of the edit history GUI element corresponds to one or more additional edits made to the electronic document by at least one of the second user or a third user of the plurality of users;
determining, based on the metadata for the electronic document, an additional state of the electronic document following the one or more additional edits previously made to the electronic document by the at least one of the second user or the third user; and
updating the first region of the GUI to include a third version of the electronic document, wherein the third version of the electronic document is generated in view of the determined additional state of the electronic document.
14. The system of claim 9 , wherein at least one of the one or more first edits or the one or more second edits comprise at least one of an addition of at least one of the first content item or the second content item to the electronic document, a deletion of at least one of the first content item or the second content item from the electronic document, a modification of at least one of a format or a style of at least one of the first content item or the second content item in the electronic document, or a movement of the content item from a first section of the electronic document to a second section of the electronic document.
15. The system of claim 9 , wherein at least one of the first content item or the second content item comprises at least one of one or more alphanumeric characters, one or more symbolic characters, one or more image objects, or one or more drawing objects.
16. A non-transitory computer readable storage medium comprising instructions for a server that, when executed by a processing device, cause the processing device to perform operations comprising:
providing, for presentation to one or more of a plurality of users of a collaborative electronic document platform, a first version of an electronic document via a first region of a graphical user interface (GUI) of the collaborative document platform and an edit history GUI element via, a second region of the GUI, wherein the edit history GUI element enables the one or more of the plurality of users to access each iteration of edits made to the electronic document between a first time period and a second time period, the edit history GUI element comprising:
a first visual representation of one or more first edits made to the electronic document between the first time period and the second time period, wherein the first visual representation indicates a first user of the plurality of users that provided the first edits and a first location of the electronic document that comprises a first content item subject to the one or more first edits, and
a second visual representation of one or more second edits made to the electronic document between the first time period and the second time period, wherein the second visual representation indicates a second user of the plurality of users that provided the second edits and a second location of the electronic document that comprises a second content item subject to the one or more second edits;
detecting a user selection of a portion of the edit history GUI element, wherein the user-selected portion of the edit history GUI element corresponds to a particular iteration of at least one of the one or more first edits or the one or more second edits;
determining, based on metadata for the electronic document, a state of the electronic document when the particular iteration of the at least one of the one or more first edits or the one or more second edits was completed; and
updating the first region of the GUI to include a rendering of a second version of the electronic document, wherein the second version of the electronic document is rendered in view of the determined state of the electronic document.
17. The non-transitory computer readable storage medium of claim 16 , wherein the metadata for the electronic document comprises an edit data structure, wherein each entry of the edit data structure comprises a mapping between a time period at which a particular edit was made to the electronic document, a type of the particular edit, and a coordinate associated with a section of the electronic document corresponding to the particular edit.
18. The non-transitory computer readable storage medium of claim 17 , wherein the operations further comprise:
identifying a set of pixels of the GUI that correspond to the user-selected portion of the edit history GUI element;
determining, using a pixel-to-time period mapping, a time period associated with the identified set of pixels, wherein the determined time period corresponds to at least one of the first time period or the second time period;
identifying a respective timestamp of a set of timestamps generated for edits made to the electronic document that satisfies a time period criterion in view of the determined time period associated with the identified set of pixels;
identifying an entry of the edit data structure that corresponds to the respective timestamp; and
extracting the type of each of the at least one of the one or more first edits or the one or more second edits and a coordinate associated with at least one of the first location or the second location of the electronic document corresponding to a respective edit iteration of the at least one of the one or more first edits or the one or more second edits from the identified mapping, wherein the second version of the electronic document is generated based on the extracted type of the respective edit iteration and the coordinate associated with the at least one of the first location or the second location of the electronic document corresponding to the respective edit iteration.
19. The non-transitory computer readable storage medium of claim 16 , wherein the operations further comprise:
responsive to detecting the one or more first edits made to the electronic document by the first user, generating, for each of the one or more first edits, a mapping between a time of the first time period at which a respective edit was made, a type of the respective edit, and a coordinate associated with a section of the electronic document corresponding to the respective edit; and
updating an entry of an edit data structure included in metadata for the electronic document to include the generated mapping.
20. The non-transitory computer readable storage medium of claim 16 , wherein the operations further comprise:
detecting another user selection of an additional portion of the edit history GUI element, wherein the additional portion of the edit history GUI element corresponds to one or more additional edits made to the electronic document by at least one of the second user or a third user of the plurality of users;
determining, based on the metadata for the electronic document, an additional state of the electronic document following the one or more additional edits previously made to the electronic document by the at least one of the second user or the third user; and
updating the first region of the GUI to include a third version of the electronic document, wherein the third version of the electronic document is generated in view of the determined additional state of the electronic document.