GetCommentsReport

function GetCommentsReport(): CommentReport

Description

Returns a report about all the comments added to the document.

Returns

CommentReport

Try It

var oDocument = Api.GetDocument();
var oParagraph1 = oDocument.GetElement(0);
oParagraph1.AddText("Commenting");
oParagraph1.SetJc("center");
oParagraph1.SetFontSize(24);
oParagraph1.SetBold(true);
var oParagraph2 = Api.CreateParagraph();
oParagraph2.AddText("The Comment option allows you to leave comments on the specific words, edit and remove these comments.");
oDocument.Push(oParagraph2);
var oParagraph3 = Api.CreateParagraph();
oParagraph3.AddText("All the comments will be saved and shown to other document users.");
oDocument.Push(oParagraph3);
Api.AddComment(oParagraph2, "You can also leave comment on phrases, sentences and other document parts", "John Smith");
var oParagraph4 = Api.CreateParagraph();
oParagraph4.AddText("In order to enable the comment option, the comment parameter must be set to true.");
oDocument.Push(oParagraph4);
var oParagraph5 = Api.CreateParagraph();
oParagraph5.AddText("The document side bar will contain the Comment menu option.");
oDocument.Push(oParagraph5);
Api.AddComment(oParagraph4, "You can set the comment option in the permissions section of the document initialization", "Mark Pottato");
var oCommentsReport = oDocument.GetCommentsReport();
var oParagraph = Api.CreateParagraph();
oParagraph.AddLineBreak();
oParagraph.AddLineBreak();
oParagraph.AddText("Comments report");
oDocument.Push(oParagraph);
var nRows = 1;
for (let sUserName in oCommentsReport) {
   nRows += oCommentsReport[sUserName].length;
}
var nCols = 6;
var oTable = Api.CreateTable(nCols, nRows);
oDocument.Push(oTable);

function privateFillCell(nCurRow, nCurCol, sText) {
   var oRow = oTable.GetRow(nCurRow);
   var oCell = oRow.GetCell(nCurCol);
   var oCellContent = oCell.GetContent();
   var oRun = oCellContent.GetElement(0).AddText(sText);
   return {
   	Cell: oCell,
   	Run: oRun
   };
}
privateFillCell(0, 0, "Name");
privateFillCell(0, 1, "Date");
privateFillCell(0, 2, "");
privateFillCell(0, 3, "Solved");
privateFillCell(0, 4, "Text");
privateFillCell(0, 5, "Quote text");
var nCurRow = 1;
for (let sUserName in oCommentsReport) {
   var arrUserComments = oCommentsReport[sUserName];
   var arrCells = [];
   for (let nIndex = 0, nCount = arrUserComments.length; nIndex < nCount; ++nIndex, ++nCurRow) {
   	var oCommentInfo = oCommentsReport[sUserName][nIndex];
   	arrCells.push(privateFillCell(nCurRow, 0, "").Cell);
   	privateFillCell(nCurRow, 1, (new Date(oCommentInfo["Date"])).toString());
   	privateFillCell(nCurRow, 2, oCommentInfo["IsAnswer"] === true ? "answer" : "comment");
   	if (oCommentInfo["IsAnswer"] !== true) {
   	if (oCommentInfo["IsSolved"] === true) privateFillCell(nCurRow, 3, "yes").Run.SetColor(0, 255, 0);
   	else privateFillCell(nCurRow, 3, "no").Run.SetColor(255, 0, 0);
   	}
   	privateFillCell(nCurRow, 4, oCommentInfo["CommentMessage"] ? oCommentInfo["CommentMessage"] : "");
   	privateFillCell(nCurRow, 5, oCommentInfo["QuoteText"] ? oCommentInfo["QuoteText"] : "");
   }
   var oMergedCell = oTable.MergeCells(arrCells);
   if (oMergedCell) {
   	var oCellContent = oMergedCell.GetContent();
   	oCellContent.GetElement(0).AddText(sUserName);
   } else if (arrCells.length > 0) {
   	oCellContent = arrCells[0].GetContent();
   	oCellContent.GetElement(0).AddText(sUserName);
   }
}
oTable.SetStyle(oDocument.GetStyle("Bordered"));

Get Help

  • If you have any questions about ONLYOFFICE Docs, try the FAQ section first.
  • You can request a feature or report a bug by posting an issue on GitHub.
  • You can also ask our developers on ONLYOFFICE forum (registration required).