Fixes for SysOp Chat Page

This commit is contained in:
mysticbbs 2012-02-22 02:49:20 -05:00
parent bba8ac7cd9
commit 287f96b784
3 changed files with 65 additions and 51 deletions

View File

@ -3833,3 +3833,9 @@
+ CTRL-W now deletes the word to the left of the cursor in the full + CTRL-W now deletes the word to the left of the cursor in the full
screen editor. screen editor.
! SysOp Chat Page in Windows now properly updates the user's terminal
during the page.
+ Sysop Chat Page in Windows now plays the "default beep" sound as
configured in Windows.

View File

@ -12,6 +12,7 @@ Uses
m_Strings, m_Strings,
m_DateTime, m_DateTime,
{$IFNDEF UNIX} {$IFNDEF UNIX}
Windows,
bbs_SysopChat, bbs_SysopChat,
{$ENDIF} {$ENDIF}
bbs_Common, bbs_Common,
@ -27,9 +28,6 @@ Procedure AutoSig_Edit;
Procedure AutoSig_View; Procedure AutoSig_View;
Procedure List_Users (Data: String); Procedure List_Users (Data: String);
{$IFNDEF UNIX}
Procedure Page_For_Chat (Forced: Boolean);
{$ENDIF}
Procedure Last_Callers; Procedure Last_Callers;
Procedure Add_TimeBank; Procedure Add_TimeBank;
Procedure Get_TimeBank; Procedure Get_TimeBank;
@ -42,6 +40,10 @@ Procedure Voting_Booth_New;
Procedure View_History (LastDays: Word); Procedure View_History (LastDays: Word);
Procedure View_Directory (Data: String; ViewType: Byte); Procedure View_Directory (Data: String; ViewType: Byte);
{$IFNDEF UNIX}
Procedure PageForSysopChat (Forced: Boolean);
{$ENDIF}
Implementation Implementation
Uses Uses
@ -434,56 +436,14 @@ Begin
End; End;
End; End;
End; End;
Close (Session.User.UserFile);
Close (Session.User.UserFile);
Session.io.PromptInfo[1] := strI2S(Total); Session.io.PromptInfo[1] := strI2S(Total);
Session.io.OutFull (Session.GetPrompt(31)); Session.io.OutFull (Session.GetPrompt(31));
End; End;
{$IFNDEF UNIX}
Procedure Page_For_Chat (Forced: Boolean);
Var
Temp : String;
A, B : Integer;
Begin
If Forced or ((TimerMinutes >= Config.ChatStart) and (TimerMinutes <= Config.ChatEnd)) Then Begin
Session.io.OutFull (Session.GetPrompt(23));
Temp := Session.io.GetInput(50, 50, 11, '');
If Temp = '' Then Exit;
Session.SystemLog('Chat Page: ' + Temp);
Update_Status_Line (0, ' ' + strPadR(Session.User.ThisUser.Handle, 17, ' ') + ' ' + strPadR(Temp, 40, ' ') + ' ALT+(S)plit (C)Line');
Session.io.OutFull(Session.GetPrompt(24));
For A := 1 to 10 Do Begin
Session.io.OutFull(Session.GetPrompt(25));
For B := 0 to 6 Do Begin
//SysBeepEx(523, 50);
//SysBeepEx(659, 50);
End;
If Input.KeyPressed Then If Input.ReadKey = #0 Then Begin
Case Input.ReadKey of
#31 : OpenChat(True);
#46 : OpenChat(False);
End;
Exit;
End;
WaitMS(1000);
End;
End;
Update_Status_line (StatusPtr, '');
Session.io.OutFull (Session.GetPrompt(28));
If Config.ChatFeedback Then
If Session.io.GetYN(Session.GetPrompt(178), False) Then
Session.Msgs.PostMessage (True, '/TO:' + strReplace(Config.SysopName, ' ', '_') + ' /SUBJ:Chat_Feedback');
End;
{$ENDIF}
Procedure Last_Callers; Procedure Last_Callers;
Begin Begin
Session.io.OutFullLn (Session.GetPrompt(141)); Session.io.OutFullLn (Session.GetPrompt(141));
@ -1386,6 +1346,54 @@ Begin
Dispose (DirList[Count]); Dispose (DirList[Count]);
End; End;
{$IFNDEF UNIX}
Procedure PageForSysopChat (Forced: Boolean);
Var
Temp : String;
Count : Integer;
Begin
If Forced or ((TimerMinutes >= Config.ChatStart) and (TimerMinutes <= Config.ChatEnd)) Then Begin
Session.io.OutFull (Session.GetPrompt(23));
Temp := Session.io.GetInput(50, 50, 11, '');
If Temp = '' Then Exit;
Session.SystemLog('Chat Page: ' + Temp);
Update_Status_Line (0, ' ' + strPadR(Session.User.ThisUser.Handle, 17, ' ') + ' ' + strPadR(Temp, 40, ' ') + ' ALT+(S)plit (C)Line');
Session.io.OutFull(Session.GetPrompt(24));
For Count := 1 to 10 Do Begin
Session.io.OutFull(Session.GetPrompt(25));
Session.io.BufFlush;
MessageBeep(0);
If Input.KeyPressed Then If Input.ReadKey = #0 Then Begin
Case Input.ReadKey of
#31 : OpenChat(True);
#46 : OpenChat(False);
End;
Exit;
End;
WaitMS(1000);
End;
End;
Update_Status_line (StatusPtr, '');
Session.io.OutFull (Session.GetPrompt(28));
If Config.ChatFeedback Then
If Session.io.GetYN(Session.GetPrompt(178), False) Then
Session.Msgs.PostMessage (True, '/TO:' + strReplace(Config.SysopName, ' ', '_') + ' /SUBJ:Chat_Feedback');
End;
{$ENDIF}
(* MYSTIC 2's ANSIVIEWER (* MYSTIC 2's ANSIVIEWER
- needs to be intergrated with the msgbases. there should NOT be a msgtext AND this - needs to be intergrated with the msgbases. there should NOT be a msgtext AND this
class. there should only be one place where the massive message buffer exists. class. there should only be one place where the massive message buffer exists.

View File

@ -199,7 +199,7 @@ Begin
Result := True; Result := True;
End; End;
'N' : One_Liners (Data); 'N' : One_Liners (Data);
'P' : {$IFNDEF UNIX} Page_For_Chat (Pos('/F', strUpper(Data)) > 0) {$ENDIF}; 'P' : {$IFNDEF UNIX} PageForSysopChat (Pos('/F', strUpper(Data)) > 0) {$ENDIF};
'R' : Begin 'R' : Begin
If StackNum > 0 Then Begin If StackNum > 0 Then Begin
MenuOld := MenuName; MenuOld := MenuName;
@ -305,7 +305,7 @@ Begin
Result := True; Result := True;
End; End;
'P' : {$IFNDEF UNIX} If Session.User.GetMatrixUser Then 'P' : {$IFNDEF UNIX} If Session.User.GetMatrixUser Then
Page_For_Chat (Pos('/F', strUpper(Data)) > 0) {$ENDIF}; PageForSysopChat (Pos('/F', strUpper(Data)) > 0) {$ENDIF};
End; End;
'*' : Begin '*' : Begin
If Not Session.io.GetPW ('|CR|09Sysop Password: ', Session.GetPrompt(417), Config.SysopPW) Then Exit; {++lang} If Not Session.io.GetPW ('|CR|09Sysop Password: ', Session.GetPrompt(417), Config.SysopPW) Then Exit; {++lang}