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>`;
...