aboutsummaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
authorAndrew Harvey <andrew@alantgeo.com.au>2021-07-02 19:02:09 +1000
committerAndrew Harvey <andrew@alantgeo.com.au>2021-07-02 19:02:09 +1000
commite4a71e40ce2dd95815293052fe63157f57a52584 (patch)
treefe5a9046c4f3ddbe40ba09bbdb01381869486500 /www
parent3ada77ccc88722429f760a34e9840831d555f8ff (diff)
add script and html to preview maproulette cooperative challenge
Diffstat (limited to 'www')
-rw-r--r--www/mrPreview.html110
1 files changed, 110 insertions, 0 deletions
diff --git a/www/mrPreview.html b/www/mrPreview.html
new file mode 100644
index 0000000..8fcc3fa
--- /dev/null
+++ b/www/mrPreview.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset='utf-8' />
+ <title>MapRoulette Preview</title>
+ <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
+ <style>
+ body { margin:0; padding:0; }
+ #map { position:absolute; top:0; bottom:0; width:100%; }
+
+ tr:nth-child(odd) {
+ background-color: #eee
+ }
+ tr:nth-child(even) {
+ background-color: #ddd;
+ }
+
+ .modify {
+ background-color: orange;
+ }
+ .add {
+ background-color: lightgreen;
+ }
+ .remove {
+ background-color: red;
+ }
+ .row {
+ margin: 10px;
+ border-width: 1px;
+ border-color: black;
+ border-style: solid;
+ }
+ </style>
+</head>
+<body>
+ <div id="content"></div>
+<script>
+ fetch('changes.json')
+ .then(res => res.json())
+ .then(changes => {
+ renderChanges(changes)
+ })
+ function renderChanges(changes) {
+ const content = document.getElementById('content')
+ for (const [id, change] of Object.entries(changes)) {
+ const header = document.createElement('h2')
+ header.textContent = id
+ content.appendChild(header)
+
+ const table = document.createElement('table')
+
+ // table header
+ const headerRow = document.createElement('tr')
+
+ const headerTag = document.createElement('th')
+ headerTag.textContent = 'Tag'
+ headerRow.appendChild(headerTag)
+
+ const headerBefore = document.createElement('th')
+ headerBefore.textContent = 'Before'
+ headerRow.appendChild(headerBefore)
+
+ const headerAfter = document.createElement('th')
+ headerAfter.textContent = 'After'
+ headerRow.appendChild(headerAfter)
+
+ table.appendChild(headerRow)
+
+ // properties
+ const distinctKeys = [...new Set([...Object.keys(change.before.properties), ...Object.keys(change.after.properties)])]
+ for (const key of distinctKeys) {
+ const tr = document.createElement('tr')
+
+ const tdKey = document.createElement('td')
+ tdKey.textContent = key
+
+ const tdBefore = document.createElement('td')
+ const beforeValue = change.before.properties[key]
+ tdBefore.textContent = beforeValue
+
+ const tdAfter = document.createElement('td')
+ const afterValue = change.after.properties[key]
+ tdAfter.textContent = afterValue
+
+ if (beforeValue && afterValue && beforeValue !== afterValue) {
+ tdBefore.classList.add('modify')
+ tdAfter.classList.add('modify')
+ }
+
+ if (!beforeValue && afterValue) {
+ tdAfter.classList.add('add')
+ }
+
+ if (beforeValue && !afterValue) {
+ tdAfter.classList.add('remove')
+ }
+
+ tr.appendChild(tdKey)
+ tr.appendChild(tdBefore)
+ tr.appendChild(tdAfter)
+
+ table.appendChild(tr)
+ }
+
+ content.appendChild(table)
+ }
+ }
+</script>
+</body>
+</html>