NEW ADDON: Channel Tree "Widget"
GOAL: Create a "channel tree" to organize related channels in a manner similar to the channel selection in DISCORD, MATTERMOST and other channel based interfaces.
DISCUSSION: Though Hubzilla is not a "chat" based system, the ability to organize related channels and group them in a way that is similar to current chat based interfaces is a helpful tool for building community and alerting users to other channels related either in content or intent to one another.
This project will require an ADDON to be created that contains a WIDGET and will require some (hopefully very limited) updates to the CORE of Hubzilla.
This project will require coders in JAVASCRIPT, HTML, CSS and PHP.
INITIAL DETAILS:
CORE: Need to create a way for channel owners to send to channel subscribers. This can likely be done in the subsystem that updates permission information and connection information.
ADDON: It is best to find where the changes need to be made in CORE and then to insert appropriate HOOKS to change the default behavior through an ADDON. Thus, the logic and heavy lifting will be done inside the ADDON and not in the CORE of Hubzilla.
UI: We will need CSS/HTML/JS for the display and interactivity.
UI: We will need CSS/HTML/JS for settings page(s) to update the list of "related channels."
INITIAL SCOPE: The widget should be a "tree" and each branch should indicate the following:
(1) Whether a channel has related channels (perhaps with a + or using an arrow < \/ to toggle viewing the subchannels) - watch out for recursion. Maybe determine maximum depth?
(2) Whether a channel has new activity
(3) Whether a channel/related channel is subscribed to or not
(4) An interface to add/remove/update "related channels"
(4) MAYBE: Whether a channel has permission to "post" and "comment"
(5) MAYBE: Whether a channel has additional resources ("chat", "wiki", "workflow", etc.)
(6) MAYBE: Add permission option to "Contact Roles" or "Privacy Groups" as to whether or not to send "related channels" information to a given contact OR a two tier "public related channels"/"private related channels" OR make these options as part of the add/remove/update interface
The ADDON and CORE updates will need to support these features.