fixed saving settings. now done more generically.

This commit is contained in:
kay.one 2013-06-18 21:27:41 -07:00
commit 806e58ed1f
13 changed files with 104 additions and 161 deletions

View file

@ -1,11 +1,10 @@
'use strict';
define(['app',
'marionette',
'Shared/Messenger',
'Settings/Indexers/ItemView',
'Settings/Indexers/EditView',
'Settings/Indexers/Collection'],
function (App, Marionette, Messenger, IndexerItemView, IndexerEditView, IndexerCollection) {
function (App, Marionette, IndexerItemView, IndexerEditView, IndexerCollection) {
return Marionette.CompositeView.extend({
itemView : IndexerItemView,
itemViewContainer: '#x-indexers',
@ -15,10 +14,6 @@ define(['app',
'click .x-add': 'openSchemaModal'
},
initialize: function () {
this.listenTo(App.vent, App.Commands.SaveSettings, this._saveSettings);
this.savedCount = 0;
},
openSchemaModal: function () {
var self = this;
@ -36,28 +31,6 @@ define(['app',
App.modalRegion.show(view);
}
});
},
_saveSettings: function () {
var self = this;
_.each(this.collection.models, function (model, index, list) {
model.saveIfChanged(NzbDrone.Settings.SyncNotificaiton.callback({
errorMessage : 'Failed to save indexer: ' + model.get('name'),
successCallback: self._saveSuccessful,
context : self
}));
});
if (self.savedCount > 0) {
Messenger.show({message: 'Indexer settings saved'});
}
this.savedCount = 0;
},
_saveSuccessful: function () {
this.savedCount++;
}
});
});

View file

@ -3,10 +3,8 @@
define([
'app',
'marionette',
'Shared/Messenger',
'Mixins/AsModelBoundView'
], function (App, Marionette, Messenger, AsModelBoundView) {
], function (App, Marionette, AsModelBoundView) {
var view = Marionette.ItemView.extend({
template: 'Settings/Indexers/EditTemplate',
@ -20,27 +18,9 @@ define([
},
save: function () {
this.model.save(undefined, this.syncNotification("Indexer Saved", "Couldn't Save Indexer", this));
},
syncNotification: function (success, error, context) {
return {
success: function () {
Messenger.show({
message: success
});
context.indexerCollection.add(context.model);
App.modalRegion.closeModal();
},
error: function () {
window.alert(error);
}
};
this.model.saveSettings();
}
});
return AsModelBoundView.call(view);
});

View file

@ -1,10 +1,12 @@
"use strict";
define(['marionette'], function () {
define(['marionette', 'Mixins/AsModelBoundView'], function (Marionette, AsModelBoundView) {
return Marionette.ItemView.extend({
var view = Marionette.ItemView.extend({
template: 'Settings/Indexers/ItemTemplate',
tagName : 'li'
});
return AsModelBoundView.call(view);
});

View file

@ -1,9 +1,11 @@
"use strict";
define([
'backbone.deepmodel', 'Mixins/AsChangeTrackingModel'], function (DeepModel, AsChangeTrackingModel) {
var model = DeepModel.DeepModel.extend({
'Settings/SettingsModelBase'], function (ModelBase) {
return ModelBase.extend({
successMessage: 'Indexer Saved',
errorMessage : 'Couldn\'t save indexer'
});
return AsChangeTrackingModel.call(model);
});