Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough

“Reply to Anything” in Open Atrium

Parent Feed: 

atrium-logo-1Since it’s beginning, Open Atrium had Discussion Forums, allowing members to collaborate on various topics.  In the Winter 2015 2.3x release, we added Related Content, which allowed you to attach a Discussion Post to other content, such as an Event.  But what if you wanted to have a discussion around a piece of content directly without creating a separate related discussion post?  In the new Spring 2.4x release, you can “Reply to Anything,” whether it’s core content such as an Event or a custom site-specific content type.

Drupal Comments

At a high level, the “Reply to Anything” release of Atrium was a simple task of enabling normal Drupal comments for any content type.  The Atrium Discussion forum didn’t use Comments, but instead used the same content type for “Replies” as for the “Original Post.”  While this was architecturally convenient and allowed Replies to contain attachments, it didn’t allow Replies to be added to other content types easily.

Comments in Drupal tend to get a bad rep.  Many feel that comments look ugly, don’t support rich content such as attachments, or are subject to spam and require serious moderation.  The challenge for Atrium was to enable Comments while dealing with some of these complaints.

Improving Comments

Open_Atrium_comment_screenshotSignificant testing and feedback went into the original design of the Atrium Discussion forums.  We decided to implement the same functionality for Comments, plus some new features:

  1. Personalization: causing new comments to be auto-expanded, while old comments are collapsed.
  2. Attachments: rather than just allowing attachments to be added to Comments, the entire Related Content paragraphs architecture was re-used.  More on this below.
  3. Migration: previous Discussion Replies are migrated automatically into Comments.
  4. Easy Administration: rather than editing the content type to enable Comments, a central UI interface is used to choose which content types use comments.
  5. Threaded Discussions: support comments to comments, allowing fully threaded discussions.

The result is a consistent and intuitive interface across Atrium for handling comments to content, whether it’s a Discussion post, a worktracker Task, an Event, a Space, or any other type of content.

Rich Comment Content

Re-using the Related Content work from v2.3x, we were able to support very rich comment content.  For example, the screenshot in the previous section shows a comment with an image and two columns of text.  Rather than just using the WYSIWYG to embed an image, that comment uses the Media Gallery paragraph type to add the image, along with a Text paragraph to add two columns of text.  You can even use the Related Content to embed another live discussion along with it’s own comments and reply form within another comment.  Comment Inception!   In the past you could only add a file attachment to a Reply.  With Related Content you can add a Related Document to a Comment, which might be a file attachment, but might also be just a Wiki-like web document.
Open_Atrium_comment_3_screenWhen integrating the Related Content we also did a large amount of UX improvement.  The different paragraph types are now represented with icon “tabs” along the bottom of the WYSIWYG editor, much like the tabs at the bottom of your Facebook status field.  Using a Drupal hook you can even specify icons for your own custom paragraph types!  This new UX for Related Content paragraphs was taken from Comments and then extended to work on the Body of the node/edit form, providing a consistent Related Content experience across all of Atrium.  You can separately control which paragraph types are available for the node Body vs available for Comments.

What can I do with all this?

Technical features are fine, but it’s really all about the client needs that can be solved.  Here are some of the use-cases you can solve now using Atrium:

  1. Feedback and Collaboration on Anything:  Threaded discussions on any content type, not just the Discussion posts, without needing to use Related Content.  Because of Atrium’s strong data privacy controls, comments are added by Members of a Space and are less subject to spam or needing moderation.  However, full comment approval moderation is also still available.  Comment threads can be open or closed on a per-node basis.
  2. Social Feeds: Enable comments on Space, Section, or even Team pages, providing a “Status Feed” functionality.  Users can quickly and easily post comments (status updates) and have them appear in the Recent Activity.  If you enable comments on User Profiles (from the Open Atrium Profile2 app), you can even support the concept of a “Facebook Wall” where users can post comments (status) on a specific user’s profile dashboard.  These are areas still requiring some improvements to the UX that you will see in future versions of Atrium to make this a more useable social experience, but you can get started with it now.
  3. Fieldable Comments:  By adding new paragraph entity bundles, you are essentially adding optional fields to comments.  Developers can define templates to control the edit and view experience for custom fields.  Using the included Comments Alter module, comments can actually change the values of fields on the parent content node, such as the Status, Type, and Priority fields on the worktracker Task content.
  4. Email Integration: As with past Discussion Replies, adding a Comment causes a notification email to be sent.  Users can reply to the email and the reply will be posted back to the Atrium site.  This now works with any comments on any content type, such as replying to comments from a worktracker Task.

Conclusion

Many users of Atrium have asked for comment support, which was specifically disabled in past versions.  Now Atrium fully supports the Drupal Comment system and everything sites want to do with it.  Integrating the Recent Content work into Comments provides powerful functionality that is implemented consistently and intuitively across the entire platform.  Allowing Comments on anything further pushes the core mission of Atrium to enable and enhance collaboration across your organization.

Want to learn more or see the new comments in action?  Sign up for the Open Atrium Spring Release webinar on Thursday, June 4th, at 12:30pm EST.

Author: 
Original Post: