'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 ) ;
} ) ;