diff --git a/xtrn/DDMsgReader/DDMsgReader.js b/xtrn/DDMsgReader/DDMsgReader.js index 2ea2ecc942a14eab32c97c328660064aa01f428e..cb44c0c5c9305d9fa4f9c840199ca9112dc7dabb 100644 --- a/xtrn/DDMsgReader/DDMsgReader.js +++ b/xtrn/DDMsgReader/DDMsgReader.js @@ -172,11 +172,6 @@ "use strict"; -// TODO: To make the new-to-you scan faster, Digital Man said checking messagebase.last_msg against the user's new -// scan pointer for that sub is the optimization to do - -// TODO: In the message list, add the ability to search with / similar to my area chooser. - /* Command-line arguments (in -arg=val format, or -arg format to enable an option): @@ -8877,13 +8872,18 @@ function DigDistMsgReader_EditExistingMessageOldWay(pMsgbase, pOrigMsgHdr, pMsgI // their last message). function DigDistMsgReader_CanDelete() { + // Deleting messages is allowed if the user is the sysop or reading personal email. + // If not, check the sub-board configuration. var canDelete = user.is_sysop || this.readingPersonalEmail; - var msgbase = new MsgBase(this.subBoardCode); - if (msgbase.open()) + if (!canDelete) { - if (msgbase.cfg != null) - canDelete = canDelete || ((msgbase.cfg.settings & SUB_DEL) == SUB_DEL); - msgbase.close(); + var msgbase = new MsgBase(this.subBoardCode); + if (msgbase.open()) + { + if (msgbase.cfg != null) + canDelete = canDelete || ((msgbase.cfg.settings & SUB_DEL) == SUB_DEL); + msgbase.close(); + } } return canDelete; } @@ -8891,13 +8891,17 @@ function DigDistMsgReader_CanDelete() // the last message they posted in the sub-board. function DigDistMsgReader_CanDeleteLastMsg() { + // Sysops can delete the last message by default. If not, check the sub-board configuration. var canDelete = user.is_sysop; - var msgbase = new MsgBase(this.subBoardCode); - if (msgbase.open()) + if (!canDelete) { - if (msgbase.cfg != null) - canDelete = canDelete || ((msgbase.cfg.settings & SUB_DELLAST) == SUB_DELLAST); - msgbase.close(); + var msgbase = new MsgBase(this.subBoardCode); + if (msgbase.open()) + { + if (msgbase.cfg != null) + canDelete = canDelete || ((msgbase.cfg.settings & SUB_DELLAST) == SUB_DELLAST); + msgbase.close(); + } } return canDelete; } @@ -8905,13 +8909,17 @@ function DigDistMsgReader_CanDeleteLastMsg() // messages. function DigDistMsgReader_CanEdit() { + // Sysops can edit by default. If not, check the sub-board configuration. var canEdit = user.is_sysop; - var msgbase = new MsgBase(this.subBoardCode); - if (msgbase.open()) + if (!canEdit) { - if (msgbase.cfg != null) - canEdit = canEdit || ((msgbase.cfg.settings & SUB_EDIT) == SUB_EDIT); - msgbase.close(); + var msgbase = new MsgBase(this.subBoardCode); + if (msgbase.open()) + { + if (msgbase.cfg != null) + canEdit = canEdit || ((msgbase.cfg.settings & SUB_EDIT) == SUB_EDIT); + msgbase.close(); + } } return canEdit; } @@ -8919,13 +8927,18 @@ function DigDistMsgReader_CanEdit() // is enabled. function DigDistMsgReader_CanQuote() { + // Sysops and users reading personal email can quote by default. + // If not, check the sub-board configuration. var canQuote = this.readingPersonalEmail || user.is_sysop; - var msgbase = new MsgBase(this.subBoardCode); - if (msgbase.open()) + if (!canQuote) { - if (msgbase.cfg != null) - canQuote = canQuote || ((msgbase.cfg.settings & SUB_QUOTE) == SUB_QUOTE); - msgbase.close(); + var msgbase = new MsgBase(this.subBoardCode); + if (msgbase.open()) + { + if (msgbase.cfg != null) + canQuote = canQuote || ((msgbase.cfg.settings & SUB_QUOTE) == SUB_QUOTE); + msgbase.close(); + } } return canQuote; } @@ -21869,14 +21882,14 @@ function getExternalEditorQuoteWrapCfgFromSCFG(pEditorCode) // Return value: The new string function chgCharInStr(pStr, pCharIndex, pNewText) { - if (typeof(pStr) != "string") - return ""; - if ((pCharIndex < 0) || (pCharIndex >= pStr.length)) - return pStr; - if (typeof(pNewText) != "string") - return pStr; + if (typeof(pStr) != "string") + return ""; + if ((pCharIndex < 0) || (pCharIndex >= pStr.length)) + return pStr; + if (typeof(pNewText) != "string") + return pStr; - return (pStr.substr(0, pCharIndex) + pNewText + pStr.substr(pCharIndex+1)); + return (pStr.substr(0, pCharIndex) + pNewText + pStr.substr(pCharIndex+1)); } // Given a string of attribute characters, this function inserts the control code