diff --git a/xtrn/DDMsgReader/DDMsgReader.js b/xtrn/DDMsgReader/DDMsgReader.js index 2c86f11e482b5b4139fd83ea7f4dfa86458d682d..dee7f162de5fe0ab8ce64ed96b5278beb6978ec1 100644 --- a/xtrn/DDMsgReader/DDMsgReader.js +++ b/xtrn/DDMsgReader/DDMsgReader.js @@ -185,6 +185,9 @@ * window, if there's an area change header in use, refresh it * and the header lines, since the scrollable help window would * display over them. + * 2024-11-20 Eric Oulashin Version 1.96c + * Bug fix: When showing a poll vote from the user, it should + * show people who've voted - ensure it only counts vote responses */ "use strict"; @@ -292,8 +295,8 @@ var hexdump = load('hexdump_lib.js'); // Reader version information -var READER_VERSION = "1.96b"; -var READER_DATE = "2024-11-03"; +var READER_VERSION = "1.96c"; +var READER_DATE = "2024-11-20"; // Keyboard key codes for displaying on the screen var UP_ARROW = ascii(24); @@ -18708,7 +18711,9 @@ function DigDistMsgReader_GetMsgBody(pMsgHdr) if ((msgFromUpper == user.name.toUpperCase()) || (msgFromUpper == user.handle.toUpperCase())) { // Check all the messages in the messagebase after the current one - // to find poll response messages + // to find ballots for this poll. For ballots, append the 'user voted' + // string to the message body. + // Get the line from text.dat for writing who voted & when. It // is a format string and should look something like this: //"\r\n\x01n\x01hOn %s, in \x01c%s \x01n\x01c%s\r\n\x01h\x01m%s voted in your poll: \x01n\x01h%s\r\n" 787 PollVoteNotice @@ -18717,28 +18722,52 @@ function DigDistMsgReader_GetMsgBody(pMsgHdr) // Pass true to get_all_msg_headers() to tell it to return vote messages // (the parameter was introduced in Synchronet 3.17+) var tmpHdrs = msgbase.get_all_msg_headers(true); + // Get the current sub-board's group name and configuration name, for use + // with the 'user voted' text + //var indexRecords = []; // Index records; faster than getting full message header objects + var grpName = ""; + var msgbaseCfgName = ""; + var msgbase = new MsgBase(this.subBoardCode); + if (msgbase.open()) + { + //indexRecords = msgbase.get_index(); + grpName = msgbase.cfg.grp_name; + msgbaseCfgName = msgbase.cfg.name; + msgbase.close(); + } for (var tmpProp in tmpHdrs) { if (tmpHdrs[tmpProp] == null) continue; - // If this header's thread_back or reply_id matches the poll message - // number, then append the 'user voted' string to the message body. - if ((tmpHdrs[tmpProp].thread_back == pMsgHdr.number) || (tmpHdrs[tmpProp].reply_id == pMsgHdr.id)) + if (tmpHdrs[tmpProp].type == MSG_TYPE_BALLOT && (tmpHdrs[tmpProp].thread_back == pMsgHdr.number || tmpHdrs[tmpProp].reply_id == pMsgHdr.id)) { var msgWrittenLocalTime = msgWrittenTimeToLocalBBSTime(tmpHdrs[tmpProp]); var voteDate = strftime("%a %b %d %Y %H:%M:%S", msgWrittenLocalTime); - var grpName = ""; - var msgbaseCfgName = ""; - var msgbase = new MsgBase(this.subBoardCode); + retObj.msgBody += format(userVotedInYourPollText, voteDate, grpName, msgbaseCfgName, tmpHdrs[tmpProp].from, pMsgHdr.subject); + } + } + // we could check the index records this way: + /* + for (var i = 0; i < indexRecords.length; ++i) + { + if (Boolean(indexRecords[i].attr & MSG_VOTE) && indexRecords[i].remsg == pMsgHdr.number) + { + // Get the 'from' name for this ballot + var ballotFromName = ""; if (msgbase.open()) { - grpName = msgbase.cfg.grp_name; - msgbaseCfgName = msgbase.cfg.name; + // TODO: get_msg_header() is returning null here..? + var tmpHdr = msgbase.get_msg_header(false, indexRecords[i].number); msgbase.close(); + if (tmpHdr != null) + ballotFromName = tmpHdr.from; } - retObj.msgBody += format(userVotedInYourPollText, voteDate, grpName, msgbaseCfgName, tmpHdrs[tmpProp].from, pMsgHdr.subject); + var msgWrittenLocalTime = msgWrittenTimeToLocalBBSTime(indexRecords[i]); + var voteDate = strftime("%a %b %d %Y %H:%M:%S", msgWrittenLocalTime); + retObj.msgBody += format(userVotedInYourPollText, voteDate, grpName, msgbaseCfgName, ballotFromName, pMsgHdr.subject); } } + */ } } } diff --git a/xtrn/DDMsgReader/ddmr_cfg.js b/xtrn/DDMsgReader/ddmr_cfg.js index 2249d47104bf31fc614d28313c5d94178f9928b0..fe4b4195930fc8ec46efd069c0c15ca05f44a374 100644 --- a/xtrn/DDMsgReader/ddmr_cfg.js +++ b/xtrn/DDMsgReader/ddmr_cfg.js @@ -5,7 +5,7 @@ // If you have DDMsgReader in a directory other than xtrn/DDMsgReader, then the changes to // DDMsgReader.cfg will be saved in that directory (assuming you're running ddmr_cfg.js from // that same directory). -// Currently for DDMsgReader 1.96b. +// Currently for DDMsgReader 1.96c. // // If you're running DDMsgReader from xtrn/DDMsgReader (the standard location) and you want // to save the configuration file there (rather than sbbs/mods), you can use one of the @@ -18,7 +18,7 @@ require("sbbsdefs.js", "P_NONE"); require("uifcdefs.js", "UIFC_INMSG"); -if (!uifc.init("DigDist. Message Reader 1.96b Configurator")) +if (!uifc.init("DigDist. Message Reader 1.96c Configurator")) { print("Failed to initialize uifc"); exit(1); diff --git a/xtrn/DDMsgReader/readme.txt b/xtrn/DDMsgReader/readme.txt index fa412371dc092638eda280afcd03659db5d3ecbf..381e36e115e128a655dbfe71f0e3961625bd56a5 100644 --- a/xtrn/DDMsgReader/readme.txt +++ b/xtrn/DDMsgReader/readme.txt @@ -1,6 +1,6 @@ Digital Distortion Message Reader - Version 1.96b - Release date: 2024-11-03 + Version 1.96c + Release date: 2024-11-20 by @@ -1318,7 +1318,7 @@ This is an example of the sub-board menu that appears in indexed mode - And from here, the user can choose a sub-board to read: Description Total New Last Post -��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� +��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� AGN GEN - General Chat 1004 0 2023-04-02 AGN BBS - BBS Discussion 1000 0 2023-01-17 NEW AGN ART - Art/Demo Scene 603 1 2023-04-02 @@ -1327,7 +1327,7 @@ NEW AGN ART - Art/Demo Scene 603 1 2023-04-02 AGN L46 - League Scores & Recons 1000 0 2016-09-10 NEW AGN TST - Testing Setups 2086 10 2023-04-03 AGN SYS - Sysops Only 1000 0 2023-01-19 -��������������� FIDO - FidoNet ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ +��������������������������������������������� FIDO - FidoNet ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ NEW BBS CARNIVAL - BBS Software Chatter 660 5 2023-04-04 BBS INTERNET - DOS/Win/OS2/Unix Internet BBS Applicatio 18 0 2023-03-04 CHWARE - Cheepware Support/Discussion 111 0 2023-03-16 @@ -1360,20 +1360,20 @@ added for a user will be preserved (DDMsgReader does a bitwise 'or'). A quick-validation set in CFG is a set that includes a security level, flag sets, exemptions, restrictions, and additional credits. For example: -���[���][?]������������������������������������������������������������ -��� Quick-Validation Values ��� -��������������������������������������������������������������������������������� -��� ?0 SL: 5 F1: ��� -��� ?1 SL: 10 F1: ��� -��� ?2 SL: 20 F1: ��� -��� ?3 SL: 30 F1: ��� -��� ?4 SL: 40 F1: ��� -��� ?5 SL: 50 F1: ��� -��� ?6 SL: 60 F1: ��� -��� ?7 SL: 70 F1: ��� -��� ?8 SL: 80 F1: ��� -��� ?9 SL: 90 F1: ��� -��������������������������������������������������������������������������������� +���������[���������][?]������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ +��������� Quick-Validation Values ��������� +��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� +��������� ?0 SL: 5 F1: ��������� +��������� ?1 SL: 10 F1: ��������� +��������� ?2 SL: 20 F1: ��������� +��������� ?3 SL: 30 F1: ��������� +��������� ?4 SL: 40 F1: ��������� +��������� ?5 SL: 50 F1: ��������� +��������� ?6 SL: 60 F1: ��������� +��������� ?7 SL: 70 F1: ��������� +��������� ?8 SL: 80 F1: ��������� +��������� ?9 SL: 90 F1: ��������� +��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 9. Drop file for replying to messages with Synchronet message editors diff --git a/xtrn/DDMsgReader/revision_history.txt b/xtrn/DDMsgReader/revision_history.txt index 1d78651aae5e61f63eb86a5ad4cde7b1bf303497..510cda6e82801506fa966a67a09c264bfb8527fa 100644 --- a/xtrn/DDMsgReader/revision_history.txt +++ b/xtrn/DDMsgReader/revision_history.txt @@ -5,6 +5,9 @@ Revision History (change log) ============================= Version Date Description ------- ---- ----------- +1.96c 2024-11-20 Bug fix: When showing a poll vote from the user, it should + show people who've voted - ensure it only counts vote + responses 1.96b 2024-11-03 Bug fix: When displaying the new scrollable area change help window, if there's an area change header in use, refresh it and the header lines, since the scrollable help