====== Message List ======
This module (''msglist.js'') can be used as a full-screen scrolling user interface for listing messages (public posts and private email messages) and reading and replying to messages.
{{:module:msglist_screenshot.png?600|}}
This module was first demonstrated in this [[https://www.youtube.com/watch?v=5mwimlWJOko|video]].
===== Dependencies =====
For full/proper function of this module, you'll need a recent v3.17c dev-build (as of March, 2020) of Synchronet, or later.
This module may require an update of your Synchronet ''exec/[[dir:load]]'' directory to get the latest ''.js'' load-libraries, including the newly added ''age.js''.
The following menu files are used by this module:
* ''[[dir:text]]/menu/msglist.asc''
* ''[[dir:text]]/menu/msgview.asc''
===== Install =====
==== System Modules ====
Run ''[[util:jsexec]] msglist.js -install''.
This procedure this will configure the "Read Mail" and "List Msgs" modules in [[util:SCFG]]->System->Loadable Modules with command-lines that call this module to handle those system functions from all built-in menus and stock command shells.
==== Menu Command ====
If you wish to allow your BBS users to list sub-board messages directly from a Baja command shell menu (e.g. using the 'L' command key from the main or message menu) add the following command key handler to the desired command shell source (''.src'') file(s):
for Synchronet v3.18 or later:
cmdkey L
msg_list
end_cmd
for Synchronet v3.17 or older:
cmdkey L
exec_bin "msglist"
end_cmd
... and then recompile the source file with [[util:baja]] (e.g. ''baja default.src'').
In Synchronet v3.20, the default command shell (''default.js'') already has main menu ''L'' command key mapped to the BBS message list function.
===== Configure =====
The behavior of this module is sysop-configurable through the use of command-line arguments and the ''[[config:modopts.ini]]'' file.
==== Command-Line Options ====
^ Option ^ Description ^
| ''-preview'' | Enable the message preview pane by default |
| ''-nospam'' | Don't load SPAM-tagged messages |
| ''-spam'' | Only load SPAM-tagged messages |
| ''-unread'' | Only load unread messages |
| ''-reverse'' | Reverse the default message list order |
==== modopts.ini ====
The ''[msglist]'' section of the ''[[config:modopts.ini]]'' file may be created by the sysop to customize the look-and-feel of this module.
If a ''[msglist:]'' section exists, then those settings will take precedence when the module is being used to list/view messages in the message base with the specified internal //code// (e.g. ''[msglist:mail]'' for the mail message base).
^ Option ^ Default ^ Description ^
| ''reverse_mail'' | true | List mail messages in reverse chronological order (newest first) by default |
| ''reverse_msgs'' | true | List sub-board messages in reverse chronological order (newest first) by default |
| ''cache_msg_text'' | false | Cache message text in memory |
| ''large_msg_threshold'' | 64 KBytes | Message text larger than this value will not be cached in memory |
| ''preview_label'' | "\xd9 Preview" | Displayed string |
| ''preview_label_terminator'' | " \xc0" | Displayed string |
| ''preview_lines_fmt'' | " lines %u-%u" | Displayed string |
| ''preview_total_lines_fmt'' | " of %u" | Displayed string |
| ''preview_separator'' | '\xC4' | Character for Preview Pane separator |
| ''preview_properties'' | date,attributes,subject | Properties to display in the Preview Pane separator |
| ''preview_properties_fmt'' | "\xd9 %s \xc0" | Displayed string format |
| ''preview_properties_maxlen'' | 10 | Maximum length of a previewed property value |
| ''preview_properties_separator'' | ", " | Separator to use between previewed property values |
| ''hide_redundant_properties'' | true | Repeated property columns are automatically hidden |
| ''date_fmt'' | %Y-%m-%d | Format of dates displayed in list |
| ''date_time_fmt'' | system default | Format of date/time displayed in list |
| ''pause'' | true | Pause for a key-press after posting a message, or set to a duration (in seconds), or ''false'' |
| ''beep'' | true | Console alerts/beeps are enabled |
| ''view_lines_fmt'' | "%slines %u-%u" | Displayed string |
| ''view_total_lines_fmt'' | " of %u" | Displayed string |
| ''view_line_range_fmt'' | "\x01n\x01h\x01k[%s]" | Displayed string |
| ''preparing_preview_fmt'' | "%25s" | Displayed string |
| ''reading_message_text'' | "\x01[Reading message text ..." | Displayed string |
| ''preparing_hex_dump'' | "\x01[Preparing hex-dump ..." | Displayed string |
| ''translating_charset'' | "\x01[Translating charset ..." | Displayed string |
| ''wrapping_lines'' | "\x01[Wrapping lines ..." | Displayed string |
| ''splitting_lines'' | "\x01[Splitting lines ..." | Displayed string |
| ''area_name_fmt'' | "\x01n\x01k\x017%s / %s\x01h" | Displayed string |
| ''area_nums_fmt'' | "[message %u of %u]" | Displayed string |
| ''attr_spam'' | "Sp" | Displayed string |
| ''attr_attach'' | "Att" | Displayed string |
| ''attr_delete'' | "Del" | Displayed string |
| ''attr_new'' | "New" | Displayed string |
| ''attr_replied'' | "Re" | Displayed string |
| ''attr_read'' | "Rd" | Displayed string |
| ''attr_perm'' | "Perm" | Displayed string |
| ''attr_anon'' | "Anon" | Displayed string |
| ''attr_locked'' | "Lck" | Displayed string |
| ''attr_kill'' | "Kill" | Displayed string |
| ''attr_noreply'' | "NoRe" | Displayed string |
| ''attr_mod'' | "Mod" | Displayed string |
| ''attr_valid'' | "Valid" | Displayed string |
| ''attr_private'' | "Priv" | Displayed string |
| ''attr_poll'' | "Poll" | Displayed string |
| ''attr_sent'' | "Sent" | Displayed string |
| ''attr_intransit'' | "InTransit" | Displayed string |
| ''attr_sep'' | " " | Displayed string |
===== See Also =====
* [[:module:|module index]]
{{tag>messages}}