Display TK-filled preview based on table data
This preview is as yet unformatted...but stay tuned; we're soon to
add Markdown! 😉
This commit is contained in:
parent
17aa114978
commit
a1f9fe5a86
1 changed files with 66 additions and 0 deletions
|
@ -9,6 +9,9 @@
|
||||||
let step = 0
|
let step = 0
|
||||||
let tkList = []
|
let tkList = []
|
||||||
|
|
||||||
|
let cookiePreviewText = ''
|
||||||
|
let cookiePreviewRow = 0
|
||||||
|
|
||||||
function showEmail() {
|
function showEmail() {
|
||||||
step = 1
|
step = 1
|
||||||
}
|
}
|
||||||
|
@ -53,6 +56,9 @@
|
||||||
sheetOne = new Importabular({
|
sheetOne = new Importabular({
|
||||||
node: editor,
|
node: editor,
|
||||||
columns: columns,
|
columns: columns,
|
||||||
|
onChange(data) {
|
||||||
|
cookiePreviewText = getPreview()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
step = 2
|
step = 2
|
||||||
|
@ -61,6 +67,59 @@
|
||||||
window.sheetOne = sheetOne
|
window.sheetOne = sheetOne
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function incrementPreviewRow() {
|
||||||
|
let sheetLength = sheetOne.getData().length
|
||||||
|
|
||||||
|
// make sure it's not too big...
|
||||||
|
if (cookiePreviewRow >= sheetLength-1) {
|
||||||
|
cookiePreviewRow = sheetLength - 1
|
||||||
|
} else if (cookiePreviewRow < 0) {
|
||||||
|
// ...and not too small
|
||||||
|
cookiePreviewRow = 0
|
||||||
|
} else {
|
||||||
|
// if not, then make it "just right"! :)
|
||||||
|
cookiePreviewRow++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function decrementPreviewRow() {
|
||||||
|
let sheetLength = sheetOne.getData().length
|
||||||
|
// make sure it's not too small...
|
||||||
|
if (cookiePreviewRow >= sheetLength) {
|
||||||
|
// ...and not too big
|
||||||
|
cookiePreviewRow = sheetLength - 1
|
||||||
|
} else if (cookiePreviewRow <= 0) {
|
||||||
|
// if not, then make it "just right"! :)
|
||||||
|
cookiePreviewRow = 0
|
||||||
|
} else {
|
||||||
|
cookiePreviewRow--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPreview(row) {
|
||||||
|
if (!row) row = cookiePreviewRow
|
||||||
|
let previewText = emailContent
|
||||||
|
|
||||||
|
// get the row we're working on
|
||||||
|
if (!sheetOne) return '' // no sheet to get data from :(
|
||||||
|
let data = sheetOne.getData()
|
||||||
|
if (row < 0 || data.length < row) return previewText // no row to apply :(
|
||||||
|
let r = data[row]
|
||||||
|
|
||||||
|
for (let tk of tkList) {
|
||||||
|
// figure out which column holds values for this TK
|
||||||
|
let tkIndex = window.sheetOne.columns.findIndex(t => t.label == tk)
|
||||||
|
|
||||||
|
// replace it!
|
||||||
|
previewText = previewText.replace(new RegExp(`\\[TK ${tk}\\]`, 'g'), r[tkIndex])
|
||||||
|
}
|
||||||
|
|
||||||
|
return previewText
|
||||||
|
}
|
||||||
|
|
||||||
|
// automatically update
|
||||||
|
$: cookiePreviewText = getPreview(cookiePreviewRow)
|
||||||
|
|
||||||
function next() {
|
function next() {
|
||||||
step += 1
|
step += 1
|
||||||
}
|
}
|
||||||
|
@ -104,6 +163,13 @@
|
||||||
{#if step == 1}
|
{#if step == 1}
|
||||||
<button on:click={showSheet}>Next</button>
|
<button on:click={showSheet}>Next</button>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
{#if step == 2}
|
||||||
|
<button on:click={decrementPreviewRow}>< Prev</button>
|
||||||
|
<button on:click={incrementPreviewRow}>Next ></button>
|
||||||
|
<pre id="cookiePreview">{cookiePreviewText}</pre>
|
||||||
|
{/if}
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
Loading…
Reference in a new issue