The threaded-bboard package was developed in order to solve both of these problems. By using general-comments, the package is able to use pre-existing data models and code; general-comments also allows for a tree-like structure of comments, which makes it ideal for threading purposes.
Joe User logs onto the website and checks the main bulletin board page for new messages in those topics which he is allowed to views (i.e., public topics and topics scoped to a group that he belongs to). He sees a list of topics; the top topic has had three new responses in the past day. Intrigued, he clicks on the topic and sees the complete thread. After finding the new post, he clicks on the post and reads the new message. Infuriated by the message he reads, he clicks on the respond link and writes a nasty reply.
Jane User, who wrote that message, has subscribed to the entire thread; thus, she receives Joe's reply in the form of an email. Angered by Joe's rude response, she pushes the reply button on her email handler, writes her own nasty message, and sends the email. The email is parsed by the site, which automatically creates a response to Joe's message using the content of Jane's email.
Arnold Administrator, who is also subscribed to that thread, receives both of these messages. Since the content is inappropriate to the board, he logs onto the web site and goes to the administration page for that board. He then has three options:
10.10 The threaded-bboard package must be built on top of the general-comments data model with a minimum of changes.
20.10 Topics must be scopable by group.
30.10 Users must be able to be mapped to topics.
30.20 Users must be able to be mapped to threads.
30.30 Users must be able to be mapped to authors.
30.40 Users must be able to be mapped to keywords.
100.10 The package must support the basic functions of the general-comments API with the minimum of changes.
110.0 Thread Display Information
110.10 The package must allow messages in a thread to be pulled out in a Tcl list with all relevant information needed for display.
200.10 The package must be integrated with general-permissions.
210.10 Topics must be scopable bu group.
300.10 Alerts must be emailed to the appropriate users based on:
300.20 Alerts must contain links back to the appropriate page on the origination site.
310.10 A user who receives an email alert must be able to reply to that message by sending an email reply.
400.10 Site user can view topic listing, limited by permissions restrictions.
400.10 Users can view threads in a topic.
400.10 Users can view messages in a thread.
400.10 Users can create or reply to a thread.
400.10 Users can enable and disable various alerts (300.0).
410.10 Group administrator can view list of topics which they can administer.
410.20 Group administrator can approve/disapprove messages.
410.30 Group administrator can edit messages.
410.40 Group administrator can delete message branches.
410.50 Group administrator can create new bulletin boards.
410.60 Group administrator can scope bulletin boards to be viewable by their group or to be public.
420.10 Site administrator can view list of all topics.
420.20 Site administrator can perform all the functions of a group administrator (410.0).