/* * Copyright (c) 2016 * * This file is licensed under the Affero General Public License version 3 * or later. * * See the COPYING-README file. * */ (function(OC, OCA) { _.extend(OC.Files.Client, { PROPERTY_FILEID: '{' + OC.Files.Client.NS_OWNCLOUD + '}id', PROPERTY_MESSAGE: '{' + OC.Files.Client.NS_OWNCLOUD + '}message', PROPERTY_ACTORTYPE: '{' + OC.Files.Client.NS_OWNCLOUD + '}actorType', PROPERTY_ACTORID: '{' + OC.Files.Client.NS_OWNCLOUD + '}actorId', PROPERTY_ISUNREAD: '{' + OC.Files.Client.NS_OWNCLOUD + '}isUnread', PROPERTY_OBJECTID: '{' + OC.Files.Client.NS_OWNCLOUD + '}objectId', PROPERTY_OBJECTTYPE: '{' + OC.Files.Client.NS_OWNCLOUD + '}objectType', PROPERTY_ACTORDISPLAYNAME: '{' + OC.Files.Client.NS_OWNCLOUD + '}actorDisplayName', PROPERTY_CREATIONDATETIME: '{' + OC.Files.Client.NS_OWNCLOUD + '}creationDateTime', PROPERTY_MENTIONS: '{' + OC.Files.Client.NS_OWNCLOUD + '}mentions' }) /** * @class OCA.Comments.CommentModel * @classdesc * * Comment * */ var CommentModel = OC.Backbone.Model.extend( /** @lends OCA.Comments.CommentModel.prototype */ { sync: OC.Backbone.davSync, defaults: { actorType: 'users', objectType: 'files' }, davProperties: { 'id': OC.Files.Client.PROPERTY_FILEID, 'message': OC.Files.Client.PROPERTY_MESSAGE, 'actorType': OC.Files.Client.PROPERTY_ACTORTYPE, 'actorId': OC.Files.Client.PROPERTY_ACTORID, 'actorDisplayName': OC.Files.Client.PROPERTY_ACTORDISPLAYNAME, 'creationDateTime': OC.Files.Client.PROPERTY_CREATIONDATETIME, 'objectType': OC.Files.Client.PROPERTY_OBJECTTYPE, 'objectId': OC.Files.Client.PROPERTY_OBJECTID, 'isUnread': OC.Files.Client.PROPERTY_ISUNREAD, 'mentions': OC.Files.Client.PROPERTY_MENTIONS }, parse: function(data) { return { id: data.id, message: data.message, actorType: data.actorType, actorId: data.actorId, actorDisplayName: data.actorDisplayName, creationDateTime: data.creationDateTime, objectType: data.objectType, objectId: data.objectId, isUnread: (data.isUnread === 'true'), mentions: this._parseMentions(data.mentions) } }, _parseMentions: function(mentions) { if (_.isUndefined(mentions)) { return {} } var result = {} for (var i in mentions) { var mention = mentions[i] if (_.isUndefined(mention.localName) || mention.localName !== 'mention') { continue } result[i] = {} for (var child = mention.firstChild; child; child = child.nextSibling) { if (_.isUndefined(child.localName) || !child.localName.startsWith('mention')) { continue } result[i][child.localName] = child.textContent } } return result } }) OCA.Comments.CommentModel = CommentModel })(OC, OCA)