GetReviewReport

function GetReviewReport(): ReviewReport

Description

Returns a report about every change which was made to the document in the review mode.

Returns

ReviewReport

Try It

var oDocument = Api.GetDocument();
var oParagraph1 = oDocument.GetElement(0);
oDocument.SetTrackRevisions(true);
oParagraph1.AddText("Reviewing documents");
oParagraph1.SetJc("center");
oParagraph1.SetFontSize(24);
oParagraph1.SetBold(true);
var oParagraph2 = Api.CreateParagraph();
oParagraph2.AddText("If you need to get review report, you can use Document Builder. The steps below will show how to do it.");
oDocument.Push(oParagraph2);
var oReviewReport = oDocument.GetReviewReport();
oDocument.SetTrackRevisions(false);
var oParagraph = Api.CreateParagraph();
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oDocument.Push(oParagraph);
oParagraph.AddText("Review report");
var nRows = 1;
for (let sUserName in oReviewReport) {
   nRows += oReviewReport[sUserName].length;
}
var nCols = 4;
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, "Action");
privateFillCell(0, 3, "Text");
var nCurRow = 1;
for (let sUserName in oReviewReport) {
   var arrUserChanges = oReviewReport[sUserName];
   var arrCells = [];
   for (let nIndex = 0, nCount = arrUserChanges.length; nIndex < nCount; ++nIndex, ++nCurRow) {
   	var oChangeInfo = arrUserChanges[nIndex];
   	arrCells.push(privateFillCell(nCurRow, 0, "").Cell);
   	privateFillCell(nCurRow, 1, (new Date(oChangeInfo["Date"])).toString());
   	var sType = oChangeInfo["Type"];
   	if ("TextAdd" === sType) {
   	privateFillCell(nCurRow, 2, "Added text");
   	privateFillCell(nCurRow, 3, oChangeInfo["Value"]);
   	} else if ("TextRem" === sType) {
   	privateFillCell(nCurRow, 2, "Removed text");
   	privateFillCell(nCurRow, 3, oChangeInfo["Value"]).Run.SetStrikeout(true);
   	} else if ("TextPr" === sType) {
   	privateFillCell(nCurRow, 2, "Formatted text");
   	} else if ("ParaAdd" === sType) {
   	privateFillCell(nCurRow, 2, "Added paragraph");
   	} else if ("ParaRem" === sType) {
   	privateFillCell(nCurRow, 2, "Removed paragraph");
   	} else if ("ParaPr" === sType) {
   	privateFillCell(nCurRow, 2, "Formatted paragraph");
   	} else {
   	privateFillCell(nCurRow, 2, "Unknown change");
   	}
   }
   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).