mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-16 11:37:58 +02:00
Fixed: Basic naming settings take existing format into consideration
This commit is contained in:
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,
|
|
||||||
dailyEpisodeFormat: this.dailyEpisodeFormat,
|
|
||||||
multiEpisodeStyle: this.model.get('multiEpisodeStyle')
|
|
||||||
};
|
|
||||||
|
|
||||||
this.namingSampleModel.fetch({data: data});
|
var includeSeriesTitle = standardFormat.match(/\{Series[-_. ]Title\}/i);
|
||||||
|
var includeEpisodeTitle = standardFormat.match(/\{Episode[-_. ]Title\}/i);
|
||||||
|
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.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…
Reference in New Issue
Block a user