You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
50 lines
1.3 KiB
var _ = require('underscore');
|
|
var Backbone = require('backbone');
|
|
|
|
module.exports = Backbone.Model.extend({
|
|
url : window.NzbDrone.ApiRoot + '/command',
|
|
|
|
parse : function(response) {
|
|
response.name = response.name.toLocaleLowerCase();
|
|
response.body.name = response.body.name.toLocaleLowerCase();
|
|
|
|
for (var key in response.body) {
|
|
response[key] = response.body[key];
|
|
}
|
|
|
|
delete response.body;
|
|
|
|
return response;
|
|
},
|
|
|
|
isSameCommand : function(command) {
|
|
|
|
if (command.name.toLocaleLowerCase() !== this.get('name').toLocaleLowerCase()) {
|
|
return false;
|
|
}
|
|
|
|
for (var key in command) {
|
|
if (key !== 'name') {
|
|
if (Array.isArray(command[key])) {
|
|
if (_.difference(command[key], this.get(key)).length > 0) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
else if (command[key] !== this.get(key)) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
},
|
|
|
|
isActive : function() {
|
|
return this.get('status') !== 'completed' && this.get('status') !== 'failed';
|
|
},
|
|
|
|
isComplete : function() {
|
|
return this.get('status') === 'completed';
|
|
}
|
|
}); |