New: Explicit toggle for importing extra files
This commit is contained in:
parent
db9d601115
commit
6aaefae2d5
|
@ -20,6 +20,7 @@ namespace NzbDrone.Api.Config
|
||||||
|
|
||||||
public bool SkipFreeSpaceCheckWhenImporting { get; set; }
|
public bool SkipFreeSpaceCheckWhenImporting { get; set; }
|
||||||
public bool CopyUsingHardlinks { get; set; }
|
public bool CopyUsingHardlinks { get; set; }
|
||||||
|
public bool ImportExtraFiles { get; set; }
|
||||||
public string ExtraFileExtensions { get; set; }
|
public string ExtraFileExtensions { get; set; }
|
||||||
public bool EnableMediaInfo { get; set; }
|
public bool EnableMediaInfo { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -44,6 +45,7 @@ namespace NzbDrone.Api.Config
|
||||||
|
|
||||||
SkipFreeSpaceCheckWhenImporting = model.SkipFreeSpaceCheckWhenImporting,
|
SkipFreeSpaceCheckWhenImporting = model.SkipFreeSpaceCheckWhenImporting,
|
||||||
CopyUsingHardlinks = model.CopyUsingHardlinks,
|
CopyUsingHardlinks = model.CopyUsingHardlinks,
|
||||||
|
ImportExtraFiles = model.ImportExtraFiles,
|
||||||
ExtraFileExtensions = model.ExtraFileExtensions,
|
ExtraFileExtensions = model.ExtraFileExtensions,
|
||||||
EnableMediaInfo = model.EnableMediaInfo
|
EnableMediaInfo = model.EnableMediaInfo
|
||||||
};
|
};
|
||||||
|
|
|
@ -203,6 +203,13 @@ namespace NzbDrone.Core.Configuration
|
||||||
set { SetValue("EnableMediaInfo", value); }
|
set { SetValue("EnableMediaInfo", value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool ImportExtraFiles
|
||||||
|
{
|
||||||
|
get { return GetValueBoolean("ImportExtraFiles", false); }
|
||||||
|
|
||||||
|
set { SetValue("ImportExtraFiles", value); }
|
||||||
|
}
|
||||||
|
|
||||||
public string ExtraFileExtensions
|
public string ExtraFileExtensions
|
||||||
{
|
{
|
||||||
get { return GetValue("ExtraFileExtensions", ""); }
|
get { return GetValue("ExtraFileExtensions", ""); }
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using NzbDrone.Core.MediaFiles;
|
using NzbDrone.Core.MediaFiles;
|
||||||
using NzbDrone.Common.Http.Proxy;
|
using NzbDrone.Common.Http.Proxy;
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ namespace NzbDrone.Core.Configuration
|
||||||
bool SkipFreeSpaceCheckWhenImporting { get; set; }
|
bool SkipFreeSpaceCheckWhenImporting { get; set; }
|
||||||
bool CopyUsingHardlinks { get; set; }
|
bool CopyUsingHardlinks { get; set; }
|
||||||
bool EnableMediaInfo { get; set; }
|
bool EnableMediaInfo { get; set; }
|
||||||
|
bool ImportExtraFiles { get; set; }
|
||||||
string ExtraFileExtensions { get; set; }
|
string ExtraFileExtensions { get; set; }
|
||||||
|
|
||||||
//Permissions (Media Management)
|
//Permissions (Media Management)
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
using System.Data;
|
||||||
|
using FluentMigrator;
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
using NzbDrone.Core.Datastore.Migration.Framework;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Datastore.Migration
|
||||||
|
{
|
||||||
|
[Migration(109)]
|
||||||
|
public class import_extra_files : NzbDroneMigrationBase
|
||||||
|
{
|
||||||
|
protected override void MainDbUpgrade()
|
||||||
|
{
|
||||||
|
Execute.WithConnection(ImportExtraFiles);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ImportExtraFiles(IDbConnection conn, IDbTransaction tran)
|
||||||
|
{
|
||||||
|
|
||||||
|
using (var cmd = conn.CreateCommand())
|
||||||
|
{
|
||||||
|
cmd.Transaction = tran;
|
||||||
|
cmd.CommandText = "SELECT Value from Config WHERE Key = 'extrafileextensions'";
|
||||||
|
|
||||||
|
using (var reader = cmd.ExecuteReader())
|
||||||
|
{
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var value = reader.GetString(0);
|
||||||
|
|
||||||
|
if (value.IsNotNullOrWhiteSpace())
|
||||||
|
{
|
||||||
|
using (var insertCmd = conn.CreateCommand())
|
||||||
|
{
|
||||||
|
insertCmd.Transaction = tran;
|
||||||
|
insertCmd.CommandText = "INSERT INTO Config (Key, Value) VALUES('importextrafiles', 1)";
|
||||||
|
insertCmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -57,6 +57,11 @@ namespace NzbDrone.Core.Extras
|
||||||
extraFileManager.CreateAfterEpisodeImport(series, episodeFile);
|
extraFileManager.CreateAfterEpisodeImport(series, episodeFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!_configService.ImportExtraFiles)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var sourcePath = localEpisode.Path;
|
var sourcePath = localEpisode.Path;
|
||||||
var sourceFolder = _diskProvider.GetParentFolder(sourcePath);
|
var sourceFolder = _diskProvider.GetParentFolder(sourcePath);
|
||||||
var sourceFileName = Path.GetFileNameWithoutExtension(sourcePath);
|
var sourceFileName = Path.GetFileNameWithoutExtension(sourcePath);
|
||||||
|
|
|
@ -248,6 +248,7 @@
|
||||||
<Compile Include="Datastore\Migration\068_add_release_restrictions.cs" />
|
<Compile Include="Datastore\Migration\068_add_release_restrictions.cs" />
|
||||||
<Compile Include="Datastore\Migration\069_quality_proper.cs" />
|
<Compile Include="Datastore\Migration\069_quality_proper.cs" />
|
||||||
<Compile Include="Datastore\Migration\070_delay_profile.cs" />
|
<Compile Include="Datastore\Migration\070_delay_profile.cs" />
|
||||||
|
<Compile Include="Datastore\Migration\109_import_extra_files.cs" />
|
||||||
<Compile Include="Datastore\Migration\108_fix_extra_file_extension.cs" />
|
<Compile Include="Datastore\Migration\108_fix_extra_file_extension.cs" />
|
||||||
<Compile Include="Datastore\Migration\107_remove_wombles.cs" />
|
<Compile Include="Datastore\Migration\107_remove_wombles.cs" />
|
||||||
<Compile Include="Datastore\Migration\106_update_btn_url.cs" />
|
<Compile Include="Datastore\Migration\106_update_btn_url.cs" />
|
||||||
|
|
|
@ -3,7 +3,34 @@ var AsModelBoundView = require('../../../Mixins/AsModelBoundView');
|
||||||
var AsValidatedView = require('../../../Mixins/AsValidatedView');
|
var AsValidatedView = require('../../../Mixins/AsValidatedView');
|
||||||
|
|
||||||
var view = Marionette.ItemView.extend({
|
var view = Marionette.ItemView.extend({
|
||||||
template : 'Settings/MediaManagement/Sorting/SortingViewTemplate'
|
template : 'Settings/MediaManagement/Sorting/SortingViewTemplate',
|
||||||
|
|
||||||
|
events : {
|
||||||
|
'change .x-import-extra-files' : '_setExtraFileExtensionVisibility'
|
||||||
|
},
|
||||||
|
|
||||||
|
ui : {
|
||||||
|
importExtraFiles : '.x-import-extra-files',
|
||||||
|
extraFileExtensions : '.x-extra-file-extensions'
|
||||||
|
},
|
||||||
|
|
||||||
|
onRender : function() {
|
||||||
|
if (!this.ui.importExtraFiles.prop('checked')) {
|
||||||
|
this.ui.extraFileExtensions.hide();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_setExtraFileExtensionVisibility : function() {
|
||||||
|
var showExtraFileExtensions = this.ui.importExtraFiles.prop('checked');
|
||||||
|
|
||||||
|
if (showExtraFileExtensions) {
|
||||||
|
this.ui.extraFileExtensions.slideDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
this.ui.extraFileExtensions.slideUp();
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
AsModelBoundView.call(view);
|
AsModelBoundView.call(view);
|
||||||
|
|
|
@ -80,6 +80,29 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-sm-3 control-label">Import Extra Files</label>
|
<label class="col-sm-3 control-label">Import Extra Files</label>
|
||||||
|
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<div class="input-group">
|
||||||
|
<label class="checkbox toggle well">
|
||||||
|
<input type="checkbox" name="importExtraFiles" class="x-import-extra-files"/>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<span>Yes</span>
|
||||||
|
<span>No</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="btn btn-primary slide-button"/>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<span class="help-inline-checkbox">
|
||||||
|
<i class="icon-sonarr-form-info" title="Import matching extra files (subtitles, nfo, etc) after importing an episode file"/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group x-extra-file-extensions">
|
||||||
|
<label class="col-sm-3 control-label">Extra File Extensions</label>
|
||||||
|
|
||||||
<div class="col-sm-1 col-sm-push-5 help-inline">
|
<div class="col-sm-1 col-sm-push-5 help-inline">
|
||||||
<i class="icon-sonarr-form-info" title="Comma separated list of extra files to import, ie sub,nfo (.nfo will be imported as .nfo-orig)"/>
|
<i class="icon-sonarr-form-info" title="Comma separated list of extra files to import, ie sub,nfo (.nfo will be imported as .nfo-orig)"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue