view about-mozilla.js @ 15:3f9cc6c21849 default tip

Fixed to support the new about:mozilla blog at http://blog.mozilla.com/about_mozilla/.
author Atul Varma <varmaa@toolness.com>
date Fri, 10 Jul 2009 10:44:12 -0700
parents 0921b3bb553d
children
line wrap: on
line source

var ATOM_URL = "http://blog.mozilla.com/about_mozilla/feed/";

var MONTHS = ["January",
              "February",
              "March",
              "April",
              "May",
              "June",
              "July",
              "August",
              "September",
              "October",
              "November",
              "December"];

function onIssueLoaded() {
  $("#raw-issue a[name]").each(
    function(i) {
      var headline = $(this).next().text();
      var content = $('<div class="content"></div>');
      if ($(this).next().next().length == 0) {
        // Flat DOM layout; all blurbs have the same parent.
        for (var node = $(this).parent().next();
             node.length && !node.find("a[name]").length;
             node = node.next(":not(.postmetadata)"))
          content.append(node.clone());
      } else {
        // Each blurb is contained in its own element.
        var parent = $(this).parent().clone();
        parent.find("strong").remove();
        parent.find("br:first").remove();
        content.append(parent);
      }

      var entry = $('<div class="entry"></div>');
      entry.append($('<div class="headline"></div>').text(headline));
      entry.append(content);
      $("#body").append(entry);
    }
  );

  $("#issue").fadeIn();

  var tallestHeight = 0;
  var entries = $("#issue .entry");
  entries.each(
    function(i) {
      var height = $(this).height();
      if (height > tallestHeight)
        tallestHeight = height;
    }
  );
  entries.height(tallestHeight);
  $(document.body).width(entries.outerWidth() * entries.length);
}

google.load("feeds", "1");
google.setOnLoadCallback(
  function() {
    var feed = new google.feeds.Feed(ATOM_URL);
    feed.load(
      function(result) {
        var qs = new Querystring();
        var issue = qs.get("issue", "0");
        var feeds = result.feed.entries;
        var entry = feeds[issue];
        $("#raw-issue").html(entry.content);
        var pubDate = new Date(entry.publishedDate);
        var dateStr = (MONTHS[pubDate.getMonth()] + " " +
                       pubDate.getDate() + ", " +
                       pubDate.getFullYear());
        $(".date").text(dateStr);

        onIssueLoaded();
      });
  });