2 This file is a demo of the FlickrStore, a simple wrapper to the public feed service
3 of Flickr. This just does very basic queries against Flickr and loads the results
4 into a list viewing widget.
8 <title>Demo of FlickrStore</title>
9 <style type="text/css">
11 @import "../../../dijit/themes/tundra/tundra.css";
12 @import "../../../dojo/resources/dojo.css";
13 @import "../../../dijit/tests/css/dijitTests.css";
14 @import "./flickrDemo.css";
17 <script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug: true, parseOnLoad: true"></script>
18 <script type="text/javascript">
19 dojo.require("dojo.parser");
20 dojo.require("dijit.form.TextBox");
21 dojo.require("dijit.form.Button");
22 dojo.require("dijit.form.ComboBox");
23 dojo.require("dijit.form.NumberSpinner");
24 dojo.require("dijit.Tree");
25 dojo.require("dojox.data.FlickrStore");
26 dojo.require("dojox.data.demos.widgets.FlickrViewList");
27 dojo.require("dojox.data.demos.widgets.FlickrView");
30 var fViewWidgets = [];
32 //Set up an onComplete handler for flickrData
33 function onComplete(items, request){
34 flickrViewsWidget.clearList();
36 for(var i = 0; i < items.length; i++){
38 title: flickrStore.getValue(items[i],"title"),
39 author: flickrStore.getValue(items[i],"author"),
40 iconUrl: flickrStore.getValue(items[i],"imageUrlSmall"),
41 imageUrl: flickrStore.getValue(items[i],"imageUrl")
43 flickrViewsWidget.addView(flickrData);
46 statusWidget.setValue("PROCESSING COMPLETE.");
49 //What to do if a search fails...
50 function onError(error, request){
51 flickrViewsWidget.clearList();
52 statusWidget.setValue("PROCESSING ERROR.");
55 //Function to invoke the search of the FlickrStore
56 function invokeSearch(){
59 onComplete: onComplete,
64 var userid = idWidget.getValue();
65 if(userid && userid !== ""){
66 request.query.userid = userid;
70 var tags = tagsWidget.getValue();
71 if(tags && tags !== ""){
72 var tagsArray = tags.split(" ");
74 for(var i = 0; i < tagsArray.length; i++){
75 tags = tags + tagsArray[i];
76 if(i < (tagsArray.length - 1)){
80 request.query.tags = tags;
84 var tagmode = tagmodeWidget.getValue();
86 request.query.tagmode = tagmode;
91 request.count = countWidget.getValue();
95 statusWidget.setValue("PROCESSING REQUEST");
98 flickrStore.fetch(request);
101 //Lastly, link up the search event.
102 var button = dijit.byId("searchButton");
103 dojo.connect(button, "onClick", invokeSearch);
105 dojo.addOnLoad(init);
109 <body class="tundra">
111 DEMO: FlickrStore Search
118 This simple demo shows how services, such as Flickr, can be wrapped by the datastore API. In this demo, you can search public Flickr images through a simple FlickrStore by specifying a series of tags (separated by spaces) to search on. The results will be displayed below the search box.
121 For fun, search on the 3dny tag!
127 The store instance used by this demo.
136 <div dojoType="dijit.form.TextBox" size="50" id="status" jsId="statusWidget" disabled="true"></div>
144 <div dojoType="dijit.form.TextBox" size="50" id="userid" jsId="idWidget"></div>
152 <div dojoType="dijit.form.TextBox" size="50" id="tags" jsId="tagsWidget" value="3dny"></div>
162 dojoType="dijit.form.ComboBox"
173 <b>Number of Pictures:</b>
179 dojoType="dijit.form.NumberSpinner"
181 constraints="{min:1,max:20,places:0}"
189 <div dojoType="dijit.form.Button" label="Search" id="searchButton" jsId="searchButtonWidget"></div>
195 <div dojoType="dojox.data.FlickrStore" jsId="flickrStore" label="title"></div>
196 <div dojoType="dojox.data.demos.widgets.FlickrViewList" id="flickrViews" jsId="flickrViewsWidget"></div>