mirror of
https://github.com/Radarr/Radarr.git
synced 2024-11-05 02:22:31 +01:00
existing series search shows first suggestion
requests are sent to server sequentially not to kill the client.
This commit is contained in:
parent
482cbc20a3
commit
343a794c2a
@ -1,6 +1,8 @@
|
|||||||
using Nancy;
|
using System.Threading;
|
||||||
|
using Nancy;
|
||||||
using NzbDrone.Api.Extensions;
|
using NzbDrone.Api.Extensions;
|
||||||
using NzbDrone.Core.MetadataSource;
|
using NzbDrone.Core.MetadataSource;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace NzbDrone.Api.Series
|
namespace NzbDrone.Api.Series
|
||||||
{
|
{
|
||||||
@ -19,7 +21,7 @@ public SeriesLookupModule(ISearchForNewSeries searchProxy)
|
|||||||
private Response GetQualityType()
|
private Response GetQualityType()
|
||||||
{
|
{
|
||||||
var tvDbResults = _searchProxy.SearchForNewSeries((string)Request.Query.term);
|
var tvDbResults = _searchProxy.SearchForNewSeries((string)Request.Query.term);
|
||||||
return tvDbResults.AsResponse();
|
return tvDbResults.FirstOrDefault().AsResponse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -65,11 +65,14 @@ define([
|
|||||||
|
|
||||||
onRender: function () {
|
onRender: function () {
|
||||||
|
|
||||||
rootFolderCollection.fetch();
|
var self = this;
|
||||||
|
|
||||||
|
rootFolderCollection.fetch({success: function () {
|
||||||
|
self.importExisting.show(new NzbDrone.AddSeries.Existing.RootFolderCompositeView({model: rootFolderCollection.at(0)}));
|
||||||
|
}});
|
||||||
qualityProfileCollection.fetch();
|
qualityProfileCollection.fetch();
|
||||||
|
|
||||||
this.addNew.show(new NzbDrone.AddSeries.New.AddNewSeriesView());
|
this.addNew.show(new NzbDrone.AddSeries.New.AddNewSeriesView());
|
||||||
this.importExisting.show(new NzbDrone.AddSeries.Existing.ImportSeriesView());
|
|
||||||
this.rootFolders.show(new NzbDrone.AddSeries.RootDirView());
|
this.rootFolders.show(new NzbDrone.AddSeries.RootDirView());
|
||||||
|
|
||||||
this.listenTo(rootFolderCollection, 'add', this.evaluateActions, this);
|
this.listenTo(rootFolderCollection, 'add', this.evaluateActions, this);
|
||||||
|
@ -45,7 +45,7 @@ define([
|
|||||||
self.trigger('seriesAdded');
|
self.trigger('seriesAdded');
|
||||||
self.close();
|
self.close();
|
||||||
},
|
},
|
||||||
fail: function () {
|
fail : function () {
|
||||||
icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search');
|
icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -59,7 +59,7 @@ define([
|
|||||||
itemView : NzbDrone.AddSeries.Existing.FolderMatchResultView,
|
itemView : NzbDrone.AddSeries.Existing.FolderMatchResultView,
|
||||||
|
|
||||||
events: {
|
events: {
|
||||||
'click .x-btn-search': 'search',
|
'click .x-btn-search' : 'search',
|
||||||
'keydown .x-txt-search': 'keyDown'
|
'keydown .x-txt-search': 'keyDown'
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ define([
|
|||||||
this.collection = new NzbDrone.AddSeries.Collection();
|
this.collection = new NzbDrone.AddSeries.Collection();
|
||||||
this.collection.bind('reset', this.collectionReset, this);
|
this.collection.bind('reset', this.collectionReset, this);
|
||||||
|
|
||||||
this.on("itemview:seriesAdded", function(){
|
this.on("itemview:seriesAdded", function () {
|
||||||
this.close();
|
this.close();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -85,6 +85,8 @@ define([
|
|||||||
search: function () {
|
search: function () {
|
||||||
var icon = this.ui.searchButton.find('icon');
|
var icon = this.ui.searchButton.find('icon');
|
||||||
|
|
||||||
|
var deferred = $.Deferred();
|
||||||
|
|
||||||
this.collection.reset();
|
this.collection.reset();
|
||||||
icon.removeClass('icon-search').addClass('icon-spin icon-spinner disabled');
|
icon.removeClass('icon-search').addClass('icon-spin icon-spinner disabled');
|
||||||
|
|
||||||
@ -92,23 +94,27 @@ define([
|
|||||||
data : { term: this.ui.searchText.val() },
|
data : { term: this.ui.searchText.val() },
|
||||||
success: function (collection) {
|
success: function (collection) {
|
||||||
icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search');
|
icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search');
|
||||||
|
deferred.resolve();
|
||||||
},
|
},
|
||||||
fail : function () {
|
fail : function () {
|
||||||
icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search');
|
icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search');
|
||||||
|
deferred.reject();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return deferred.promise();
|
||||||
},
|
},
|
||||||
|
|
||||||
keyDown: function (e) {
|
keyDown: function (e) {
|
||||||
//Check for enter being pressed
|
//Check for enter being pressed
|
||||||
var code = (e.keyCode ? e.keyCode : e.which);
|
var code = (e.keyCode ? e.keyCode :e.which);
|
||||||
if(code === 13) {
|
if (code === 13) {
|
||||||
this.search();
|
this.search();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
collectionReset: function () {
|
collectionReset: function () {
|
||||||
_.each(this.collection.models, function (model){
|
_.each(this.collection.models, function (model) {
|
||||||
model.set('isExisting', true);
|
model.set('isExisting', true);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -141,15 +147,27 @@ define([
|
|||||||
|
|
||||||
refreshItems: function () {
|
refreshItems: function () {
|
||||||
this.collection.importItems(this.model);
|
this.collection.importItems(this.model);
|
||||||
|
},
|
||||||
|
|
||||||
|
showCollection: function () {
|
||||||
|
this.showAndSearch(0);
|
||||||
|
},
|
||||||
|
|
||||||
|
showAndSearch: function (index) {
|
||||||
|
|
||||||
|
var model = this.collection.at(index);
|
||||||
|
if (model) {
|
||||||
|
var that = this;
|
||||||
|
var currentIndex = index;
|
||||||
|
this.addItemView(model, this.getItemView(), index);
|
||||||
|
console.log('start');
|
||||||
|
$.when(this.children.findByModel(model).search())
|
||||||
|
.then(function () {
|
||||||
|
console.log('done');
|
||||||
|
that.showAndSearch(currentIndex + 1);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
NzbDrone.AddSeries.Existing.ImportSeriesView = Backbone.Marionette.CollectionView.extend({
|
|
||||||
|
|
||||||
itemView: NzbDrone.AddSeries.Existing.RootFolderCompositeView,
|
|
||||||
|
|
||||||
initialize: function () {
|
|
||||||
this.collection = rootFolders;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user