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,54 @@
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3>Edit</h3>
</div>
<div class="modal-body">
<div class="form-horizontal">
<div class="control-group">
<label class="control-label">Name</label>
<div class="controls">
<input type="text" name="name">
<span class="help-inline">
<i class="icon-question-sign" title="The name for this quality profile"></i>
</span>
</div>
</div>
<div class="control-group">
<label class="control-label">Cutoff</label>
<div class="controls">
<select class="x-cutoff" name="cutoff">
{{#each allowed}}
<option value="{{id}}">{{name}}</option>
{{/each}}
</select>
<span class="help-inline">
<i class="icon-question-sign" title="Once this quality is reached NzbDrone will no longer download episodes"></i>
</span>
</div>
</div>
<!--Todo: Why is a null allowed being treated as a true?-->
{{#each qualities}}
<div class="control-group">
<label class="control-label">{{name}}</label>
<div class="controls">
<div class="switch" data-on-label="Yes" data-off-label="No">
<input type="checkbox" name="allowed" />
</div>
</div>
</div>
{{/each}}
</div>
</div>
<div class="modal-footer">
<button class="btn btn-danger pull-left x-remove" >delete</button>
<button class="btn" data-dismiss="modal">cancel</button>
<button class="btn btn-primary x-save">save</button>
</div>

View file

@ -0,0 +1,38 @@
'use strict';
define(['app', 'Quality/QualityProfileModel'], function () {
NzbDrone.Settings.Quality.Profile.EditQualityProfileView = Backbone.Marionette.ItemView.extend({
template: 'Settings/Quality/Profile/EditQualityProfileTemplate',
tagName: 'div',
className: "modal",
ui: {
switch: '.switch'
},
events: {
'click .x-save': 'saveQualityProfile',
//'click .x-remove': 'removeSeries'
},
onRender: function () {
NzbDrone.ModelBinder.bind(this.model, this.el);
this.ui.switch.bootstrapSwitch();
},
saveQualityProfile: function () {
//Todo: Make sure model is updated with Allowed, Cutoff, Name
this.model.save();
this.trigger('saved');
this.$el.parent().modal('hide');
},
// removeSeries: function () {
// var view = new NzbDrone.Series.Delete.DeleteSeriesView({ model: this.model });
// NzbDrone.modalRegion.show(view);
// }
});
});

View file

@ -0,0 +1,14 @@
<fieldset>
<legend>Quality Profiles</legend>
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
<th>Allowed</th>
<th>Cutoff</th>
<th>Controls</th>
</tr>
</thead>
<tbody></tbody>
</table>
</fieldset>

View file

@ -0,0 +1,21 @@
'use strict';
define(['app', 'Settings/Quality/Profile/QualityProfileView'], function (app) {
NzbDrone.Settings.Quality.Profile.QualityProfileCollectionView = Backbone.Marionette.CompositeView.extend({
itemView: NzbDrone.Settings.Quality.Profile.QualityProfileView,
itemViewContainer: 'tbody',
template: 'Settings/Quality/Profile/QualityProfileCollectionTemplate',
initialize: function (options) {
},
ui:{
},
onCompositeCollectionRendered: function()
{
}
});
});

View file

@ -0,0 +1,11 @@
<td name="name"></td>
<td>
{{#each allowed}}
{{name}} |
{{/each}}
</td>
<td name="cutoffName"></td>
<td>
<i class="icon-cog x-edit" title="Edit Series"></i>
| Delete
</td>

View file

@ -0,0 +1,45 @@
'use strict';
define([
'app',
'Quality/QualityProfileCollection',
'Settings/Quality/Profile/EditQualityProfileView'
], function () {
NzbDrone.Settings.Quality.Profile.QualityProfileView = Backbone.Marionette.ItemView.extend({
template: 'Settings/Quality/Profile/QualityProfileTemplate',
tagName: 'tr',
ui: {
'progressbar': '.progress .bar'
},
events: {
'click .x-edit': 'editSeries',
'click .x-remove': 'removeSeries'
},
initialize: function () {
},
onRender: function () {
NzbDrone.ModelBinder.bind(this.model, this.el);
},
editSeries: function () {
var view = new NzbDrone.Settings.Quality.Profile.EditQualityProfileView({ model: this.model});
NzbDrone.vent.trigger(NzbDrone.Events.OpenModalDialog, {
view: view
});
},
removeSeries: function () {
var view = new NzbDrone.Series.Delete.DeleteSeriesView({ model: this.model });
NzbDrone.vent.trigger(NzbDrone.Events.OpenModalDialog, {
view: view
});
}
});
});

View file

@ -0,0 +1,41 @@
define([
'app',
'Quality/QualityProfileCollection',
'Quality/QualitySizeCollection',
'Settings/Quality/QualityView',
'Settings/Quality/Profile/QualityProfileCollectionView',
'Settings/Quality/Size/QualitySizeCollectionView'
],
function (app, qualityProfileCollection) {
NzbDrone.Settings.Quality.QualityLayout = Backbone.Marionette.Layout.extend({
template: 'Settings/Quality/QualityLayoutTemplate',
regions: {
qualityStandard: '#quality-standard',
qualityProfile: '#quality-profile',
qualitySize: '#quality-size'
},
ui: {
},
events: {
},
initialize: function (options) {
this.settings = options.settings;
qualityProfileCollection.fetch();
this.qualitySizeCollection = new NzbDrone.Quality.QualitySizeCollection();
this.qualitySizeCollection.fetch();
},
onRender: function () {
this.qualityStandard.show(new NzbDrone.Settings.Quality.QualityView({model: this.settings, qualityProfiles: qualityProfileCollection}));
this.qualityProfile.show(new NzbDrone.Settings.Quality.Profile.QualityProfileCollectionView({collection: qualityProfileCollection}));
this.qualitySize.show(new NzbDrone.Settings.Quality.Size.QualitySizeCollectionView({collection: this.qualitySizeCollection}));
}
});
});

View file

@ -0,0 +1,9 @@
<div class="row">
<div class="span12" id="quality-standard"></div>
</div>
<div class="row">
<div class="span12" id="quality-profile"></div>
</div>
<div class="row">
<div class="span12" id="quality-size"></div>
</div>

View file

@ -0,0 +1,14 @@

<div class="control-group">
<label class="control-label">Default Quality Profile</label>
<div class="controls">
<select class="x-quality-profile" name="qualityProfileId">
{{#each qualityProfiles.models}}
<option value="{{id}}">{{attributes.name}}</option>
{{/each}}
</select>
<span class="help-inline">
<i class="icon-question-sign" title="The default quality to use when adding series to NzbDrone "></i>
</span>
</div>
</div>

View file

@ -0,0 +1,21 @@
'use strict';
define([
'app', 'Settings/SettingsModel'
], function () {
NzbDrone.Settings.Quality.QualityView = Backbone.Marionette.ItemView.extend({
template: 'Settings/Quality/QualityTemplate',
className: 'form-horizontal',
initialize: function(options) {
this.qualityProfileCollection = options.qualityProfiles;
this.model.set({ qualityProfiles: this.qualityProfileCollection });
},
onRender: function () {
NzbDrone.ModelBinder.bind(this.model, this.el);
}
});
});

View file

@ -0,0 +1,4 @@
<fieldset>
<legend>Quality Size Limits</legend>
<div id="quality-sizes-container"></div>
</fieldset>

View file

@ -0,0 +1,22 @@
'use strict';
define(['app', 'Settings/Quality/Size/QualitySizeView'], function (app) {
NzbDrone.Settings.Quality.Size.QualitySizeCollectionView = Backbone.Marionette.CompositeView.extend({
itemView: NzbDrone.Settings.Quality.Size.QualitySizeView,
itemViewContainer: '#quality-sizes-container',
template: 'Settings/Quality/Size/QualitySizeCollectionTemplate',
initialize: function () {
var test = 1;
},
ui:{
},
onCompositeCollectionRendered: function()
{
}
});
});

View file

@ -0,0 +1,5 @@
<b>{{name}}</b>
<div class="quality-slider-container">
<input type="text" class="span4 slider" />
</div>
30 minute size: <span name="thirtyMinuteSize" class="thirty-minute-size"></span>MB | 60 minute size: <span name="sixtyMinuteSize" class="sixty-minute-size"></span>MB

View file

@ -0,0 +1,49 @@
'use strict';
define([
'app',
'Quality/QualitySizeCollection'
], function () {
NzbDrone.Settings.Quality.Size.QualitySizeView = Backbone.Marionette.ItemView.extend({
template: 'Settings/Quality/Size/QualitySizeTemplate',
className: 'quality-size-item',
ui: {
slider: '.slider',
thirtyMinuteSize: '.thirty-minute-size',
sixtyMinuteSize: '.sixty-minute-size'
},
events: {
'slide .slider': 'slide'
},
initialize: function (options) {
this.qualityProfileCollection = options.qualityProfiles;
},
onRender: function () {
NzbDrone.ModelBinder.bind(this.model, this.el);
var self = this;
this.ui.slider.slider({
min: 0,
max: 200,
step: 1,
value: self.model.get('maxSize'),
tooltip: 'hide'
});
},
slide: function (e) {
var newSize = e.value;
this.model.set({ maxSize: newSize, thirtyMinuteSize: newSize * 30, sixtyMinuteSize: newSize * 60 });
this.ui.thirtyMinuteSize.html(newSize * 30);
this.ui.sixtyMinuteSize.html(newSize * 60);
}
});
});