-
Eric Oulashin authoredEric Oulashin authored
DDMsgReader.js 802.31 KiB
/* This is a message reader/lister door for Synchronet. Features include:
* - Listing messages in the user's current message area with the ability to
* navigate forwards & backwards through the list (and for ANSI users, a
* lightbar interface will be used, or optionally can be set to use a more
* traditional interface for ANSI users)
* - The user can select a message from the list to read and optionally reply to
* - For ANSI users, reading messages is done with an enhanced user interface,
* with the ability to scroll up & down through the message, move to the next
* or previous message using the right & left arrow keys, display the message
* list to choose another message to read, etc.
* - The ability to start up with the message list or reading messages in the
* user's current message area (AKA sub-board)
* - Message searching
*
* Author: Eric Oulashin (AKA Nightfox)
* BBS: Digital Distortion
* BBS address: digitaldistortionbbs.com (or digdist.bbsindex.com)
*
* Date Author Description
* 2014-09-13 Eric Oulashin Started (based on my message lister script)
* ... Comments trimmed ...
* 2022-03-14 Eric Oulashin Version 1.47
* Updated to make DDMsgReader can be called directly as a
* loadable module by Synchronet (work started on March 8).
* Also, refactored to use attr_conv.js and removed the
* attribute conversion functions from this script.
* 2022-03-23 Eric Oulashin Version 1.47a
* Now calls bbs.edit_msg() to edit an existing message (if
* that function exists - It was added in Synchronet 3.18).
* 2022-06-12 Eric Oulashin Version 1.48
* Improved display of ANSI messages via the use of the Graphic object
* 2022-06-13 Eric Oulashin Version 1.49
* Refactor: Simplified saving a message to BBS machine for sysop
* (as-is, less processing); removed attachment stuff for pre-Synchronet
* 3.17; moved hasSyncAttrCodes() to attr_conv.js because that's where it
* needs to be.
* 2022-06-13 Eric Oulashin Version 1.50
* When doing a text search, it now ignores the user scan configuration for
* sub-boards, to ensure it will show any results of the text search.
* 2022-07-05 Eric Oulashin Version 1.51
* Graphic is now only used when using the scrollable interface. Also,
* when creating the Graphic, now subtracting 1 from the reading area height
* to avoid making the Graphic one line too tall to avoid unnecessary scrolling.
* When saving messages with ANSI codes, Graphic is only used if the message has
* any ASCII drawing characters. (not sure if this really matters much though).
* Also, applied "use strict" and made some changes as necessary.
* 2022-07-09 Eric Oulashin Version 1.52
* Mouse click support for the bottom help lines in scrollable mode
* (thanks to help from Nelgin)
* 2022-07-18 Eric Oulashin Version 1.53
* Deleted messages can now be un-marked for deletion from the message
* list with the U key (if the user has delete permissions). Also, the reader now
* honors the system setting for whether users can view deleted messages.
* 2022-08-06 Eric Oulashin Version 1.54
* Users now have a personal twit list (configurable via Ctrl-U, user settings).
* 2022-09-23 Eric Oulashin Version 1.55
* Refactored how email replies are done (passing the header to the appropriate
* functions, not using ungetstr() when prompting for the message subject)
* 2022-11-25 Eric Oulashin Version 1.56
* Fixed bug startup mode for scanning all groups for un-read messages to you where
* the reader was bringing up personal email instead.
* 2022-12-02 Eric Oulashin Version 1.57
* @-codes were only expanded when reading personal mail; now, DDMsgReader
* also checks to make sure the sender is a sysop. Also, used putmsg() in
* place of this script's own @-message parsing when displaying some of the
* configured text strings.
* 2022-12-12 Eric Oulashin Fix for "assignment to undeclared variable" error in GetMsgSubBrdLine();
* appeared when changing to a different message area from the reader
* 2012-12-14 Eric Oulashin Version 1.58
* When writing QUOTES.TXT, quote lines are now wrapped if the user's