diff -r 000000000000 -r 40c8f766c9b8 src/cm/media/js/lib/yui/yui3.0.0/examples/get/assets/getNews.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui3.0.0/examples/get/assets/getNews.js Mon Nov 23 15:14:29 2009 +0100 @@ -0,0 +1,118 @@ +//create a namespace for this example: +YAHOO.namespace("example.GetNews"); + + +//This example uses the "Module Pattern"; a full explanation of +//this pattern can be found on yuiblog: +// http://yuiblog.com/blog/2007/06/12/module-pattern +YAHOO.example.GetNews = function() { + + //set up some shortcuts in case our typing fingers + //get lazy: + var Event = YAHOO.util.Event, + Dom = YAHOO.util.Dom, + JSON = YAHOO.lang.JSON, + Button = YAHOO.widget.Button, + Get = YAHOO.util.Get, + elResults = Dom.get("results"); + + //we won't use the Get Utility's success handler in this example + //because the web service we're using has a built-in callback + //mechanism. But we'll stub it out here and use it to simply + //log a message to the logger: + var onGetNewsSuccess = function() { + YAHOO.log("The Get Utility has fired the success handler indicating that the requested script has loaded and is ready for use.", "info", "example"); + } + + //function to retrieve data from Yahoo! News Search web service -- + //http://developer.yahoo.com/search/news/V1/newsSearch.html + var getNewsData = function() { + YAHOO.log("Button clicked; getGetNewsData firing.", "info", "example"); + + //Load the transitional state of the results section: + elResults.innerHTML = "

Retrieving news search results for for " + + Dom.get("searchString").value + ":

" + + ""; + + //prepare the URL for the Yahoo Site Explorer API: + var sURL = "http://search.yahooapis.com/NewsSearchService/V1/newsSearch?" + + "appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom" + + "&results=10&output=json&" + + "&callback=YAHOO.example.GetNews.callback" + + "&query=" + encodeURIComponent(Dom.get("searchString").value); + + //This simple line is the call to the Get Utility; we pass + //in the URL and the configuration object, which in this case + //consists merely of our success and failure callbacks: + var transactionObj = Get.script(sURL, { + onSuccess: onGetNewsSuccess, + scope : this + }); + + //The script method returns a single-field object containing the + //tranaction id: + YAHOO.log("Get Utility transaction started; transaction object: " + YAHOO.lang.dump(transactionObj), "info", "example"); + + } + + return { + init: function() { + //suppress default form behavior + Event.on("newsSearch", "submit", function(e) { + Event.preventDefault(e); + getNewsData(); + }, this, true); + + //instantiate Button: + var oButton = new Button("getNewsData"); + YAHOO.log("GetNews Button instantiated.", "info", "example"); + getNewsData(); + }, + + callback: function(results) { + YAHOO.log("Web service returned data to YAHOO.example.GetNews.callback; beginning to process.", "info", "example"); + //work with the returned data to extract meaningful fields: + var aResults = results.ResultSet.Result; + var totalLinks = results.ResultSet.totalResultsAvailable; + var returnedLinkCount = results.ResultSet.totalResultsReturned; + + if(returnedLinkCount) {//there are inbound links; process and display them: + + //write header and open list of inbound links: + var html = "

There are " + + totalLinks + + " news items on this topic; here are the first " + + returnedLinkCount + + ":

    "; + + //process list of inbound links: + for (var i=0; i < aResults.length; i++) { + html += "
  1. " + aResults[i].Title + + ": " + aResults[i].Summary + + "
  2. "; + } + + //close list of inbound links + html += "
"; + + } else {//no inbound links exist for this page: + + var html = "

There are no news items available for the topic specified.