You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.3 KiB
122 lines
3.3 KiB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
|
"http://www.w3.org/TR/html4/strict.dtd"> |
|
<html> |
|
<head> |
|
<title>Demo of Google SMD</title> |
|
<style type="text/css"> |
|
@import "../../image/resources/image.css"; |
|
body, html { |
|
width:100%; |
|
margin:0; padding:0; |
|
} |
|
.logo { |
|
border:0; vertical-align:middle; |
|
} |
|
.summary { |
|
color:#666; |
|
font:8pt Arial,sans-serif; |
|
} |
|
#container { |
|
width:720px; |
|
margin:0 auto; |
|
} |
|
#loader { |
|
position:absolute; |
|
top:3px; |
|
left:3px; |
|
visibility:hidden; |
|
height:50px; |
|
width:50px; |
|
background:url("../../../dojox/image/resources/images/loading.gif") no-repeat center center; |
|
} |
|
</style> |
|
|
|
<script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="isDebug: true, parseOnLoad: true"></script> |
|
<script type="text/javascript"> |
|
dojo.require("dojox.rpc.Service"); |
|
dojo.require("dojo.io.script"); |
|
|
|
var google, tehloader = null; |
|
function init(){ |
|
|
|
google = new dojox.rpc.Service(dojo.moduleUrl("dojox.rpc","SMDLibrary/google.smd")); |
|
|
|
tehloader = dojo.partial(dojo.style,"loader","visibility"); |
|
var getResults = function(e){ |
|
|
|
tehloader("visible"); |
|
|
|
dojo.query("li","top").forEach(function(item){ |
|
dojo.byId("archive").appendChild(item); |
|
}); |
|
|
|
var searchType = dojo.byId("searchType").value || "webSearch"; |
|
google[searchType]({ q: dojo.byId("test").value }) |
|
// generic succes handler: |
|
.addCallback(function(returned){ |
|
var ret = returned.responseData; |
|
var info = ret.cursor; |
|
var data = ret.results || []; |
|
dojo.forEach(data,function(item){ |
|
var li = dojo.doc.createElement('li'); |
|
li.innerHTML = "<a target='_new' hr"+"ef='"+ (item.unescapedUrl || item.url) +"'>" + item.title + "</a><br />" + |
|
"<span class='summary'>" + (item.content || item.streetAddress || "unknown") + "</span>"; |
|
|
|
console.log(item); |
|
dojo.byId("top").appendChild(li); |
|
}); |
|
tehloader("hidden"); |
|
}) |
|
// something bad happened: |
|
.addErrback(function(err){ |
|
console.warn('ooops', err); |
|
tehloader("hidden"); |
|
}); |
|
}; |
|
|
|
dojo.connect(dojo.byId("doit"), "onclick", getResults); |
|
|
|
} |
|
dojo.addOnLoad(init); |
|
|
|
</script> |
|
</head> |
|
|
|
<body> |
|
<div id="loader"></div> |
|
<div id="container"> |
|
<h2><a href="http://google.com"><img class="logo" src="http://www.google.com/logos/Logo_40wht.gif" alt="Google" /></a> Ajax API SMD</h2> |
|
|
|
<input id="test" name="test" type="text" size="30" value="The Dojo Toolkit"/> |
|
<select id="searchType"> |
|
<option value="webSearch">web</option> |
|
<option value="localSearch">local</option> |
|
<option value="videoSearch">videos</option> |
|
<option value="blogSearch">blog</option> |
|
<option value="newsSearch">news</option> |
|
<option value="bookSearch">books</option> |
|
<option value="imageSearch">images</option> |
|
</select> |
|
<button id="doit" type="submit" value="search">Search</button> |
|
|
|
<div id="current"> |
|
<h3>Results:</h3> |
|
<ul id="top"></ul> |
|
</div> |
|
|
|
<div id="past"> |
|
<h3>Old Searches:</h3> |
|
<ul id="archive"></ul> |
|
</div> |
|
|
|
<hr> |
|
|
|
<p>There are many per-serivce options available. This demo just pulls data and tries ...</p> |
|
<p>That's all folks. Unit tests to come when we address the io.script issue.</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
</body> |
|
</html>
|
|
|