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 FlickrRestStore</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.FlickrRestStore");
27 dojo.require("dojox.data.demos.widgets.FlickrViewList");
28 dojo.require("dojox.data.demos.widgets.FlickrView");
31 var fViewWidgets = [];
33 //Set up an onComplete handler for flickrData
34 function onComplete(items, request){
35 flickrViewsWidget.clearList();
37 for(var i = 0; i < items.length; i++){
39 title: flickrStore.getValue(items[i],"title"),
40 author: flickrStore.getValue(items[i],"author"),
41 iconUrl: flickrStore.getValue(items[i],"imageUrlSmall"),
42 imageUrl: flickrStore.getValue(items[i],"imageUrl")
44 flickrViewsWidget.addView(flickrData);
47 statusWidget.setValue("PROCESSING COMPLETE.");
50 //What to do if a search fails...
51 function onError(error, request){
52 flickrViewsWidget.clearList();
53 statusWidget.setValue("PROCESSING ERROR.");
56 //Function to invoke the search of the FlickrStore
57 function invokeSearch(){
60 apikey: "8c6803164dbc395fb7131c9d54843627"
62 onComplete: onComplete,
67 var userid = idWidget.getValue();
68 if(userid && userid !== ""){
69 request.query.userid = userid;
73 var tags = tagsWidget.getValue();
74 if(tags && tags !== ""){
75 var tagsArray = tags.split(" ");
77 for(var i = 0; i < tagsArray.length; i++){
78 tags = tags + tagsArray[i];
79 if(i < (tagsArray.length - 1)){
83 request.query.tags = tags;
87 var tagmode = tagmodeWidget.getValue();
89 request.query.tagmode = tagmode;
94 var setId = setIdWidget.getValue();
96 request.query.setId = setId;
101 var fullText = fullTextWidget.getValue();
103 request.query.text = fullText;
107 if(sortTypeWidget && sortDirWidget){
108 var sortType = sortTypeWidget.getValue();
109 var sortDirection = sortDirWidget.getValue();
111 if(sortType != "" && sortDirection != ""){
112 request.query.sort = [
115 descending: (sortDirection.toLowerCase() == "descending")
122 request.count = countWidget.getValue();
125 request.start = request.count * (pageWidget.getValue() -1);
129 statusWidget.setValue("PROCESSING REQUEST");
132 flickrStore.fetch(request);
135 //Lastly, link up the search event.
136 var button = dijit.byId("searchButton");
137 dojo.connect(button, "onClick", invokeSearch);
139 dojo.addOnLoad(init);
143 <body class="tundra">
145 DEMO: FlickrRestStore Search
152 This simple demo shows how services, such as Flickr, can be wrapped by the datastore API.
153 In this demo, you can search public Flickr images through a FlickrRestStore by specifying
154 a series of tags (separated by spaces) to search on. The results will be displayed below the search box.
157 For fun, search on the 3dny tag!
163 The store instance used by this demo.
172 <div dojoType="dijit.form.TextBox" size="50" id="status" jsId="statusWidget" disabled="true"></div>
182 <div dojoType="dijit.form.TextBox" size="50" id="userid" jsId="idWidget" value="44153025@N00"></div>
188 <div dojoType="dijit.form.TextBox" size="50" id="setid" jsId="setIdWidget"></div>
196 <div dojoType="dijit.form.TextBox" size="50" id="tags" jsId="tagsWidget" value="rollingstones,kinsale"></div>
202 <div dojoType="dijit.form.TextBox" size="50" id="fulltext" jsId="fullTextWidget"></div>
212 dojoType="dijit.form.ComboBox"
224 <select dojoType="dijit.form.ComboBox" size="15" id="sorttype" jsId="sortTypeWidget">
225 <option>date-posted</option>
226 <option>date-taken</option>
227 <option>interestingness</option>
229 <select dojoType="dijit.form.ComboBox" size="15" id="sortdirection" jsId="sortDirWidget">
230 <option>ascending</option>
231 <option>descending</option>
237 <b>Number of Pictures:</b>
243 dojoType="dijit.form.NumberSpinner"
245 constraints="{min:1,max:20,places:0}"
255 dojoType="dijit.form.NumberSpinner"
257 constraints="{min:1,max:5,places:0}"
265 <div dojoType="dijit.form.Button" label="Search" id="searchButton" jsId="searchButtonWidget"></div>
271 <div dojoType="dojox.data.FlickrRestStore" jsId="flickrStore" label="title"></div>
272 <div dojoType="dojox.data.demos.widgets.FlickrViewList" id="flickrViews" jsId="flickrViewsWidget"></div>