summaryrefslogtreecommitdiff
path: root/js/dojo/dojox/rpc/demos
diff options
context:
space:
mode:
authorTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
committerTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
commitb62676ca5d3d6f6ba3f019ea3f99722e165a98d8 (patch)
tree86722cb80f07d4569f90088eeaea2fc2f6e2ef94 /js/dojo/dojox/rpc/demos
Initial commit of intern.ccwn.org contentsHEADmaster
Diffstat (limited to 'js/dojo/dojox/rpc/demos')
-rw-r--r--js/dojo/dojox/rpc/demos/demo_GoogleAjax.html122
-rw-r--r--js/dojo/dojox/rpc/demos/demo_GoogleAjaxTranslate.html155
-rw-r--r--js/dojo/dojox/rpc/demos/demo_GoogleFeed.html97
-rw-r--r--js/dojo/dojox/rpc/demos/demo_jabsorb.html70
-rw-r--r--js/dojo/dojox/rpc/demos/documentation.html33
-rw-r--r--js/dojo/dojox/rpc/demos/templates/documentation.html8
-rw-r--r--js/dojo/dojox/rpc/demos/templates/wikipedia.html10
-rw-r--r--js/dojo/dojox/rpc/demos/templates/yahoo.html31
-rw-r--r--js/dojo/dojox/rpc/demos/wikipedia.html41
-rw-r--r--js/dojo/dojox/rpc/demos/yahoo.html39
10 files changed, 606 insertions, 0 deletions
diff --git a/js/dojo/dojox/rpc/demos/demo_GoogleAjax.html b/js/dojo/dojox/rpc/demos/demo_GoogleAjax.html
new file mode 100644
index 0000000..fdd224f
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/demo_GoogleAjax.html
@@ -0,0 +1,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>
diff --git a/js/dojo/dojox/rpc/demos/demo_GoogleAjaxTranslate.html b/js/dojo/dojox/rpc/demos/demo_GoogleAjaxTranslate.html
new file mode 100644
index 0000000..d6d0d5f
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/demo_GoogleAjaxTranslate.html
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+ <title>Demo of Google SMD / Translate test</title>
+ <style type="text/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:760px;
+ 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;
+ }
+ .inputBox {
+ width:300px;
+ }
+ .warn { color:magenta; }
+ .over { color:red !important; }
+ </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, showLoader, hideLoader = null;
+ function init(){
+
+ var s = dojo.query("select.clone")[0];
+ var n = dojo.clone(s);
+ dojo.attr(s,"id","fromLang");
+ dojo.attr(n,"id","toLang");
+ dojo.place(n, "target", "after");
+
+ google = new dojox.rpc.Service(dojo.moduleUrl("dojox.rpc","SMDLibrary/google.smd"));
+
+ showLoader = dojo.hitch(dojo,"style","loader","visibility","visible");
+ hideLoader = dojo.hitch(dojo,"style","loader","visibility","hidden");
+
+ dojo.connect(dojo.byId("test"),"onkeypress",function(e){
+ var n = dojo.byId('test');
+ var len = n.value.length + 1;
+ if(len >= 400 && len < 500){
+ if(!dojo.hasClass("progress","warn")){ dojo.addClass("progress","warn"); }
+ }else if(len >= 501){
+ n.value = n.value.substr(0, 500)
+ if(!dojo.hasClass("progress","over")){ dojo.addClass("progress","over"); }
+ return false;
+ }else{
+ dojo.removeClass("progress","over");
+ dojo.removeClass("progress","warn");
+ }
+ dojo.byId("used").innerHTML = len + "";
+
+ });
+
+ var runner = function(e){
+ var pair = dojo.byId("fromLang").value + "|" + dojo.byId("toLang").value;
+ google.translate({ q: dojo.byId("test").value, langpair:pair })
+ .addBoth(function(response){
+ var r = response.responseData;
+ if(r && r.translatedText){
+ dojo.byId("response").value = r.translatedText;
+ }
+ dojo.byId("flop").disabled = false;
+ });
+ };
+
+ dojo.connect(dojo.byId("doit"),"onclick", runner);
+
+ dojo.connect(dojo.byId("flop"),"onclick", function(e){
+ // take the value from the translated text, dump it in the incoming
+ // and set the values opposite
+ var input = dojo.byId("test");
+ var resp = dojo.byId("response");
+ var trans = resp.value;
+
+ resp.value = "";
+ input.value = trans;
+
+ var cur = dojo.byId("fromLang").selectedIndex;
+ dojo.query("#toLang option").map(function(n){ return (n.selected) ? n : false; })
+ .forEach(function(n,i){
+ if(n){
+ dojo.byId("fromLang").selectedIndex = i;
+ dojo.byId("toLang").selectedIndex = cur;
+ }
+ });
+ dojo.byId("flop").disabled = true;
+ runner();
+
+ });
+
+ }
+ 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 / Translation Test</h2>
+
+ <div id="progress">Used: <span id="used">?</span> of 500 max.</div>
+ <textarea id="test" style="float:left; width:300px; height:200px; border:1px solid #666; background:#ededed; color:#666"></textarea>
+ <textarea id="response" style="float:right; width:300px; height:200px; border:1px solid #666; background:#ededed; color:#666"></textarea>
+
+ <br style="clear:both">
+
+ <div style="padding-top:15px;">
+ From:
+ <select class="clone">
+ <option value="ar">Arabic</option><option value="bg">Bulgarian</option>
+ <option value="zh-CN">Chinese (Simplified)</option><option value="zh-TW">Chinese (Traditional)</option>
+ <option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option>
+ <option value="nl">Dutch</option><option SELECTED value="en">English</option><option value="fi">Finnish</option>
+ <option value="fr">French</option><option value="de">German</option><option value="el">Greek</option>
+ <option value="hi">Hindi</option><option value="it">Italian</option><option value="ja">Japanese</option>
+ <option value="ko">Korean</option><option value="no">Norwegian</option><option value="pl">Polish</option>
+ <option value="pt">Portuguese</option><option value="ro">Romanian</option><option value="ru">Russian</option>
+ <option value="es">Spanish</option><option value="sv">Swedish</option>
+ </select>
+
+ <span id="target">To: &nbsp;</span>
+
+ <button id="doit">Translate</button>
+ <button id="flop" disabled="disabled">Flip Back</button>
+
+ </div>
+
+
+
+ </div>
+
+
+</body>
+</html>
diff --git a/js/dojo/dojox/rpc/demos/demo_GoogleFeed.html b/js/dojo/dojox/rpc/demos/demo_GoogleFeed.html
new file mode 100644
index 0000000..5ec3d0a
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/demo_GoogleFeed.html
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<title>Demo of Google SMD Feed Service</title>
+<style type="text/css">
+th {
+ text-align:left;
+}
+table {
+ border-collapse:collapse;
+}
+th, td {
+ border:1px solid #ddd;
+}
+</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");
+
+ function init(){
+ var google = new dojox.rpc.Service(dojo.moduleUrl("dojox.rpc","SMDLibrary/google.smd"));
+ dojo.connect(dojo.byId("go"),"onclick", function(e){
+
+ var resultsNode = dojo.byId("feedData");
+ resultsNode.innnerHTML = "Loading...";
+
+ var url = dojo.byId("feedUrl").value;
+ google.getFeed({
+ q: url
+ }).addCallback(function(response){
+ console.log(response);
+ var feed = response.responseData.feed;
+
+ dojo.byId("feedTitleNode").innerHTML = feed.title;
+ dojo.byId("feedAuthorNode").innerHTML = feed.author;
+ dojo.byId("feedLinkNode").innerHTML = feed.link;
+ dojo.byId("feedTypeNode").innerHTML = feed.type;
+ dojo.byId("feedDescriptionNode").innerHTML = feed.description;
+
+ var feedEntriesNode = dojo.byId("feedEntriesNode");
+ dojo.forEach(feed.entries, function(entry){
+ var entryNode = document.createElement("li");
+ entryNode.innerHTML = entry.title + ", <i>" + entry.link + "</i>";
+ feedEntriesNode.appendChild(entryNode);
+ });
+
+ }).addErrback(function(err){
+ console.error("Error getting feed from " + url, err);
+ });
+ });
+
+ }
+ dojo.addOnLoad(init);
+
+</script>
+</head>
+
+<body>
+ <h2>Google API SMD - Feed Reader</h2>
+
+ <input id="feedUrl" name="feedUrl" type="text" size="60" value="http://dojotoolkit.org/aggregator/rss">
+ <button id="go" type="submit" value="Read Feed">Read Feed</button>
+
+ <p>Click the Read Feed button to load the feed data.</p>
+
+ <div id="feedData">
+ <table>
+ <tr>
+ <th>Title</th>
+ <td id="feedTitleNode"><i>none yet</i></td>
+ </tr>
+ <tr>
+ <th>Author</th>
+ <td id="feedAuthorNode"><i>none yet</i></td>
+ </tr>
+ <tr>
+ <th>Link</th>
+ <td id="feedLinkNode"><i>none yet</i></td>
+ </tr>
+ <tr>
+ <th>Type</th>
+ <td id="feedTypeNode"><i>none yet</i></td>
+ </tr>
+ <tr>
+ <th>Description</th>
+ <td id="feedDescriptionNode"><i>none yet</i></td>
+ </tr>
+ </table>
+
+ <p><b>Entries:</b></p>
+
+ <ul id="feedEntriesNode">
+ </ul>
+ </div>
+</body>
+</html>
diff --git a/js/dojo/dojox/rpc/demos/demo_jabsorb.html b/js/dojo/dojox/rpc/demos/demo_jabsorb.html
new file mode 100644
index 0000000..8452341
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/demo_jabsorb.html
@@ -0,0 +1,70 @@
+<!--
+This file is a demo of the Dojo + jabsorb
+
+You must have jabsorb installed in order for this to run.
+This assumes that jabsorb is at /jabsorb-1.3/, but you
+can change the target if it as a different location.
+
+This uses the Hello example from the jabsorb framework (Hello.java and hello.jsp)
+-->
+<html>
+<head>
+ <title>Demo of Dojo + jabsorb</title>
+ <style type="text/css">
+
+ @import "../../../dijit/themes/tundra/tundra.css";
+ @import "../../../dojo/resources/dojo.css";
+ </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("dojox.rpc.JsonRPC");
+ var services = new dojox.rpc.Service({
+ target:"/jabsorb-1.3/JSON-RPC",
+ transport:"POST",
+ envelope:"JSON-RPC-1.0",
+ contentType:"application/json",
+ services:{
+ "hello.sayHello":{
+ returns:{"type":"string"},
+ parameters:[{"type":"string"}]
+ }
+ }
+ });
+ function clickHello() {
+ var whoInput = document.getElementById("who");
+ var deferred = services["hello.sayHello"](whoInput.value);
+ deferred.addCallback(function(result) {
+ alert(result);
+ return result;
+ })
+ }
+
+ </script>
+</head>
+
+<body class="tundra">
+ <h1>
+ DEMO: jabsorb
+ </h1>
+ <hr>
+ <h3>
+ Description:
+ </h3>
+ <p>
+ This simple demo shows how to connect to a <a href="http://jabsorb.org/">jabsorb server</a>
+ </p>
+<p>The jabsorb <em>Hello World</em> application.</p>
+
+<p>
+ <strong>Who:</strong>
+ <input type="text" id="who" size="30" value="Michael"/>
+ &nbsp;
+
+ <input type="button" value="Say Hello" onclick="clickHello()"/>
+</p>
+<body>
+ <hr/>
+</body>
+</html>
diff --git a/js/dojo/dojox/rpc/demos/documentation.html b/js/dojo/dojox/rpc/demos/documentation.html
new file mode 100644
index 0000000..b5a2a44
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/documentation.html
@@ -0,0 +1,33 @@
+<html>
+ <head>
+ <script src="../../../dojo/dojo.js" djConfig="parseOnLoad: true"></script>
+ <script>
+ dojo.require("dojo.io.script")
+ dojo.require("dojox.rpc.Service");
+ dojo.require("dijit._Widget");
+ dojo.require("dojox.dtl._Templated");
+ dojo.require("dojo.parser");
+
+ dojo.declare("API", [dijit._Widget, dojox.dtl._Templated], {
+ constructor: function(params, node){
+ this.jsonp = new dojox.rpc.Service(dojo.moduleUrl("dojox.rpc", "SMDLibrary/dojo-api.smd"));
+ },
+ onSearch: function(e){
+ if(e.keyCode == dojo.keys.ENTER){
+ this.jsonp.get({
+ name: e.target.value
+ }).addCallback(this, function(results){
+ console.debug(results);
+ this.results = results;
+ this.render();
+ });
+ }
+ },
+ templateString: dojo.cache("dojox.rpc.demos.templates", "documentation.html")
+ });
+ </script>
+ </head>
+ <body>
+ <div dojoType="API"></div>
+ </body>
+</html> \ No newline at end of file
diff --git a/js/dojo/dojox/rpc/demos/templates/documentation.html b/js/dojo/dojox/rpc/demos/templates/documentation.html
new file mode 100644
index 0000000..d14cf16
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/templates/documentation.html
@@ -0,0 +1,8 @@
+<div>
+ <input dojotAttachPoint="search" dojoAttachEvent="onkeyup: onSearch">
+ <ul>
+ {% for result in results %}
+ <li>{% if result.type %}<i>{{ result.type }}</i> {% endif %}{% ifequal result.type "Function" %}{% if not result.resources %}function {% endif %}{% endifequal %}{{ result.name }}{% ifequal result.type "Function" %}{% if not result.resources %}({% for parameter in result.parameters %}{% if not forloop.first %}, {% endif %}{% if parameter.types %}<i>{% for type in parameter.types %}{% if not forloop.first %}|{% endif %}{{ type.title }}{% endfor %}{% if parameter.optional %}?{% endif %}{% if parameter.repeating %}...{% endif %}</i> {% endif %}{{ parameter.name }}{% endfor %}{% endif %}{% endifequal %}{% ifequal result.type "Function" %}{% if not result.resources %}){% endif %}{% endifequal %}</li>
+ {% endfor %}
+ </ul>
+</div> \ No newline at end of file
diff --git a/js/dojo/dojox/rpc/demos/templates/wikipedia.html b/js/dojo/dojox/rpc/demos/templates/wikipedia.html
new file mode 100644
index 0000000..e923a0b
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/templates/wikipedia.html
@@ -0,0 +1,10 @@
+<div>
+ <input dojotAttachPoint="search" dojoAttachEvent="onkeyup: onSearch">
+ {% if parsedText %}
+ <div style="border:2px solid #ddd; padding:20px;">
+ {{ parsedText }}
+ </div>
+ {% endif %}
+
+ {% if article.revid %}<p>Revision ID: {{ article.revid }}</p>{% endif %}
+</div>
diff --git a/js/dojo/dojox/rpc/demos/templates/yahoo.html b/js/dojo/dojox/rpc/demos/templates/yahoo.html
new file mode 100644
index 0000000..04339d2
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/templates/yahoo.html
@@ -0,0 +1,31 @@
+<div>
+ <input dojotAttachPoint="search" dojoAttachEvent="onkeyup: onSearch">
+ <ul>
+ {% for result in results.Result %}
+ <li><a href="{{ result.Url }}">{{ result.Title }}</a><br/>{{ result.Summary }}</li>
+ {% endfor %}
+ </ul>
+ <table>
+ {% if results.firstResultPosition %}
+ <tr>
+ <th align="left">First Result</th>
+ <td>{{ results.firstResultPosition }}</td>
+ </tr>
+ {% endif %}{% if results.totalResultsAvailable %}
+ <tr>
+ <th align="left">Total Results Available</th>
+ <td>{{ results.totalResultsAvailable }}</td>
+ </tr>
+ {% endif %}{% if results.totalResultsReturned %}
+ <tr>
+ <th align="left">Results Returned</th>
+ <td>{{ results.totalResultsReturned }}</td>
+ </tr>
+ {% endif %}{% if results.type %}
+ <tr>
+ <th align="left">Type</th>
+ <td>{{ results.type }}</td>
+ </tr>
+ {% endif %}
+ </table>
+</div>
diff --git a/js/dojo/dojox/rpc/demos/wikipedia.html b/js/dojo/dojox/rpc/demos/wikipedia.html
new file mode 100644
index 0000000..4aeb233
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/wikipedia.html
@@ -0,0 +1,41 @@
+<html>
+ <head>
+ <title>
+ Wikipedia Article Grabber Demo
+ </title>
+ <script src="../../../dojo/dojo.js" type="text/javascript"
+ djConfig="parseOnLoad: true, isDebug: true"></script>
+ <script type="text/javascript">
+ dojo.require("dojo.io.script")
+ dojo.require("dojox.rpc.Service");
+ dojo.require("dijit._Widget");
+ dojo.require("dojox.dtl._Templated");
+ dojo.require("dojo.parser");
+
+ dojo.declare("WikipediaPageGrabber", [dijit._Widget, dojox.dtl._Templated], {
+ constructor: function(params, node){
+ var mu = dojo.moduleUrl("dojox.rpc.SMDLibrary", "wikipedia.smd");
+ this.wikipedia = new dojox.rpc.Service(mu);
+ },
+ onSearch: function(e){
+ if(e.keyCode == dojo.keys.ENTER){
+ this.wikipedia.query({
+ action: "parse",
+ page: e.target.value
+ }).addCallback(this, function(article){
+ console.debug(article.parse);
+ this.article = article.parse;
+ this.parsedText = article.parse.text["*"]; // ugh, crazy JSON structure here
+ this.render();
+ });
+ }
+ },
+ templateString: dojo.cache("dojox.rpc.demos.templates", "wikipedia.html")
+ });
+ </script>
+ </head>
+ <body>
+ <h1>Wikipedia Page Grabber</h1>
+ <div dojoType="WikipediaPageGrabber"></div>
+ </body>
+</html>
diff --git a/js/dojo/dojox/rpc/demos/yahoo.html b/js/dojo/dojox/rpc/demos/yahoo.html
new file mode 100644
index 0000000..4f1d705
--- /dev/null
+++ b/js/dojo/dojox/rpc/demos/yahoo.html
@@ -0,0 +1,39 @@
+<html>
+ <head>
+ <title>
+ Yahoo Search Demo
+ </title>
+ <script src="../../../dojo/dojo.js" type="text/javascript"
+ djConfig="parseOnLoad: true, isDebug: true"></script>
+ <script type="text/javascript">
+ dojo.require("dojo.io.script")
+ dojo.require("dojox.rpc.Service");
+ dojo.require("dijit._Widget");
+ dojo.require("dojox.dtl._Templated");
+ dojo.require("dojo.parser");
+
+ dojo.declare("YahooWebSearchApiWidget", [dijit._Widget, dojox.dtl._Templated], {
+ constructor: function(params, node){
+ var mu = dojo.moduleUrl("dojox.rpc.SMDLibrary", "yahoo.smd");
+ this.yahoo = new dojox.rpc.Service(mu);
+ },
+ onSearch: function(e){
+ if(e.keyCode == dojo.keys.ENTER){
+ this.yahoo.webSearch({
+ query: e.target.value
+ }).addCallback(this, function(results){
+ console.debug(results.ResultSet);
+ this.results = results.ResultSet;
+ this.render();
+ });
+ }
+ },
+ templateString: dojo.cache("dojox.rpc.demos.templates", "yahoo.html")
+ });
+ </script>
+ </head>
+ <body>
+ <h1>Yahoo Web Search</h1>
+ <div dojoType="YahooWebSearchApiWidget"></div>
+ </body>
+</html>