33 lines
1.6 KiB
JavaScript
33 lines
1.6 KiB
JavaScript
//>>built
|
|
define("dojox/mvc/EditModelRefController",["dojo/_base/declare","dojo/_base/lang","./getPlainValue","./getStateful","./ModelRefController"],function(_1,_2,_3,_4,_5){
|
|
function _6(_7,_8,_9){
|
|
if(_8!==_9){
|
|
_7.set(_7._refOriginalModelProp,_7.holdModelUntilCommit?_9:_7.cloneModel(_9));
|
|
_7.set(_7._refEditModelProp,_7.holdModelUntilCommit?_7.cloneModel(_9):_9);
|
|
}
|
|
};
|
|
return _1("dojox.mvc.EditModelRefController",_5,{getStatefulOptions:null,getPlainValueOptions:null,holdModelUntilCommit:false,originalModel:null,sourceModel:null,_refOriginalModelProp:"originalModel",_refSourceModelProp:"sourceModel",_refEditModelProp:"model",postscript:function(_a,_b){
|
|
for(var s in {getStatefulOptions:1,getPlainValueOptions:1,holdModelUntilCommit:1}){
|
|
var _c=(_a||{})[s];
|
|
if(typeof _c!="undefined"){
|
|
this[s]=_c;
|
|
}
|
|
}
|
|
this.inherited(arguments);
|
|
},set:function(_d,_e){
|
|
if(_d==this._refSourceModelProp){
|
|
_6(this,this[this._refSourceModelProp],_e);
|
|
}
|
|
this.inherited(arguments);
|
|
},cloneModel:function(_f){
|
|
var _10=_2.isFunction((_f||{}).set)&&_2.isFunction((_f||{}).watch)?_3(_f,this.getPlainValueOptions):_f;
|
|
return _4(_10,this.getStatefulOptions);
|
|
},commit:function(){
|
|
this.set(this.holdModelUntilCommit?this._refSourceModelProp:this._refOriginalModelProp,this.cloneModel(this.get(this._refEditModelProp)));
|
|
},reset:function(){
|
|
this.set(this.holdModelUntilCommit?this._refEditModelProp:this._refSourceModelProp,this.cloneModel(this.get(this._refOriginalModelProp)));
|
|
},hasControllerProperty:function(_11){
|
|
return this.inherited(arguments)||_11==this._refOriginalModelProp||_11==this._refSourceModelProp;
|
|
}});
|
|
});
|