1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /*
- * Copyright (c) 2015
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
- (function(OC) {
-
- function filterFunction(model, term) {
- return model.get('name').substr(0, term.length).toLowerCase() === term.toLowerCase();
- }
-
- /**
- * @class OCA.SystemTags.SystemTagsCollection
- * @classdesc
- *
- * Collection of tags assigned to a file
- *
- */
- var SystemTagsCollection = OC.Backbone.Collection.extend(
- /** @lends OC.SystemTags.SystemTagsCollection.prototype */ {
-
- sync: OC.Backbone.davSync,
-
- model: OC.SystemTags.SystemTagModel,
-
- url: function() {
- return OC.linkToRemote('dav') + '/systemtags/';
- },
-
- filterByName: function(name) {
- return this.filter(function(model) {
- return filterFunction(model, name);
- });
- },
-
- reset: function() {
- this.fetched = false;
- return OC.Backbone.Collection.prototype.reset.apply(this, arguments);
- },
-
- /**
- * Lazy fetch.
- * Only fetches once, subsequent calls will directly call the success handler.
- *
- * @param options
- * @param [options.force] true to force fetch even if cached entries exist
- *
- * @see Backbone.Collection#fetch
- */
- fetch: function(options) {
- var self = this;
- options = options || {};
- if (this.fetched || options.force) {
- // directly call handler
- if (options.success) {
- options.success(this, null, options);
- }
- // trigger sync event
- this.trigger('sync', this, null, options);
- return Promise.resolve();
- }
-
- var success = options.success;
- options = _.extend({}, options);
- options.success = function() {
- self.fetched = true;
- if (success) {
- return success.apply(this, arguments);
- }
- };
-
- return OC.Backbone.Collection.prototype.fetch.call(this, options);
- }
- });
-
- OC.SystemTags = OC.SystemTags || {};
- OC.SystemTags.SystemTagsCollection = SystemTagsCollection;
-
- /**
- * @type OC.SystemTags.SystemTagsCollection
- */
- OC.SystemTags.collection = new OC.SystemTags.SystemTagsCollection();
- })(OC);
|