naming samples no longer use promises to load

This commit is contained in:
Mark McDowall 2013-10-07 20:07:16 -07:00
parent ee2973efe7
commit 4dfe201019
4 changed files with 25 additions and 18 deletions

View File

@ -3,7 +3,7 @@
define( define(
[ [
'marionette', 'marionette',
'Settings/MediaManagement/Naming/View', 'Settings/MediaManagement/Naming/NamingView',
'Settings/MediaManagement/Sorting/View', 'Settings/MediaManagement/Sorting/View',
'Settings/MediaManagement/FileManagement/FileManagementView' 'Settings/MediaManagement/FileManagement/FileManagementView'
], function (Marionette, NamingView, SortingView, FileManagementView) { ], function (Marionette, NamingView, SortingView, FileManagementView) {

View File

@ -0,0 +1,10 @@
'use strict';
define(
[
'backbone'
], function (Backbone) {
return Backbone.Model.extend({
url: window.NzbDrone.ApiRoot + '/config/naming/samples'
});
});

View File

@ -2,11 +2,12 @@
define( define(
[ [
'marionette', 'marionette',
'Settings/MediaManagement/Naming/NamingSampleModel',
'Mixins/AsModelBoundView' 'Mixins/AsModelBoundView'
], function (Marionette, AsModelBoundView) { ], function (Marionette, NamingSampleModel, AsModelBoundView) {
var view = Marionette.ItemView.extend({ var view = Marionette.ItemView.extend({
template: 'Settings/MediaManagement/Naming/ViewTemplate', template: 'Settings/MediaManagement/Naming/NamingViewTemplate',
ui: { ui: {
namingOptions : '.x-naming-options', namingOptions : '.x-naming-options',
@ -24,8 +25,11 @@ define(
this.ui.namingOptions.hide(); this.ui.namingOptions.hide();
} }
this.listenTo(this.model, 'change', this._updateExamples); this.namingSampleModel = new NamingSampleModel();
this._updateExamples();
this.listenTo(this.model, 'change', this._updateSamples);
this.listenTo(this.namingSampleModel, 'sync', this._showSamples);
this._updateSamples();
}, },
_setNamingOptionsVisibility: function () { _setNamingOptionsVisibility: function () {
@ -39,20 +43,13 @@ define(
} }
}, },
_updateExamples: function () { _updateSamples: function () {
//TODO: make this use events/listeners this.namingSampleModel.fetch({ data: this.model.toJSON() });
var self = this; },
var promise = $.ajax({ _showSamples: function () {
type: 'GET', this.ui.singleEpisodeExample.html(this.namingSampleModel.get('singleEpisodeExample'));
url : window.NzbDrone.ApiRoot + '/config/naming/samples', this.ui.multiEpisodeExample.html(this.namingSampleModel.get('multiEpisodeExample'));
data: this.model.toJSON()
});
promise.done(function (result) {
self.ui.singleEpisodeExample.html(result.singleEpisodeExample);
self.ui.multiEpisodeExample.html(result.multiEpisodeExample);
});
} }
}); });