[ 
https://jira.nuxeo.com/browse/NXP-8546?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Antoine Taillefer updated NXP-8546:
-----------------------------------

    Attachment: diff_result_sample.png

> Add a diff feature to compare two documents or two versions of a document
> -------------------------------------------------------------------------
>
>                 Key: NXP-8546
>                 URL: https://jira.nuxeo.com/browse/NXP-8546
>             Project: Nuxeo Enterprise Platform
>          Issue Type: User story
>            Reporter: Antoine Taillefer
>            Assignee: Antoine Taillefer
>             Fix For: ADDONS_5.6
>
>         Attachments: diff_result_sample.png
>
>
> h2. Use cases
> There a several cases where it makes sense to compare (make a diff of) 2 
> documents.
> # *Version diff*: you want to list the modifications between a document and 
> one of its archived versions, typically in the case of functional 
> specifications.
> # *Publication diff*: you want to list the modifications between a published 
> document and its source, typically in the case of a web site page to measure 
> the gap between the draft and what is online. In Nuxeo this happens to be the 
> same case as the Version diff since the published document is a proxy to a 
> version of the document.
> # *Document diff*: you want to list the modifications between a document A 
> and a document B, typically in the case of product information documents 
> where you may want to compare the product caracteristics such as material / 
> price / creation date.
> h2. Approach
> *Comparing (= making a diff of) 2 documents or 2 versions of a document* can 
> be seen in a Nuxeo way as *comparing the properties shared by the 2 
> documents*.
> - This means that if a comparison is done between two documents of a 
> different type, only the schemas in common will be "diffed".
> - The result of the comparison only shows the properties that have been 
> updated, or added / deleted in the case of multivalued properties.
> - The comparison should take into account blob-type properties. This is a 
> tricky part since:
> ** The diff process depends on the blob mime type, therefore we need to be 
> able to define a list of supported types for which the diff is possible and 
> for each type to contribute a tool in charge of the diff.
> ** We have to find a nice way of displaying the result of a blob diff, again 
> depending on  the blob mime type.
> h2. High level User Story
> # Launching a comparison
> #* In the {{History > Archived Versions}} tab I can check versions. If I 
> check 2 (and only 2) versions then the {{Compare}} button located under the 
> version listing gets enabled.
> #* In the same tab, for each version a button {{Compare to current version}} 
> is also available.
> These two first cases cover the *Version diff* use case.
> #* In a content view if I check 2 (and only 2) documents then the {{Compare}} 
> button located near the {{Copy}}, {{Paste}}, ... buttons gets enabled.
> This approach is nice for comparing 2 documents living in the same container 
> or that are part of a search result, but we also need to be able to compare 2 
> documents lcoated in separate containers.
> #* So if I have added 2 (and only 2) documents to my worklist, then a 
> {{Compare}} action appears in the worklist actions.
> These two last cases cover the *Publication diff* and *Document diff* use 
> cases.
> # Viewing the diff result in the UI
> #* The diff result is displayed in the right panel, as a table with 2 
> columns: document A / document B, and as many lines as different properties.
> #* By default, properties are grouped by schemas. It could be nice to have a 
> layout / widget system to have a full control on the diff result display.
> #* Rendering of a blob-type property diff still has to be defined.
> #* Attached screenshot gives an example of the result of a diff between 2 
> documents, for most property types (simple, complex, complex list).
> A color code is used to better distinguish updated / added / deleted values:
> #** red for left document
> #** green for right document
> #* The add/delete notions make sense in the version diff case.
> In the document diff case, we can consider that we are comparing the right 
> document with the left document which is the reference.
> Therefore a value  existing in the right doc and not in the left one will be 
> considered as "added" in comparison with the reference doc => green means 
> added.
> Conversely for the "deleted" case: red means "deleted".
> # PDF export
> #* I want to make a PDF export of a diff result.
> #* I may also want to automatiucally store the generated PDF in Nuxeo?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
ECM-tickets mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm-tickets

Reply via email to