- Replaced color picker form control with a more robust version.
This commit is contained in:
parent
6fe068e42d
commit
6e0470771e
1193 changed files with 342 additions and 223 deletions
202
www/extras/extjs/source/widgets/form/Action.js
vendored
Normal file
202
www/extras/extjs/source/widgets/form/Action.js
vendored
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
/*
|
||||
* Ext JS Library 1.0.1
|
||||
* Copyright(c) 2006-2007, Ext JS, LLC.
|
||||
* licensing@extjs.com
|
||||
*
|
||||
* http://www.extjs.com/license
|
||||
*/
|
||||
|
||||
// define the action interface
|
||||
Ext.form.Action = function(form, options){
|
||||
this.form = form;
|
||||
this.options = options || {};
|
||||
};
|
||||
|
||||
Ext.form.Action.CLIENT_INVALID = 'client';
|
||||
Ext.form.Action.SERVER_INVALID = 'server';
|
||||
Ext.form.Action.CONNECT_FAILURE = 'connect';
|
||||
Ext.form.Action.LOAD_FAILURE = 'load';
|
||||
|
||||
Ext.form.Action.prototype = {
|
||||
type : 'default',
|
||||
failureType : undefined,
|
||||
response : undefined,
|
||||
result : undefined,
|
||||
|
||||
// interface method
|
||||
run : function(options){
|
||||
|
||||
},
|
||||
|
||||
// interface method
|
||||
success : function(response){
|
||||
|
||||
},
|
||||
|
||||
// interface method
|
||||
handleResponse : function(response){
|
||||
|
||||
},
|
||||
|
||||
// default connection failure
|
||||
failure : function(response){
|
||||
this.response = response;
|
||||
this.failureType = Ext.form.Action.CONNECT_FAILURE;
|
||||
this.form.afterAction(this, false);
|
||||
},
|
||||
|
||||
processResponse : function(response){
|
||||
this.response = response;
|
||||
if(!response.responseText){
|
||||
return true;
|
||||
}
|
||||
this.result = this.handleResponse(response);
|
||||
return this.result;
|
||||
},
|
||||
|
||||
// utility functions used internally
|
||||
getUrl : function(appendParams){
|
||||
var url = this.options.url || this.form.url || this.form.el.dom.action;
|
||||
if(appendParams){
|
||||
var p = this.getParams();
|
||||
if(p){
|
||||
url += (url.indexOf('?') != -1 ? '&' : '?') + p;
|
||||
}
|
||||
}
|
||||
return url;
|
||||
},
|
||||
|
||||
getMethod : function(){
|
||||
return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase();
|
||||
},
|
||||
|
||||
getParams : function(){
|
||||
var bp = this.form.baseParams;
|
||||
var p = this.options.params;
|
||||
if(p){
|
||||
if(typeof p == "object"){
|
||||
p = Ext.urlEncode(Ext.applyIf(p, bp));
|
||||
}else if(typeof p == 'string' && bp){
|
||||
p += '&' + Ext.urlEncode(bp);
|
||||
}
|
||||
}else if(bp){
|
||||
p = Ext.urlEncode(bp);
|
||||
}
|
||||
return p;
|
||||
},
|
||||
|
||||
createCallback : function(){
|
||||
return {
|
||||
success: this.success,
|
||||
failure: this.failure,
|
||||
scope: this,
|
||||
timeout: (this.form.timeout*1000),
|
||||
upload: this.form.fileUpload ? this.success : undefined
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
Ext.form.Action.Submit = function(form, options){
|
||||
Ext.form.Action.Submit.superclass.constructor.call(this, form, options);
|
||||
};
|
||||
|
||||
Ext.extend(Ext.form.Action.Submit, Ext.form.Action, {
|
||||
type : 'submit',
|
||||
|
||||
run : function(){
|
||||
var o = this.options;
|
||||
var isPost = this.getMethod() == 'POST';
|
||||
if(o.clientValidation === false || this.form.isValid()){
|
||||
Ext.lib.Ajax.formRequest(
|
||||
this.form.el.dom,
|
||||
this.getUrl(!isPost),
|
||||
this.createCallback(),
|
||||
isPost ? this.getParams() : null, this.form.fileUpload, Ext.SSL_SECURE_URL);
|
||||
|
||||
}else if (o.clientValidation !== false){ // client validation failed
|
||||
this.failureType = Ext.form.Action.CLIENT_INVALID;
|
||||
this.form.afterAction(this, false);
|
||||
}
|
||||
},
|
||||
|
||||
success : function(response){
|
||||
var result = this.processResponse(response);
|
||||
if(result === true || result.success){
|
||||
this.form.afterAction(this, true);
|
||||
return;
|
||||
}
|
||||
if(result.errors){
|
||||
this.form.markInvalid(result.errors);
|
||||
this.failureType = Ext.form.Action.SERVER_INVALID;
|
||||
}
|
||||
this.form.afterAction(this, false);
|
||||
},
|
||||
|
||||
handleResponse : function(response){
|
||||
if(this.form.errorReader){
|
||||
var rs = this.form.errorReader.read(response);
|
||||
var errors = [];
|
||||
if(rs.records){
|
||||
for(var i = 0, len = rs.records.length; i < len; i++) {
|
||||
var r = rs.records[i];
|
||||
errors[i] = r.data;
|
||||
}
|
||||
}
|
||||
if(errors.length < 1){
|
||||
errors = null;
|
||||
}
|
||||
return {
|
||||
success : rs.success,
|
||||
errors : errors
|
||||
};
|
||||
}
|
||||
return Ext.decode(response.responseText);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Ext.form.Action.Load = function(form, options){
|
||||
Ext.form.Action.Load.superclass.constructor.call(this, form, options);
|
||||
this.reader = this.form.reader;
|
||||
};
|
||||
|
||||
Ext.extend(Ext.form.Action.Load, Ext.form.Action, {
|
||||
type : 'load',
|
||||
|
||||
run : function(){
|
||||
Ext.lib.Ajax.request(
|
||||
this.getMethod(),
|
||||
this.getUrl(false),
|
||||
this.createCallback(),
|
||||
this.getParams());
|
||||
},
|
||||
|
||||
success : function(response){
|
||||
var result = this.processResponse(response);
|
||||
if(result === true || !result.success || !result.data){
|
||||
this.failureType = Ext.form.Action.LOAD_FAILURE;
|
||||
this.form.afterAction(this, false);
|
||||
return;
|
||||
}
|
||||
this.form.clearInvalid();
|
||||
this.form.setValues(result.data);
|
||||
this.form.afterAction(this, true);
|
||||
},
|
||||
|
||||
handleResponse : function(response){
|
||||
if(this.form.reader){
|
||||
var rs = this.form.reader.read(response);
|
||||
var data = rs.records && rs.records[0] ? rs.records[0].data : null;
|
||||
return {
|
||||
success : rs.success,
|
||||
data : data
|
||||
};
|
||||
}
|
||||
return Ext.decode(response.responseText);
|
||||
}
|
||||
});
|
||||
|
||||
Ext.form.Action.ACTION_TYPES = {
|
||||
'load' : Ext.form.Action.Load,
|
||||
'submit' : Ext.form.Action.Submit
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue