From 4dfe20101970c16984ba1a84e8dafec9f2406166 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 7 Oct 2013 20:07:16 -0700 Subject: [PATCH] naming samples no longer use promises to load --- .../MediaManagement/MediaManagementLayout.js | 2 +- .../Naming/NamingSampleModel.js | 10 ++++++ .../Naming/{View.js => NamingView.js} | 31 +++++++++---------- ...wTemplate.html => NamingViewTemplate.html} | 0 4 files changed, 25 insertions(+), 18 deletions(-) create mode 100644 src/UI/Settings/MediaManagement/Naming/NamingSampleModel.js rename src/UI/Settings/MediaManagement/Naming/{View.js => NamingView.js} (60%) rename src/UI/Settings/MediaManagement/Naming/{ViewTemplate.html => NamingViewTemplate.html} (100%) diff --git a/src/UI/Settings/MediaManagement/MediaManagementLayout.js b/src/UI/Settings/MediaManagement/MediaManagementLayout.js index 47d670a40..eb31dcb77 100644 --- a/src/UI/Settings/MediaManagement/MediaManagementLayout.js +++ b/src/UI/Settings/MediaManagement/MediaManagementLayout.js @@ -3,7 +3,7 @@ define( [ 'marionette', - 'Settings/MediaManagement/Naming/View', + 'Settings/MediaManagement/Naming/NamingView', 'Settings/MediaManagement/Sorting/View', 'Settings/MediaManagement/FileManagement/FileManagementView' ], function (Marionette, NamingView, SortingView, FileManagementView) { diff --git a/src/UI/Settings/MediaManagement/Naming/NamingSampleModel.js b/src/UI/Settings/MediaManagement/Naming/NamingSampleModel.js new file mode 100644 index 000000000..fd833e32f --- /dev/null +++ b/src/UI/Settings/MediaManagement/Naming/NamingSampleModel.js @@ -0,0 +1,10 @@ +'use strict'; +define( + [ + 'backbone' + ], function (Backbone) { + return Backbone.Model.extend({ + url: window.NzbDrone.ApiRoot + '/config/naming/samples' + }); + + }); diff --git a/src/UI/Settings/MediaManagement/Naming/View.js b/src/UI/Settings/MediaManagement/Naming/NamingView.js similarity index 60% rename from src/UI/Settings/MediaManagement/Naming/View.js rename to src/UI/Settings/MediaManagement/Naming/NamingView.js index 1623285fb..3acadee56 100644 --- a/src/UI/Settings/MediaManagement/Naming/View.js +++ b/src/UI/Settings/MediaManagement/Naming/NamingView.js @@ -2,11 +2,12 @@ define( [ 'marionette', + 'Settings/MediaManagement/Naming/NamingSampleModel', 'Mixins/AsModelBoundView' - ], function (Marionette, AsModelBoundView) { + ], function (Marionette, NamingSampleModel, AsModelBoundView) { var view = Marionette.ItemView.extend({ - template: 'Settings/MediaManagement/Naming/ViewTemplate', + template: 'Settings/MediaManagement/Naming/NamingViewTemplate', ui: { namingOptions : '.x-naming-options', @@ -24,8 +25,11 @@ define( this.ui.namingOptions.hide(); } - this.listenTo(this.model, 'change', this._updateExamples); - this._updateExamples(); + this.namingSampleModel = new NamingSampleModel(); + + this.listenTo(this.model, 'change', this._updateSamples); + this.listenTo(this.namingSampleModel, 'sync', this._showSamples); + this._updateSamples(); }, _setNamingOptionsVisibility: function () { @@ -39,20 +43,13 @@ define( } }, - _updateExamples: function () { - //TODO: make this use events/listeners - var self = this; - - var promise = $.ajax({ - type: 'GET', - url : window.NzbDrone.ApiRoot + '/config/naming/samples', - data: this.model.toJSON() - }); + _updateSamples: function () { + this.namingSampleModel.fetch({ data: this.model.toJSON() }); + }, - promise.done(function (result) { - self.ui.singleEpisodeExample.html(result.singleEpisodeExample); - self.ui.multiEpisodeExample.html(result.multiEpisodeExample); - }); + _showSamples: function () { + this.ui.singleEpisodeExample.html(this.namingSampleModel.get('singleEpisodeExample')); + this.ui.multiEpisodeExample.html(this.namingSampleModel.get('multiEpisodeExample')); } }); diff --git a/src/UI/Settings/MediaManagement/Naming/ViewTemplate.html b/src/UI/Settings/MediaManagement/Naming/NamingViewTemplate.html similarity index 100% rename from src/UI/Settings/MediaManagement/Naming/ViewTemplate.html rename to src/UI/Settings/MediaManagement/Naming/NamingViewTemplate.html