sonarr-repo-only/UI/Mixins/backbone.signalr.mixin.js

44 lines
1.1 KiB
JavaScript
Raw Normal View History

2013-06-22 06:24:24 +00:00
'use strict';
define(
[
2013-09-30 15:09:47 +00:00
'underscore',
'backbone',
'signalR'
2013-09-30 15:09:47 +00:00
], function (_, Backbone) {
2013-08-21 19:07:28 +00:00
_.extend(Backbone.Collection.prototype, {
2013-09-11 06:33:47 +00:00
bindSignalR: function () {
2013-09-11 06:33:47 +00:00
var collection = this;
2013-09-11 06:33:47 +00:00
var processMessage = function (options) {
2013-05-05 21:24:33 +00:00
if (options.action === 'sync') {
console.log('sync received, refetching collection');
collection.fetch();
return;
}
2013-09-11 06:33:47 +00:00
var model = new collection.model(options.resource, {parse: true});
collection.add(model, {merge: true});
2013-09-30 15:09:47 +00:00
console.log(options.action + ': {0}}'.format(options.resource));
2013-08-21 19:07:28 +00:00
};
2013-09-11 06:33:47 +00:00
require(
2013-08-21 19:07:28 +00:00
[
2013-09-11 06:33:47 +00:00
'app'
], function (app) {
2013-09-30 15:09:47 +00:00
collection.listenTo(app.vent, 'server:' + collection.url.replace('/api/', ''), processMessage);
2013-09-11 06:33:47 +00:00
});
2013-08-21 19:07:28 +00:00
return this;
},
2013-08-21 19:07:28 +00:00
unbindSignalR: function () {
2013-08-21 19:07:28 +00:00
}});
});