Fixed: Basic naming settings take existing format into consideration

pull/2/head
Mark McDowall 10 years ago
parent 7a804d4702
commit 59a5b6c030

@ -0,0 +1,9 @@
'use strict';
define(
[
'backbone'
], function (Backbone) {
return Backbone.Model.extend({
});
});

@ -5,8 +5,9 @@ define(
'marionette', 'marionette',
'Config', 'Config',
'Settings/MediaManagement/Naming/NamingSampleModel', 'Settings/MediaManagement/Naming/NamingSampleModel',
'Settings/MediaManagement/Naming/Basic/BasicNamingModel',
'Mixins/AsModelBoundView' 'Mixins/AsModelBoundView'
], function (_, Marionette, Config, NamingSampleModel, AsModelBoundView) { ], function (_, Marionette, Config, NamingSampleModel, BasicNamingModel, AsModelBoundView) {
var view = Marionette.ItemView.extend({ var view = Marionette.ItemView.extend({
template: 'Settings/MediaManagement/Naming/Basic/BasicNamingViewTemplate', template: 'Settings/MediaManagement/Naming/Basic/BasicNamingViewTemplate',
@ -18,20 +19,42 @@ define(
dailyEpisodeExample : '.x-daily-episode-example' dailyEpisodeExample : '.x-daily-episode-example'
}, },
onRender: function () { initialize: function (options) {
this.namingModel = options.model;
this.model = new BasicNamingModel();
this._parseNamingModel();
this.listenTo(this.model, 'change', this._buildFormat); this.listenTo(this.model, 'change', this._buildFormat);
this._buildFormat(); this.listenTo(this.namingModel, 'sync', this._parseNamingModel);
}, },
_updateSamples: function () { _parseNamingModel: function () {
var data = { var standardFormat = this.namingModel.get('standardEpisodeFormat');
renameEpisodes: true,
standardEpisodeFormat: this.standardEpisodeFormat, var includeSeriesTitle = standardFormat.match(/\{Series[-_. ]Title\}/i);
dailyEpisodeFormat: this.dailyEpisodeFormat, var includeEpisodeTitle = standardFormat.match(/\{Episode[-_. ]Title\}/i);
multiEpisodeStyle: this.model.get('multiEpisodeStyle') var includeQuality = standardFormat.match(/\{Quality[-_. ]Title\}/i);
}; var numberStyle = standardFormat.match(/s?\{season(?:\:00)?\}[ex]\{episode(?:\:00)?\}/i);
var replaceSpaces = standardFormat.indexOf(' ') === -1;
var separator = standardFormat.match(/\}( - |\.-\.|\.| )|( - |\.-\.|\.| )\{/i);
if (separator === null || separator[1] === '.-.') {
separator = ' - ';
}
else {
separator = separator[1];
}
this.namingSampleModel.fetch({data: data}); this.model.set({
includeSeriesTitle: includeSeriesTitle !== null,
includeEpisodeTitle: includeEpisodeTitle !== null,
includeQuality: includeQuality !== null,
numberStyle: numberStyle[0],
replaceSpaces: replaceSpaces,
separator: separator
}, { silent: true });
}, },
_buildFormat: function () { _buildFormat: function () {
@ -39,10 +62,6 @@ define(
return; return;
} }
if (_.has(this.model.changed, 'standardEpisodeFormat') || _.has(this.model.changed, 'dailyEpisodeFormat')) {
return;
}
var standardEpisodeFormat = ''; var standardEpisodeFormat = '';
var dailyEpisodeFormat = ''; var dailyEpisodeFormat = '';
@ -96,8 +115,9 @@ define(
dailyEpisodeFormat = dailyEpisodeFormat.replace(/\s/g, '.'); dailyEpisodeFormat = dailyEpisodeFormat.replace(/\s/g, '.');
} }
this.model.set('standardEpisodeFormat', standardEpisodeFormat); this.namingModel.set('standardEpisodeFormat', standardEpisodeFormat);
this.model.set('dailyEpisodeFormat', dailyEpisodeFormat); this.namingModel.set('dailyEpisodeFormat', dailyEpisodeFormat);
this.namingModel.set('animeEpisodeFormat', standardEpisodeFormat);
} }
}); });

@ -8,5 +8,4 @@ define(
successMessage: 'MediaManagement settings saved', successMessage: 'MediaManagement settings saved',
errorMessage : 'Couldn\'t save naming settings' errorMessage : 'Couldn\'t save naming settings'
}); });
}); });

Loading…
Cancel
Save