Hi All
I have been going through the classes we have developed and sharing back with the community some of them that I think will be useful to others. These components have been tested in ext-3.2.1.
Here is: Ext.ux.form.FullQuery
a plug in that sends all the form field values on query for a searchable combo box. Useful for when you want to refine search criteria by the content of other fields in the form.
Code:
/**
* @author Will Ferrer, Ethan Brooks
* @copyright (c) 2012, Intellectual Property Private Equity Group
* @licensee 2012 developed under license for Switchsoft LLC http://www.switchsoft.com a "Direct response telephony company" as part of it's "VOIP Call distribution, ROI analysis platform, call recording, and IVR for inbound and outbound sales" and Run the Business Systems LLC a "Technology development investment group" as part of it's "PHP, Javascript rapid application development framework and MySQL analysis tools"
* @license licensed under the terms of
* the Open Source LGPL 3.0 license. Commercial use is permitted to the extent
* that the code/component(s) do NOT become part of another Open
Source or Commercially
* licensed development library or toolkit without explicit permission.
* <p>License details: <a href="http://www.gnu.org/licenses/lgpl.html"
* target="_blank">http://www.gnu.org/licenses/lgpl.html</a></p>
* We are pretty nice just ask. We want to meet our licensees
*/
/**
* @class Ext.ux.form.FullQuery
* @extends Ext.util.Observable
* a plug in that sends all the form field values on query for a searchable combo box. Useful for when you want to refine search criteria by the content of other fields in the form.
* @param {Object} config The config object
* @ptype ux-form-fullquery
*/
Ext.ns('Ext.ux.form');
Ext.ux.form.FullQuery = function(config){
Ext.apply(this, config);
Ext.ux.form.FullQuery.superclass.constructor.call(this);
};
Ext.extend(Ext.ux.form.FullQuery, Ext.util.Observable, {
// @private
parent : null,
// @private
init: function(parent) {
this.parent = parent;
this.parent.fullQuery = this;
this.parent.on('beforequery', this.onBeforeQuery, this.parent);
},
// @private
onBeforeQuery : function (queryEvent) {
var searchElem = this,
values, baseParams;
while(!Ext.isEmpty(searchElem.ownerCt)) {
searchElem = searchElem.ownerCt;
if (searchElem.xtype=='form') {
formElem = searchElem;
break;
}
};
values = formElem.getForm().getValues();
baseParams = (!Ext.isEmpty(formElem.getForm().baseParams))?formElem.getForm().baseParams:{};
values['query'] = queryEvent['query'];
values = Ext.apply(baseParams, values);
queryEvent['query'] = Ext.encode(values);
}
});
Ext.preg('ux-form-fullquery', Ext.ux.form.FullQuery);
Best regards
Will Ferrer (Run the Business)