mirror of
https://github.com/Radarr/Radarr
synced 2024-12-24 17:01:38 +00:00
Added auto complete to AddSeries RootDir
This commit is contained in:
parent
7ed148b12c
commit
7f0dc84b29
7 changed files with 86 additions and 1 deletions
60
NzbDrone.Api/Directories/DirectoryModule.cs
Normal file
60
NzbDrone.Api/Directories/DirectoryModule.cs
Normal file
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Nancy;
|
||||
using NzbDrone.Api.Extentions;
|
||||
using NzbDrone.Common;
|
||||
using NzbDrone.Core.RootFolders;
|
||||
|
||||
namespace NzbDrone.Api.Directories
|
||||
{
|
||||
public class DirectoryModule : NzbDroneApiModule
|
||||
{
|
||||
private readonly DiskProvider _diskProvider;
|
||||
|
||||
public DirectoryModule(DiskProvider diskProvider)
|
||||
: base("/directories")
|
||||
{
|
||||
_diskProvider = diskProvider;
|
||||
Post["/"] = x => GetDirectories();
|
||||
}
|
||||
|
||||
private Response GetDirectories()
|
||||
{
|
||||
if (!Request.Form.query.HasValue)
|
||||
return new List<string>().AsResponse();
|
||||
|
||||
string query = Request.Form.query.Value;
|
||||
|
||||
IEnumerable<String> dirs = null;
|
||||
try
|
||||
{
|
||||
//Windows (Including UNC)
|
||||
var windowsSep = query.LastIndexOf('\\');
|
||||
|
||||
if (windowsSep > -1)
|
||||
{
|
||||
dirs = _diskProvider.GetDirectories(query.Substring(0, windowsSep + 1));
|
||||
}
|
||||
|
||||
//Unix
|
||||
var index = query.LastIndexOf('/');
|
||||
|
||||
if (index > -1)
|
||||
{
|
||||
dirs = _diskProvider.GetDirectories(query.Substring(0, index + 1));
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//Swallow the exceptions so proper JSON is returned to the client (Empty results)
|
||||
return new List<string>().AsResponse();
|
||||
}
|
||||
|
||||
if (dirs == null)
|
||||
throw new Exception("A valid path was not provided");
|
||||
|
||||
return dirs.AsResponse();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -92,6 +92,7 @@
|
|||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Directories\DirectoryModule.cs" />
|
||||
<Compile Include="Extentions\NancyJsonSerializer.cs" />
|
||||
<Compile Include="Extentions\Serializer.cs" />
|
||||
<Compile Include="RootFolders\RootFolderModule.cs" />
|
||||
|
|
|
@ -148,7 +148,7 @@
|
|||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<UseIIS>True</UseIIS>
|
||||
<UseIIS>False</UseIIS>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<DevelopmentServerPort>1306</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
|
|
|
@ -410,6 +410,7 @@
|
|||
<Content Include="_backboneApp\JsLibraries\backbone.marionette.js" />
|
||||
<Content Include="_backboneApp\AddSeries\addSeriesLayoutTemplate.html" />
|
||||
<Content Include="_backboneApp\Series\SeriesModel.js" />
|
||||
<Content Include="_backboneApp\Shared\AutoComplete.js" />
|
||||
<Content Include="_backboneApp\Shared\NotificationModel.js" />
|
||||
<Content Include="_backboneApp\Shared\NotificationTemplate.html" />
|
||||
<Content Include="_backboneApp\Shared\NotificationView.js" />
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
/// <reference path="../../app.js" />
|
||||
/// <reference path="RootDirModel.js" />
|
||||
/// <reference path="RootDirCollection.js" />
|
||||
/// <reference path="../../Shared/AutoComplete.js" />
|
||||
|
||||
NzbDrone.AddSeries.RootDirItemView = Backbone.Marionette.ItemView.extend({
|
||||
|
||||
|
@ -53,6 +54,8 @@ NzbDrone.AddSeries.RootDirView = Backbone.Marionette.Layout.extend({
|
|||
|
||||
this.currentDirs.show(new NzbDrone.AddSeries.RootDirListView({ collection: this.collection }));
|
||||
this.collection.fetch();
|
||||
|
||||
this.ui.pathInput.folderAutoComplete();
|
||||
},
|
||||
|
||||
|
||||
|
|
|
@ -41,6 +41,10 @@ body {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.nz-center .typeahead {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#footer-region {
|
||||
font-size: 16px;
|
||||
text-decoration: none;
|
||||
|
|
16
NzbDrone.Web/_backboneApp/Shared/AutoComplete.js
Normal file
16
NzbDrone.Web/_backboneApp/Shared/AutoComplete.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
$.fn.folderAutoComplete = function () {
|
||||
$(this).typeahead({
|
||||
source: function (query, process) {
|
||||
$.ajax({
|
||||
url: '/api/directories',
|
||||
dataType: "json",
|
||||
type: "POST",
|
||||
data: { query: query },
|
||||
success: function (data) {
|
||||
process(data);
|
||||
}
|
||||
});
|
||||
},
|
||||
minLength: 3
|
||||
});
|
||||
}
|
Loading…
Reference in a new issue