0e926efc9b
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
81 lines
2 KiB
JavaScript
81 lines
2 KiB
JavaScript
/*
|
|
* 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) {
|
|
var NS_OWNCLOUD = 'http://owncloud.org/ns';
|
|
/**
|
|
* @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': '{' + NS_OWNCLOUD + '}id',
|
|
'message': '{' + NS_OWNCLOUD + '}message',
|
|
'actorType': '{' + NS_OWNCLOUD + '}actorType',
|
|
'actorId': '{' + NS_OWNCLOUD + '}actorId',
|
|
'actorDisplayName': '{' + NS_OWNCLOUD + '}actorDisplayName',
|
|
'creationDateTime': '{' + NS_OWNCLOUD + '}creationDateTime',
|
|
'objectType': '{' + NS_OWNCLOUD + '}objectType',
|
|
'objectId': '{' + NS_OWNCLOUD + '}objectId',
|
|
'isUnread': '{' + NS_OWNCLOUD + '}isUnread',
|
|
'mentions': '{' + NS_OWNCLOUD + '}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);
|
|
|