You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
4.4 KiB
140 lines
4.4 KiB
'use strict';
|
|
|
|
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/FolderMatchResultViewTemplatate',
|
|
|
|
events:{
|
|
'click .x-btn-add':'addSeries'
|
|
},
|
|
|
|
addSeries:function () {
|
|
|
|
var seriesId = this.model.get('id');
|
|
var title = this.model.get('seriesName');
|
|
var quality = this.options.qualityProfile.val();
|
|
var path = this.options.rootFolder + "\\" + title;
|
|
|
|
var model = new NzbDrone.Series.SeriesModel({
|
|
seriesId:seriesId,
|
|
title:title,
|
|
qualityProfileId:quality,
|
|
path:path
|
|
});
|
|
|
|
var self = this;
|
|
|
|
model.save(undefined, {
|
|
success:function () {
|
|
var notificationModel = new NzbDrone.Shared.NotificationModel({
|
|
title:'Added',
|
|
message:title,
|
|
level:'success'
|
|
});
|
|
|
|
notificationCollection.push(notificationModel);
|
|
self.close();
|
|
}
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
NzbDrone.AddSeries.Existing.UnmappedFolderCompositeView = Backbone.Marionette.CompositeView.extend({
|
|
|
|
template:'AddSeries/Existing/UnmappedFolderCompositeViewTemplatate',
|
|
itemViewContainer:'.x-folder-name-match-results',
|
|
itemView:NzbDrone.AddSeries.Existing.FolderMatchResultView,
|
|
|
|
events:{
|
|
'click .x-btn-search':'search'
|
|
},
|
|
|
|
ui:{
|
|
searchButton:'.x-btn-search',
|
|
searchText:'.x-txt-search',
|
|
profileList:'.x-lst-quality-profile'
|
|
},
|
|
|
|
initialize:function () {
|
|
this.collection = new NzbDrone.AddSeries.SearchResultCollection();
|
|
},
|
|
|
|
search:function () {
|
|
|
|
var icon = this.ui.searchButton.find('icon');
|
|
|
|
icon.removeClass('icon-search').addClass('icon-spin icon-spinner disabled');
|
|
|
|
var self = this;
|
|
|
|
this.collection.fetch({
|
|
data:$.param({ term:this.ui.searchText.val() }),
|
|
success:function (model) {
|
|
icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search');
|
|
|
|
},
|
|
fail:function () {
|
|
icon.removeClass('icon-spin icon-spinner disabled').addClass('icon-search');
|
|
}
|
|
});
|
|
},
|
|
|
|
itemViewOptions:function () {
|
|
return {
|
|
qualityProfile:this.ui.profileList,
|
|
rootFolder:this.model.get('rootFolder')
|
|
};
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
NzbDrone.AddSeries.Existing.RootFolderCompositeView = Backbone.Marionette.CompositeView.extend({
|
|
|
|
template:"AddSeries/Existing/RootFolderCompositeViewTemplate",
|
|
itemViewContainer:".x-existing-folder-container",
|
|
itemView:NzbDrone.AddSeries.Existing.UnmappedFolderCompositeView,
|
|
|
|
initialize:function () {
|
|
|
|
if (!this.model) {
|
|
throw "model is required.";
|
|
}
|
|
|
|
this.collection = new NzbDrone.AddSeries.Existing.UnmappedFolderCollection();
|
|
this.refreshItems();
|
|
this.listenTo(qualityProfileCollection, 'reset', this.refreshItems, this);
|
|
},
|
|
|
|
refreshItems:function () {
|
|
this.collection.importItems(this.model, qualityProfileCollection);
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
NzbDrone.AddSeries.Existing.ImportSeriesView = Backbone.Marionette.CollectionView.extend({
|
|
|
|
itemView:NzbDrone.AddSeries.Existing.RootFolderCompositeView,
|
|
|
|
initialize:function () {
|
|
this.collection = rootFolders;
|
|
}
|
|
|
|
});
|
|
});
|