81 lines
2.1 KiB
JavaScript
81 lines
2.1 KiB
JavaScript
//>>built
|
|
define("dojox/data/util/JsonQuery",["dojo","dojox"],function(_1,_2){
|
|
_1.declare("dojox.data.util.JsonQuery",null,{useFullIdInQueries:false,_toJsonQuery:function(_3,_4){
|
|
var _5=true;
|
|
var _6=this;
|
|
function _7(_8,_9){
|
|
var _a=_9.__id;
|
|
if(_a){
|
|
var _b={};
|
|
_b[_6.idAttribute]=_6.useFullIdInQueries?_9.__id:_9[_6.idAttribute];
|
|
_9=_b;
|
|
}
|
|
for(var i in _9){
|
|
var _c=_9[i];
|
|
var _d=_8+(/^[a-zA-Z_][\w_]*$/.test(i)?"."+i:"["+_1._escapeString(i)+"]");
|
|
if(_c&&typeof _c=="object"){
|
|
_7(_d,_c);
|
|
}else{
|
|
if(_c!="*"){
|
|
_e+=(_5?"":"&")+_d+((!_a&&typeof _c=="string"&&_3.queryOptions&&_3.queryOptions.ignoreCase)?"~":"=")+(_6.simplifiedQuery?encodeURIComponent(_c):_1.toJson(_c));
|
|
_5=false;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
if(_3.query&&typeof _3.query=="object"){
|
|
var _e="[?(";
|
|
_7("@",_3.query);
|
|
if(!_5){
|
|
_e+=")]";
|
|
}else{
|
|
_e="";
|
|
}
|
|
_3.queryStr=_e.replace(/\\"|"/g,function(t){
|
|
return t=="\""?"'":t;
|
|
});
|
|
}else{
|
|
if(!_3.query||_3.query=="*"){
|
|
_3.query="";
|
|
}
|
|
}
|
|
var _f=_3.sort;
|
|
if(_f){
|
|
_3.queryStr=_3.queryStr||(typeof _3.query=="string"?_3.query:"");
|
|
_5=true;
|
|
for(i=0;i<_f.length;i++){
|
|
_3.queryStr+=(_5?"[":",")+(_f[i].descending?"\\":"/")+"@["+_1._escapeString(_f[i].attribute)+"]";
|
|
_5=false;
|
|
}
|
|
_3.queryStr+="]";
|
|
}
|
|
if(_4&&(_3.start||_3.count)){
|
|
_3.queryStr=(_3.queryStr||(typeof _3.query=="string"?_3.query:""))+"["+(_3.start||"")+":"+(_3.count?(_3.start||0)+_3.count:"")+"]";
|
|
}
|
|
if(typeof _3.queryStr=="string"){
|
|
_3.queryStr=_3.queryStr.replace(/\\"|"/g,function(t){
|
|
return t=="\""?"'":t;
|
|
});
|
|
return _3.queryStr;
|
|
}
|
|
return _3.query;
|
|
},jsonQueryPagination:true,fetch:function(_10){
|
|
this._toJsonQuery(_10,this.jsonQueryPagination);
|
|
return this.inherited(arguments);
|
|
},isUpdateable:function(){
|
|
return true;
|
|
},matchesQuery:function(_11,_12){
|
|
_12._jsonQuery=_12._jsonQuery||_2.json.query(this._toJsonQuery(_12));
|
|
return _12._jsonQuery([_11]).length;
|
|
},clientSideFetch:function(_13,_14){
|
|
_13._jsonQuery=_13._jsonQuery||_2.json.query(this._toJsonQuery(_13));
|
|
return this.clientSidePaging(_13,_13._jsonQuery(_14));
|
|
},querySuperSet:function(_15,_16){
|
|
if(!_15.query){
|
|
return _16.query;
|
|
}
|
|
return this.inherited(arguments);
|
|
}});
|
|
return _2.data.util.JsonQuery;
|
|
});
|