Open cabal95 opened 7 years ago
With the v8 changes proposed recently to Notes, I think we can use the existing note entity and gain threaded replies once v8 lands (or a pre-alpha with support baked in).
Here is the current progress of the UI. Feedback welcome and desired.
thumbs up
Feature idea (pardon if I missed this in the overview above): Ability to setup a discussion topic independently, such that we have a "DISQUS-style" embedded discussion for specific areas of our rock-powered site.
Good idea.
Done. The block that controls displaying and posting comments is now entity agnostic. When configuring the block you select the entity type it will be working against. So if you pick Page
then you can view and post comments on that page.
Overview
I will be referring to this system as a "forum". It's primary use will not really be forum discussion but I think the functionality is going to be so close we might as well call it that. Once the tires have been kicked I think it will make a good plug-in to Rock as a lightweight forum system should anybody wish to implement it. Some of the items I will mention may not make 100% use to us with the Labs and Rock Stars communication medium but I don't think they will be adding much overhead to the work that needs to be done.
General Data Models
Note
would be better to use we can. We would probably have to implement threading as a note that is added on a note. Not difficult just means we don't have an easy way to retrieve all comments for a topic at once.~E-mail notifications
E-mail notifications of new comments can be handled by the Following model. If you are following a topic then you will receive e-mail notifications of new comments.
An Attribute could be added later to the Following that allows you to specify if you want immediate notification or end-of-day batch notification.
Things We Need to Build
~Category Browser~ (Done, as general use category browser w/ Lava)
Could probably be pretty easily implement in Lava for display formatting and the .ascx.cs would just handle providing the Lava with the list of Categories to display.
~Topic List~ (Done, Lava and Grid options)
Initial implementation could be either a simple Grid or a Lava renderer.
~Topic Model~ (done)
The basic elements of a topic would be who posted, the one-line title, and message content. Initial interface can be extremely simple.
~Comment Model~ (Use existing Note model)
~What topic the comment is on, the parent Comment (if any) and the message content.~
Things We Have
Markdown Editor Control
I already have a markdown editor with live preview implemented and drag-and-drop file/image attachment.
Comment Display Control
I already have a "Note" display control that is styled more towards a comment discussion system than notes to be used in Rock. Should only need a few tweaks to make it display the way we would want (or more specifically, make it more easily customized via CSS).
E-mail Notification System
Easily done with a System E-mail. Plenty of examples in Rock how to do this that we could ~steal~ modal after.