function getPushlogLink()

in common_landings.js [70:118]


function getPushlogLink(channel) {
  let base;
  if (channel === "nightly") {
    base = "https://hg.mozilla.org/mozilla-central";
  }

  let firstAffected = document.getElementById(channel + "_first_affected")
    .value;
  if (firstAffected) {
    let isBuildID = checkIsBuildID(firstAffected);

    let startDateElem = document.getElementById(channel + "_days");
    let startDate = dropdownDateToDaysDiff(
      startDateElem.options[startDateElem.selectedIndex].value
    );
    let pushlogLinkElem = document.getElementById(channel + "_pushloglink");

    return new Promise(function (resolve, reject) {
      if (!isBuildID) {
        resolve(firstAffected);
      } else {
        fromBuildIDtoChangeset(firstAffected, channel).then((changesetURL) =>
          resolve(getRevFromChangeset(changesetURL, channel))
        );
      }
    }).then((changeset) =>
      getChangesetDate(changeset, channel).then((date) => {
        date.setDate(date.getDate() - startDate);
        let year = date.getFullYear();
        let month = toTwoDigits(date.getMonth() + 1);
        let day = toTwoDigits(date.getDate());
        let pushlogLink =
          base +
          "/pushloghtml?startdate=" +
          year +
          "-" +
          month +
          "-" +
          day +
          "&tochange=" +
          changeset;
        pushlogLinkElem.textContent = pushlogLinkElem.href = pushlogLink;
        return pushlogLink;
      })
    );
  }

  return null;
}