Example #1
0
exports.package = function(req, res, next) {
  var name = req.params.name;
  var version = req.params.version;
  var p = new Package({
    name: name,
    version: version
  });
  if (p.md5) {
    p.readme = marked(p.readme || '');
    p.fromNow = moment(p.updated_at).fromNow();
    // jquery@1.7.2 -> jquery
    p.dependents = _.uniq((p.dependents || []).map(function(d) {
      return d.split('@')[0];
    }));
    if (p.repository && p.repository.url) {
      try {
        p.repositoryurl = gu(p.repository.url).http_href;
      } catch(e) {
        p.repositoryurl = '';
      }
    }
    res.render('package', {
      title: p.name + '@' + p.version + ' - '+ CONFIG.website.title,
      spmjsioVersion: spmjsioVersion,
      user: req.session.user,
      anonymous: anonymous,
      GA: CONFIG.website.GA,
      package: p
    });
  } else {
    next();
  }
};
Example #2
0
exports.project = function(req, res, next) {
  var name = req.params.name;
  var p = new Project({
    name: name
  });
  if (p.packages) {
    p.latest = new Package({
      name: p.name,
      version: p.version
    });
    p.versions = p.getVersions();
    p.fromNow = moment(p.updated_at).fromNow();
    p.latest.readme = kramed(p.latest.readme || '');
    // jquery@1.7.2 -> jquery
    p.latest.dependencies = _.uniq((p.latest.dependencies || []).map(function(d) {
      return d.split('@')[0];
    }));
    p.latest.dependents = _.uniq((p.latest.dependents || []).map(function(d) {
      return d.split('@')[0];
    }));
    if (p.unpublished) {
      p.unpublished.fromNow = moment(p.unpublished.time).fromNow();
    }

    var editable;
    var ownerIds = p.owners.map(function(owner) {
      return owner && owner.id;
    });
    if (ownerIds && ownerIds.length > 0 && req.session.user &&
        !anonymous && ownerIds.indexOf(req.session.user.id) >= 0) {
      editable = true;
    }
    if (p.repository && p.repository.url) {
      try {
        p.repositoryurl = gu(p.repository.url).http_href;
      } catch(e) {
        p.repositoryurl = '';
      }
    }
    res.render('project', {
      siteName: CONFIG.website.title,
      title: p.name + ' - '+ CONFIG.website.title,
      spmjsioVersion: spmjsioVersion,
      gitRev: gitRev,
      user: req.session.user,
      anonymous: anonymous,
      GA: CONFIG.website.GA,
      project: p,
      doclink: docLink(p.name),
      editable: editable,
      errormessage: req.query.errormessage
    });
  } else {
    next();
  }
};