53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
//>>built
|
|
define("dojox/data/WikipediaStore",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/declare","dojo/io/script","dojo/io-query","dojox/rpc/Service","dojox/data/ServiceStore"],function(_1,_2,_3,_4,_5,_6,_7){
|
|
_1.experimental("dojox.data.WikipediaStore");
|
|
return _3("dojox.data.WikipediaStore",_7,{constructor:function(_8){
|
|
if(_8&&_8.service){
|
|
this.service=_8.service;
|
|
}else{
|
|
var _9=new _6(require.toUrl("dojox/rpc/SMDLibrary/wikipedia.smd"));
|
|
this.service=_9.query;
|
|
}
|
|
this.idAttribute=this.labelAttribute="title";
|
|
},fetch:function(_a){
|
|
var rq=_2.mixin({},_a.query);
|
|
if(rq&&(!rq.action||rq.action==="parse")){
|
|
rq.action="parse";
|
|
rq.page=rq.title;
|
|
delete rq.title;
|
|
}else{
|
|
if(rq.action==="query"){
|
|
rq.list="search";
|
|
rq.srwhat="text";
|
|
rq.srsearch=rq.text;
|
|
if(_a.start){
|
|
rq.sroffset=_a.start-1;
|
|
}
|
|
if(_a.count){
|
|
rq.srlimit=_a.count>=500?500:_a.count;
|
|
}
|
|
delete rq.text;
|
|
}
|
|
}
|
|
_a.query=rq;
|
|
return this.inherited(arguments);
|
|
},_processResults:function(_b,_c){
|
|
if(_b.parse){
|
|
_b.parse.title=_5.queryToObject(_c.ioArgs.url.split("?")[1]).page;
|
|
_b=[_b.parse];
|
|
}else{
|
|
if(_b.query&&_b.query.search){
|
|
_b=_b.query.search;
|
|
var _d=this;
|
|
for(var i in _b){
|
|
_b[i]._loadObject=function(_e){
|
|
_d.fetch({query:{action:"parse",title:this.title},onItem:_e});
|
|
delete this._loadObject;
|
|
};
|
|
}
|
|
}
|
|
}
|
|
return this.inherited(arguments);
|
|
}});
|
|
});
|