Updated underscore - quality profiles in table

This commit is contained in:
Mark McDowall 2013-03-07 19:11:42 -08:00
parent e635e816f6
commit 1dfd78c0c9
7 changed files with 466 additions and 322 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,47 +1,21 @@
define(['app'], function () {
NzbDrone.Quality.QualityProfileModel = Backbone.Model.extend({
initialize: function () {
this.validators = {};
this.validators.name = function (value) {
return value.length > 0 ? { isValid: true } : { isValid: false, message: 'You must enter a name' };
};
mutators: {
allowed: function() {
return _.where(this.get('qualities'), { allowed: true });
},
//this.validators.allowed = function (value) {
// return value.length > 0 ? { isValid: true } : { isValid: false, message: 'You must have allowed qualities' };
//};
//Todo: Cutoff should be something that is allowed (double check)
this.validators.cutoff = function (value) {
return value !== null ? { isValid: true } : { isValid: false, message: 'You must have a valid cutoff' };
};
},
validateItem: function (key) {
return (this.validators[key]) ? this.validators[key](this.get(key)) : { isValid: true };
},
// TODO: Implement Backbone's standard validate() method instead.
validateAll: function () {
var messages = {};
for (var key in this.validators) {
if (this.validators.hasOwnProperty(key)) {
var check = this.validators[key](this.get(key));
if (check.isValid === false) {
messages[key] = check.message;
}
}
cutoffName: function() {
return _.findWhere(this.get('qualities'), { id: this.get('cutoff') }).name;
}
return _.size(messages) > 0 ? { isValid: false, messages: messages } : { isValid: true };
},
defaults: {
Id: null,
Name: '',
id: null,
name: '',
//allowed: {},
Cutoff: null
cutoff: null
}
});
});

View File

@ -33,7 +33,7 @@
onRender: function () {
this.qualityStandard.show(new NzbDrone.Settings.Quality.QualityView({model: this.settings, qualityProfiles: qualityProfileCollection}));
this.qualityProfile.show(new NzbDrone.Settings.Quality.QualityProfileCollectionView({collection: this.qualityProfileCollection}));
this.qualityProfile.show(new NzbDrone.Settings.Quality.QualityProfileCollectionView({collection: qualityProfileCollection}));
this.qualitySize.show(new NzbDrone.Settings.Quality.QualitySizeCollectionView({collection: this.qualitySizeCollection}));
}
});

View File

@ -1,5 +1,14 @@
<fieldset>
<legend>Quality Profiles</legend>
<div id="quality-profiles-container"></div>
Quality Profiles will be edited here
<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

@ -3,11 +3,10 @@
define(['app', 'Settings/Quality/QualityProfileView'], function (app) {
NzbDrone.Settings.Quality.QualityProfileCollectionView = Backbone.Marionette.CompositeView.extend({
itemView: NzbDrone.Settings.Quality.QualityProfileView,
itemViewContainer: '#quality-profiles-container',
itemViewContainer: 'tbody',
template: 'Settings/Quality/QualityProfileCollectionTemplate',
initialize: function (options) {
},
ui:{

View File

@ -0,0 +1,8 @@
<td name="name"></td>
<td>
{{#each allowed}}
{{name}} |
{{/each}}
</td>
<td name="cutoffName"></td>
<td>Edit | Delete</td>

View File

@ -6,7 +6,7 @@ define([
], function () {
NzbDrone.Settings.QualityProfileView = Backbone.Marionette.ItemView.extend({
NzbDrone.Settings.Quality.QualityProfileView = Backbone.Marionette.ItemView.extend({
template: 'Settings/Quality/QualityProfileTemplate',
tagName: 'tr',
@ -19,8 +19,8 @@ define([
'click .x-remove': 'removeSeries'
},
initialize: function (options) {
this.qualityProfileCollection = options.qualityProfiles;
initialize: function () {
var test = 1;
},
onRender: function () {