166 lines
5.9 KiB
JavaScript
166 lines
5.9 KiB
JavaScript
/*
|
|
* (c) Copyright Ascensio System SIA 2010-2024
|
|
*
|
|
* This program is a free software product. You can redistribute it and/or
|
|
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
|
* version 3 as published by the Free Software Foundation. In accordance with
|
|
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
|
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
|
* of any third-party rights.
|
|
*
|
|
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
|
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
|
*
|
|
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
|
* street, Riga, Latvia, EU, LV-1050.
|
|
*
|
|
* The interactive user interfaces in modified source and object code versions
|
|
* of the Program must display Appropriate Legal Notices, as required under
|
|
* Section 5 of the GNU AGPL version 3.
|
|
*
|
|
* Pursuant to Section 7(b) of the License you must retain the original Product
|
|
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
|
* grant you any rights under trademark law for use of our trademarks.
|
|
*
|
|
* All the Product's GUI elements, including illustrations and icon sets, as
|
|
* well as technical writing content are licensed under the terms of the
|
|
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
|
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
|
*
|
|
*/
|
|
|
|
"use strict";
|
|
(/**
|
|
* @param {Window} window
|
|
* @param {undefined} undefined
|
|
*/
|
|
function(window, undefined) {
|
|
/** @constructor */
|
|
function asc_CVersionHistory(newObj) {
|
|
this.docId = null;
|
|
this.url = null;
|
|
this.urlChanges = null;
|
|
this.currentChangeId = -1;
|
|
this.newChangeId = -1;
|
|
this.colors = null;
|
|
this.changes = null;
|
|
this.token = null;
|
|
this.isRequested = null;
|
|
this.serverVersion = null;
|
|
this.documentSha256 = null;
|
|
this.userId = null;
|
|
this.userName = null;
|
|
this.userColor = null;
|
|
this.dateOfRevision = null;
|
|
|
|
if (newObj) {
|
|
this.update(newObj);
|
|
}
|
|
}
|
|
|
|
asc_CVersionHistory.prototype.update = function(newObj)
|
|
{
|
|
let bUpdate = this.docId !== newObj.docId
|
|
|| this.url !== newObj.url
|
|
|| this.urlChanges !== newObj.urlChanges
|
|
|| this.currentChangeId > newObj.currentChangeId;
|
|
|
|
if (bUpdate)
|
|
{
|
|
this.docId = newObj.docId;
|
|
this.url = newObj.url;
|
|
this.urlChanges = newObj.urlChanges;
|
|
this.currentChangeId = -1;
|
|
this.changes = null;
|
|
this.token = newObj.token;
|
|
}
|
|
|
|
this.colors = newObj.colors;
|
|
this.newChangeId = newObj.currentChangeId;
|
|
this.isRequested = newObj.isRequested;
|
|
this.serverVersion = newObj.serverVersion;
|
|
this.userId = newObj.userId;
|
|
this.userName = newObj.userName;
|
|
this.userColor = newObj.userColor;
|
|
this.dateOfRevision = newObj.dateOfRevision;
|
|
|
|
this.documentSha256 = newObj.documentSha256;
|
|
return bUpdate;
|
|
};
|
|
asc_CVersionHistory.prototype.applyChanges = function(editor) {
|
|
//in case of errors in longAction locks, this.changes can be null
|
|
if (!this.changes) {
|
|
return;
|
|
}
|
|
var color;
|
|
this.newChangeId = (null == this.newChangeId) ? (this.changes.length - 1) : this.newChangeId;
|
|
for (let i = this.currentChangeId + 1; i <= this.newChangeId && i < this.changes.length; ++i)
|
|
{
|
|
color = this.colors[i];
|
|
let currentColor = (color ? new CDocumentColor((color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF) : new CDocumentColor(191, 255, 199))
|
|
editor._coAuthoringSetChanges(this.changes[i], i !== this.newChangeId ? null : currentColor);
|
|
}
|
|
this.currentChangeId = this.newChangeId;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_setDocId = function(val) {
|
|
this.docId = val;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_setUrl = function(val) {
|
|
this.url = val;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_setUrlChanges = function(val) {
|
|
this.urlChanges = val;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_setCurrentChangeId = function(val) {
|
|
this.currentChangeId = val;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_setArrColors = function(val) {
|
|
this.colors = val;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_setToken = function(val) {
|
|
this.token = val;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_setIsRequested = function(val) {
|
|
this.isRequested = val;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_setServerVersion = function(val) {
|
|
this.serverVersion = val;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_setDocumentSha256 = function(val) {
|
|
this.documentSha256 = val;
|
|
};
|
|
asc_CVersionHistory.prototype.asc_SetUserId = function(val)
|
|
{
|
|
this.userId = val;
|
|
}
|
|
asc_CVersionHistory.prototype.asc_SetUserName = function(val)
|
|
{
|
|
this.userName = val;
|
|
}
|
|
asc_CVersionHistory.prototype.asc_SetDateOfRevision = function(val)
|
|
{
|
|
this.dateOfRevision = val;
|
|
}
|
|
asc_CVersionHistory.prototype.asc_SetUserColor = function (val)
|
|
{
|
|
this.userColor = val;
|
|
}
|
|
|
|
window["Asc"].asc_CVersionHistory = window["Asc"]["asc_CVersionHistory"] = asc_CVersionHistory;
|
|
prot = asc_CVersionHistory.prototype;
|
|
prot["asc_setDocId"] = prot.asc_setDocId;
|
|
prot["asc_setUrl"] = prot.asc_setUrl;
|
|
prot["asc_setUrlChanges"] = prot.asc_setUrlChanges;
|
|
prot["asc_setCurrentChangeId"] = prot.asc_setCurrentChangeId;
|
|
prot["asc_setArrColors"] = prot.asc_setArrColors;
|
|
prot["asc_setToken"] = prot.asc_setToken;
|
|
prot["asc_setIsRequested"] = prot.asc_setIsRequested;
|
|
prot["asc_setServerVersion"] = prot.asc_setServerVersion;
|
|
prot["asc_setDocumentSha256"] = prot.asc_setDocumentSha256;
|
|
prot["asc_SetUserId"] = prot.asc_SetUserId;
|
|
prot["asc_SetUserName"] = prot.asc_SetUserName;
|
|
prot["asc_SetUserColor"] = prot.asc_SetUserColor;
|
|
prot["asc_SetDateOfRevision"] = prot.asc_SetDateOfRevision;
|
|
})(window);
|