##########################################################'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
Declare Sub Postdocumentdelete(Source As Notesuidatabase)
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As NOTESUIDATABASE
Set Source = Bind(Objectname_)
On Event Querydocumentdelete From Source Call Querydocumentdelete
On Event Postdocumentdelete From Source Call Postdocumentdelete
End Sub
'++LotusScript Development Environment:2:2:Querydocumentdelete:1:12
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Postdocumentdelete:1:12
Sub Postdocumentdelete(Source As Notesuidatabase)
End Sub
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
JQ~=6
$DBScript
$DBScript_O
$TITLE
$Flags
$PublicAccess
Times New Roman
Basic
Bullet
Using Mail
Creating a Mail Message
There are three simple forms for creating a new mail message:
Memo
- Use this form to create a new message
Reply
- Use this form to reply to a message that you have received. This form will work only when you have selected a document to reply to.
Reply With History
- This is
similar to a Reply, except that a copy of the message being replied to will be automatically copied into your new message.
Before you send a message you must fill in the following information:
- The primary recipients of the message. The content of the message is directed to them or they must take action on this message.
- Recipients who will receive a copy of the message, but are not usually required to take action on it.
bcc:
- Recipients who will receive a blind copy of this message.
You can send a message by choosing the "Send" action.
Calendaring and Scheduling
This database can also be used to organize your time, keep a list of tasks and meetings, and create the following kinds of information to share with other Mail users:
Calendar Entry -
Use the Calendar Entry form for both personal appointments and for scheduling meetings with people. Select the Invitation radio-button to schedule a meeting with others. You can send meeting announcements, select Required and Optional attendees, and find free time slots for the people whom you invite.
Bookmark
- Use this form to send another Mail user a reference to a document. It is most useful when reading documents in a database that is shared with others on a server. For example, if you are reading a Discussion database and find a document that may be of use to someone else, creating a Bookmark message will allow that person to find the document very easily.
Phone Message
- Use this form to take a message for another Mail user.
Task
- Use this form to remind yourself of something that you need to do, or to ask another person to do something for you. If you send a Task to another Mail user, or to several users, they will be able to notify you when they have completed the Task.
A special view (see below) has been provided to help you organize your Tasks and Tasks that you have assigned to other people.
A Calendar Profile will automatically be created for you with default settings. The Calendar Profile lets you decide who can view your free time schedule as well as define personal Calendar settings. Use Actions Calendar Tools Calendar Profile to change your Calendar Profile settings.
Folders and Views
The following views and folders are provided for you:
Inbox
Messages that have been sent to you by another Mail user will appear here.
Calendar -
This view looks like a desktop calendar. Appointments you have scheduled will be displayed in two day, one week, two week, or one month calendar pages.
Drafts -
Messages that you have created and saved, but have not yet sent, will appear here.
Sent
- Messages will appear here if you after you have sent them. You can decide whether you want messages saved here automatically or whether you should be asked before a message is saved.
Trash
- Messages that you have marked for deletion will appear here.
Tasks
- Tasks that you have created for yourself and Tasks that you have assigned to other people will appear here. This view will also help you keep track of which Tasks have been completed and when.
Meetings
- Invitations to meetings and responses that people have returned to you will appear here.
In addition, you can create your own folders and views to help organize your Mail database.
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
$INFO
$BODY
Times New Roman
About Web Mail
This Web Mail template is for use from web browsers only. The Notes Client is only used to modify this template. This web mail template is not intended to function via the Notes Client, and will only work properly from a web browser.
The Web Mail template is used to create a database to send and receive electronic mail using a Domino Server.
The Web Mail template also contains Calendaring and Scheduling features which can be used for personal time management, meeting and appointment scheduling. The Calendar View provides a desktop calendar for ease in viewing scheduled appointments.
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
XAlm|
$INFO
$BODY
Started running agent 'wUpdateTasks' on 07/27/97 10:41:08 PM
Ran LotusScript code
Done running agent 'wUpdateTasks' on 07/27/97 10:41:13 PM
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
p!LY5
$ACLDigest
"Small Fonts
New Calendar Entry
Subject
'++LotusScript Development Environment:2:5:(Options):0:74
'++LotusScript Development Environment:2:5:(Forward):0:1
'++LotusScript Development Environment:2:5:(Declarations):0:2
wFreeTime'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Postopen(Source As Notesuidocument)
Declare Sub Querysave(Source As Notesuidocument, Continue As Variant)
Declare Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Declare Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Declare Sub Postrecalc(Source As Notesuidocument)
Declare Sub Postmodechange(Source As Notesuidocument)
Declare Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
Declare Sub Initialize
Declare Sub Terminate
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As NOTESUIDOCUMENT
Set Source = Bind(Objectname_)
On Event Postopen From Source Call Postopen
On Event Querysave From Source Call Querysave
On Event Queryopen From Source Call Queryopen
On Event Queryclose From Source Call Queryclose
On Event Postrecalc From Source Call Postrecalc
On Event Postmodechange From Source Call Postmodechange
On Event Querymodechange From Source Call Querymodechange
End Sub
'++LotusScript Development Environment:2:2:Postopen:1:12
Sub Postopen(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Querysave:1:12
Sub Querysave(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Queryopen:1:12
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Queryclose:1:12
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Postrecalc:1:12
Sub Postrecalc(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Postmodechange:1:12
Sub Postmodechange(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Querymodechange:1:12
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Initialize:1:10
Sub Initialize
End Sub
'++LotusScript Development Environment:2:2:Terminate:1:10
The source View cannot have documents moved out of it. This d
ocument will be copied into the new Folder.
[<BR><BR>]
tmpCurFolderIsView
1S2S
New folder options:
tmpNewFolderOptions
Move document to new folder|1Copy document to new folder|2
0S0E
Create Folder
List of folders:
dispFolderList
dispFolderList
[<b> </b>]
[<b>  </b>]
The current document can be moved or copied into and out of any folder.
The current document can only be copied out of a view.
Create a folder by entering a name and pressing the button. Only users with at least "Designer" access rights can create new folders. The "Maximum Internet browser access" setting for the mail file must also be set to "Designer" or above. The system administrator must set these values for you.
Click a link to the left of a folder's name to move or copy the current document into that folder.
Navigate to a folder by clicking it's name.
Remove a folder by clicking on the link to the right of that folder's name.
Documents that had been in a deleted folder remain unharmed in all their other folders and views.
All
of the
documents in the mail file are listed in the All Documents view.
Documents moved or copied into the Trash folder can be deleted by pressing the Empty Trash link.
Documents that are in the Trash will continue to be listed in views until the Trash is emptied.
To remove a document from the Trash, select the document while in the Trash view, click the File button, then click the Remove From Trash link.
Hidden w/ HTML tag in help description field:
tmpUNIDnote[<TYPE=hidden >]
tmpViewName[<TYPE=hidden >]
tmpCurFolderIsView[<TYPE=hidden >]
Categori_ze$
_Edit Document
Send Docu_ment
_Forward
_Move To Folder...
_Remove From Folder
In Box*
($InBox)
Calendar
1S2S8S12S14S
path"
/($Calendar)?OpenView&Grid=
CalendarProfile
wCalGridType
0R3S4S5S6S7S8S12S
Meetings.
($Meetings)
To Do
($ToDo)
All Views
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
$TITLE
$INFO
$$Script_O
$$ScriptName
$BODY
$ACTIONS
*** Message Not Delivered ***
NonDelivery Report
$HideMailHeader
0S0E
Delivery Failure Report
Your document:
Subject
OriginalSubject
was not delivered to
IntendedRecipient
IntendedRecipient
0S0E
IntendedRecipient
because:
FailureReason
FailureReason
What should you do?
You can resend the undeliverable document to the recipients listed above by choosing the Resend button.
Once you have resent the document you may delete this Delivery Failure Report.
If resending the document is not successful you will receive a new failure report
Unless you receive other Delivery Failure Reports, the document was successfully delivered to all other recipients.
Routing Path:
RouteServers
RouteServersServers along route.
[<b>  </b>]
From:[<b> </b>]
tmpDisplayFrom_NoLogo
PostedDateh
PostedDate
7S9S
tmpDisplayDate_NoLogoTime/date memo was created or mailed.
'There has to be something in the address lookup field so if the preferences doesn't have anything, we'll default to names.nsf
If note.addressbooks(0) = "" Then
note.addressbooks = NABEntry("names.nsf")
End If
'If this is a new temporary document, move it to the trash folder
If Instr(currentmemo.subject(0), "IN TRASH")>0 Then currentmemo.putinfolder("($Trash)")
Exit Sub
ErrorRoutine:
Messagebox Error & " (wAddressOpen)"
Exit Sub
End Sub
'++LotusScript Development Environment:2:2:Terminate:1:10
Sub Terminate
End Sub
'++LotusScript Development Environment:2:1:NABEntry:1:8
Function NABEntry(NABFilename As String) As String
'pull the title of the address book and put it as the display string in the field
Dim newnab As notesdatabase
If NABFilename <> "" Then
Set newnab = New notesdatabase("", NABFilename)
If newnab.isopen Then
NABEntry = newnab.title + "|" + NABFilename
Else
NABEntry = NABFilename
End If
End If
End Function
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
'>*84
$TITLE
$AssistType
$AssistLastRun
$AssistDocCount
$AssistFlags
$AssistTrigger
$AssistInfo
$AssistQuery
$AssistAction
$AssistAction_Ex
Invitation from
Principal
1S2S6S
"Small Fonts
'++LotusScript Development Environment:2:5:(Options):0:74
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Postopen(Source As Notesuidocument)
Declare Sub Querysave(Source As Notesuidocument, Continue As Variant)
Declare Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Declare Sub Postmodechange(Source As Notesuidocument)
Declare Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Declare Sub Click(Source As Button)
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:Postopen:1:8
Sub Postopen(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Querysave:1:8
Sub Querysave(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Queryopen:1:8
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Postmodechange:1:8
Sub Postmodechange(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Queryclose:1:8
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Messagebox "(Globals) Notice Queryclose"
If (ErrorStatus > 0) Then
continue = False
ErrorStatus = 0
End If
If ((Action = "Accept") Or (Action = "AddCalendar")) And note.HasItem("RepeatFor") Then note.Subject = "Repeat parent for " & note.Subject(0) & " - do not delete"
ws.ViewRefresh
End Sub
'++LotusScript Development Environment:2:2:Click:1:8
Sub Click(Source As Button)
End Sub
Notice'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Declare Sub Querysave(Source As Notesuidocument, Continue As Variant)
Declare Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Declare Sub Postopen(Source As Notesuidocument)
Declare Sub Postrecalc(Source As Notesuidocument)
Declare Sub Initialize
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As NOTESUIDOCUMENT
Set Source = Bind(Objectname_)
On Event Queryopen From Source Call Queryopen
On Event Querysave From Source Call Querysave
On Event Queryclose From Source Call Queryclose
On Event Postopen From Source Call Postopen
On Event Postrecalc From Source Call Postrecalc
End Sub
'++LotusScript Development Environment:2:2:Queryopen:1:12
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Querysave:1:12
Sub Querysave(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Queryclose:1:12
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Postopen:1:12
Sub Postopen(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Postrecalc:1:12
Sub Postrecalc(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Initialize:1:10
button to save the time, date and duration selections to the Calendar Entry currently being editted.
Click on the "
Cancel time ...
" button to return to the Calendar Entry without the time, date and duration selections.
Click on the "
Refresh ...
" button to update the free time grid and suggestion list according to the current time, date and duration selections.
Select "
by day
" to display an entire week in the free time grid.
Select "
by person
" to display each attendee's free time schedule in the grid.
When there is a schedule conflict the "
Recommended Times
" list provides meeting times
suggestions
. Select a suggested meeting time, or modify the meeting's date, time and duration from the other controls. A recommended meeting time suggestion and changes to the date, time, or duration controls can be combined.
Hidden w/ HTML tag in help description field:
IsFindTime[<TYPE=hidden >]
HasFoundTime[<TYPE=hidden >]
IsAddressing[<TYPE=hidden >]
IsNewDoc[<TYPE=hidden >]
Chair[<TYPE=hidden >]
tmpOwner[<TYPE=hidden >]
AppointmentType[<TYPE=hidden >]
tmpDispAppType[<TYPE=hidden >]
tmpSubject[<TYPE=hidden >]
tmpBody[<TYPE=hidden >]
tmpSendTo2[<TYPE=hidden >]
tmpCopyTo2[<TYPE=hidden >]
tmpSendTo3[<TYPE=hidden >]
tmpCopyTo3[<TYPE=hidden >]
tmpRoom2[<TYPE=hidden >]
tmpDateOrg[<TYPE=hidden >]
tmpTimeOrg[<TYPE=hidden >]
tmpDurationOrg[<TYPE=hidden >]
tmpBookFreeTime[<TYPE=hidden >]
tmpOrgConfidential[<TYPE=hidden >]
tmpBroadcast[<TYPE=hidden >]
tmpImportance[<TYPE=hidden >]
tmpDeliveryPriority[<TYPE=hidden >]
tmpDeliveryReport[<TYPE=hidden >]
tmpDateRef[<TYPE=hidden >]
tmpTimeRef[<TYPE=hidden >]
tmpDurationRef[<TYPE=hidden >]
_Forward
_Move to Folder...
_Edit Document
Attendees
Principal
RepeatIds
4S5S6S7R11S12S13S14S15S17S18S
Categori_zep
Send Docu_ment
_Remove from Folder...
Meeting
1S2S8S12S14S
path"
/Appointment?OpenForm
0R3S4S5S6S
Addressi
OldSubject
Subject
Subject
IN TRASH - TEMPORARY DOCUMENT
Subject
0R1S2S3S
IsAddressing
0R1S
0R1S10S14S16S23S
0RR4S
path"
/wAddressInvite?OpenForm&
0R3S4S5S6S7S8S15S17S18Sr
AppointmentType
IsFindTime
tmpOwner
Chair
1S2S3S4S5S6S7S8S9S10S
Find Free Time(
tmpChair
Chair
1S2S6S
Domino
RefreshFreeTimeGrid
tmpGridField
tmpMeetingTimesCtrl
tmpMessages
StartDate
StartTime
DurationMin
tmpChair
SendTo
tmpSendTo
CopyTo
tmpCopyTo
0R4S6S8S10S12S14S16S18S20S22S24S28S
IsFindTime
0RR1S2S3S
HasFoundTime
0R1S2S3S
tmpGridFormat
0R1S2S3S
tmpDate
StartDate
0RR1S2S3S
tmpTime
StartTime
0R1S2S3S
tmpDuration
DurationMin
0R1S2S3S
tmpDateRef
StartDate
0RR1S2S3S
tmpTimeRef
StartTime
0R1S2S3S
tmpDurationRef
DurationMin
0R1S2S3S
tmpSendTo2
SendTo^
0RR1S2S3S
tmpCopyTo2
CopyTo^
0R1S2S3S
tmpSendTo3
tmpSendTo
0R1S2S3S
tmpCopyTo3
tmpCopyTo
0R1S2S3S
tmpDateOrg
StartDate
0RR1S2S3S
tmpTimeOrg
StartTime
0R1S2S3S
tmpDurationOrg
DurationMin
0R1S2S3S
tmpSubject
Subject
0R1S2S3S
tmpBody
0R1S2S3S
tmpRoom2
tmpRoom
0R1S2S3S
tmpBookFreeTime
BookFreeTime
0R1S2S3S
tmpOrgConfidential
OrgConfidential
0R1S2S3S
tmpBroadcast
Broadcast
0R1S2S3S
tmpImportance
Importance
0R1S2S3S
tmpDeliveryPriority
DeliveryPriority
0R1S2S3S
tmpDeliveryReport
DeliveryReport
0R1S2S3S
0RRr
AppointmentType
IsFindTime
tmpOwner
Chair
1S2S3S4S5S6S7S8S9S10S
Edit
0S0E
tmpOwner
Chair
1S2S
Trashe
1S2S8S12S14S
/wCommand?OpenAgent&ToTrash=
&From="
0R1S2S3S4S11S13S15S16S
Path_Info
Path_Info
0R1S2S6S10S11S15S
view1
0R1S2S3S10S14S18S21S
view2
view1
view1
view1
0R1S2S3S10S14S18S21S
path"
view2
0RR3S4S5S6S7S8S
1S2S8S12S14S
/wFolders?OpenForm&UNID=
&View="
0R1S2S3S4S11S13S15S16S
Path_Info
Path_Info
0R1S2S6S10S11S15S
view1
0R1S2S3S10S14S18S21S
view2
view1
view1
view1
0R1S2S3S10S14S18S21S
path"
view2
0RR3S4S5S6S7S8S
In Box*
($InBox)
IsFindTime
1S2S
Calendar
1S2S8S12S14S
&Grid=
CalendarProfile
wCalGridType
0R1S2S3S4S8S
path"
/($Calendar)?OpenView
args"
0R3S4S5S6S7S8S
IsFindTime
1S2S
Meetings.
($Meetings)
IsFindTime
1S2S
All Views
IsFindTime
1S2S
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
CompletedOn
EndDate
CalendarDate_Time___Start
CalendarDate_Time___End
CalendarDates
CalendarDate
RepeatDates
CalendarDateTime
EndDateTime
$NoPurge
EndTime
StartEndTime
StartDateTime
$FormPublicAccess
TimeRange
WebCalEntryTypeChanged
ReminderTime
$TITLE
$INFO
$WINDOWTITLE
$Script
$$Script_O
$$ScriptName
$$FormScript
$$$FormScript_O
_ViewIcon
Duration
$BODY
$ACTIONS
$PublicAccess
Times New Roman
VersionOpt|
6S7S9S14S
$VersionOpt
0R1S2S3S
SavedOnce
0R1S2S3S
PostedDate(
0R1S2S3S
DeliveredDate
0R1S2S3S
$AutoEditMode
0R1S2S3S
MailSaveOptions
0R1S2S3S
VersionOpt
0R4S
New Memo
Subject
Subject
Subject
4S6S12S13S14S15S17S21S23S25S26S28S
'++LotusScript Development Environment:2:5:(Options):0:74
Option Public
'++LotusScript Development Environment:2:5:(Forward):0:1
'++LotusScript Development Environment:2:5:(Declarations):0:2
Memo'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Querysave(Source As Notesuidocument, Continue As Variant)
Declare Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Declare Sub Postmodechange(Source As Notesuidocument)
Declare Sub Postopen(Source As Notesuidocument)
Declare Sub Initialize
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As NOTESUIDOCUMENT
Set Source = Bind(Objectname_)
On Event Querysave From Source Call Querysave
On Event Queryclose From Source Call Queryclose
On Event Postmodechange From Source Call Postmodechange
On Event Postopen From Source Call Postopen
End Sub
'++LotusScript Development Environment:2:2:Querysave:1:12
Sub Querysave(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Queryclose:1:12
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Postmodechange:1:12
Sub Postmodechange(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Postopen:1:12
Sub Postopen(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Initialize:1:10
On failure|BConfirm delivery|CTrace entire path|TNone|N
DeliveryReport
DeliveryPriority
High|HNormal|NLow|L
Delivery Priority
0S0E
Submit
[<BR><BR><BR>]
[<b>  </b>]Tips
Click on the
Address
button to search through your address books.
The
Trash
button will move this document into the Trash folder.
Some web browsers do not support adding
file attachments
to documents. In such cases, the file attachment control may appear as an edit control. Any text entered in that edit control will not be included in your mail message.
Hidden w/ HTML tag in help description field:
Path_Info
tmpPath_Info[<TYPE=hidden >]
Edit Document
Memo&
Edit
0S0E
Reply
Reply
Address
OldSubject
Subject
Subject
IN TRASH - TEMPORARY DOCUMENT
Subject
0R1S2S3S
tmpSendOptions
0R1S
0R1S10S14S16S23S
0R4S
path"
/wAddress?OpenForm&
0R3S4S5S6S7S8S15S17S18S
TrashP
1S2S8S12S14S
/wCommand?OpenAgent&ToTrash=
&From="
0R1S2S3S4S11S13S15S16S
Path_Info
Path_Info
0R1S2S6S10S11S15S
view1
0R1S2S3S10S14S18S21S
view2
view1
view1
view1
0R1S2S3S10S14S18S21S
path"
view2
0RR3S4S5S6S7S8S.
tmpAddressIsOn
1S2S
1S2S8S12S14S
/wFolders?OpenForm&UNID=
&View="
0R1S2S3S4S11S13S15S16S
Path_Info
Path_Info
0R1S2S6S10S11S15S
view1
0R1S2S3S10S14S18S21S
view2
view1
view1
view1
0R1S2S3S10S14S18S21S
path"
view2
0RR3S4S5S6S7S8S
In Box*
($InBox)
tmpAddressIsOn
1S2S
Calendar
1S2S8S12S14S
path"
/($Calendar)?OpenView&Grid=
CalendarProfile
wCalGridType
0R3S4S5S6S7S8S12S.
tmpAddressIsOn
1S2S
Meetings.
($Meetings)
tmpAddressIsOn
1S2S
To Do
($ToDo)
tmpAddressIsOn
1S2S
All Views
tmpAddressIsOn
1S2S
_Move To Folder...
_Forward
_Remove From Folder...
Categori_ze
SSend
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
$$FormPostOpenAction
$TypeIcon
ExpireDate
ReplyDate
ComposedDate
$SCRIPTOBJ_25
$TITLE
$INFO
$WINDOWTITLE
$Script
$$Script_O
$$ScriptName
$$FormScript
$$$FormScript_O
$BODY
$ACTIONS
VersionOpt|
6S7S9S14S
$VersionOpt
0R1S2S3S
SavedOnce
0R1S2S3S
PostedDate(
0R1S2S3S
DeliveredDate
0R1S2S3S
$AutoEditMode
0R1S2S3S
MailSaveOptions
0R1S2S3S
VersionOpt
0R4S
New Phone Message
Subject
Subject
Subject
4S6S12S13S14S15S17S21S23S25S26S28S
Times New Roman
'++LotusScript Development Environment:2:5:(Options):0:74
'++LotusScript Development Environment:2:5:(Forward):0:1
'++LotusScript Development Environment:2:5:(Declarations):0:2
Phone Message'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Postopen(Source As Notesuidocument)
Declare Sub Querysave(Source As Notesuidocument, Continue As Variant)
Declare Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Declare Sub Postmodechange(Source As Notesuidocument)
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As NOTESUIDOCUMENT
Set Source = Bind(Objectname_)
On Event Postopen From Source Call Postopen
On Event Querysave From Source Call Querysave
On Event Queryclose From Source Call Queryclose
On Event Postmodechange From Source Call Postmodechange
End Sub
'++LotusScript Development Environment:2:2:Postopen:1:12
Sub Postopen(Source As Notesuidocument)
End Sub
'++LotusScript Development Environment:2:2:Querysave:1:12
Sub Querysave(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Queryclose:1:12
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Postmodechange:1:12
Telephoned|TPlease Call|PWill Call Again|WReturned Call|RWas In|IWill Return|LLeft Package|KPlease See Me|MUrgent|N
Message:
Body[<ROWS="5" COLS="60" WRAP=VIRTUAL>]
Phone Message from
PhoneCaller
1S2S
Subject
[<BR>]File Attachments:
0S0E
[<b>  </b>]Mail Options[<BR>]
Importance
High|1Normal|2Low|3
Importance
DeliveryReport
On failure|BConfirm delivery|CTrace entire path|TNone|N
DeliveryReport
DeliveryPriority
High|HNormal|NLow|L
Delivery Priority
0S0E
Submit
[<BR><BR><BR>]
[<b>  </b>]Tips
Click on the
Address
button to search through your address books.
The
Trash
button will move this document into the Trash folder.
Some web browsers do not support adding
file attachments
to documents. In such cases, the file attachment control may appear as an edit control. Any text entered in that edit control will not be included in your mail message.
On failure|BConfirm delivery|CTrace entire path|TNone|N
DeliveryReport
DeliveryPriority
High|HNormal|NLow|L
Delivery Priority
0S0E
Submit
[<BR><BR><BR>]
[<b>  </b>]Tips
Click on the
Address
button to search through your address books.
The
Trash
button will move this document into the Trash folder.
Some web browsers do not support adding
file attachments
to documents. In such cases, the file attachment control may appear as an edit control. Any text entered in that edit control will not be included in your mail message.
Hidden w/ HTML tag in help description field:
tmpAssign
&Assign
1S2S
Path_Info
tmpAssign
tmpAssign
0R1S6S11S12S14S16S
tmpAssignTask[<TYPE=hidden >]
Path_Info
tmpPath_Info[<TYPE=hidden >]
tmpTask
&Task
1S2S
Path_Info
tmpTask
tmpTask
0R1S6S11S12S14S16S
tmpBackToTask[<TYPE=hidden >]
Edit Document
Memo&
Edit
0S0E
Reply
Reply
Address
OldSubject
Subject
Subject
IN TRASH - TEMPORARY DOCUMENT
Subject
0R1S2S3S
tmpSendOptions
0R1S
0R1S10S14S16S23S
0R4S
path"
/wAddress?OpenForm&
0R3S4S5S6S7S8S15S17S18S
Trashi
1S2S8S12S14S
/wCommand?OpenAgent&ToTrash=
&From="
0R1S2S3S4S11S13S15S16S
Path_Info
Path_Info
0R1S2S6S10S11S15S
view1
0R1S2S3S10S14S18S21S
view2
view1
view1
view1
0R1S2S3S10S14S18S21S
path"
view2
0RR3S4S5S6S7S8S
1S2S8S12S14S
/wFolders?OpenForm&UNID=
&View="
0R1S2S3S4S11S13S15S16S
Path_Info
Path_Info
0R1S2S6S10S11S15S
view1
0R1S2S3S10S14S18S21S
view2
view1
view1
view1
0R1S2S3S10S14S18S21S
path"
view2
0RR3S4S5S6S7S8S
_Move To Folder...
_Forward
_Remove From Folder...
Categori_ze
SSend
In Box*
($InBox)
Calendar
1S2S8S12S14S
path"
/($Calendar)?OpenView&Grid=
CalendarProfile
wCalGridType
0R3S4S5S6S7S8S12S
Meetings.
($Meetings)
To Do
($ToDo)
All Views
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
$$FormPostOpenAction
ExpireDate
ReplyDate
$TypeIcon
ReplyNumber
ComposedDate
$SCRIPTOBJ_25
$TITLE
$AUTOLAUNCH
$INFO
$WINDOWTITLE
$Script
$$Script_O
$$ScriptName
$$FormScript
$$$FormScript_O
$BODY
$ACTIONS
wGuide
Hidden:
SaveOptions
Work around for bug in $$Return related to @DbName
0R6S10S12S
PathAndName
PathAndName
/($Inbox)]"
1S2S3S4S
$$Return
[<b> </b>]
[<b>  </b>]Guide
Security
CGM Image
When accessing your mail file from a public workstation, always quit the web browser when you are done. This will clear your authentication with the Domino server and prevent unauthorized access to your mail file.
Preferences
owner of the mail file must be specified
before the Memo, Reply, Phone Message, Task, Calendar Entry and RSVP documents will work correctly.
Main Views
All views in your mail file have a similar format. The left column of the view includes links to common actions. Click these links to create new documents, navigate to different views, or access the preference page.
The right side of each view contains the list of documents in that view. Click on a document link to display that document.
Use the Begin and End links to move to the beginning or end of the current view. Use the Previous and Next links to display the previous or next page of documents in the view.
Action Bar
Most documents have an Action Bar of buttons at the top of the page. When displaying a document, use the up and down arrows to navigate to the next document in the current view without returning to that view.
A Memo is the basic email document. You can create and edit Memos, and then choose to save them as drafts, send them, or send and save a copy.
Before you send a message you must fill in the following information:
- The primary recipients of the message. The content of the message is directed to them or they must take action on this message.
- Recipients who will receive a copy of the message, but are not usually required to take action on it. Filling in this field is optional.
- Recipients who will receive a blind copy of this message. Filling in this field is optional.
Reply
Use this form to reply to a message that you have received.[<BR><BR>]
Meeting (Calendar Entry)
There are five flavors of Meeting documents. Appointments, Events, Reminders and Anniversaries are personal calendar entries, while Invitations are meetings that include other people.
By saving an Invitation that has required or optional attendees, those attendees will receive a mailed Invitation. The originator of an Invitation is considered the chairperson for that meeting.
The attendees may accept or decline an Invitation by selecting the "RSVP" button on their Invitation.
If the chairperson changes the date or beginning time of the meeting, all people invited will receive a reschedule notice.
The chairperson may choose to add additional attendees by editing the original meeting document and adding their names.
The chairperson has the option to display the RSVP status of invitees, send a confirmation notice or cancel the meeting.
Tasks
Use this form to remind yourself of something that you need to do, or to ask another person to do something for you. If you send a Task to another Mail user, or to several users, they will be able to notify you when they have completed the Task. A special view (see To Do view below) has been provided to help you organize your Tasks and the Tasks that you have assigned to other people.
Folders
Views
The following views and folders are provided for you:
Inbox
- Messages that have been sent to you by another Mail user will appear here.
Calendar
- This view looks like a desktop calendar. Appointments you have scheduled will be displayed in two day, one week, two week, or one month calendar pages.
Drafts
- Messages that you have created and saved, but have not yet sent, will appear here.
- Messages will appear here after you have sent them. You can choose to have messages saved here automatically if you like.
Trash
- Messages that you have marked for deletion will appear here.
To Do
- Tasks that you have created for yourself and Tasks that you have assigned to other people will appear here. This view will also help you keep track of which Tasks have been completed and when. Make sure that each Task is categorized correctly by clicking on the Update link in this view.
Meetings
- Invitations to meetings and responses that people have returned to you will appear here.
Folders -
Folders are special types of views. Documents can be moved in and out of any folder. Views, on the other hand, include documents according to a view selection formula. For example, the Calendar view will only display documents that are calendar entries and never display other kinds of documents. The Inbox and trash folders are special predefined folders.
File Utilities
Create and destroy folders, move and copy documents in and out of folders, and copy documents out of views by clicking on the File button at the top of each document.
Trash Button
Move a document into the Trash folder by clicking its action bar "Trash" button. Delete all documents in the Trash folder by clicking on a view's "Empty Trash" link.
To Do View
Click on the Update link in the top left corner to ensure that the status of each Task is up-to-date. The start date and due dates are compared to determine each Tasks' status.
Phone Message
Use this form to record a phone message for another Mail users.
File Attachments
Some web browsers do not support adding file attachments to documents. In such cases, the file attachment control may appear as an edit control. Any text entered in that edit control will not be included in your mail message.
'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Exiting(Source As Field)
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As FIELD
Set Source = Bind(Objectname_)
On Event Exiting From Source Call Exiting
End Sub
'++LotusScript Development Environment:2:2:Exiting:1:12
Sub Exiting(Source As Field)
End Sub
[<b> </b>]
*.PCX
TIFF 5.0
.0/6.1
*.WPD;*.W
_ITIFF
[<b>  </b>]User Preferences
[<BR>]
0S0E
Save Preferences
[<BR><BR>]Mail File Owner:
Owner[<size=50>]
You are currently logged in as "
CurrentAcount
If you are the mail file owner, you can copy your account name as it appears here into the Mail File Owner field.
The Mail File Owner name must be entered in Notes canonical format. Please refer to the "Tips" section below if you should be listed as the owner of this file, but are not.
Default Mail setting:
DefaultMailOpt
Send Only|1Send and Save|2Save as Draft|3
EnableTrashIcon
Tag documents that have been moved to the trash folder.|1
[<BR><BR>]
AutoProcessMeetings
Meetings|1
Autoprocess Meetings only from the following people:
Copy into\New Memo'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Click(Source As Button)
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As BUTTON
Set Source = Bind(Objectname_)
On Event Click From Source Call Click
End Sub
'++LotusScript Development Environment:2:2:Click:1:12
Sub Click(Source As Button)
Call CreateNewDoc(NEW_MEMO)
End Sub
Copy into\New Calendar Entry'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Click(Source As Button)
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As BUTTON
Set Source = Bind(Objectname_)
On Event Click From Source Call Click
End Sub
'++LotusScript Development Environment:2:2:Click:1:12
Sub Click(Source As Button)
Call CreateNewDoc(NEW_CALENDAR)
End Sub
tmpnewdoc
1S2S
Copy into\New Task'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Click(Source As Button)
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As BUTTON
Set Source = Bind(Objectname_)
On Event Click From Source Call Click
End Sub
'++LotusScript Development Environment:2:2:Click:1:12
Sub Click(Source As Button)
Call CreateNewDoc(NEW_TASK)
End Sub
tmpnewdoc
1S2S
Copy into\New GroupK,
NewGroup
0S0E
tmpnewdoc
1S2S
'++LotusScript Development Environment:2:5:(Options):0:74
Option Public
Use "AppointmentProcessing"
Use "RepeatProcessing"
Use "DocumentConversions"
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub PutTask
Declare Sub SetViewObjectVariables(source)
Declare Sub PutCalendarEntry(Action)
Declare Sub PutAppointment(Action)
'++LotusScript Development Environment:2:5:(Declarations):0:10
Dim uiview As NotesUIView
Dim startdt As NotesDateTime
Dim enddt As NotesDateTime
'++LotusScript Development Environment:2:2:PutTask:1:8
Sub PutTask
'This subroutine is used both for drag/dropping and for pasting
Dim timeitem As NotesItem
Dim timedt As New NotesDateTime("")
On Error Goto ErrorRoutine
Set timeitem = note.GetFirstItem("OriginalStartDate")
Set datedt = New NotesDateTime(uiview.CalendarDateTime)
Set timedt = timeitem.DateTimeValue
Set date2 = New NotesDateTime(datedt.DateOnly & " " & timedt.TimeOnly)
'date1 is the original CalendarDateTime and date2 is the new one
TotalDiff = date2.TimeDifference(date1)
'break the difference down to a number that fits in the integer datatype
DayDiff = Fix(TotalDiff / 86400)
SecDiff = TotalDiff Mod 86400
MinDiff = Fix(SecDiff / 60)
SecDiff = SecDiff Mod 60
'If you are changing the date
If (date1.LSLocalTime <> date2.LSLocalTime) Then
If note.StartDateTime(0) = "" Then
Set note.DueDateTime = date2
note.CalendarDateTime = note.DueDateTime
Elseif note.DueDateTime(0) = "" Then
Set note.StartDateTime = date2
note.CalendarDateTime = note.StartDateTime
Else
Set note.StartDateTime = date2
note.CalendarDateTime = note.StartDateTime
Set dateitem = New NotesDateTime(note.DueDateTime(0))
dateitem.AdjustDay(DayDiff)
dateitem.AdjustMinute(MinDiff)
dateitem.AdjustSecond(SecDiff)
Set note.DueDateTime = dateitem
End If
Call MarkTempFields(note)
Call note.Save(True, True, True)
End If
Exit Sub
ErrorRoutine:
Messagebox Error & " (PutTask)"
Exit Sub
End Sub
'++LotusScript Development Environment:2:2:SetViewObjectVariables:1:8
Sub SetViewObjectVariables(source)
Set uiview = source
Set session = New NotesSession
Set ws = New NotesUIWorkspace
Set db = session.CurrentDatabase
End Sub
'++LotusScript Development Environment:2:2:PutCalendarEntry:1:8
Sub PutCalendarEntry(Action)
'This subroutine is used both for drag/dropping and for pasting
On Error Goto ErrorRoutine
CheckAlarms = False
Set documents = uiview.documents
Set note = documents.GetFirstDocument
While Not(note Is Nothing)
note.OriginalStartDate = note.CalendarDateTime
Set date1 = New NotesDateTime(note.OriginalStartDate(0))
Select Case note.Form(0)
Case "Task"
PutTask
Case "Appointment"
PutAppointment(Action)
Case Else
'we only support this for Tasks and Appointments
End Select
Set note = documents.GetNextDocument(note)
Wend
If CheckAlarms Then ws.CheckAlarms
ws.ViewRefresh
%REM
'we need to de-reference these object variables, and we don't care if any of the delete's fail
On Error Resume Next
Delete documents
Delete parent
Delete note
Delete notice
Delete date1
Delete date2
%END REM
Exit Sub
ErrorRoutine:
Messagebox Error & " (PutCalendarEntry)"
Exit Sub
End Sub
'++LotusScript Development Environment:2:2:PutAppointment:1:8
Sub PutAppointment(Action)
Dim timeitem As NotesItem
Dim timedt As New NotesDateTime("")
On Error Goto ErrorRoutine
Set notice = New NotesDocument(db)
If Action = "Drop" And note.HasItem("OrgRepeat") Then Call SaveOriginalValues
If note.HasItem("$Alarm") Then CheckAlarms = True
'see if the document was dropped onto a date but no time, or if this is an anniverary/event
If (Hour(uiview.CalendarDateTime) = 0) Or (note.AppointmentType(0) = "1") Or (note.AppointmentType(0) = "2") Then
'since this was dropped on a date with no time, keep the same time
Set datedt = New NotesDateTime(uiview.CalendarDateTime)
Set timeitem = note.GetFirstItem("OriginalStartDate")
Set timedt = timeitem.DateTimeValue
Set date2 = New NotesDateTime(datedt.DateOnly & " " & timedt.TimeOnly)
Else
Set date2 = New NotesDateTime(uiview.CalendarDateTime)
End If
TotalDiff = date2.TimeDifference(date1)
'break the difference down to a number that fits in the integer datatype
DayDiff = Fix(TotalDiff / 86400)
SecDiff = TotalDiff Mod 86400
MinDiff = Fix(SecDiff / 60)
SecDiff = SecDiff Mod 60
'If you are changing the date
If (date1.LSLocalTime <> date2.LSLocalTime) Then
If (note.Chair(0) <> Owner) Then
'we are not the creator of this entry -> make sure the user wants to change the date/time of this meeting
If (Messagebox("You are not the originator of this entry (" & note.Subject(0) & "). Are you sure you want to change the date/time?",36,"Warning") = 6) Then
Set note.StartDateTime = date2
note.StartDate = Datevalue(note.StartDateTime(0))
note.CalendarDateTime = note.StartDateTime
Set dateitem = New NotesDateTime(note.EndDateTime(0))
dateitem.AdjustDay(DayDiff)
dateitem.AdjustMinute(MinDiff)
dateitem.AdjustSecond(SecDiff)
Set note.EndDateTime = dateitem
If note.HasItem("$AlarmTime") Then
AlarmTime = note.GetItemValue("$AlarmTime")
Set dateitem = New NotesDateTime(AlarmTime(0))
dateitem.AdjustDay(DayDiff)
dateitem.AdjustMinute(MinDiff)
dateitem.AdjustSecond(SecDiff)
Set item = note.GetFirstItem("$AlarmTime")
Set item.DateTimeValue = dateitem
End If
If (note.AppointmentType(0) = "4") Then
note.ReminderTime = note.StartDateTime(0)
Else
Set trdr = session.CreateDateRange
Set startdt = New NotesDateTime(note.StartDateTime(0))
Set enddt = New NotesDateTime(note.EndDateTime(0))
Set trdr.StartDateTime = startdt
Set trdr.EndDateTime = enddt
Set note.TimeRange = trdr
End If
If Action = "Drop" Then
If note.HasItem("OrgRepeat") Then Call RepeatSave
Elseif note.HasItem("OrgRepeat") Then
note.RemoveItem("OrgRepeat")
note.RemoveItem("$Ref")
Messagebox "Pasting an instance of a repeating appointment creates a non-repeating appointment.", 64, "Paste"
End If
If CancelChange = True Then Exit Sub
Call MarkTempFields(note)
Call note.Save(True, True, True)
End If
Else
'we are the originator of this meeting
Set note.StartDateTime = date2
Set note.StartDate = date2
note.CalendarDateTime = note.StartDateTime
Set dateitem = New NotesDateTime(note.EndDateTime(0))
dateitem.AdjustDay(DayDiff)
dateitem.AdjustMinute(MinDiff)
dateitem.AdjustSecond(SecDiff)
Set note.EndDateTime = dateitem
If note.HasItem("$AlarmTime") Then
AlarmTime = note.GetItemValue("$AlarmTime")
Set dateitem = New NotesDateTime(AlarmTime(0))
dateitem.AdjustDay(DayDiff)
dateitem.AdjustMinute(MinDiff)
dateitem.AdjustSecond(SecDiff)
Set item = note.GetFirstItem("$AlarmTime")
Set item.DateTimeValue = dateitem
End If
If (note.AppointmentType(0) = "4") Then
note.ReminderTime = note.StartDateTime(0)
Else
Set trdr = session.CreateDateRange
Set startdt = New NotesDateTime(note.StartDateTime(0))
Set enddt = New NotesDateTime(note.EndDateTime(0))
Set trdr.StartDateTime = date2
Set trdr.EndDateTime = dateitem
Set note.TimeRange = trdr
End If
'see if we need to reschedule the appointment
If (Not(note.IsResponse) And (note.HasItem("PostedDate"))) Or ((note.IsResponse) And (note.AppointmentType(0) = "3")) Then
If (note.IsResponse) Then
Set parentnote = db.GetDocumentBYUNID(note.ParentDocumentUNID)
Call CreateInviteeTable(parentnote)
Else
Call CreateInviteeTable(note)
End If
NeedsReschedule = True
End If
If (NeedsReschedule) Then note.SequenceNum = note.SequenceNum(0) + 1
If Action = "Drop" Then
If note.HasItem("OrgRepeat") Then Call RepeatSave
Elseif note.HasItem("OrgRepeat") Then
note.RemoveItem("OrgRepeat")
note.RemoveItem("$Ref")
Messagebox "Pasting an instance of a repeating appointment creates a non-repeating appointment.", 64, "Paste"
End If
If CancelChange = True Then Exit Sub
If (NeedsReschedule) Then Call RescheduleAppointment
Call MarkTempFields(note)
Call note.Save(True, True, True)
End If
End If
Exit Sub
ErrorRoutine:
Messagebox Error & " (PutAppointment)"
Exit Sub
End Sub
0 0
,` Jh
'++LotusScript Development Environment:2:5:(Options):0:66
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Postdragdrop(Source As Notesuiview)
Declare Sub Regiondoubleclick(Source As Notesuiview)
Declare Sub Querydragdrop(Source As Notesuiview, Continue As Variant)
Declare Sub Postpaste(Source As Notesuiview)
Declare Sub Queryopen(Source As Notesuiview, Continue As Variant)
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:BindEvents:1:129
Private Sub BindEvents(Byval Objectname_ As String)
Static Source As NOTESUIVIEW
Set Source = Bind(Objectname_)
On Event Postdragdrop From Source Call Postdragdrop
On Event Regiondoubleclick From Source Call Regiondoubleclick
On Event Querydragdrop From Source Call Querydragdrop
On Event Postpaste From Source Call Postpaste
On Event Queryopen From Source Call Queryopen
End Sub
'++LotusScript Development Environment:2:2:Postdragdrop:1:12
Sub Postdragdrop(Source As Notesuiview)
Call SetViewObjectVariables(source)
Call GetCalendarOwner
Call PutCalendarEntry("Drop")
End Sub
'++LotusScript Development Environment:2:2:Regiondoubleclick:1:12
Sub Regiondoubleclick(Source As Notesuiview)
Set ws = New NotesUIWorkspace
Set session = New NotesSession
If source.CalendarDateTime <> "" Then Call ws.ComposeDocument("", "", "Appointment")
End Sub
'++LotusScript Development Environment:2:2:Querydragdrop:1:12
Sub Querydragdrop(Source As Notesuiview, Continue As Variant)
End Sub
'++LotusScript Development Environment:2:2:Postpaste:1:12
Sub Postpaste(Source As Notesuiview)
Call SetViewObjectVariables(source)
GetCalendarOwner
PutCalendarEntry("Paste")
End Sub
'++LotusScript Development Environment:2:2:Queryopen:1:12
Sub Queryopen(Source As Notesuiview, Continue As Variant)
'++LotusScript Development Environment:2:2:EmailModeChange:1:8
Sub EmailModeChange
If note Is Nothing Then Call InstantiateObjectVariables
'If this is a message that was written by you or your mail file, we need to remove any options fields
If note.From(0) = Owner Or note.From(0) = session.UserName Or _
note.Principal(0) = Owner Or note.Principal(0) = session.UserName Then
note.RemoveItem("MailOptions")
note.RemoveItem("SaveOptions")
If Not(note.HasItem("SecureMail")) Then CheckSecureMail
'If this is a message that was not written by you we do not present the mail dialog
'but we do want to force processing into QuerySave
Else
note.MailOptions = "0"
note.RemoveItem("SaveOptions")
End If
If uidoc.EditMode Then uidoc.Reload
End Sub
'++LotusScript Development Environment:2:2:EmailSave:1:8
Sub EmailSave(Continue)
DoNotClose = False
If note Is Nothing Then Call InstantiateObjectVariables
note.RemoveItem("MailOptions")
note.RemoveItem("SaveOptions")
Action = note.tmpAction(0)
If note.HasItem("IsMailStationery") Then
If Action <> "RenameStationery" Then
Call SaveDialog("Stationery")
If ContinueSave = IDCANCEL Then continue = False
If ContinueSave <> IDYES Then
uidoc.reload
Exit Sub
End If
End If
End If
Select Case Action
Case "SaveAsStationery"
sName = Inputbox$("What would you like to call this Stationery?", "Save as Stationery", "-Untitled-")
If sName = "" Then
Continue = False
note.RemoveItem("tmpAction")
Exit Sub
End If
If NewDocument Then
note.IsMailStationery = 1
note.MailStationeryName = sName
note.MailOptions = "0"
note.SaveOptions = "1"
Else
note.SaveOptions = "0"
Set newnote = New NotesDocument(db)
Call note.CopyAllItems(newnote)
ItemList = newnote.Items
Forall i In ItemList
If Lcase(Left(i.Name, 3)) = "tmp" Then i.Remove
End Forall
newnote.IsMailStationery = 1
newnote.MailStationeryName = sName
newnote.Form = "Memo"
newnote.RemoveItem("PostedDate")
newnote.RemoveItem("DeliveredDate")
newnote.Save True, True
ws.ViewRefresh
End If
Messagebox "This Message has been saved as Stationery in your Drafts folder. A new message will be created every time you open this Stationery.", 0, "Save as Stationery"
note.RemoveItem("tmpAction")
Call uidoc.close
Case "RenameStationery"
MailStationeryName = note.MailStationeryName
sName = Inputbox$("What would you like to call this Stationery?", "Save as Stationery", MailStationeryName(0))
If sName = "" Then
note.MailOptions = "0"
note.RemoveItem("tmpAction")
DoNotClose = True
Continue = False
Exit Sub
End If
note.MailStationeryName = sName
note.MailOptions = "0"
note.SaveOptions = "1"
Case "SaveAsDraft", "SaveAndFile", "SendAndFile", "ConvertNewDoc"
note.MailOptions = "0"
note.SaveOptions = "1"
Case "Send"
note.MailOptions = "0"
note.SaveOptions = "0"
Case "Mailing"
'We do not want to do anything if mailing is in process (like from the Send button)
Case "ConvertToTask"
note.RemoveItem("DeliveredDate")
note.RemoveItem("PostedDate")
note.SendTo = ""
note.CopyTo = ""
note.SaveOptions ="1"
note.MailOptions = "0"
note.Form = "Task"
note.AssignState = 0
note.ExcludeFromView = "D"
Call note.ReplaceItemValue("_ViewIcon", 168)
Case Else
'If this is a message did not originate in this mailfile (it was sent here and therefore has DeliveredDate) we do not present the mail dialog
If note.HasItem("DeliveredDate") Then
note.MailOptions = "0"
note.SaveOptions = "1"
Call SaveDialog("Document")
If ContinueSave = IDCANCEL Then continue = False
If ContinueSave <> IDYES Then
uidoc.reload
Exit Sub
End If
End If
End Select
note.RemoveItem("tmpAction")
If note.HasItem("$VersionOpt") Then Call note.ReplaceItemValue("$VersionOpt", "0")
'If Not(note.HasItem("AuthorList")) Then Set item = New NotesItem(note, "AuthorList", note.From, AUTHORS)
uidoc.Reload
End Sub
'++LotusScript Development Environment:2:2:EmailClose:1:8
Sub EmailClose(Continue)
If DoNotClose Then
DoNotClose = False
Continue = False
'This backs out anything you did previously to MailOptions and SaveOptions and will force you back into QuerySave next time you try to exit
note.RemoveItem("MailOptions")
note.RemoveItem("SaveOptions")
uidoc.reload
End If
If TaskReply Then
Set namelookup = New NotesName(note.SendTo(0))
Messagebox "Notification has been sent to " & namelookup.Common & ".", 0, "Task Message"
End If
End Sub
'++LotusScript Development Environment:2:2:SaveDialog:1:8
Sub SaveDialog(SavedDoc)
ContinueSave = Messagebox("Do you wish to save this " & SavedDoc & "?", MB_YESNOCANCEL, "Save " & SavedDoc)
Select Case ContinueSave
Case IDCANCEL
note.MailOptions = "0"
'This will force us into querysave next time - this time it will set continue = false so no save will occur
note.SaveOptions = "1"
Case IDNO
note.SaveOptions = "0"
Case IDYES
note.SaveOptions = "1"
End Select
End Sub
'++LotusScript Development Environment:2:2:CheckSecureMail:1:8
Sub CheckSecureMail
'If SecureMail = 1 in notes.ini all mail gets Signed and Encrypted and the user is unable to override it
'now we need to update the original invitation document
Context = GetContext
Select Case Context
Case 1,3
'1 = non-repeat notice; 3 = repeat notice; in either case, update the parent note
Call UpdateOriginalInvitation(parentnote)
Case 2,4
'2 = repeat instance; 4 = non-repeat instance; in either case, update the current note
Call UpdateOriginalInvitation(note)
End Select
If Not(IsAgentProcessing) Then Messagebox "A notice has been sent informing " & ChairName(0) & " that you will be attending. A meeting document has been added to your Calendar.",0,"Status"
'see if we should remove this from the inbox
If (profile.AutoRemoveFromInbox(0) = "1") Then note.RemoveFromFolder("($Inbox)")
Exit Sub
ErrorRoutine:
Messagebox Error & " (AcceptInvitation)"
Exit Sub
End Sub
'++LotusScript Development Environment:2:2:DeclineInvitation:1:8
Sub DeclineInvitation
*This routine is called whenever the user declines an invitation or
changes their mind after accepting an invitation
*A notice document is sent to the chair informing them of our decline
*The main invitation document is updated to reflect our decline
'1 = non-repeat notice; 3 = repeat notice; in either case, update the parent note
Call UpdateOriginalInvitation(parentnote)
parentnote.Delegee = DelegeeName(0)
parentnote.save True,False,True
Case 2,4
'2 = repeat instance; 4 = non-repeat instance; in either case, update the current note
Call UpdateOriginalInvitation(note)
End Select
Messagebox "An invitation has been sent to " & Delegeename(0) & ". A notice has been sent informing " & ChairName(0) & " that you will not be attending.",0,"Status"
'remove the sendto on the note
note.SendTo = ""
'see if we should remove this from the inbox
If (profile.AutoRemoveFromInbox(0) = "1") Then note.RemoveFromFolder("($Inbox)")
DelegateInvitation = 0
Else
DelegateInvitation = 1
End If
Exit Function
ErrorRoutine:
Messagebox Error & " (DelegateInvitation)"
Call MarkTempFields(note)
Call note.RemoveItem("tmpUserActions")
DelegateInvitation = 1
Exit Function
End Function
'++LotusScript Development Environment:2:2:CounterPropose:1:8
Sub CounterPropose
*This routine is called whenever the user wants to send a counter propose notice
*This routine sends a counter propose notice to the chair and updates the main
'++LotusScript Development Environment:2:2:GetMostRecentUpdateNotice:1:8
Sub GetMostRecentUpdateNotice(Context As Integer)
*This is the bulk of the processing for notice responses
*This routine iterates through the responses of a particular meeting invitation
and gets the most recent notice sent by the chair
%END REM
Dim index As Integer
Dim MainSequence As Integer
If (note.IsResponse) And (parentnote Is Nothing) Then Exit Sub
On Error Goto ErrorRoutine
Redim UpdateResponses(2)
numResponses = 0
'get the context that this document was opened in
Context = GetContext
Select Case context
Case 1,3
'1 means the current note is a non-repeat notice, 3 = repeat notice
Set documents = parentnote.Responses
MainSequence = parentnote.SequenceNum(0)
Case 2,4
'2 means repeat instance, 4 means non-repeat instance
Set documents = note.Responses
MainSequence = note.SequenceNum(0)
End Select
If (documents.Count = 0) Then Exit Sub
Set response = documents.GetFirstDocument
While Not(response Is Nothing)
'make sure we have a valid document
If (response.Form(0) = "Notice") Then
'get the necessary values for this update
GetUpdateResponseItems(Context)
'if the sequence is >= the original invitation sequence, we can process it
If (UpdateSequence >= MainSequence) Then
'if we haven't added anything to the array, add this one
If (numResponses = 0) Then
Call SetUpdateAsMostRecent(MainSequence)
Else
If (UpdateAction = ORS_MSGTYPE_CONFIRMATION) Then
index =1
Else
index = 0
End If
'if the UpdateSequence value is greater than the existing value, add this response
If (UpdateSequence > UpdateResponses(index).sequencenum) Then
Call SetUpdateAsMostRecent(MainSequence)
Else
'if the UpdateSequence = the existing value, compare creation dates
If (UpdateSequence = UpdateResponses(index).sequencenum) And (UpdateCreation > UpdateResponses(index).creationdate) Then Call SetUpdateAsMostRecent(MainSequence)
End If
End If
End If
End If
Set response = documents.GetNextDocument(response)
Wend
Exit Sub
ErrorRoutine:
Messagebox Error & " (GetMostRecentUpdateNotice)"
Exit Sub
End Sub
'++LotusScript Development Environment:2:2:CheckForNoticeUpdates:1:8
Sub CheckForNoticeUpdates
*This routine is called from the QueryOpen event on notice and appointment forms
*It is only called if the mail owner != the meeting chair (i.e. we are an invitee)
*This routine calls GetMostRecentResponseNotice and performs an action based upon the notice
%END REM
Dim Context As Integer
Dim lDoc As NotesDocument
Call GetMostRecentUpdateNotice(Context)
If (documents.Count = 0) Then Exit Sub 'there are no responses
Select Case Context
'1 means the current note is a non-repeat notice, 3 = repeat notice
Case 1,3
Set lDoc = parentnote
Case 2,4
'2 means repeat instance, 4 means non-repeat instance
Set lDoc = note
End Select
On Error Goto ErrorRoutine
'if there are any responses waiting, see what the most recent one is;
Select Case UpdateResponses(0).action
Case ORS_MSGTYPE_RESCHEDULE
'if the user is not reading the most upto date notice, see if we should open the reschedule notice or not
If (UpdateResponses(0).misc2 <> note.UniversalID) Then
If (UpdateResponses(0).sequencenum > lDoc.SequenceNum(0)) Then
If IsWebClient Then
note.tmpConfirmMsg = "This meeting has been rescheduled. Check you In Box or Meetings view for the latest notice."
Else
If (Messagebox("This meeting has been rescheduled. Do you want to open the Reschedule notice now?.",33,"Open Reschedule") = 1) Then
'the user wants us to open the reschedule notice
OpenReschedule = True
Else
OpenReschedule = False
note.DoNotProcess = True
End If
End If
End If
Else
'the user is reading the most upto date reschedule notice -> make sure we can process this document
If (UpdateResponses(0).sequencenum <= parentnote.SequenceNum(0)) Then note.DoNotProcess = True
End If
Case ORS_MSGTYPE_CANCEL
staticstring = "This meeting has been cancelled."
If IsWebClient Then
note.tmpConfirmMsg = staticstring
Else
If (lDoc.NoticeType(0) = ORS_MSGTYPE_ACCEPT) Then
Messagebox staticstring & " The calendar entry will be updated to reflect this change",0,"Status"
Call DeCommitAppointment(lDoc)
Else
Messagebox staticstring, 0, "Status"
End If
End If
note.DoNotProcess = True
'we need to do this here since this is not handled in QuerySave
If Not IsWebClient And note.HasItem("OrgRepeat") Then
Action = "Cancel"
Call RepeatSave
End If
Case ORS_MSGTYPE_STATUSUPDATE
If (UpdateResponses(0).misc1 = ORS_STATUS_REMOVED) Then
'this user was uninvited
staticstring = "You are no longer required to attend this meeting."
If IsWebClient Then
note.tmpConfirmMsg = staticstring
Else
If (lDoc.NoticeType(0) = ORS_MSGTYPE_ACCEPT) Then
Messagebox staticstring & " The calendar entry will be updated to reflect this change",0,"Status"
Call DeCommitAppointment(lDoc)
Else
Messagebox staticstring,0,"Status"
End If
'we need to do this here since this is not handled in QuerySave
If note.HasItem("OrgRepeat") Then
Action = "Cancel"
Call RepeatSave
End If
End If
Else
'the user is being required to attend
If (lDoc.NoticeType(0) <> ORS_MSGTYPE_ACCEPT) Then
staticstring = "You are required to attend this meeting."
If IsWebClient Then
note.tmpConfirmMsg = staticstring
Else
Messagebox staticstring & " The calendar entry will be created to reflect this change",0,"Status"
Call CommitAppointment(lDoc)
End If
End If
End If
note.DoNotProcess = True
End Select
'see if there are any confirmation notice
If (UpdateResponses(1).Action = ORS_MSGTYPE_CONFIRMATION) Then
'if the user is not reading the most upto date notice, and their are no other update notices more recent than this one, then display the message
If (UpdateResponses(1).misc2 <> note.UniversalID) And _
((UpdateResponses(1).sequencenum > UpdateResponses(0).SequenceNum) Or _
(UpdateResponses(1).creationdate > UpdateResponses(0).creationdate)) Then
'++LotusScript Development Environment:2:1:GetParentDocument:1:8
Function GetParentDocument() As Integer
*this routine gets the parent document for a given note
%END REM
On Error Resume Next
GetParentDocument = False
Set parentnote = db.GetDocumentByUNID(note.ParentDocumentUNID)
If (parentnote Is Nothing) Then
'if this is a non-repeating note, see if we should re-create the document
If Not(note.hasitem("OrgRepeat")) Then
If (Msgbox("The appointment document has been deleted from your calendar, do you want to re-create it?",52) = 6) Then
Call ResurrectParentDoc
GetParentDocument =True
Exit Function
Else
note.tmpNoParent = True
note.DoNotProcess = True
Exit Function
End If
Else
'this is a repeating notice; see if the user is trying to process a response without processing the repeat parent
If (note.HasItem("RepeatParentUNID")) Then
Set parentnote = db.GetDocumentByUNID(note.RepeatParentUNID(0))
If (parentnote Is Nothing) Then
'the repeat set has been deleted; see if the user wants to continue on by creating a non-repeat instance
If(Msgbox("The parent document has been deleted from your calendar and was part of a repeat set. Do you want to re-create it as a single appointment?",52) = 6) Then
Call ResurrectParentDoc
GetParentDocument =True
Exit Function
Else
note.tmpNoParent = True
note.DoNotProcess = True
Exit Function
End If
Else
'the parent repeat set has not been deleted; see if it is an invitation
If (parentnote.NoticeType(0) = ORS_MSGTYPE_INVITE) Then
Msgbox "You need to respond to the original meeting invitation that this notice belongs to. After clicking on OK, the original invitation will be opened.",0,"Status"
OpenRepeatParent = True
Exit Function
Else
'the parent repeat set has been processed; see if the user wants to recreate this as a non-repeating instance
If(Msgbox("The parent document has been deleted from your calendar and was part of a repeat set. Do you want to re-create it as a single appointment?",52) = 6) Then
Call ResurrectParentDoc
GetParentDocument =True
Exit Function
Else
note.tmpNoParent = True
note.DoNotProcess = True
Exit Function
End If
End If
End If
End If
End If
Else
'we found the parent
GetParentDocument = True
End If
End Function
8 h
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
$ScriptLib
$ScriptLib_O
$TITLE
$Flags
$PublicAccess
'++LotusScript Development Environment:2:5:(Options):0:74
Option Public
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub Initialize
Declare Sub InstantiateObjectVariables
Declare Sub GetCalendarOwner
Declare Sub MarkTempFields(doc As NotesDocument)
Declare Sub CreateDefaultCalendarProfile
Declare Sub wInitDefaultSettings
'++LotusScript Development Environment:2:5:(Declarations):0:10
'Front end classes -> we declare these as variant so that backend server tasks will operate correctly
Dim ws As Variant
Dim uidoc As Variant
'Back end classes
Dim session As NotesSession
Dim db As NotesDatabase
Dim note As NotesDocument
Dim profile As NotesDocument
Dim notice As NotesDocument
Dim parentnote As NotesDocument
Dim parent As NotesDocument
Dim child As NotesDocument
Dim documents As NotesDocumentCollection
Dim children As NotesDocumentCollection
Dim date1 As NotesDateTime
Dim date2 As NotesDateTime
Dim dateItem As NotesDateTime
Dim item As NotesItem
Dim NameLookup As NotesName
'General Purpose classes
Dim Owner As String
Dim NewDocument As Integer
'Client Differenciation
Dim IsWebClient As Variant
%INCLUDE "orgconst.lss"
%INCLUDE "lsconst.lss"
'++LotusScript Development Environment:2:2:Initialize:1:10
Sub Initialize
End Sub
'++LotusScript Development Environment:2:2:InstantiateObjectVariables:1:8
Sub InstantiateObjectVariables
Set session = New NotesSession
Set db = session.CurrentDatabase
GetCalendarOwner
If Typename(uidoc) <> "EMPTY" Then
Set note = uidoc.Document
uidoc.AutoReload = False
End If
End Sub
'++LotusScript Development Environment:2:2:GetCalendarOwner:1:8
Sub GetCalendarOwner
On Error Resume Next
If (profile Is Nothing) Then Set profile = db.GetProfileDocument("CalendarProfile")
If Err > 0 Then
Err = 0
Call CreateDefaultCalendarProfile
End If
On Error Goto ErrorRoutine
If profile.Owner(0) = "" Then Call CreateDefaultCalendarProfile
Owner = profile.Owner(0)
Exit Sub
ErrorRoutine:
Messagebox Error & " (creating Calendar Profile)"
Exit Sub
End Sub
'++LotusScript Development Environment:2:2:MarkTempFields:1:8
Sub MarkTempFields(doc As NotesDocument)
'Mark all temporary and compute for display fields such that they will not be saved to disk
On Error Resume Next
itemlist = doc.Items
Forall n In itemlist
If Lcase(Left(n.Name, 3)) = "tmp" Or Lcase(Left(n.Name, 4)) = "disp" Then n.SaveToDisk = False
End Forall
If Not IsWebClient Then Exit Sub
'remove web CGI variable so that they will get updated on the next doc read
Call doc.RemoveItem("$$QueryOpenAgent")
Call doc.RemoveItem("$$QuerySaveAgent")
Call doc.RemoveItem("Path_Info")
Call doc.RemoveItem("Query_String")
'if the mail option fields are all default values, remove them
If (doc.Importance(0) = "2" And doc.DeliveryPriority(0) = "N" And doc.DeliveryReport(0) = "B" And _
doc.Form(0) <> "Task") Then
Call doc.RemoveItem("Importance")
Call doc.RemoveItem("DeliveryPriority")
Call doc.RemoveItem("DeliveryReport")
End If
End Sub
'++LotusScript Development Environment:2:2:CreateDefaultCalendarProfile:1:8
Sub CreateDefaultCalendarProfile
*This routine creates a calendar profile document
containg default values for required fields
%END REM
'the global variable "profile" is a profile document already
'we need to add the fields to it
profile.Form = "CalendarProfile"
Call profile.ComputeWithForm(False, False)
If IsWebClient Then
Call wInitDefaultSettings()
Else
Call profile.Save(True,True,True)
End If
End Sub
'++LotusScript Development Environment:2:2:wInitDefaultSettings:1:8
Sub wInitDefaultSettings
profile.wDefaultMailOpt = "2"
profile.wEnableTrashIcon = "1"
profile.wCalGridType = "3"
profile.wEnableNABs = "0"
profile.wEnableFavorites = "0"
profile.wIsFolder1 = "1"
profile.wIsFolder2 = "1"
profile.wIsFolder3 = "1"
profile.wIsFolder4 = "1"
profile.wIsFolder5 = "1"
profile.wIsFolder6 = "1"
profile.NotesNab1 = "names.nsf"
Call profile.Save(True,True,True)
End Sub
O=Lotus Notes
O=Lotus Notes
PURSAFO
|.:#U
O=Lotus Notes
CN=Lotus Notes Template Development/O=Lotus Notes
PURSAFO
Fde!f^^
bdhw.
$ScriptLib
$ScriptLib_O
$TITLE
$Flags
$PublicAccess
'++LotusScript Development Environment:2:5:(Options):0:74
Option Public
Use "ObjectVariables"
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub RepeatSave
Declare Sub RepeatClose
Declare Sub SaveOriginalValues
Declare Sub ModifyRecurring
Declare Sub CopyChanges
Declare Sub BuildRepeatDates
Declare Sub NextAdjustment(x, TargetWeek)
Declare Function ProcessThisDoc As Integer
Declare Sub GetModifiedSettings
'++LotusScript Development Environment:2:5:(Declarations):0:10
'------PROCESSING VARIABLES------
Dim tmpnote As NotesDocument
Dim repnote As NotesDocument
Dim timerange As NotesDateRange
Dim Action As String
Dim AdjustDays As Integer
Dim Adjustment As Integer
Dim ChangeWhich As String
Dim DateList() As Variant
Dim DayList() As Integer
Dim SaveValueList List As Variant
Dim tmpRepeatDates() As Variant
Dim tmpRepeatIds() As Variant
Dim WeekList() As Integer
Dim WeekNbr As Integer
Dim CancelChange As Integer
Dim InstancesCreated As Integer
Dim QueriedForChanges As Integer
'++LotusScript Development Environment:2:2:RepeatSave:1:8
Sub RepeatSave
On Error Goto ErrorRoutine
'note IS THE CURRENT DOCUMENT
'repnote IS THE REPEAT INSTANCE
'parent IS THE ULTIMATE PARENT
'if note is a response, check to see if it is a notice
'if it is a notice then we need to find the parent
If note.IsResponse Then
If note.Form(0) = "Notice" Then
Set repnote = db.GetDocumentByUNID(note.ParentDocumentUNID)
Else
Set repnote = note
End If
If repnote Is Nothing Then Exit Sub
Err = 0
On Error Resume Next
Set parent = db.GetDocumentByUNID(repnote.ParentDocumentUNID)
If Err = 0 Then
On Error Goto ErrorRoutine
Else
Err = 0
If parent Is Nothing Then Messagebox "This document's repeat parent has been deleted, "&_
"therefore this calendar entry can no longer be processed as a repeating entry.", 0, "Repeat Parent Not Found"
Exit Sub
End If
Else
Set parent = note
End If
If parent Is Nothing Then Exit Sub
If (NewDocument Or Action = "Accept") And Not(InstancesCreated) Then
'Build a list of all the dates this appointment will recur on (Accept already has the RepeatDates)
If NewDocument And note.RepeatUnit(0) <> "C" Then Call BuildRepeatDates
'This doc becomes the parent of all of the repeat instances
'Mark all temporary and compute for display fields such that they will not be saved to disk
On Error Resume Next
itemlist = parent.Items
Forall n In itemlist
If Lcase(Left(n.Name, 3)) = "tmp" Or Lcase(Left(n.Name, 4)) = "disp" Then n.SaveToDisk = False
End Forall
On Error Goto ErrorRoutine
Set timerange = session.CreateDateRange
'Get the duration
Set date1 = New NotesDateTime(parent.StartDateTime(0))
Set date2 = New NotesDateTime(parent.EndDateTime(0))
Duration =date2.TimeDifference(date1) / 60
'Get the original start time and use it to set the time
Set date2 = New NotesDateTime(parent.StartDateTime(0))
date2.SetAnyDate
'If there is a $AlarmTime we need to create the correct alarm times for each instsance
If parent.HasItem("$AlarmTime") Then
AlarmTime = parent.GetItemValue("$AlarmTime")
Dim alarmdate As New NotesDateTime(AlarmTime(0))
AlarmDiff = alarmdate.TimeDifference(date1) / 60
End If
'Create a copy of this meeting for each of the repeatDates, these are all children of parent which we just created
RepeatDates = parent.RepeatDates
RepeatIds = parent.RepeatIds
BusyName = Owner
IdList = parent.RepeatIds
If Ubound(RepeatDates) > Ubound(IdList) Then Redim Preserve IdList(Ubound(RepeatDates))
x = 0
Forall d In RepeatDates
Print "Creating repeating appointments... (" & (x+1) & " out of " & (Ubound(RepeatDates)+1) & ")"
Set repnote = New NotesDocument(db)
Call parent.CopyAllItems(repnote)
repnote.Form = "Appointment"
If NewDocument Then
repnote.Chair = Owner
Else
repnote.Chair = note.Chair 'in this case we are accepting an invite
End If
repnote.SequenceNum = 1
'Store new date with original time (date2)
Set date1 = New NotesDateTime(d & " " & date2.LocalTime)
'++LotusScript Development Environment:2:1:CheckIfConflictExists:1:8
Function CheckIfConflictExists As Integer
*This function is called only if the user specifies conflict warnings in the profile
*This function can be called when creation or accepting meeting documents
*The AutoProcessNotices agent ALWAYS calls this routine
*This routine determines if a meeting time fits within the profile settings and is available
%END REM
Dim calentries As NotesDocumentCollection
Dim localView As NotesView
Dim othernote As NotesDocument
Dim tr As NotesDateRange
Dim sdt As NotesDateTime
Dim edt As NotesDateTime
Dim intl As NotesInternational
Dim nstartitem As NotesItem 'note startdatetime item
Dim nenditem As NotesItem 'note enddatetime item
Dim ostartitem As NotesItem 'othernote startdatetime item
Dim oenditem As NotesItem 'othernote enddatetime item
Dim nstartdt As NotesDateTime
Dim nenddt As NotesDateTime
Dim ostartdt As NotesDateTime
Dim oenddt As NotesDateTime
'first, check the profile settings -> if there is a conflict in the profile, then we don't need to check with existing appointments
'we only do this check if the autoprocessing agent is running
If (IsAgentProcessing) Then
If(CheckProfileTimes(note)) Then
CheckIfConflictExists = True
Exit Function
End If
End If
On Error Goto ErrorRoutine
Set localView = db.GetView("Calendar")
Set intl = session.International
CheckIfConflictExists = False
'get all of the documents that fit under the invited day
'othernote refers to existing appointments
Set nstartitem = note.GetFirstItem("StartDateTime")
Set nenditem = note.GetFirstItem("EndDateTime")
Set sdt = New NotesDateTime(nstartitem.DateTimeValue.DateOnly & " 00" & intl.TimeSep & "00" & intl.TimeSep & "01")
'if this is an event, use the enddatetime date
If (note.AppointmentType(0) = "2") Then
Set edt = New NotesDateTime(nenditem.DateTimeValue.DateOnly & " 23" & intl.TimeSep & "59" & intl.TimeSep & "59")
Else
Set edt = New NotesDateTime(nstartitem.DateTimeValue.DateOnly & " 23" & intl.TimeSep & "59" & intl.TimeSep & "59")
End If
Set tr = session.CreateDateRange
Set tr.StartDateTime = sdt
Set tr.EndDateTime = edt
Set nstartdt = New NotesDateTime(sdt.DateOnly & " " & nstartitem.DateTimeValue.TimeOnly)
Set nenddt = New NotesDateTime(sdt.DateOnly & " " & nenditem.DateTimeValue.TimeOnly)
'if the agent is running, we should mark the OrgDontDoubleBook item on the note
If (IsAgentProcessing) Then note.OrgDontDoubleBook = "1"
Set calentries = localView.GetAllDocumentsByKey(tr, False)
Set othernote = calentries.GetFirstDocument
Do While Not(othernote Is Nothing)
If (othernote.Form(0) <> "Task") Then
Set ostartitem = othernote.GetFirstItem("StartDateTime")
check to see if
the invited StartDateTime falls between a scheduled appointment,
the invited EndDateTime falls between a scheduled appointment,
the invitation surrounds an existing appointment
date1 = the Starting time of the othernote; date2 = the ending time of the othernote; dateItem = the starttime of the invitation,dateItem2 = the endtime of the invitation
%END REM
Set oenditem = othernote.GetFirstItem("EndDateTime")
'if the other document is not busy (i.e. is PencilledIn), then we don't need to check it
If (othernote.BookFreeTime(0) <> "1") Then
If(ProcessConflict(othernote)) Then
'we need to instantiate the date/time objects correctly
'othernote could be an event so the date portion of StartDateTime and EndDateTime are incorrect, but NIF return them to us
Set ostartdt = New NotesDateTime(nstartdt.DAteOnly & " " & ostartitem.DateTimeValue.TimeOnly)
Set oenddt = New NotesDateTime(nstartdt.DAteOnly & " " & oenditem.DateTimeValue.TimeOnly)
If ((nstartdt.TimeDifference(ostartdt) >= 0) And (oenddt.TimeDifference(nstartdt) > 0 )) Or _
((nenddt.TimeDifference(ostartdt) > 0) And (oenddt.TimeDifference(nenddt) >= 0 )) Or _
((ostartdt.TimeDifference(nstartdt) >= 0) And (nenddt.TimeDifference(oenddt) > 0 )) Then
'if the autoprocessing agent is running, simply return
If (IsAgentProcessing) Then
CheckIfConflictExists = True
Exit Do
End If
If (note.Form(0) = "Appointment") Then
MessageText$ = "Do you want to schedule this appointment anyway?"
Else
MessageText$ = "Do you want to Accept anyway?"
End If
If Messagebox("There is already an appointment in this time slot. " & MessageText$, _
MB_YESNO, "Conflict") = IDNO Then
CheckIfConflictExists = True
Exit Do 'we exit so that we don't waste time iterating through the view
Else
Exit Do 'we exit so that we don't waste time iterating through the view
End If
End If
End If
End If
End If
Set othernote = calentries.GetNextDocument(othernote)
Loop
Exit Function
ErrorRoutine:
Messagebox Error & " (CheckIfConflictExists)"
Exit Function
End Function
'++LotusScript Development Environment:2:2:AddInviteeComment:1:8
Sub AddInviteeComment
*This routine is called to include invitee's comments
%END REM
notice.IncludeComment = "1"
notice.Comments = note.Comments
End Sub
'++LotusScript Development Environment:2:2:CreateNoticeDocument:1:8
Sub CreateNoticeDocument(Subject As String,NoticeType As String,ViewIcon As Integer,Mode As Integer)
*This routine creates the outgoing notice document, either from the chair to the invitee's
or from an invitee to a chair
*This routine adds standard fields to the notice regardless of the type of notice
*Parameters
Subject -> value of subject item
NoticeType -> type of notice being sent
ViewIcon -> icon to display in view
Mode -> 1 = chair is sending, 2 = invitee is sending
%END REM
Dim ChairItem As NotesItem
Dim dummydoc As NotesDocument
'create the notice object
Set notice = New NotesDocument(db)
'determine the context of the current note
Context = GetContext
Select Case Context
Case 1,3
'1 = non-repeat notice, 3 = repeat notice -> make the notice doc a response to the parentnote
If(note.HasItem("ApptUNID")) Then
If(note.ApptUNID(0) <> parentnote.UniversalID) Then
Set dummydoc = New NotesDocument(db)
dummydoc.UniversalID = note.ApptUNID(0)
Call notice.MakeResponse(dummydoc)
notice.ApptUNID = note.ApptUNID
Else
Call notice.MakeResponse(parentnote)
notice.ApptUNID = parentnote.UniversalID
End If
Else
Call notice.MakeResponse(parentnote)
notice.ApptUNID = parentnote.UniversalID
End If
Case 2,4
'2 = repeat instance, 4 = non-repeat instance -> make the notice doc a response to the current note
If(note.HasItem("ApptUNID")) Then
If(note.ApptUNID(0) <> note.UniversalID) Then
Set dummydoc = New NotesDocument(db)
dummydoc.UniversalID = note.ApptUNID(0)
Call notice.MakeResponse(dummydoc)
notice.ApptUNID = note.ApptUNID
Else
Call notice.MakeResponse(note)
notice.ApptUNID = note.UniversalID
End If
Else
Call notice.MakeResponse(note)
notice.ApptUNID = note.UniversalID
End If
End Select
Call notice.ReplaceItemValue("$RefOptions","1")
'add default items regardless of notice type
notice.Form = "Notice"
notice.StartDate = note.StartDate
notice.StartDateTime = note.StartDateTime
notice.EndDateTime = note.EndDateTime
notice.AppointmentType = "3"
notice.SequenceNum = note.SequenceNum(0)
notice.ExcludeFromView = "D"
notice.Room = note.Room
notice.Principal = Owner
notice.NoticeType = NoticeType
notice.Broadcast = note.Broadcast
'add the required attendees -> we need to know what context the current document is in
'this is because non-repeat notices, repeat notices, and non-repeat appointments have this information
'repeat instances need to get this info from their parent
Select Case Context
Case 1,3,4
'1 = non-repeat notice,3 = repeat notice,4 = non-repeat instance -> get the values from the current note
notice.RequiredAttendees = note.RequiredAttendees
notice.OptionalAttendees = note.OptionalAttendees
Case 2
'the repeat instance document does not have this information -> get it from the parent