Get list of pages since last updated given a date

by Amy L

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script src="https://momentjs.com/downloads/moment.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.8.2/webfonts/fa-regular-400.svg"></script>
<h2 class="text-center">Getting a list of new/modified Widget Library documentation</h2>
<div class="container">
  <div class="step-1">

    <h3>
      Step 1
    </h3>
    <form class="step-1-form">
      <div class="form-row align-items-middle">
        <div class="form-group col-auto">
          <label>
				<span>From which date do you want to check? (Format: <code>yyyy/mm/dd</code>)</span>
    <input type="text" class="from-date form-control"
    placeholder="yyyy/mm/dd"
		data-toggle="tooltip" 
		data-placement="bottom" 
		data-html="true" title="<span class='text-warning'>Not a valid format!</span>"
		/>
	<small class="form-text text-muted">eg. <code>2019/04/30</code> for April 30, 2019</small>
  </label>
        </div>
        <div class="form-group col-auto mt-md-4">

          <button type="submit" class="generate-url btn btn-secondary">
Generate URL
</button>
          <small class="verify-date form-text text-muted" data-toggle="tooltip" data-placement="bottom"></small>
        </div>

      </div>
    </form>
  </div>
  <div class="step-2 mt-2 d-none">
    <h3>
      Step 2
    </h3>
    <label><span>Make sure you're <strong><a href="https://wiki.central1.com" target="_blank">authenticated in Confluence</a></strong>.</span></label>
    <div class="input-group">
      <div class="input-group-prepend">
        <span class="input-group-text">Paste this into your browser:</span>
  ...

JavaScript

function parsePageData(data) {
  return data.map((record, index) => {
    return {
      pageName: record.title,
      link: `https://wiki.central1.com/confluence${record._links.webui}`
    }
  });
}


const $fromDateInput = $('input.from-date');
const $step1form = $('form.step-1-form');
const $verifiedDate = $('.verify-date');
const $copyClipboard = $('.copy-clipboard');
const $queryOutput = $('input.query-url');
const $jsonInput = $('.json-input');
const $resultButton = $('.get-result');
const $resultDescription = $('.result-description');
const $resultList = $('.results');
const $step2 = $('.step-2');
const $step3 = $('.step-3');
const $stepFinal = $('.step-final');
var momentInputDate;

$('[data-toggle="tooltip"]').tooltip({
  trigger: 'manual'
});

$step1form.submit((e) => {
  e.preventDefault();
  const inputDate = $fromDateInput.val();
  if (inputDate) {
    momentInputDate = moment(inputDate, 'YYYY/MM/DD');
    if (momentInputDate.isValid()) {
      $verifiedDate.text(`Entered: ${momentInputDate.format('MMMM Do, YYYY')}`);
      const today = moment().startOf('day');
      const daysSince = Math.round(moment.duration(today - momentInputDate).asDays());

      $step2.removeClass('d-none');
      $queryOutput.val(`https://wiki.central1.com/confluence/rest/api/content/search?cql=space=UXPSPACE%20AND%20parent=1006076093%20AND%20lastModified%3E=now(%22-${daysSince}d%22)%20ORDER%20BY%20lastmodified%20ASC%20&limit=100&type=page`);
      $queryOutput.focus();
      $queryOutput.select();
      $step3.removeClass('d-none');
      return;
    }
  }
  showTooltipAlert($fromDateInput);
});

$copyClipboard.click(() => {
  $queryOutput.focus();
  $queryOutput.select();
  document.execCommand("copy");
  showTooltipAlert($copyClipboard);
});

$resultButton.click(() => {
  const json = JSON.parse($jsonInput.val());
  const parsedData = parsePageData(json.results);
  const html = parsedData.map((page) => {
    return `<li><a href="${page.link}">${page.pageName}</a></li>`;
...