view about-mozilla.js @ 10:63fc59f4bd33

We're now loading the latest issue dynamically using the Google Ajax feeds API.
author Atul Varma <varmaa@toolness.com>
date Sun, 01 Mar 2009 09:30:16 -0800
parents fb7af41041cc
children d0f57c5ef95c
line wrap: on
line source

var ATOM_URL = "https://developer.mozilla.org/devnews/index.php/feed/atom/";

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>');
      for (var node = $(this).parent().next();
           node.length && !node.find("a[name]").length;
           node = node.next(":not(.postmetadata)"))
        content.append(node.clone());

      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 entry = result.feed.entries[0];
        $("#raw-issue").html(entry.content);
        var pubDate = new Date(entry.publishedDate);
        var dateStr = (MONTHS[pubDate.getMonth()] + " " +
                       pubDate.getDate() + ", " +
                       pubDate.getFullYear());
        $(".date").text(dateStr);

        onIssueLoaded();
      });
  });