mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-21 05:53:33 -07:00
started Inline edit of quality for episode file
This commit is contained in:
parent
324862ee13
commit
f9437baf80
7 changed files with 95 additions and 8 deletions
69
UI/Cells/Edit/QualityCellEditor.js
Normal file
69
UI/Cells/Edit/QualityCellEditor.js
Normal file
|
@ -0,0 +1,69 @@
|
|||
'use strict';
|
||||
define(
|
||||
[
|
||||
'backgrid',
|
||||
'Settings/Quality/Profile/QualityProfileSchemaCollection'
|
||||
], function (Backgrid, QualityProfileSchemaCollection) {
|
||||
return Backgrid.CellEditor.extend({
|
||||
|
||||
className: 'quality-cell-editor',
|
||||
template : 'Cells/Edit/QualityCellEditorTemplate',
|
||||
tagName : 'select',
|
||||
|
||||
events: {
|
||||
'change': 'save',
|
||||
'blur': 'close',
|
||||
'keydown': 'close'
|
||||
},
|
||||
|
||||
render: function () {
|
||||
var self = this;
|
||||
|
||||
var qualityProfileSchemaCollection = new QualityProfileSchemaCollection();
|
||||
var promise = qualityProfileSchemaCollection.fetch();
|
||||
|
||||
promise.done(function () {
|
||||
var templateName = self.template;
|
||||
self.schema = qualityProfileSchemaCollection.first();
|
||||
|
||||
var selected = _.find(self.schema.get('available'), { 'id': self.cell.cellValue.get('quality').id });
|
||||
selected.selected = true;
|
||||
|
||||
self.templateFunction = Marionette.TemplateCache.get(templateName);
|
||||
var data = self.schema.toJSON();
|
||||
var html = self.templateFunction(data);
|
||||
self.$el.html(html);
|
||||
});
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
save: function (e) {
|
||||
var model = this.model;
|
||||
var column = this.column;
|
||||
var selected = parseInt(this.$el.val());
|
||||
|
||||
var quality = _.find(this.schema.get('available'), { 'id': selected });
|
||||
|
||||
var newQuality = {
|
||||
proper: false,
|
||||
quality: quality
|
||||
};
|
||||
|
||||
model.set(column.get("name"), newQuality);
|
||||
model.trigger("backgrid:edited", model, column, new Backgrid.Command(e));
|
||||
},
|
||||
|
||||
close: function (e) {
|
||||
var model = this.model;
|
||||
var column = this.column;
|
||||
var command = new Backgrid.Command(e);
|
||||
|
||||
model.trigger("backgrid:edited", model, column, command);
|
||||
},
|
||||
|
||||
_setOptions: function (options) {
|
||||
this.cell = options.cell
|
||||
}
|
||||
});
|
||||
});
|
7
UI/Cells/Edit/QualityCellEditorTemplate.html
Normal file
7
UI/Cells/Edit/QualityCellEditorTemplate.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
{{#each available}}
|
||||
{{#if selected}}
|
||||
<option value="{{id}}" selected="selected">{{name}}</option>
|
||||
{{else}}
|
||||
<option value="{{id}}">{{name}}</option>
|
||||
{{/if}}
|
||||
{{/each}}
|
Loading…
Add table
Add a link
Reference in a new issue