This is how it works:
1. User clicks the action button (mark as unread) which performs a javascript loop, creating an array of all $$SelectDoc values on the default Domino form.
2. Then the javascript code passes the array to an additional HTML form appended to the bottom of the $$ViewTemplate.
3. This HTML form has two fields, 'docunids' and 'status' and an action to create a document using a specific form name (another notes form).
4. There needs to be another Notes form in the database with the same form name, two fields and agent called in the WebQuerySave event.
5. The agent called will pickup the values in the "docunids" field and process. $$Return on the Notes form will redirect the browser accordingly.
ADD THIS JAVASCRIPT TO THE JSHEADER
function doProcess(status) {
var cb = document.forms[0].$$SelectDoc;
var selectcount = 0;
var docUNID = new Array();
for(i = 0; i < cb.length; i ++){
if (cb[i].checked){
docUNID[selectcount] = cb[i].value;
selectcount++;
}
}
if (docUNID[0] != null ){
document.processor.docunids.value = docUNID;
document.processor.status.value = status;
document.processor.submit();
}
}
NOTES AGENT - BatchStatusChangeAgt
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim doc As NotesDocument
Set doc = session.DocumentContext
Dim item As NotesItem
Set item = doc.GetFirstItem("docunids")
Dim value As String
value = doc.status(0)
Dim pdoc As NotesDocument
Forall v In item.values
Set pdoc = db.GetDocumentByUNID( v )
pdoc.status = value
Call pdoc.save( True, True)
End Forall
Dim view As NotesView
Set view = db.GetView("inbox")
Call view.Refresh
End Sub