'use strict'; define( [ 'app', 'marionette', 'Mixins/AsModelBoundView', 'Mixins/AsValidatedView' ], function (App, Marionette, AsModelBoundView, AsValidatedView) { var view = Marionette.ItemView.extend({ template: 'Settings/Indexers/EditTemplate', ui : { activity: '.x-activity' }, events: { 'click .x-save' : '_save', 'click .x-save-and-add': '_saveAndAdd' }, initialize: function (options) { this.indexerCollection = options.indexerCollection; }, _save: function () { this.ui.activity.html(''); var self = this; var promise = this.model.saveSettings(); if (promise) { promise.done(function () { self.indexerCollection.add(self.model, { merge: true }); App.vent.trigger(App.Commands.CloseModalCommand); }); promise.fail(function () { self.ui.activity.empty(); }); } }, _saveAndAdd: function () { this.ui.activity.html(''); var self = this; var promise = this.model.saveSettings(); if (promise) { promise.done(function () { self.indexerCollection.add(self.model, { merge: true }); self.model.set({ id : undefined, name : '', enable: false }); _.each(self.model.get('fields'), function (value, key, list) { self.model.set('fields.' + key + '.value', ''); }); }); promise.fail(function () { self.ui.activity.empty(); }); } } }); AsModelBoundView.call(view); AsValidatedView.call(view); return view; });