72 lines
2.3 KiB
JavaScript
72 lines
2.3 KiB
JavaScript
'use strict';
|
|
|
|
define(
|
|
[
|
|
'app',
|
|
'marionette',
|
|
'Settings/Quality/Profile/EditQualityProfileView',
|
|
'Settings/Quality/Profile/DeleteView',
|
|
'Series/SeriesCollection',
|
|
'Mixins/AsModelBoundView',
|
|
'Settings/Quality/Profile/AllowedLabeler',
|
|
'bootstrap',
|
|
|
|
], function (App, Marionette, EditProfileView, DeleteProfileView, SeriesCollection, AsModelBoundView) {
|
|
|
|
var view = Marionette.ItemView.extend({
|
|
template: 'Settings/Quality/Profile/QualityProfileTemplate',
|
|
tagName : 'li',
|
|
|
|
ui: {
|
|
'progressbar' : '.progress .bar',
|
|
'deleteButton': '.x-delete'
|
|
},
|
|
|
|
events: {
|
|
'click .x-edit' : '_editProfile',
|
|
'click .x-delete': '_deleteProfile'
|
|
},
|
|
|
|
initialize: function () {
|
|
this.listenTo(this.model, 'sync', this.render);
|
|
this.listenTo(SeriesCollection, 'all', this._updateDisableStatus)
|
|
},
|
|
|
|
_editProfile: function () {
|
|
var view = new EditProfileView({ model: this.model, profileCollection: this.model.collection });
|
|
App.modalRegion.show(view);
|
|
},
|
|
|
|
_deleteProfile: function () {
|
|
if (this._isQualityInUse()) {
|
|
return;
|
|
}
|
|
|
|
var view = new DeleteProfileView({ model: this.model });
|
|
App.modalRegion.show(view);
|
|
},
|
|
|
|
onRender: function () {
|
|
this._updateDisableStatus();
|
|
},
|
|
|
|
_updateDisableStatus: function () {
|
|
if (this._isQualityInUse()) {
|
|
this.ui.deleteButton.addClass('disabled');
|
|
this.ui.deleteButton.attr('title', 'Can\'t delete quality profiles attached to a series.');
|
|
}
|
|
else {
|
|
this.ui.deleteButton.removeClass('disabled');
|
|
this.ui.deleteButton.attr('title', 'Delete Quality Profile');
|
|
}
|
|
},
|
|
|
|
_isQualityInUse: function () {
|
|
return SeriesCollection.where({'qualityProfileId': this.model.id}).length !== 0;
|
|
|
|
}
|
|
});
|
|
|
|
return AsModelBoundView.call(view);
|
|
});
|