mirror of
https://github.com/ONLYOFFICE/sdkjs-forms.git
synced 2026-03-31 10:23:35 +08:00
Compare commits
26 Commits
v7.3.0.135
...
v7.4.0.4
| Author | SHA1 | Date | |
|---|---|---|---|
| 9855c96dd0 | |||
| 60865166aa | |||
| 7c0311808c | |||
| 7f2797afac | |||
| 6fec31b93c | |||
| a7a1412e69 | |||
| 8cc0eba409 | |||
| c1c4959eb0 | |||
| 9180d8d1e6 | |||
| b49b8e56f0 | |||
| b205db2720 | |||
| 1c7cd19c47 | |||
| da20bb573a | |||
| d8628c74c6 | |||
| 0ae117891d | |||
| 77cad58384 | |||
| a908a16e95 | |||
| 72139c5780 | |||
| 366f847ba3 | |||
| 6171e936a3 | |||
| 13dd617208 | |||
| c1d9ee4b63 | |||
| 31fb7a7fa6 | |||
| 24c7a4364c | |||
| a7a38e5910 | |||
| c3a09d65fc |
99
api.js
99
api.js
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
@ -42,6 +42,8 @@ window["AscOForm"] = window.AscOForm = AscOForm;
|
||||
if (!oLogicDocument)
|
||||
return;
|
||||
|
||||
CheckCurrentSelection(oLogicDocument);
|
||||
|
||||
if (oPr && oFormPr)
|
||||
{
|
||||
if (oPr.GroupKey)
|
||||
@ -170,6 +172,8 @@ window["AscOForm"] = window.AscOForm = AscOForm;
|
||||
var oLogicDocument = this.private_GetLogicDocument();
|
||||
if (!oLogicDocument)
|
||||
return;
|
||||
|
||||
CheckCurrentSelection(oLogicDocument);
|
||||
|
||||
oLogicDocument.RemoveTextSelection();
|
||||
if (!oLogicDocument.IsSelectionLocked(AscCommon.changestype_Paragraph_Content))
|
||||
@ -260,6 +264,8 @@ window["AscOForm"] = window.AscOForm = AscOForm;
|
||||
var oLogicDocument = this.private_GetLogicDocument();
|
||||
if (!oLogicDocument)
|
||||
return;
|
||||
|
||||
CheckCurrentSelection(oLogicDocument);
|
||||
|
||||
oLogicDocument.RemoveTextSelection();
|
||||
if (!oLogicDocument.IsSelectionLocked(AscCommon.changestype_Paragraph_Content))
|
||||
@ -293,15 +299,42 @@ window["AscOForm"] = window.AscOForm = AscOForm;
|
||||
var oLogicDocument = this.private_GetLogicDocument();
|
||||
if (!oLogicDocument)
|
||||
return;
|
||||
|
||||
CheckCurrentSelection(oLogicDocument);
|
||||
|
||||
oLogicDocument.RemoveTextSelection();
|
||||
if (!oLogicDocument.IsSelectionLocked(AscCommon.changestype_Paragraph_Content))
|
||||
{
|
||||
oLogicDocument.StartAction(AscDFH.historydescription_Document_AddContentControlList);
|
||||
var oCC = oLogicDocument.AddContentControlDatePicker(oPr, oCommonPr);
|
||||
|
||||
let dateTimePr = null;
|
||||
let formPr = null;
|
||||
let ccPr = null;
|
||||
|
||||
// Пока для совместимости со старым форматом оставляем, чтобы настройки могли приходить по старому (oPr, oCommonPr)
|
||||
// но в будущем надо перейти на новый вариант contentPr (AscCommon.CContentControlPr)
|
||||
if (oPr && (oPr instanceof AscCommon.CContentControlPr))
|
||||
{
|
||||
dateTimePr = oPr.DateTimePr;
|
||||
ccPr = oPr;
|
||||
formPr = oPr.FormPr;
|
||||
}
|
||||
else if (oPr && (oPr instanceof AscWord.CSdtDatePickerPr))
|
||||
{
|
||||
dateTimePr = oPr;
|
||||
ccPr = oCommonPr ? oCommonPr : null;
|
||||
}
|
||||
|
||||
var oCC = oLogicDocument.AddContentControlDatePicker(dateTimePr);
|
||||
|
||||
if (oCC && oCommonPr)
|
||||
oCC.SetContentControlPr(oCommonPr);
|
||||
if (oCC && ccPr)
|
||||
oCC.SetContentControlPr(ccPr);
|
||||
|
||||
if (oCC && formPr)
|
||||
{
|
||||
private_ApplyFormPr(oCC, formPr, oLogicDocument);
|
||||
private_CheckFormKey(oCC, oLogicDocument);
|
||||
}
|
||||
|
||||
oLogicDocument.Recalculate();
|
||||
oLogicDocument.UpdateInterface();
|
||||
@ -314,6 +347,8 @@ window["AscOForm"] = window.AscOForm = AscOForm;
|
||||
var oLogicDocument = this.private_GetLogicDocument();
|
||||
if (!oLogicDocument)
|
||||
return;
|
||||
|
||||
CheckCurrentSelection(oLogicDocument);
|
||||
|
||||
let textFormPr = contentControlPr ? contentControlPr.TextFormPr : null;
|
||||
let formPr = contentControlPr ? contentControlPr.FormPr : null;
|
||||
@ -347,6 +382,8 @@ window["AscOForm"] = window.AscOForm = AscOForm;
|
||||
let logicDocument = this.private_GetLogicDocument();
|
||||
if (!logicDocument)
|
||||
return;
|
||||
|
||||
CheckCurrentSelection(logicDocument, true);
|
||||
|
||||
function AddComplexForm()
|
||||
{
|
||||
@ -431,19 +468,55 @@ window["AscOForm"] = window.AscOForm = AscOForm;
|
||||
if (!form || !formPr)
|
||||
return;
|
||||
|
||||
form.SetFormPr(formPr);
|
||||
form.SetFormPr(formPr.Copy());
|
||||
|
||||
if (formPr.GetFixed())
|
||||
let docPartId = form.GetPlaceholder();
|
||||
if ((form.IsTextForm()
|
||||
|| form.IsDropDownList()
|
||||
|| form.IsComboBox()
|
||||
|| form.IsDatePicker())
|
||||
&&
|
||||
(docPartId === c_oAscDefaultPlaceholderName.Text
|
||||
|| docPartId === c_oAscDefaultPlaceholderName.List
|
||||
|| docPartId === c_oAscDefaultPlaceholderName.DateTime))
|
||||
{
|
||||
if (docPartId === c_oAscDefaultPlaceholderName.Text)
|
||||
form.SetPlaceholder(c_oAscDefaultPlaceholderName.TextOform);
|
||||
else if (docPartId === c_oAscDefaultPlaceholderName.List)
|
||||
form.SetPlaceholder(c_oAscDefaultPlaceholderName.ListOform);
|
||||
else if (docPartId === c_oAscDefaultPlaceholderName.DateTime)
|
||||
form.SetPlaceholder(c_oAscDefaultPlaceholderName.DateOform);
|
||||
|
||||
if (form.IsPlaceHolder())
|
||||
form.private_FillPlaceholderContent();
|
||||
}
|
||||
|
||||
if (form.IsMainForm() && formPr.GetFixed())
|
||||
{
|
||||
logicDocument.Recalculate(true);
|
||||
let drawing = form.ConvertFormToFixed();
|
||||
|
||||
let drawingPr = new Asc.asc_CImgProperty();
|
||||
drawingPr.asc_putWrappingStyle(Asc.c_oAscWrapStyle2.Square);
|
||||
drawing.Set_Props(drawingPr);
|
||||
|
||||
form.MoveCursorToContentControl(false);
|
||||
if (drawing)
|
||||
{
|
||||
let drawingPr = new Asc.asc_CImgProperty();
|
||||
drawingPr.asc_putWrappingStyle(Asc.c_oAscWrapStyle2.Square);
|
||||
drawing.Set_Props(drawingPr);
|
||||
|
||||
form.MoveCursorToContentControl(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function CheckCurrentSelection(logicDocument, isComplex)
|
||||
{
|
||||
let form = logicDocument.GetContentControl();
|
||||
|
||||
if (!form || !form.IsForm() || (form.IsComplexForm() && !isComplex))
|
||||
return;
|
||||
|
||||
if (isComplex)
|
||||
form = form.GetMainForm();
|
||||
|
||||
form.MoveCursorOutsideForm(false);
|
||||
}
|
||||
|
||||
})(window, window.document);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
@ -62,33 +62,33 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specific text form properties.
|
||||
* Specific text field properties.
|
||||
* @typedef {Object} TextFormPrBase
|
||||
* @property {boolean} comb - Specifies if the text form should be a comb of characters with the same cell width. The maximum number of characters must be set to a positive value.
|
||||
* @property {number} maxCharacters - The maximum number of characters in the text form.
|
||||
* @property {boolean} comb - Specifies if the text field should be a comb of characters with the same cell width. The maximum number of characters must be set to a positive value.
|
||||
* @property {number} maxCharacters - The maximum number of characters in the text field.
|
||||
* @property {number} cellWidth - The cell width for each character measured in millimeters. If this parameter is not specified or equal to 0 or less, then the width will be set automatically.
|
||||
* @property {boolean} multiLine - Specifies if the current fixed size text form is multiline or not.
|
||||
* @property {boolean} autoFit - Specifies if the text form content should be autofit, i.e. whether the font size adjusts to the size of the fixed size form.
|
||||
* @property {boolean} multiLine - Specifies if the current fixed size text field is multiline or not.
|
||||
* @property {boolean} autoFit - Specifies if the text field content should be autofit, i.e. whether the font size adjusts to the size of the fixed size form.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Text form properties.
|
||||
* Text field properties.
|
||||
* @typedef {FormPrBase | TextFormPrBase} TextFormPr
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specific checkbox properties.
|
||||
* Specific checkbox / radio button properties.
|
||||
* @typedef {Object} CheckBoxFormPrBase
|
||||
* @property {boolean} radio - Specifies if the current checkbox is a radio button. In this case, the key parameter is considered as an identifier for the group of radio buttons.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Checkbox form properties.
|
||||
* Checkbox / radio button properties.
|
||||
* @typedef {FormPrBase | CheckBoxFormPrBase} CheckBoxFormPr
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specific combo box properties.
|
||||
* Specific combo box / dropdown list properties.
|
||||
* @typedef {Object} ComboBoxFormPrBase
|
||||
* @property {boolean} editable - Specifies if the combo box text can be edited.
|
||||
* @property {boolean} autoFit - Specifies if the combo box form content should be autofit, i.e. whether the font size adjusts to the size of the fixed size form.
|
||||
@ -100,7 +100,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Combo box form properties.
|
||||
* Combo box / dropdown list properties.
|
||||
* @typedef {FormPrBase | ComboBoxFormPrBase} ComboBoxFormPr
|
||||
*/
|
||||
|
||||
@ -136,9 +136,9 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Creates a text form with the specified text form properties.
|
||||
* Creates a text field with the specified text field properties.
|
||||
* @memberof Api
|
||||
* @param {TextFormPr} oFormPr - Text form properties.
|
||||
* @param {TextFormPr} oFormPr - Text field properties.
|
||||
* @returns {ApiTextForm}
|
||||
*/
|
||||
Api.prototype.CreateTextForm = function(oFormPr)
|
||||
@ -160,9 +160,9 @@
|
||||
return new AscBuilder.ApiTextForm(oCC);
|
||||
};
|
||||
/**
|
||||
* Creates a checkbox/radio button form with the specified checkbox/radio button form properties.
|
||||
* Creates a checkbox / radio button with the specified checkbox / radio button properties.
|
||||
* @memberof Api
|
||||
* @param {CheckBoxFormPr} oFormPr - Checkbox/radio button form properties.
|
||||
* @param {CheckBoxFormPr} oFormPr - Checkbox / radio button properties.
|
||||
* @returns {ApiCheckBoxForm}
|
||||
*/
|
||||
Api.prototype.CreateCheckBoxForm = function(oFormPr)
|
||||
@ -230,9 +230,9 @@
|
||||
return new AscBuilder.ApiCheckBoxForm(oCC);
|
||||
};
|
||||
/**
|
||||
* Creates a combo box/dropdown form with the specified combo box/dropdown form properties.
|
||||
* Creates a combo box / dropdown list with the specified combo box / dropdown list properties.
|
||||
* @memberof Api
|
||||
* @param {ComboBoxFormPr} oFormPr - Combo box/dropdown form properties.
|
||||
* @param {ComboBoxFormPr} oFormPr - Combo box / dropdown list properties.
|
||||
* @returns {ApiComboBoxForm}
|
||||
*/
|
||||
Api.prototype.CreateComboBoxForm = function(oFormPr)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2022
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
"oform/Role.js",
|
||||
"oform/xml/XmlPackage.js",
|
||||
"oform/xml/XmlContext.js",
|
||||
"oform/format/BaseFormatObject.js",
|
||||
"oform/format/Document.js",
|
||||
"oform/format/FieldGroup.js",
|
||||
"oform/format/FieldMaster.js",
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
@ -170,7 +170,22 @@
|
||||
if (this.Roles.length <= 1
|
||||
&& this.Roles[roleIndex].getUserMaster() === this.Format.getDefaultUserMaster()
|
||||
&& -1 === delegateIndex)
|
||||
{
|
||||
let defaultUserMaster = this.Format.getDefaultUserMaster();
|
||||
if (!defaultUserMaster.isDefaultUserProps())
|
||||
{
|
||||
if (!this.startAction(AscDFH.historydescription_OForm_RemoveRole))
|
||||
return false;
|
||||
|
||||
defaultUserMaster.initDefaultUser();
|
||||
|
||||
this.NeedRedraw = true;
|
||||
this.endAction();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!this.startAction(AscDFH.historydescription_OForm_RemoveRole))
|
||||
return false;
|
||||
@ -445,7 +460,7 @@
|
||||
{
|
||||
if (!this.NeedUpdateRoles)
|
||||
return;
|
||||
|
||||
|
||||
this.NeedUpdateRoles = false;
|
||||
|
||||
this.Roles = [];
|
||||
@ -537,6 +552,15 @@
|
||||
this.updateRoles();
|
||||
this.checkRedraw();
|
||||
};
|
||||
OForm.prototype.onUndoRedo = function()
|
||||
{
|
||||
this.updateRoles();
|
||||
this.checkRedraw();
|
||||
};
|
||||
OForm.prototype.onEndLoadChanges = function()
|
||||
{
|
||||
this.onUndoRedo();
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Private area
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
|
||||
76
oform/format/BaseFormatObject.js
Normal file
76
oform/format/BaseFormatObject.js
Normal file
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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";
|
||||
|
||||
(function(window)
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* Базовый класс для всех форматных классов в oform
|
||||
* @constructor
|
||||
*/
|
||||
function CBaseFormatObject()
|
||||
{
|
||||
this.Id = null;
|
||||
|
||||
if (!AscCommon.g_oIdCounter.m_bLoad && !AscCommon.History.CanAddChanges())
|
||||
return;
|
||||
|
||||
this.Id = AscCommon.g_oIdCounter.GetNewIdForOForm();
|
||||
AscCommon.g_oTableId.Add(this, this.Id);
|
||||
}
|
||||
CBaseFormatObject.prototype.GetId = function()
|
||||
{
|
||||
return this.Id;
|
||||
};
|
||||
CBaseFormatObject.prototype.Get_Id = function()
|
||||
{
|
||||
return this.Id;
|
||||
};
|
||||
CBaseFormatObject.prototype.Write_ToBinary2 = function(writer)
|
||||
{
|
||||
writer.WriteLong(this.classType);
|
||||
writer.WriteString2(this.GetId());
|
||||
};
|
||||
CBaseFormatObject.prototype.Read_FromBinary2 = function(reader)
|
||||
{
|
||||
this.Id = reader.GetString2();
|
||||
};
|
||||
CBaseFormatObject.prototype.Refresh_RecalcData = function(change)
|
||||
{
|
||||
};
|
||||
//--------------------------------------------------------export----------------------------------------------------
|
||||
AscOForm.CBaseFormatObject = CBaseFormatObject;
|
||||
|
||||
})(window);
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
@ -38,10 +38,11 @@
|
||||
* Основной класс для работы с форматом oform
|
||||
* @param oform {AscOForm.OForm}
|
||||
* @constructor
|
||||
* @extends AscOForm.CBaseFormatObject
|
||||
*/
|
||||
function CDocument(oform)
|
||||
{
|
||||
AscFormat.CBaseFormatObject.call(this);
|
||||
AscOForm.CBaseFormatObject.call(this);
|
||||
|
||||
this.OForm = oform;
|
||||
|
||||
@ -63,7 +64,7 @@
|
||||
this.UserMasters = [];
|
||||
this.FieldMasters = [];
|
||||
}
|
||||
AscFormat.InitClass(CDocument, AscFormat.CBaseFormatObject, AscDFH.historyitem_type_OForm_Document);
|
||||
AscFormat.InitClass(CDocument, AscOForm.CBaseFormatObject, AscDFH.historyitem_type_OForm_Document);
|
||||
CDocument.prototype.clear = function()
|
||||
{
|
||||
// TODO: fields?
|
||||
@ -202,7 +203,7 @@
|
||||
if (mainContent)
|
||||
{
|
||||
let xmlParserContext = new AscCommon.XmlParserContext();
|
||||
xmlParserContext.xmlReaderContext = xmlContext;
|
||||
xmlParserContext.setOformContext(xmlContext);
|
||||
let reader = new AscCommon.StaxParser(mainContent, mainPart, xmlParserContext);
|
||||
this.fromXml(reader);
|
||||
}
|
||||
@ -320,7 +321,7 @@
|
||||
{
|
||||
if ("r:id" === reader.GetName())
|
||||
{
|
||||
let xmlReaderContext = reader.GetContext().xmlReaderContext;
|
||||
let xmlReaderContext = reader.GetOformContext();
|
||||
let rId = reader.GetValueDecodeXml();
|
||||
let rel = reader.rels.getRelationship(rId);
|
||||
let userMaster = xmlReaderContext.getUserMaster(rel.getFullPath());
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
@ -36,10 +36,11 @@
|
||||
{
|
||||
/**
|
||||
* @constructor
|
||||
* @extends AscOForm.CBaseFormatObject
|
||||
*/
|
||||
function CFieldGroup()
|
||||
{
|
||||
AscFormat.CBaseFormatObject.call(this);
|
||||
AscOForm.CBaseFormatObject.call(this);
|
||||
|
||||
this.Weight = null;
|
||||
this.Fields = [];
|
||||
@ -47,10 +48,14 @@
|
||||
|
||||
this.Parent = null;
|
||||
}
|
||||
AscFormat.InitClass(CFieldGroup, AscFormat.CBaseFormatObject, AscDFH.historyitem_type_OForm_FieldGroup);
|
||||
AscFormat.InitClass(CFieldGroup, AscOForm.CBaseFormatObject, AscDFH.historyitem_type_OForm_FieldGroup);
|
||||
CFieldGroup.prototype.setParent = function(parent)
|
||||
{
|
||||
if (this.Parent === parent)
|
||||
return;
|
||||
|
||||
this.Parent = parent;
|
||||
this.onChange();
|
||||
};
|
||||
CFieldGroup.prototype.setWeight = function(value)
|
||||
{
|
||||
@ -149,8 +154,11 @@
|
||||
let fields = [];
|
||||
for (let fieldIndex = 0, fieldCount = this.Fields.length; fieldIndex < fieldCount; ++fieldIndex)
|
||||
{
|
||||
if (this.Fields[fieldIndex].isUseInDocument())
|
||||
if (this.Fields[fieldIndex].isUseInDocument()
|
||||
&& this.Fields[fieldIndex].isMainField())
|
||||
{
|
||||
fields.push(this.Fields[fieldIndex]);
|
||||
}
|
||||
}
|
||||
|
||||
if (this.Users.length && this.Parent)
|
||||
@ -160,8 +168,12 @@
|
||||
let userFields = this.Parent.getAllFieldsByUserMaster(this.Users[index]);
|
||||
for (let fieldIndex = 0, fieldCount = userFields.length; fieldIndex < fieldCount; ++fieldIndex)
|
||||
{
|
||||
if (-1 === fields.indexOf(userFields[fieldIndex]) && userFields[fieldIndex].isUseInDocument())
|
||||
if (-1 === fields.indexOf(userFields[fieldIndex])
|
||||
&& userFields[fieldIndex].isUseInDocument()
|
||||
&& userFields[fieldIndex].isMainField())
|
||||
{
|
||||
fields.push(userFields[fieldIndex]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -231,7 +243,7 @@
|
||||
fG.setWeight(reader.GetValueInt());
|
||||
}
|
||||
|
||||
let xmlReaderContext = reader.GetContext().xmlReaderContext;
|
||||
let xmlReaderContext = reader.GetOformContext();
|
||||
let depth = reader.GetDepth();
|
||||
while (reader.ReadNextSiblingNode(depth))
|
||||
{
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
@ -37,10 +37,11 @@
|
||||
/**
|
||||
* @param {boolean} [generateId=false]
|
||||
* @constructor
|
||||
* @extends AscOForm.CBaseFormatObject
|
||||
*/
|
||||
function CFieldMaster(generateId)
|
||||
{
|
||||
AscFormat.CBaseFormatObject.call(this);
|
||||
AscOForm.CBaseFormatObject.call(this);
|
||||
|
||||
this.FieldId = null;
|
||||
this.Field = null;
|
||||
@ -50,7 +51,7 @@
|
||||
if (true === generateId)
|
||||
this.setFieldId(AscCommon.CreateGUID());
|
||||
}
|
||||
AscFormat.InitClass(CFieldMaster, AscFormat.CBaseFormatObject, AscDFH.historyitem_type_OForm_FieldMaster);
|
||||
AscFormat.InitClass(CFieldMaster, AscOForm.CBaseFormatObject, AscDFH.historyitem_type_OForm_FieldMaster);
|
||||
CFieldMaster.prototype.setLogicField = function(logicField)
|
||||
{
|
||||
this.Field = logicField;
|
||||
@ -178,6 +179,10 @@
|
||||
&& this.Field.IsUseInDocument()
|
||||
&& this === this.Field.GetFieldMaster());
|
||||
};
|
||||
CFieldMaster.prototype.isMainField = function()
|
||||
{
|
||||
return (this.Field && this.Field.IsMainForm());
|
||||
};
|
||||
CFieldMaster.prototype.toXml = function(writer)
|
||||
{
|
||||
let context = writer.context;
|
||||
@ -270,7 +275,7 @@
|
||||
|
||||
function readUsersFromXml(reader)
|
||||
{
|
||||
let xmlReaderContext = reader.GetContext().xmlReaderContext;
|
||||
let xmlReaderContext = reader.GetOformContext();
|
||||
let users = [];
|
||||
let depth = reader.GetDepth();
|
||||
while (reader.ReadNextSiblingNode(depth))
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
@ -37,10 +37,11 @@
|
||||
/**
|
||||
* @param {AscOForm.CUserMaster} userMaster
|
||||
* @constructor
|
||||
* @extends AscOForm.CBaseFormatObject
|
||||
*/
|
||||
function CUser(userMaster)
|
||||
{
|
||||
AscFormat.CBaseFormatObject.call(this);
|
||||
AscOForm.CBaseFormatObject.call(this);
|
||||
|
||||
this.Email = undefined;
|
||||
this.Telephone = undefined;
|
||||
@ -49,7 +50,7 @@
|
||||
if (userMaster)
|
||||
this.setUserMaster(userMaster);
|
||||
}
|
||||
AscFormat.InitClass(CUser, AscFormat.CBaseFormatObject, AscDFH.historyitem_type_OForm_User);
|
||||
AscFormat.InitClass(CUser, AscOForm.CBaseFormatObject, AscDFH.historyitem_type_OForm_User);
|
||||
CUser.prototype.setUserMaster = function(userMaster)
|
||||
{
|
||||
if (this.UserMaster === userMaster)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
@ -37,10 +37,11 @@
|
||||
/**
|
||||
* @param {boolean} [generateId=false]
|
||||
* @constructor
|
||||
* @extends AscOForm.CBaseFormatObject
|
||||
*/
|
||||
function CUserMaster(generateId)
|
||||
{
|
||||
AscFormat.CBaseFormatObject.call(this);
|
||||
AscOForm.CBaseFormatObject.call(this);
|
||||
|
||||
this.UserId = undefined;
|
||||
this.Role = undefined;
|
||||
@ -51,10 +52,14 @@
|
||||
|
||||
this.Parent = null;
|
||||
}
|
||||
AscFormat.InitClass(CUserMaster, AscFormat.CBaseFormatObject, AscDFH.historyitem_type_OForm_UserMaster);
|
||||
AscFormat.InitClass(CUserMaster, AscOForm.CBaseFormatObject, AscDFH.historyitem_type_OForm_UserMaster);
|
||||
CUserMaster.prototype.setParent = function(parent)
|
||||
{
|
||||
if (this.Parent === parent)
|
||||
return;
|
||||
|
||||
this.Parent = parent;
|
||||
this.onChange();
|
||||
};
|
||||
CUserMaster.prototype.setUserId = function(userId)
|
||||
{
|
||||
@ -102,7 +107,7 @@
|
||||
CUserMaster.prototype.initDefaultUser = function()
|
||||
{
|
||||
// TODO: Возможно стоит придумать уникальный id общий для дефолтовой роли
|
||||
this.setRole("Anyone");
|
||||
this.setRole(AscCommon.translateManager.getValue("Anyone"));
|
||||
this.setColor(255, 239, 191);
|
||||
};
|
||||
CUserMaster.prototype.compare = function(user)
|
||||
@ -142,6 +147,18 @@
|
||||
{
|
||||
return (0 === this.compare(user));
|
||||
};
|
||||
CUserMaster.prototype.isDefaultUserProps = function()
|
||||
{
|
||||
let result = false;
|
||||
let u = this;
|
||||
AscCommon.ExecuteNoHistory(function()
|
||||
{
|
||||
let defaultUser = new CUserMaster();
|
||||
defaultUser.initDefaultUser();
|
||||
result = defaultUser.isEqual(u);
|
||||
});
|
||||
return result;
|
||||
};
|
||||
CUserMaster.prototype.onChange = function()
|
||||
{
|
||||
if (!this.Parent)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
@ -52,6 +52,10 @@
|
||||
this.pathToField = {};
|
||||
this.pathToFieldMaster = {};
|
||||
}
|
||||
XmlReaderContext.prototype.getOformContext = function()
|
||||
{
|
||||
return this;
|
||||
};
|
||||
XmlReaderContext.prototype.getUser = function(path)
|
||||
{
|
||||
let user = this.pathToUser[path];
|
||||
@ -143,7 +147,7 @@
|
||||
return null;
|
||||
|
||||
let xmlParserContext = new AscCommon.XmlParserContext();
|
||||
xmlParserContext.xmlReaderContext = this;
|
||||
xmlParserContext.setOformContext(this);
|
||||
return new AscCommon.StaxParser(partContent, part, xmlParserContext);
|
||||
};
|
||||
XmlReaderContext.prototype.getAllByMapAndPath = function(map, path, fromXml)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* 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)
|
||||
@ -12,7 +12,7 @@
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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
|
||||
|
||||
Reference in New Issue
Block a user