Author: | Michael JasonSmith |
---|---|
Contact: | Michael JasonSmith <mpj17@onlinegroups.net> |
Date: | 2015-02-23 |
Organization: | GroupServer.org |
Copyright: | This document is licensed under a Creative Commons Attribution-Share Alike 4.0 International License by OnlineGroups.net. |
A topic is the core of the system that displays posts in GroupServer. It is, at its most basic, a group of posts with a common subject. This product supplies the code for handling the traversal to the topic, the page for rendering the topic, and some supporting JavaScript.
The messages/topic
traversal system is used to determine if a
participant should see the topic page, a 410 Gone
error page
(if the topic has been hidden), or a 404 Not Found
if the
topic does not exist.
The Topic Page is the workhorse of GroupServer, as it displays
the core content of a GroupServer group. It is divided into four
main sections: a summary a sticky toggle, the list of posts
itself, and the Post a reply form. Most sections provide
viewlets for the
gs.group.messages.topic.base.interfaces.ITopicPage
viewlet
manager.
The Topic Page starts with a summary of the topic: how many posts, who made the most recent post, and the keywords. This summary is designed to reflect the metadata shown in the Topics list on the Group page.
The sticky-topic toggle appears as part of the toolbar at the top
of the Topic Page, next to the navigation links and the Share
button, if the person that is viewing the page is an
administrator. The toggle is a small form, provided by the
gs-group-messages-topic-admin-stickytoggle
viewlet. When the
page is loaded it checks with page
gs-group-messages-topic-sticky-getter
to determine if the
topic is sticky or not, and adjusts the Sticky button
accordingly. When the administrator toggles the Sticky button
the page gs-group-messages-topic-sticky-setter
is used to
change the topic.
The list of posts, provided by the
gs-group-messages-topic-list
viewlet, forms the bulk of the
Topic Page. However, the list is simple, as most of the actual
rendering of each post in the topic is done by the
gs.group.messages.post
product [1].
The Topic Page finishes with the Post a reply form. It is shown to everyone that can post [2]. It is a non-stand form:
- The
From
field uses the user's name and profile photo in place of a label. - The
Message
field is unlabelled. - The multi-file widget [3] enables an arbitrary number of widgets to be submitted with the form.
The lack of labels makes the Post a reply form more similar to a standard email client.
Three JavaScript resources are provided by this product.
/++resource++gs-group-messages-topic-multifile-20160127.js
:- Customisation to the MultiFile system [3].
/++resource++stickytoggle-20151112.js
:- Client-side code to power the Sticky toggle.
- Code repository: https://github.com/groupserver/gs.group.messages.topic.base
- Translations: https://www.transifex.com/projects/p/gs-group-messages-topic-base/
- Questions and comments to http://groupserver.org/groups/development
- Report bugs at https://redmine.iopen.net/projects/groupserver
[1] | See gs.group.messages.post
<https://github.com/groupserver/gs.group.messages.post/> |
[2] | See gs.group.member.canpost
<https://github.com/groupserver/gs.group.member.canpost/> |
[3] | (1, 2) See gs.content.js.multifile
<https://github.com/groupserver/gs.content.js.multifile/> |