/* * Copyright (c) 2015 * * This file is licensed under the Affero General Public License version 3 * or later. * * See the COPYING-README file. * */ (function(OC) { /** * @class OC.SystemTags.SystemTagsMappingCollection * @classdesc * * Collection of tags assigned to a an object * */ var SystemTagsMappingCollection = OC.Backbone.Collection.extend( /** @lends OC.SystemTags.SystemTagsMappingCollection.prototype */ { sync: OC.Backbone.davSync, /** * Use PUT instead of PROPPATCH */ usePUT: true, /** * Id of the file for which to filter activities by * * @var int */ _objectId: null, /** * Type of the object to filter by * * @var string */ _objectType: 'files', model: OC.SystemTags.SystemTagModel, url: function() { return OC.linkToRemote('dav') + '/systemtags-relations/' + this._objectType + '/' + this._objectId; }, /** * Sets the object id to filter by or null for all. * * @param {int} objectId file id or null */ setObjectId: function(objectId) { this._objectId = objectId; }, /** * Sets the object type to filter by or null for all. * * @param {int} objectType file id or null */ setObjectType: function(objectType) { this._objectType = objectType; }, initialize: function(models, options) { options = options || {}; if (!_.isUndefined(options.objectId)) { this._objectId = options.objectId; } if (!_.isUndefined(options.objectType)) { this._objectType = options.objectType; } }, getTagIds: function() { return this.map(function(model) { return model.id; }); } }); OC.SystemTags = OC.SystemTags || {}; OC.SystemTags.SystemTagsMappingCollection = SystemTagsMappingCollection; })(OC);