removed backbone from VS solution,

renamed NzbDrone.Backbone to UI
This commit is contained in:
kay.one 2013-03-29 12:18:44 -07:00
commit 663160c06a
230 changed files with 57 additions and 386 deletions

View file

@ -0,0 +1,9 @@
<div class="line row folder-match-result-view">
<div class="span6">
{{title}} {{seriesYear}}
</div>
<div class="btn btn-success x-btn-add">
<icon class="icon-plus "></icon>
</div>
</div>

View file

@ -0,0 +1,134 @@
'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 self = this;
var seriesId = this.model.get('tvDbId');
var title = this.model.get('title');
var quality = this.options.qualityProfile.val();
var path = this.options.folder.path;
var model = new NzbDrone.Series.SeriesModel({
tvDbId : seriesId,
title : title,
qualityProfileId: quality,
path : path
});
var seriesCollection = new NzbDrone.Series.SeriesCollection();
seriesCollection.add(model);
model.save(undefined, {
success: function () {
var notificationModel = new NzbDrone.Shared.NotificationModel({
tvDbId : seriesId,
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');
this.collection.fetch({
data : { term: this.ui.searchText.val() },
success: function () {
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'),
folder : this.model.get('folder')
};
}
});
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);
}
});
NzbDrone.AddSeries.Existing.ImportSeriesView = Backbone.Marionette.CollectionView.extend({
itemView: NzbDrone.AddSeries.Existing.RootFolderCompositeView,
initialize: function () {
this.collection = rootFolders;
}
});
});

View file

@ -0,0 +1,6 @@
<div class="row">
<div class="accordion result-list span12 existing-root-folder-view">
<h1>{{path}}</h1>
<div class="x-existing-folder-container" />
</div>
</div>

View file

@ -0,0 +1,19 @@
<div class="row unmapped-folder-view">
<div class="span11">
<div class="row folder-header">
<input class="x-txt-search input-xlarge" type="text" value="{{folder.name}}" placeholder="{{folder.name}}"></input>
<select class="span2 x-lst-quality-profile">
{{#each quality.models}}
<option value="{{id}}">{{attributes.name}}</option>
{{/each}}
</select>
<div class="btn btn-primary x-btn-search pull-right">
<icon class="icon-search "></icon>
</div>
<div class="row">
<div class="x-folder-name-match-results folder-name-matches span11" />
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,26 @@
'use strict';
define(['app', 'Quality/QualityProfileCollection'], function (app, qualityProfiles) {
NzbDrone.AddSeries.Existing.UnmappedFolderModel = Backbone.Model.extend({
defaults: {
quality: qualityProfiles
}
});
NzbDrone.AddSeries.Existing.UnmappedFolderCollection = Backbone.Collection.extend({
model: NzbDrone.AddSeries.Existing.UnmappedFolderModel,
importItems: function (rootFolderModel) {
this.reset();
var rootFolder = rootFolderModel.get('path');
_.each(rootFolderModel.get('unmappedFolders'), function (folder) {
this.push(new NzbDrone.AddSeries.Existing.UnmappedFolderModel({ rootFolder: rootFolder, folder: folder}));
}, this);
}
});
});