diff --git a/Duplicati/Server/Runner.cs b/Duplicati/Server/Runner.cs index 8800670fe..3bf12e1f9 100644 --- a/Duplicati/Server/Runner.cs +++ b/Duplicati/Server/Runner.cs @@ -512,7 +512,7 @@ namespace Duplicati.Server } } - using(tempfolder) + using (tempfolder) using(var controller = new Duplicati.Library.Main.Controller(backup.TargetURL, options, sink)) { try @@ -536,7 +536,14 @@ namespace Duplicati.Server { case DuplicatiOperation.Backup: { - var filter = ApplyFilter(backup, data.Operation, GetCommonFilter(backup, data.Operation)); + IEnumerable defaultFilters = null; + string defaultFiltersValue; + if (options.TryGetValue("default-filters", out defaultFiltersValue) || options.TryGetValue("default-filter", out defaultFiltersValue)) + { + defaultFilters = Library.Utility.DefaultFilters.GetFilters(Library.Utility.Utility.ExpandEnvironmentVariables(defaultFiltersValue ?? string.Empty)); + } + + var filter = ApplyFilter(backup, data.Operation, GetCommonFilter(backup, data.Operation), defaultFilters); var sources = (from n in backup.Sources let p = SpecialFolders.ExpandEnvironmentVariables(n) @@ -851,7 +858,7 @@ namespace Duplicati.Server return options; } - private static Duplicati.Library.Utility.IFilter ApplyFilter(Duplicati.Server.Serialization.Interface.IBackup backup, DuplicatiOperation mode, Duplicati.Library.Utility.IFilter filter) + private static Library.Utility.IFilter ApplyFilter(Serialization.Interface.IBackup backup, DuplicatiOperation mode, Library.Utility.IFilter filter, IEnumerable defaultFilters) { var f2 = backup.Filters; if (f2 != null && f2.Length > 0) @@ -863,15 +870,20 @@ namespace Duplicati.Server ? SpecialFolders.ExpandEnvironmentVariablesRegexp(n.Expression) : SpecialFolders.ExpandEnvironmentVariables(n.Expression) orderby n.Order - select (Duplicati.Library.Utility.IFilter)(new Duplicati.Library.Utility.FilterExpression(exp, n.Include))) - .Aggregate((a, b) => Duplicati.Library.Utility.FilterExpression.Combine(a, b)); + select (Library.Utility.IFilter)(new Library.Utility.FilterExpression(exp, n.Include))) + .Aggregate((a, b) => Library.Utility.FilterExpression.Combine(a, b)); - return Duplicati.Library.Utility.FilterExpression.Combine(filter, nf); + filter = Library.Utility.FilterExpression.Combine(filter, nf); } - else - return filter; + + if (defaultFilters != null && defaultFilters.Any()) + { + filter = Library.Utility.FilterExpression.Combine(filter, defaultFilters.Aggregate((a, b) => Library.Utility.FilterExpression.Combine(a, b))); + } + + return filter; } - + private static Dictionary GetCommonOptions(Duplicati.Server.Serialization.Interface.IBackup backup, DuplicatiOperation mode) { return diff --git a/Duplicati/Server/webroot/ngax/less/style.less b/Duplicati/Server/webroot/ngax/less/style.less index 198b6cff0..8fff83afb 100755 --- a/Duplicati/Server/webroot/ngax/less/style.less +++ b/Duplicati/Server/webroot/ngax/less/style.less @@ -677,6 +677,7 @@ body { width: 260px; padding-left: 40px; float: left; + position: fixed; > ul { > li { @@ -883,7 +884,7 @@ body { .content { float: left; - padding-left: 50px; + padding-left: 350px; padding-bottom: 50px; max-width: 700px;