added AD group support to notifications system

This commit is contained in:
Infineon\StieberD
2024-10-04 17:35:08 -07:00
parent 0b5ce72c39
commit 2a5abee93e
38 changed files with 9811 additions and 2732 deletions

View File

@ -42,8 +42,8 @@ BEGIN CASE
CASE Instruction = 'WriteNote' ; GOSUB WriteNote
CASE Instruction = 'MsgGroups' ; GOSUB MsgGroups
CASE Instruction = 'Delete' ; GOSUB Delete
CASE 1
ErrorMsg = 'Unknown Instruction passed to routine'
END CASE
@ -59,20 +59,21 @@ RETURN Result
* * * * * * *
Create:
* * * * * * *
obj_Appwindow('Create',@WINDOW)
Gosub Refresh
Set_Property( @WINDOW: '.NOTE_DATA', 'SELPOS', 0)
Set_Property( @WINDOW: '.NOTE_DATA2', 'SELPOS', 0)
Set_Property( @WINDOW: '.NOTE_DATA', 'PREVSELPOS', 0)
Set_Property( @WINDOW: '.NOTE_DATA2', 'PREVSELPOS', 0)
obj_Appwindow('Create',@WINDOW)
Gosub Refresh
Set_Property( @WINDOW: '.NOTE_DATA', 'SELPOS', 0)
Set_Property( @WINDOW: '.NOTE_DATA2', 'SELPOS', 0)
Set_Property( @WINDOW: '.NOTE_DATA', 'PREVSELPOS', 0)
Set_Property( @WINDOW: '.NOTE_DATA2', 'PREVSELPOS', 0)
RETURN
* * * * * * *
Refresh:
* * * * * * *
PrevInbox = Get_Property( @WINDOW: '.NOTE_DATA', 'SELPOS')<2>
PrevArchive = Get_Property( @WINDOW: '.NOTE_DATA2', 'SELPOS')<2>
@ -89,174 +90,165 @@ Refresh:
Set_Property( @WINDOW:'.NOTE_DATA2', 'ARRAY', ArchiveList)
If PrevArchive NE 0 then Set_Property( @WINDOW: '.NOTE_DATA2', 'SELPOS', PrevArchive)
end
RETURN
* * * * * * *
Rebuild:
* * * * * * *
NoteID = Get_Property(@WINDOW,'ID')
Verify = Msg(@window,'','NOTE_PTRS_REBUILD')
IF NOT(Verify) THEN RETURN
Send_Event(@WINDOW,'CLEAR')
Def = ""
Def<MTEXT$> = "Rebuilding Messages for Last 90 Days..."
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
obj_Notes('Rebuild',NoteID)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
RETURN
END
Msg(@window, MsgUp)
GOSUB Refresh
NoteID = Get_Property(@WINDOW,'ID')
Verify = Msg(@window,'','NOTE_PTRS_REBUILD')
IF NOT(Verify) THEN RETURN
Send_Event(@WINDOW,'CLEAR')
Def = ""
Def<MTEXT$> = "Rebuilding Messages for Last 90 Days..."
Def<MTYPE$> = "U"
MsgUp = Msg(@window, Def)
obj_Notes('Rebuild',NoteID)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
RETURN
END
Msg(@window, MsgUp)
GOSUB Refresh
RETURN
* * * * * * *
ReadNote:
* * * * * * *
PageNo = Get_Property(@WINDOW, 'VPOSITION')
If PageNo<1> = 1 then
NoteRow = Get_Property(@WINDOW:'.NOTE_DATA','ROWDATA')
end else
NoteRow = Get_Property(@WINDOW:'.NOTE_DATA2','ROWDATA')
end
NoteId = NoteRow<COL$NOTE_ID>
IF NoteID NE '' THEN
obj_AppWindow('ViewRelated','NOTE_MESSAGE':@RM:NoteID:@RM)
END ELSE
ErrMsg('Read Note called without a Note ID.')
END
npParms = 'NOTE_PTRS':@RM:@USER4
UserRec = Database_Services('ReadDataRow', 'NOTE_PTRS', @USER4)
IF Error_Services('HasError') THEN
ErrMsg(Error_Services('GetMessage'))
RETURN
END
LOCATE NoteID IN UserRec<NOTE_PTRS_NOTE_IDS$> USING @VM SETTING Fpos THEN
UserRec<NOTE_PTRS_NEW$,Fpos> = 'No'
PageNo = Get_Property(@WINDOW, 'VPOSITION')
If PageNo<1> = 1 then
NoteRow = Get_Property(@WINDOW:'.NOTE_DATA','ROWDATA')
end else
NoteRow = Get_Property(@WINDOW:'.NOTE_DATA2','ROWDATA')
end
NoteId = NoteRow<COL$NOTE_ID>
IF NoteID NE '' THEN
obj_AppWindow('ViewRelated','NOTE_MESSAGE':@RM:NoteID:@RM)
END ELSE
ErrMsg('Read Note called without a Note ID.')
END
npParms = 'NOTE_PTRS':@RM:@USER4
UserRec = Database_Services('ReadDataRow', 'NOTE_PTRS', @USER4)
IF Error_Services('HasError') THEN
ErrMsg(Error_Services('GetMessage'))
RETURN
END
LOCATE NoteID IN UserRec<NOTE_PTRS_NOTE_IDS$> USING @VM SETTING Fpos THEN
UserRec<NOTE_PTRS_NEW$,Fpos> = 'No'
//npParms = FIELDSTORE(npParms,@RM,4,0,UserRec)
//obj_Tables('WriteRec',npParms)
Database_Services('WriteDataRow', 'NOTE_PTRS', @USER4, UserRec, True$, False$, True$)
END
GOSUB Refresh
//npParms = FIELDSTORE(npParms,@RM,4,0,UserRec)
//obj_Tables('WriteRec',npParms)
Database_Services('WriteDataRow', 'NOTE_PTRS', @USER4, UserRec, True$, False$, True$)
END
GOSUB Refresh
RETURN
* * * * * *
WriteNote:
* * * * * *
NoteID = NextKey('NOTES')
obj_AppWindow('ViewRelated','NOTE_MESSAGE':@RM:NoteID)
GOSUB Refresh
NoteID = NextKey('NOTES')
obj_AppWindow('ViewRelated','NOTE_MESSAGE':@RM:NoteID)
GOSUB Refresh
RETURN
* * * * * * *
MsgGroups:
* * * * * * *
If Get_Property('NDW_MAIN', 'VISIBLE') then
AppMain = 'NDW_MAIN'
end else
AppMain = 'LSL_MAIN2'
end
Start_Window('MSG_GROUPS',@WINDOW,'*CENTER',AppMain)
GOSUB Refresh
If Get_Property('NDW_MAIN', 'VISIBLE') then
AppMain = 'NDW_MAIN'
end else
AppMain = 'LSL_MAIN2'
end
Start_Window('MSG_GROUPS',@WINDOW,'*CENTER',AppMain)
GOSUB Refresh
RETURN
* * * * * *
Delete:
* * * * * *
PageNo = Get_Property(@WINDOW, 'VPOSITION')
If PageNo<1> = 1 then
NoteDataList = Get_Property(@WINDOW:'.NOTE_DATA','LIST')
CurrRow = Get_Property(@WINDOW:'.NOTE_DATA','SELPOS')<2>
end else
NoteDataList = Get_Property(@WINDOW:'.NOTE_DATA2','LIST')
CurrRow = Get_Property(@WINDOW:'.NOTE_DATA2','SELPOS')<2>
end
CONVERT @VM TO @SVM IN NoteDataList
CONVERT @FM TO @VM IN NoteDataList
TypeOver = ''
TypeOver<PDISPLAY$> = NoteDataList
TypeOver<PINITSELECT$> = CurrRow
NoteIDs = Popup(@WINDOW,TypeOver,'NOTE_PTRS')
IF NoteIDS = '' THEN RETURN
npParms = 'NOTE_PTRS':@RM:@USER4
UserRec = obj_Tables('ReadRec',npParms)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
RETURN
END
FOR I = 1 TO COUNT(NoteIDs,@VM) + (NoteIDs NE '')
NoteID = NoteIDs<1,I>
PageNo = Get_Property(@WINDOW, 'VPOSITION')
If PageNo<1> = 1 then
NoteDataList = Get_Property(@WINDOW:'.NOTE_DATA','LIST')
CurrRow = Get_Property(@WINDOW:'.NOTE_DATA','SELPOS')<2>
end else
NoteDataList = Get_Property(@WINDOW:'.NOTE_DATA2','LIST')
CurrRow = Get_Property(@WINDOW:'.NOTE_DATA2','SELPOS')<2>
end
LOCATE NoteID IN UserRec<NOTE_PTRS_NOTE_IDS$> USING @VM SETTING Fpos THEN
CONVERT @VM TO @SVM IN NoteDataList
CONVERT @FM TO @VM IN NoteDataList
UserRec = DELETE( UserRec, NOTE_PTRS_SUBJECT$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_FROM$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_DATE$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_TIME$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_NEW$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_ATTACHMENT$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_NOTE_IDS$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_ARCHIVED$, Fpos, 0 )
TypeOver = ''
TypeOver<PDISPLAY$> = NoteDataList
TypeOver<PINITSELECT$> = CurrRow
NoteIDs = Popup(@WINDOW,TypeOver,'NOTE_PTRS')
IF NoteIDS = '' THEN RETURN
npParms = 'NOTE_PTRS':@RM:@USER4
UserRec = obj_Tables('ReadRec',npParms)
IF Get_Status(errCode) THEN
ErrMsg(errCode)
RETURN
END
NEXT I
npParms = FIELDSTORE(npParms,@RM,4,0,UserRec)
obj_Tables('WriteRec',npParms)
FOR I = 1 TO COUNT(NoteIDs,@VM) + (NoteIDs NE '')
NoteID = NoteIDs<1,I>
LOCATE NoteID IN UserRec<NOTE_PTRS_NOTE_IDS$> USING @VM SETTING Fpos THEN
UserRec = DELETE( UserRec, NOTE_PTRS_SUBJECT$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_FROM$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_DATE$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_TIME$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_NEW$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_ATTACHMENT$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_NOTE_IDS$, Fpos, 0 )
UserRec = DELETE( UserRec, NOTE_PTRS_ARCHIVED$, Fpos, 0 )
END
NEXT I
npParms = FIELDSTORE(npParms,@RM,4,0,UserRec)
obj_Tables('WriteRec',npParms)
GOSUB Refresh
GOSUB Refresh
RETURN