summaryrefslogtreecommitdiff
path: root/js/dojo-1.7.2/dojox/rpc/demos/demo_GoogleAjax.html
blob: fdd224f91c76402e7174dd52ae82a9f8f2d2c6fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!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" djConfig="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"/> &nbsp;
			<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> &nbsp; 
			<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>