Comments on content for easier collaboration

Description

Background

In most cases content is made together with different persons. The first user creates a draft version, the second user reviews it. Currently the reviewer cannot add his comments in the system easily. To allow this we want to create the IntegratedCommentBundle.

Requirements

  • When the uses selects text in a (normal input) text field or the TinyMCE editor an "Add comment" appears above the text.

  • When he clicks the button the comment screen appears


    The comment screen contains: the avatar and name of the person that is currently logged in, the creation time. If no person is connected to the user (the $user->getRelation() is null or not a person object) the username will appear without avatar. Note: Edit, Delete and Resolved can be skipped for now and will be added to a later version. When creating the text area to add a comment will have a placeholder "Add a comment" and button "Add comment". When opening a current comment the placeholder will be "Leave a reply" with button "Reply"

  • After adding the comment the tinymce editor will keep showing the line as selected (actually some kind of highlight will be needed). Click on the text will open the comment window.

  • For text fields highlighting will be hard. Because of that a blue bar need to be added to the text field for the comment. Click on the blue bar will open the comment.

  • When opening a current comment it is possible to add a reply.

Technical solution

  • CSS of comment screen is available. The .zip attached to this issue contains the comment.html file. The css is already included in the ContentBundle CSS.

  • The code will be in a separate bundle: IntegratedCommentBundle. This bundle will be optional.

  • Comments need to be saved in a separate collection. Please provide XML mapping for ORM and ODM.

  • Comment can be saved individually, separate from the whole content item.

  • The comment features need to be added with javascript, to separate with feature from the content bundle. (formtypes in the contentbundle should not be modified)

  • Currently there is not a nice way to add the javascript dynamically. So for now it need to be included in the ContentBundle or config, that's OK.

  • When saving the article the TinyMCE highlighting need to be removed before the content is submitted, because it should not be stored in the Content document.

Technical tasks

None

Deployment actions

Add to AppKernel.php:
new Integrated\Bundle\CommentBundle\IntegratedCommentBundle(),

Add to routing.yml:
integrated_comment:
resource: "@IntegratedCommentBundle/Resources/config/routing.xml"
prefix: "/admin"

Add to composer.json:
"integrated/comment-bundle": "~0.6.0"

Status

Assignee

Unassigned

Switches

None

Client

Marijn Otte

Epic Link

Fix versions

Configure