From 900122c265be34a2c29044d1dce37adb9529cdfb Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Thu, 4 Apr 2013 23:24:23 -0700 Subject: [PATCH] Existing series looks like add new series now --- NzbDrone.Core/MetadataSource/TraktProxy.cs | 10 ++++- UI/.idea/jsLibraryMappings.xml | 2 +- .../FolderMatchResultViewTemplate.html | 9 ---- UI/AddSeries/Existing/ImportSeriesView.js | 44 ++++++++++++------- .../RootFolderCompositeViewTemplate.html | 9 ++-- .../UnmappedFolderCompositeViewTemplate.html | 26 +++++------ UI/AddSeries/New/AddNewSeriesTemplate.html | 16 +++---- UI/AddSeries/New/AddNewSeriesView.js | 1 - UI/AddSeries/New/SearchResultView.js | 3 +- UI/AddSeries/SearchResultCollection.js | 10 ----- UI/AddSeries/SearchResultModel.js | 36 --------------- .../{New => }/SearchResultTemplate.html | 14 +++--- UI/AddSeries/addSeries.css | 2 - UI/AddSeries/addSeriesLayoutTemplate.html | 5 +-- UI/Series/SeriesModel.js | 10 +---- 15 files changed, 70 insertions(+), 127 deletions(-) delete mode 100644 UI/AddSeries/Existing/FolderMatchResultViewTemplate.html delete mode 100644 UI/AddSeries/SearchResultCollection.js delete mode 100644 UI/AddSeries/SearchResultModel.js rename UI/AddSeries/{New => }/SearchResultTemplate.html (63%) diff --git a/NzbDrone.Core/MetadataSource/TraktProxy.cs b/NzbDrone.Core/MetadataSource/TraktProxy.cs index 12e63e8d9..1730f777d 100644 --- a/NzbDrone.Core/MetadataSource/TraktProxy.cs +++ b/NzbDrone.Core/MetadataSource/TraktProxy.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.IO; using System.Linq; using NzbDrone.Core.MediaCover; using NzbDrone.Core.MetadataSource.Trakt; @@ -60,7 +61,7 @@ namespace NzbDrone.Core.MetadataSource series.TitleSlug = show.url.ToLower().Replace("http://trakt.tv/show/", ""); series.Images.Add(new MediaCover.MediaCover { CoverType = MediaCoverTypes.Banner, Url = show.images.banner }); - series.Images.Add(new MediaCover.MediaCover { CoverType = MediaCoverTypes.Poster, Url = show.images.poster }); + series.Images.Add(new MediaCover.MediaCover { CoverType = MediaCoverTypes.Poster, Url = GetPosterThumbnailUrl(show.images.poster) }); series.Images.Add(new MediaCover.MediaCover { CoverType = MediaCoverTypes.Fanart, Url = show.images.fanart }); return series; } @@ -79,6 +80,11 @@ namespace NzbDrone.Core.MetadataSource return episode; } - + private static string GetPosterThumbnailUrl(string posterUrl) + { + var extension = Path.GetExtension(posterUrl); + var withoutExtension = posterUrl.Substring(0, posterUrl.Length - extension.Length); + return withoutExtension + "-138" + extension; + } } } \ No newline at end of file diff --git a/UI/.idea/jsLibraryMappings.xml b/UI/.idea/jsLibraryMappings.xml index c09b6ec1f..c932efdc1 100644 --- a/UI/.idea/jsLibraryMappings.xml +++ b/UI/.idea/jsLibraryMappings.xml @@ -1,7 +1,7 @@ - + diff --git a/UI/AddSeries/Existing/FolderMatchResultViewTemplate.html b/UI/AddSeries/Existing/FolderMatchResultViewTemplate.html deleted file mode 100644 index e2a39df7f..000000000 --- a/UI/AddSeries/Existing/FolderMatchResultViewTemplate.html +++ /dev/null @@ -1,9 +0,0 @@ -
- -
- {{title}} {{seriesYear}} -
-
- -
-
diff --git a/UI/AddSeries/Existing/ImportSeriesView.js b/UI/AddSeries/Existing/ImportSeriesView.js index 217271f2d..675ec8510 100644 --- a/UI/AddSeries/Existing/ImportSeriesView.js +++ b/UI/AddSeries/Existing/ImportSeriesView.js @@ -2,9 +2,9 @@ define([ 'app', 'AddSeries/RootFolders/RootFolderCollection', 'Quality/QualityProfileCollection', 'Shared/NotificationCollection', 'AddSeries/Existing/UnmappedFolderModel', 'AddSeries/SearchResultCollection', 'Series/SeriesModel'], function (app, rootFolders, qualityProfileCollection, notificationCollection) { - NzbDrone.AddSeries.Existing.FolderMatchResultView = Backbone.Marionette.ItemView.extend({ - template: 'AddSeries/Existing/FolderMatchResultViewTemplate', + template: 'AddSeries/SearchResultTemplate', + className: 'search-item', events: { 'click .x-btn-add': 'addSeries' @@ -26,7 +26,6 @@ define([ path : path }); - var seriesCollection = new NzbDrone.Series.SeriesCollection(); seriesCollection.add(model); @@ -44,17 +43,18 @@ define([ } }); } - }); NzbDrone.AddSeries.Existing.UnmappedFolderCompositeView = Backbone.Marionette.CompositeView.extend({ template : 'AddSeries/Existing/UnmappedFolderCompositeViewTemplate', itemViewContainer: '.x-folder-name-match-results', + className : 'unmapped-folder-view', itemView : NzbDrone.AddSeries.Existing.FolderMatchResultView, events: { - 'click .x-btn-search': 'search' + 'click .x-btn-search': 'search', + 'keydown .x-txt-search': 'keydown' }, ui: { @@ -64,20 +64,25 @@ define([ }, initialize: function () { - this.collection = new NzbDrone.AddSeries.SearchResultCollection(); + this.collection = new NzbDrone.Series.SeriesCollection(); + this.collection.bind('reset', this.collectionReset, this); + }, + + onRender: function () { + this.collection.url = NzbDrone.Constants.ApiRoot + '/series/lookup'; + this.resultView = new NzbDrone.AddSeries.SearchResultView({ collection: this.collection }); }, search: function () { - var icon = this.ui.searchButton.find('icon'); + this.collection.reset(); icon.removeClass('icon-search').addClass('icon-spin icon-spinner disabled'); this.collection.fetch({ data : { term: this.ui.searchText.val() }, - success: function () { + success: function (collection) { icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search'); - }, fail : function () { icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search'); @@ -85,6 +90,19 @@ define([ }); }, + keydown: function (e) { + var code = (e.keyCode ? e.keyCode : e.which); + if(code === 13) { + this.search(); + } + }, + + collectionReset: function () { + _.each(this.collection.models, function (model){ + model.set('isExisting', true); + }); + }, + itemViewOptions: function () { return { qualityProfile: this.ui.profileList, @@ -92,15 +110,13 @@ define([ folder : this.model.get('folder') }; } - - - }); NzbDrone.AddSeries.Existing.RootFolderCompositeView = Backbone.Marionette.CompositeView.extend({ template : "AddSeries/Existing/RootFolderCompositeViewTemplate", itemViewContainer: ".x-existing-folder-container", + className : 'row', itemView : NzbDrone.AddSeries.Existing.UnmappedFolderCompositeView, initialize: function () { @@ -117,9 +133,6 @@ define([ refreshItems: function () { this.collection.importItems(this.model); } - - - }); NzbDrone.AddSeries.Existing.ImportSeriesView = Backbone.Marionette.CollectionView.extend({ @@ -129,6 +142,5 @@ define([ initialize: function () { this.collection = rootFolders; } - }); }); diff --git a/UI/AddSeries/Existing/RootFolderCompositeViewTemplate.html b/UI/AddSeries/Existing/RootFolderCompositeViewTemplate.html index 6e909cc0e..1f7e069f2 100644 --- a/UI/AddSeries/Existing/RootFolderCompositeViewTemplate.html +++ b/UI/AddSeries/Existing/RootFolderCompositeViewTemplate.html @@ -1,7 +1,6 @@ -
-
-

{{path}}

+ +
+

{{path}}

-
-
+
diff --git a/UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplate.html b/UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplate.html index e26778a56..07e338fa6 100644 --- a/UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplate.html +++ b/UI/AddSeries/Existing/UnmappedFolderCompositeViewTemplate.html @@ -1,21 +1,15 @@ -"use strict"; -
-
-
+
+
+
+ - - - -
-
-
+
+
+
+
\ No newline at end of file diff --git a/UI/AddSeries/New/AddNewSeriesTemplate.html b/UI/AddSeries/New/AddNewSeriesTemplate.html index dd2248c24..cf2348abc 100644 --- a/UI/AddSeries/New/AddNewSeriesTemplate.html +++ b/UI/AddSeries/New/AddNewSeriesTemplate.html @@ -1,11 +1,9 @@ -
-
- -
-
-
+
+
+
+
+
\ No newline at end of file diff --git a/UI/AddSeries/New/AddNewSeriesView.js b/UI/AddSeries/New/AddNewSeriesView.js index 13a9ca19f..c5d5a2262 100644 --- a/UI/AddSeries/New/AddNewSeriesView.js +++ b/UI/AddSeries/New/AddNewSeriesView.js @@ -47,7 +47,6 @@ define(['app', 'AddSeries/RootFolders/RootFolderCollection', 'AddSeries/New/Sear context.searchResult.show(context.resultView); } }); - } }, diff --git a/UI/AddSeries/New/SearchResultView.js b/UI/AddSeries/New/SearchResultView.js index fb1170c48..379333a38 100644 --- a/UI/AddSeries/New/SearchResultView.js +++ b/UI/AddSeries/New/SearchResultView.js @@ -3,7 +3,7 @@ define(['app', 'Shared/NotificationCollection', 'AddSeries/SearchResultCollectio NzbDrone.AddSeries.New.SearchItemView = Backbone.Marionette.ItemView.extend({ - template : "AddSeries/New/SearchResultTemplate", + template : "AddSeries/SearchResultTemplate", className: 'search-item', ui: { @@ -51,7 +51,6 @@ define(['app', 'Shared/NotificationCollection', 'AddSeries/SearchResultCollectio NzbDrone.AddSeries.SearchResultView = Backbone.Marionette.CollectionView.extend({ itemView : NzbDrone.AddSeries.New.SearchItemView, - className : 'accordion', initialize: function () { this.listenTo(this.collection, 'reset', this.render); } diff --git a/UI/AddSeries/SearchResultCollection.js b/UI/AddSeries/SearchResultCollection.js deleted file mode 100644 index 051b36e39..000000000 --- a/UI/AddSeries/SearchResultCollection.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -define(['app', 'AddSeries/SearchResultModel'], function () { - NzbDrone.AddSeries.SearchResultCollection = Backbone.Collection.extend({ - url : NzbDrone.Constants.ApiRoot + '/series/lookup', - model: NzbDrone.AddSeries.SearchResultModel - }); -}); - - - diff --git a/UI/AddSeries/SearchResultModel.js b/UI/AddSeries/SearchResultModel.js deleted file mode 100644 index f4da40ac0..000000000 --- a/UI/AddSeries/SearchResultModel.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -define(['app', 'AddSeries/RootFolders/RootFolderCollection', 'Quality/QualityProfileCollection'], - function (app, rootFolderCollection, qualityProfileCollection) { - - NzbDrone.AddSeries.SearchResultModel = Backbone.Model.extend({ - mutators: { - seriesYear: function () { - var date = Date.utc.create(this.get('firstAired')).format('({yyyy})'); - - //don't append year, if the series name already has the name appended. - if (this.get('title').endsWith(date)) { - return ""; - } else { - return date; - } - }, - banner : function () { - var banner = _.find(this.get('images'), function (image) { - return image.coverType === 1; - }); - - return banner.url; - }, - traktUrl : function () { - return "http://trakt.tv/show/" + this.get('titleSlug'); - } - }, - - defaults: { - qualityProfiles: qualityProfileCollection, - rootFolders : rootFolderCollection - } - - }); - - }); diff --git a/UI/AddSeries/New/SearchResultTemplate.html b/UI/AddSeries/SearchResultTemplate.html similarity index 63% rename from UI/AddSeries/New/SearchResultTemplate.html rename to UI/AddSeries/SearchResultTemplate.html index 0af581d69..5e3687e8a 100644 --- a/UI/AddSeries/New/SearchResultTemplate.html +++ b/UI/AddSeries/SearchResultTemplate.html @@ -1,17 +1,19 @@ 
- + {{#unless isExisting}} + + {{/unless}}