SaveIfChangedMixin

This commit is contained in:
Mark McDowall 2013-05-30 21:06:52 -07:00
parent 9a68785c26
commit c94595b3ae
4 changed files with 43 additions and 7 deletions

View File

@ -0,0 +1,30 @@
//try to add ajax data as query string to DELETE calls.
"use strict";
(function () {
NzbDrone.Mixins.SaveIfChangedModel = {
// originalInitialize: this.initialize,
initialize: function () {
this.isSaved = true;
this.on('change', function () {
this.isSaved = false;
}, this);
this.on('sync', function () {
this.isSaved = true;
}, this);
// if (originalInitialize) {
// originalInitialize.call(this);
// }
},
saveIfChanged: function (options) {
if (!this.isSaved) {
this.save(undefined, options);
}
}
};
}());

View File

@ -36,23 +36,26 @@ define(['app',
saveSettings: function () {
var self = this;
//For now loop through and save all the models
_.each(this.collection.models, function (model, index, list) {
var name = model.get('name');
var error = 'Failed to save indexer: ' + name;
model.save(undefined, self.syncNotification(error));
model.saveIfChanged(self.syncNotification(undefined, error));
});
},
syncNotification: function (error) {
syncNotification: function (success, error) {
return {
success: function () {
if (success) {
NzbDrone.Shared.Messenger.show({message: success});
}
},
error : function () {
NzbDrone.Shared.Messenger.show({message: "Couldn't Save General Settings", type: 'error'});
if (error) {
NzbDrone.Shared.Messenger.show({message: error, type: 'error'});
}
}
};
}

View File

@ -1,5 +1,7 @@
"use strict";
define(['app'], function () {
define(['app', 'Mixins/SaveIfChangedModel'], function () {
NzbDrone.Settings.Indexers.Model = Backbone.DeepModel.extend({
});
_.extend(NzbDrone.Settings.Indexers.Model.prototype, NzbDrone.Mixins.SaveIfChangedModel);
});

View File

@ -82,6 +82,7 @@ define('app', ['shared/modal/region'], function (ModalRegion) {
window.NzbDrone.Missing = {};
window.NzbDrone.History = {};
window.NzbDrone.Mixins = {};
window.NzbDrone.Events = {
SeriesAdded: 'seriesAdded'