render: function()

in assets/app/views/site/builds.js [13:41]


  render: function() {
    if (!this.model) return this;
    var data = this.model.toJSON(),
        view = this;
    $.getJSON('/v0/user/usernames', function(users) {
      data.builds = _(data.builds).chain().map(function(build) {
        var completedAt = build.completedAt && new Date(build.completedAt),
            createdAt = build.createdAt && new Date(build.createdAt),
            base = completedAt || new Date(),
            duration = moment.duration(moment(base).diff(createdAt)),
            item = _.clone(build);

        item.username = users[build.user];
        item.duration = duration.seconds();
        item.durationFormatted = duration.humanize();
        item.panelClass = build.state === 'error' ? 'error' :
          build.state === 'success' ? '' : 'info';

        if (completedAt) {
          item.completedAt = moment(completedAt).format('L LT');
          item.completedAtFormatted = moment(completedAt).fromNow();
        }

        return item;
      }).sortBy('createdAt').value().reverse();
      view.$el.html(view.template(data));
    });
    return this;
  }