diff --git a/oform/format/User.js b/oform/format/User.js index 069af01..702b826 100644 --- a/oform/format/User.js +++ b/oform/format/User.js @@ -97,9 +97,28 @@ }; CUser.fromXml = function(reader) { + if (!reader.ReadNextNode()) + return null; + + let name = reader.GetNameNoNS(); + if ("user" !== reader.GetNameNoNS()) + return null; + let user = new CUser(); - - + let depth = reader.GetDepth(); + while (reader.ReadNextSiblingNode(depth)) + { + name = reader.GetNameNoNS(); + switch(reader.GetNameNoNS()) + { + case "email": + user.setEmail(reader.GetTextDecodeXml()); + break; + case "telephone": + user.setTelephone(reader.GetTextDecodeXml()); + break; + } + } return user; }; diff --git a/oform/format/UserMaster.js b/oform/format/UserMaster.js index 004c812..e5b4561 100644 --- a/oform/format/UserMaster.js +++ b/oform/format/UserMaster.js @@ -59,10 +59,12 @@ function CUserMaster(generateId) { AscOForm.CBaseFormatObject.call(this); - - this.UserId = undefined; - this.Role = undefined; - this.Color = undefined; + + this.UserId = undefined; + this.UserName = undefined; + this.UserEmail = undefined; + this.Role = undefined; + this.Color = undefined; if (true === generateId) this.setUserId(AscCommon.CreateGUID()); @@ -91,6 +93,32 @@ { return this.UserId; }; + CUserMaster.prototype.setUserName = function(userName) + { + if (userName === this.UserName) + return; + + AscCommon.History.Add(new AscDFH.CChangesOFormUserMasterUserName(this, this.UserName, userName)); + this.UserName = userName; + this.onChange(); + }; + CUserMaster.prototype.getUserName = function() + { + return this.UserName; + }; + CUserMaster.prototype.setUserEmail = function(userEmail) + { + if (userEmail === this.UserEmail) + return; + + AscCommon.History.Add(new AscDFH.CChangesOFormUserMasterUserEmail(this, this.UserEmail, userEmail)); + this.UserEmail = userEmail; + this.onChange(); + }; + CUserMaster.prototype.getUserEmail = function() + { + return this.UserEmail; + }; CUserMaster.prototype.setRole = function(role) { if (role === this.Role) @@ -192,6 +220,12 @@ if (this.UserId) writer.WriteXmlNodeWithText("id", this.UserId); + if (this.UserName) + writer.WriteXmlNodeWithText("name", this.UserName); + + if (this.UserEmail) + writer.WriteXmlNodeWithText("email", this.UserEmail); + if (this.Role) writer.WriteXmlNodeWithText("role", this.Role); @@ -223,6 +257,12 @@ case "id": um.setUserId(reader.GetTextDecodeXml()); break; + case "name": + um.setUserName(reader.GetTextDecodeXml()); + break; + case "email": + um.setUserEmail(reader.GetTextDecodeXml()); + break; case "role": um.setRole(reader.GetTextDecodeXml()); break; diff --git a/oform/format/changes/UserMasterChanges.js b/oform/format/changes/UserMasterChanges.js index 180e98e..6288f7b 100644 --- a/oform/format/changes/UserMasterChanges.js +++ b/oform/format/changes/UserMasterChanges.js @@ -34,9 +34,11 @@ (function(window) { - window['AscDFH'].historyitem_OForm_UserMaster_UserId = window['AscDFH'].historyitem_type_OForm_UserMaster | 1; - window['AscDFH'].historyitem_OForm_UserMaster_Role = window['AscDFH'].historyitem_type_OForm_UserMaster | 2; - window['AscDFH'].historyitem_OForm_UserMaster_Color = window['AscDFH'].historyitem_type_OForm_UserMaster | 3; + window['AscDFH'].historyitem_OForm_UserMaster_UserId = window['AscDFH'].historyitem_type_OForm_UserMaster | 1; + window['AscDFH'].historyitem_OForm_UserMaster_Role = window['AscDFH'].historyitem_type_OForm_UserMaster | 2; + window['AscDFH'].historyitem_OForm_UserMaster_Color = window['AscDFH'].historyitem_type_OForm_UserMaster | 3; + window['AscDFH'].historyitem_OForm_UserMaster_UserName = window['AscDFH'].historyitem_type_OForm_UserMaster | 4; + window['AscDFH'].historyitem_OForm_UserMaster_UserEmail = window['AscDFH'].historyitem_type_OForm_UserMaster | 5; /** * @constructor @@ -104,5 +106,47 @@ return new AscWord.CDocumentColor(0, 0, 0); }; window['AscDFH'].CChangesOFormUserMasterColor = CChangesOFormUserMasterColor; + + /** + * @constructor + * @extends {window['AscDFH'].CChangesBaseStringProperty} + */ + function CChangesOFormUserMasterUserName(Class, Old, New) + { + window['AscDFH'].CChangesBaseStringProperty.call(this, Class, Old, New); + } + window['AscDFH'].InheritPropertyChange( + CChangesOFormUserMasterUserName, + window['AscDFH'].CChangesBaseStringProperty, + window['AscDFH'].historyitem_OForm_UserMaster_UserName, + function(Value) + { + this.Class.UserName = Value; + this.Class.onChange(); + }, + false + ); + window['AscDFH'].CChangesOFormUserMasterUserName = CChangesOFormUserMasterUserName; + + /** + * @constructor + * @extends {window['AscDFH'].CChangesBaseStringProperty} + */ + function CChangesOFormUserMasterUserEmail(Class, Old, New) + { + window['AscDFH'].CChangesBaseStringProperty.call(this, Class, Old, New); + } + window['AscDFH'].InheritPropertyChange( + CChangesOFormUserMasterUserEmail, + window['AscDFH'].CChangesBaseStringProperty, + window['AscDFH'].historyitem_OForm_UserMaster_UserEmail, + function(Value) + { + this.Class.UserEmail = Value; + this.Class.onChange(); + }, + false + ); + window['AscDFH'].CChangesOFormUserMasterUserEmail = CChangesOFormUserMasterUserEmail; })(window);