<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>ChromeOS Launch Bugs go/launchbugs </title>
</head>

<body>
  <script type = "text/javascript" src="js/getParameters.js"></script>
  <script>
    var base_url = 'https://launch.corp.google.com/launches?'
    // Add milestone, TEs, and Approver to launch url and redirect to it
    function UpdateUrlsWithMilestone(m, team, te, approver) {
      var src = base_url.concat('&q=calendarId:2197 status:current<milestone><TE><approver>')
      // Milestone
      if (!m) {
        console.log('No Milestone provided')
        m = ''
      }
      else {
        m = ' ("Stable Target Milestone":"' + m + '" OR "Stable Experiment Target Milestone":"' + m + '")'
      }
      src = src.replace(/<milestone>/g, m)
      // Team Logic overrides TE
      if (team && team.toLowerCase() == "corex") {
        console.log('Team found, overrides TE')
        te = 'dhaddock,kyleshima,hyungtaekim,awendy'
      }
      // TE
      if (!te) {
        console.log('No TE provided')
        te = ''
      }
      else if (te == "new") {
        console.log('New TEs')
        te = ' te:NULL'
      }
      else {
        // Verify if multiple TEs provided
        te = ' "te":("' +te.replace(/,/g, '" OR "')+ '")'
      }
      src = src.replace(/<TE>/g, te)
      // EngProd Bit Approver
      if (!approver) {
        console.log('No Approver provided')
        approver = ''
      }
      else {
        // Verify if multiple Approvers provided
        approver =  ' "EngProd owners":("' +approver.replace(/,/g, '" OR "') + '")'
      }
      src = src.replace(/<approver>/g, approver)
      window.location.replace(src);
    }
    // Get Params
    var m = GetURLParameter('m')
    var team = GetURLParameter('team')
    var te = GetURLParameter('te')
    var approver = GetURLParameter('a')
    UpdateUrlsWithMilestone(m, team, te, approver)
  </script>
</body>
</html>
