Forum OpenACS Development: Re: Enhancing forums
* Navigation links (next/prev thread when viewing a message),
* Ability to expand threads in forum-view page,
* Showing user portraits...
* Mark messages as read/unread using views package
These features are almost done. But I have not found a simple way to sort all threads (maybe a few of them were expanded) by date, descendant. I mean, when using tree_sortkey, is not possible (in just one single sql query) to sort them by another criteria. The only way is doing 2 queries, one to get the message root id's with whatever criteria you want, and then, another query to get all messages...
Ranking posts is another idea I have, but the ratings package does not work for me right now. And also, tagging messages (automatically? depending on some rules).
BTW, I'm trying to do a 100% accesible forums enhancement, with "old-style" links (I mean, click to go to another page...), but I'd like to add a more usable one.
I'm sure I saw something by Rocael at some point where he'd done a version of forums with different views? Maybe he could help?
On the other hand, a more robust implementation of various good ideas are more than welcome, though inclusion in our official version of forums will require approval of the .LRN leadership team, since it's a crucial part of that product and is under the control of the .LRN project.
Inclusion in our CVS and therefore in .LRN requires
1. that the features be commonly thought to be useful.
2. that the new features be accessible (or turned off by default if not) - the decision was made last year that we'll require .LRN packages to be accessible (legal requirements for universities in the EU now, and growing pressure in that direction in the US, too).
3. stand up to testing and review, i.e. be reasonably well implemented and robust
Hopefully these requirements don't seem too stringent to people ...
I have been playing with sql for grabbing more data (a new view for adding a few columns), css for UI improvements. I've also made changes to tcl/adp to switch between threaded and non threaded html views (UNED requirements)
And I'd like to add a little of ajax in some simple actions (for instance: "mark this reply as unread"), without removing the accessible links.
I'd like to know where is the best place to write about my enhancements, with screenshots if possible, discuss about it, propose improvements, tips, share, etc.
Maybe I could became member of "Forum Facelift Project" http://openacs.org/xowiki/Forums
I can capture a few screenshots, and publish them with a list of new features in a wiki, and post here a link.
Well, I can write now a list of features:
uForums (Forums enhancements for UNED)
- expand node(s), so...
- show expanded nodes
- collapse node(s)
- collapse all (button or list-template action)
- show unthreaded version button (sort only by date)
- "new message" highlight (using views package and/or a new table for read/unread feature)
- show only new messages button
- mark as read/unread (if views is available)
- mark thread as read/unread button (bulk action)
- mark all forum as read button
- tooltips to show more info
- preview content
- authors information details (disabled right now)
- Next thread /prev thread navigation links
- User portrait
- reply to author button (link to mail)
- forward message button (email to...)
- row.adp architecture reviewed
All new features check a package parameter (new for each feature) value to know if the new behavior is enabled or not, and if it's what kind of behavior is set. For instance,
- when marking a message as unread ¿should be marked as unread all the replies or only that message?,
- When expanding a node: ¿expand all levels, or just one?
I'm working now in that points:
- write tests
- test when moderated forums
- add return_url to some actions
- simple admin page (with common parameters)
PS: I have to say that there have been 5 people involved in that develpoment during the last year at UNED: David Arroyo (First UNED requirements done), Raúl Morales (Portlet), Alberto Pesquera (DB and TCL API), Mario Aguado (data model modifications, and Team Leader/Supervisor), and Me: (Mostly User Interface changes)
* "switch to another group's forum" widget
* human friendly posting dates (13 minutes ago, 4 hours ago, sunday... and so on)
Is the "switch to another group's forum" based on "dotlrn communities" groups?
it switches between the group forums, not to other forums in another groups :)
All those features sound great and I'm looking forward to seeing a demo.
Regarding including Ajax based code, I would not include it in the main package but rather write a ajax-forums-ui (ala ajax-filestorage-ui). In the near future, when ARIA become available and supported by main web browsers, it would allow us to have an aria-forum-ui for example so the user could choose which UI to use. Having separate packages for the UIs would ease extensibility and maintenance.
Also, I guess that writing separate package for UI will be easier when package types that Dave is working on (I hope so will be available (see http://www.openacs.org/forums/message-view?message%5fid=1482643). -btw, we should include that TIP in the agenda of the next OCT-
I'm thinking on a forums enhancing, not on a complete rewrite of forums using (almost only) Ajax, so I think a few Ajax requests should be too bad.
Nop.. no one at Galileo did that implementation.