summaryrefslogtreecommitdiff
path: root/js/dojo/dojox/data/demos/demo_GoogleFeedStore.html
blob: 6a4d11545a62c5947b8300214aef93eba4d29c35 (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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
		"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<style type="text/css">
		@import "../../../dojo/resources/dojo.css";
		@import "../../../dijit/themes/tundra/tundra.css";
		@import "../../../dijit/themes/tundra/tundra_rtl.css";
		
		#output {
			width: 400px;
			position: absolute;
			top: 50px;
		}
		#entryContent {
			margin-left: 450px;
			position: absolute;
			top: 50px;
			background-color: #eee;
			height: 800px;
			padding: 2px;
		}		
		.search-result {
			width: 100%;
			border: 2px dashed;
			padding: 4px;
		}
		#entryContent h2 {
			text-decoration: underline;
		}
		.summary {
			font-weight: bolder;
		}
		.tags {
			background-color: lightGrey;
		}
	</style>

	<title>Google Feed Store</title>

	<script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug: true, parseOnLoad: true"></script>
	<script type="text/javascript">
		dojo.require("dijit.form.ComboBox");
		dojo.require("dijit.form.FilteringSelect");
		dojo.require("dojox.dtl");
		dojo.require("dojox.dtl.ext-dojo.NodeList");
		dojo.require("dojox.data.GoogleSearchStore");
		dojo.require("dojox.data.GoogleFeedStore");
		
		dojo.addOnLoad(function(){
			dojo.connect(dojo.byId("output"), "onclick", function(evt) {
				if(evt.target.tagName != "A"){return true;}
				dojo.stopEvent(evt);
				
				dojo.byId("entryContent").innerHTML = dojo.query(".content", evt.target.parentNode)[0].innerHTML;
				
				return false;
			})
			
		});

		function doSearch() {					    
			var query = {
				url: dojo.byId("searchText").value
			};
			var request = {query:query};
			
			var itemBuffer = [];
			var maxBufSize = 8;
			var outNode = dojo.byId("output");
			outNode.innerHTML = "Searching...";	
			var count = 0;
			var template = "GoogleFeedTemplate.html";
			testStore = new dojox.data.GoogleFeedStore();
			function doAppend(items){
				var node = document.createElement("div");
				node.id = "res" + (count++);
				outNode.appendChild(node);
				dojo.query("#"+node.id).dtl(template, { items: items , store: testStore});
			}
			
			request.onBegin = function(numItems){
				outNode.innerHTML += ".. found " + numItems + " results";
			};
			
			request.onComplete = doAppend;

			var count = dojo.byId("count").value;
			request.count = count ? Number(count) : 8;			
			
			testStore.fetch(request);
		}
	</script>
</head>
<body class="tundra" style="margin:20px;">
	<form>
		Text: <select id="searchText" >
				<option value="http://shaneosullivan.wordpress.com/feed/">http://shaneosullivan.wordpress.com/feed/</option>
				<option value="http://dojocampus.org/content/category/dojo-cookies/feed/">http://dojocampus.org/content/category/dojo-cookies/feed/</option>
				<option value="http://www.dojotoolkit.org/aggregator/rss">http://www.dojotoolkit.org/aggregator/rss</option>
			</select>
		Count: <input id="count" type="text" value="10" width=20/>
		<input id="searchButton" type="button" value="store.fetch()" onclick="doSearch()" />
		
		<div id="output">
			
		</div>
		<div id="entryContent">
			
		</div>
	</form>
</body>
</html>