annotate ambnews/content/blank.js @ 10:f07bf657f483

Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
author Atul Varma <varmaa@toolness.com>
date Fri, 22 Aug 2008 10:02:50 -0700
parents ec86d1e59d44
children f259d52d361e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1 function loadNews() {
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2 var Cc = Components.classes;
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3 var Ci = Components.interfaces;
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4 var historyService = Cc["@mozilla.org/browser/nav-history-service;1"]
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
5 .getService(Ci.nsINavHistoryService);
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
6
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
7 // No query parameters will get all history.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
8 var options = historyService.getNewQueryOptions();
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
9
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
10 options.resultType = options.RESULTS_AS_URI;
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
11 options.sortingMode = options.SORT_BY_VISITCOUNT_DESCENDING;
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
12
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
13 // No query parameters will return everything.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
14 var query = historyService.getNewQuery();
6
ec86d1e59d44 Ummm... Oops. When I converted AmbNews annotations to ambnews annotations, I missed a few.
Atul Varma <varmaa@toolness.com>
parents: 1
diff changeset
15 query.annotation = "ambnews/feed";
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
16
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
17 // Execute the query.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
18 var result = historyService.executeQuery(query, options);
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
19
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
20 var root = result.root;
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
21 root.containerOpen = true;
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
22
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
23 // Index of the feed number that we're looking at.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
24 var childNum = 0;
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
25
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
26 // Number of feeds we've shown so far.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
27 var childrenShown = 0;
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
28
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
29 // Maximum numer of feeds we'll show.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
30 var maxChildrenToShow = 20;
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
31
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
32 // Hashtable that keeps track of what feeds we've shown so far,
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
33 // holding both URLs and feed titles. The keys for the values are
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
34 // irrelevant; we're just using a hashtable for quick lookup.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
35 var shownFeeds = {};
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
36
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
37 // TODO: Consider using JS 1.7 generators/coroutines instead of
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
38 // the following closures.
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
39
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
40 // This function fetches the next feed and then displays it.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
41 function getNextFeed() {
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
42 if (childrenShown == maxChildrenToShow ||
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
43 childNum == root.childCount) {
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
44 // We're done! Close our query result container.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
45 root.containerOpen = false;
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
46 } else {
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
47 var annSvc = AmbNews.__getAnnSvc();
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
48 var child = root.getChild(childNum);
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
49 var feedUri = annSvc.getPageAnnotation(AmbNews.url(child.uri),
6
ec86d1e59d44 Ummm... Oops. When I converted AmbNews annotations to ambnews annotations, I missed a few.
Atul Varma <varmaa@toolness.com>
parents: 1
diff changeset
50 "ambnews/feed");
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
51 childNum++;
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
52 if (feedUri in shownFeeds) {
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
53 // We've already shown this feed, skip to the next one.
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
54 getNextFeed();
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
55 } else {
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
56 shownFeeds[feedUri] = true;
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
57 childrenShown++;
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
58 AmbNews.getFeed(feedUri, displayFeed);
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
59 }
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
60 }
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
61 }
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
62
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
63 // This function displays the given feed.
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
64 function displayFeed(feed) {
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
65 if (feed && feed.title.text in shownFeeds)
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
66 // We've already shown this feed, skip to the next one.
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
67 feed = null;
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
68 if (feed) {
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
69 shownFeeds[feed.title.text] = true;
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
70 var text = "";
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
71 var entriesToShow = 4;
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
72 var useAuthor = false;
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
73 if (feed.entries.length < entriesToShow)
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
74 entriesToShow = feed.entries.length;
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
75 if (entriesToShow > 1 &&
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
76 feed.entries[0].title.text == feed.entries[1].title.text)
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
77 // The feed's entries all have the same title, so display
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
78 // author information instead. This is used for Vanilla
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
79 // thread feeds.
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
80 useAuthor = true;
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
81 var feedLink = feed.link ? feed.link.spec : "";
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
82 text += ('<div class="feed"><div class="feed-title"><a ' +
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
83 'href="' + feedLink + '">' +
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
84 feed.title.text + '</a></div><ul>');
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
85 for (var i = 0; i < entriesToShow; i++) {
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
86 var entryTitle = feed.entries[i].title.text;
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
87 if (useAuthor) {
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
88 // TODO: Gross, XPCOM cruft. This should be passed to our
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
89 // function as a normal JS Array.
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
90 entryTitle = feed.entries[i].authors.queryElementAt(
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
91 0,
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
92 Components.interfaces.nsIFeedPerson
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
93 ).name;
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
94 }
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
95 if (entryTitle.length > 100) {
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
96 entryTitle = entryTitle.slice(0, 100) + '\u2026';
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
97 }
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
98 text += ('<li class="feed-entry"> \u00b7 <a href="' +
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
99 feed.entries[i].link.spec +
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
100 '">' +
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
101 entryTitle + '</a></li>');
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
102 }
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
103 text += '</ul></div>';
10
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
104 $(text).hide().fadeIn("slow", getNextFeed).appendTo("#content");
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
105 } else {
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
106 // We're skipping this feed, so just process the next one.
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
107 window.setTimeout(getNextFeed, 10);
f07bf657f483 Display of Vanilla forum threads is better now; fixed some display bugs; updated TODOs; documented more code.
Atul Varma <varmaa@toolness.com>
parents: 6
diff changeset
108 }
1
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
109 }
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
110
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
111 getNextFeed();
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
112 }
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
113
44bcb4975ead Added more files.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
114 $(window).ready(loadNews);