@ -1,74 +1,81 @@
'use strict' ;
define ( [ 'app' , 'marionette' , 'Mixins/AsModelBoundView' ] , function ( App , Marionette , AsModelBoundView ) {
var view = Marionette . ItemView . extend ( {
template : 'Settings/Quality/Profile/EditQualityProfileTemplate' ,
ui : {
cutoff : '.x-cutoff'
} ,
events : {
'click .x-save' : '_saveQualityProfile' ,
'dblclick .x-available-list' : '_moveQuality' ,
'dblclick .x-allowed-list' : '_moveQuality'
} ,
initialize : function ( options ) {
this . profileCollection = options . profileCollection ;
} ,
_moveQuality : function ( event ) {
var quality ;
var qualityId = event . target . value ;
var availableCollection = new Backbone . Collection ( this . model . get ( 'available' ) ) ;
availableCollection . comparator = function ( model ) {
return model . get ( 'weight' ) ;
} ;
var allowedCollection = new Backbone . Collection ( this . model . get ( 'allowed' ) ) ;
allowedCollection . comparator = function ( model ) {
return model . get ( 'weight' ) ;
} ;
if ( availableCollection . get ( qualityId ) ) {
quality = availableCollection . get ( qualityId ) ;
availableCollection . remove ( quality ) ;
allowedCollection . add ( quality ) ;
define (
[
'app' ,
'marionette' ,
'Mixins/AsModelBoundView' ,
'Mixins/AsValidatedView'
] , function ( App , Marionette , AsModelBoundView , AsValidatedView ) {
var view = Marionette . ItemView . extend ( {
template : 'Settings/Quality/Profile/EditQualityProfileTemplate' ,
ui : {
cutoff : '.x-cutoff'
} ,
events : {
'click .x-save' : '_saveQualityProfile' ,
'dblclick .x-available-list' : '_moveQuality' ,
'dblclick .x-allowed-list' : '_moveQuality'
} ,
initialize : function ( options ) {
this . profileCollection = options . profileCollection ;
} ,
_moveQuality : function ( event ) {
var quality ;
var qualityId = event . target . value ;
var availableCollection = new Backbone . Collection ( this . model . get ( 'available' ) ) ;
availableCollection . comparator = function ( model ) {
return model . get ( 'weight' ) ;
} ;
var allowedCollection = new Backbone . Collection ( this . model . get ( 'allowed' ) ) ;
allowedCollection . comparator = function ( model ) {
return model . get ( 'weight' ) ;
} ;
if ( availableCollection . get ( qualityId ) ) {
quality = availableCollection . get ( qualityId ) ;
availableCollection . remove ( quality ) ;
allowedCollection . add ( quality ) ;
}
else if ( allowedCollection . get ( qualityId ) ) {
quality = allowedCollection . get ( qualityId ) ;
allowedCollection . remove ( quality ) ;
availableCollection . add ( quality ) ;
}
else {
throw 'couldnt find quality id ' + qualityId ;
}
this . model . set ( 'available' , availableCollection . toJSON ( ) ) ;
this . model . set ( 'allowed' , allowedCollection . toJSON ( ) ) ;
this . render ( ) ;
} ,
_saveQualityProfile : function ( ) {
var self = this ;
var cutoff = _ . findWhere ( this . model . get ( 'allowed' ) , { id : parseInt ( this . ui . cutoff . val ( ) ) } ) ;
this . model . set ( 'cutoff' , cutoff ) ;
var promise = this . model . save ( ) ;
if ( promise ) {
promise . done ( function ( ) {
self . profileCollection . add ( self . model , { merge : true } ) ;
App . vent . trigger ( App . Commands . CloseModalCommand ) ;
} ) ;
}
}
else if ( allowedCollection . get ( qualityId ) ) {
quality = allowedCollection . get ( qualityId ) ;
} ) ;
allowedCollection . remove ( quality ) ;
availableCollection . add ( quality ) ;
}
else {
throw 'couldnt find quality id ' + qualityId ;
}
this . model . set ( 'available' , availableCollection . toJSON ( ) ) ;
this . model . set ( 'allowed' , allowedCollection . toJSON ( ) ) ;
this . render ( ) ;
} ,
_saveQualityProfile : function ( ) {
var self = this ;
var cutoff = _ . findWhere ( this . model . get ( 'allowed' ) , { id : parseInt ( this . ui . cutoff . val ( ) ) } ) ;
this . model . set ( 'cutoff' , cutoff ) ;
AsValidatedView . call ( view ) ;
return AsModelBoundView . call ( view ) ;
var promise = this . model . save ( ) ;
if ( promise ) {
promise . done ( function ( ) {
self . profileCollection . add ( self . model , { merge : true } ) ;
App . vent . trigger ( App . Commands . CloseModalCommand ) ;
} ) ;
}
}
} ) ;
return AsModelBoundView . call ( view ) ;
} ) ;