diff ambnews/content/blank.js @ 1:44bcb4975ead

Added more files.
author Atul Varma <varmaa@toolness.com>
date Thu, 21 Aug 2008 15:39:57 -0700
parents
children ec86d1e59d44
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ambnews/content/blank.js	Thu Aug 21 15:39:57 2008 -0700
@@ -0,0 +1,79 @@
+function loadNews() {
+  var Cc = Components.classes;
+  var Ci = Components.interfaces;
+  var historyService = Cc["@mozilla.org/browser/nav-history-service;1"]
+                       .getService(Ci.nsINavHistoryService);
+
+  // no query parameters will get all history
+  // XXX default sorting is... ?
+  var options = historyService.getNewQueryOptions();
+
+  options.resultType = options.RESULTS_AS_URI;
+  options.sortingMode = options.SORT_BY_VISITCOUNT_DESCENDING;
+
+  // no query parameters will return everything
+  var query = historyService.getNewQuery();
+  query.annotation = "AmbNews/feed";
+
+  // execute the query
+  var result = historyService.executeQuery(query, options);
+
+  var root = result.root;
+  root.containerOpen = true;
+
+  var childNum = 0;
+  var childrenShown = 0;
+  var maxChildrenToShow = 20;
+  var shownFeeds = {};
+
+  function getNextFeed() {
+    if (childrenShown == maxChildrenToShow ||
+        childNum == root.childCount) {
+      root.containerOpen = false;
+    } else {
+      var annSvc = AmbNews.__getAnnSvc();
+      var child = root.getChild(childNum);
+      var feedUri = annSvc.getPageAnnotation(AmbNews.url(child.uri),
+                                             "AmbNews/feed");
+      childNum++;
+      if (feedUri in shownFeeds) {
+        getNextFeed();
+      } else {
+        shownFeeds[feedUri] = true;
+        childrenShown++;
+        AmbNews.getFeed(feedUri, onFeed);
+      }
+    }
+  }
+
+  function onFeed(feed) {
+    var text = "";
+    if (feed) {
+      var entriesToShow = 4;
+      if (feed.entries.length < entriesToShow)
+        entriesToShow = feed.entries.length;
+      var feedLink = feed.link ? feed.link.spec : "";
+      text += ('<div class="feed"><div class="feed-title"><a ' +
+               'href="' + feedLink + '">' +
+               feed.title.text + '</a></div><ul>');
+      for (var i = 0; i < entriesToShow; i++) {
+        var entryTitle = feed.entries[i].title.text;
+        if (entryTitle.length > 100) {
+          entryTitle = entryTitle.slice(0, 100) + '\u2026';
+        }
+        text += ('<li class="feed-entry"> \u00b7 <a href="' +
+                 feed.entries[i].link.spec +
+                 '">' +
+                 entryTitle + '</a></li>');
+      }
+      text += '</ul></div>';
+    } else
+      text = "An error occurred.";
+    //$("#content").append(text);
+    $(text).hide().fadeIn("slow", getNextFeed).appendTo("#content");
+  }
+
+  getNextFeed();
+}
+
+$(window).ready(loadNews);