diff --git a/internal/web/static/app.js b/internal/web/static/app.js index d6d23fc..9af8fba 100644 --- a/internal/web/static/app.js +++ b/internal/web/static/app.js @@ -69,20 +69,38 @@ var daysWrap = form.querySelector('[data-days-wrap]'); var countWrap = form.querySelector('[data-count-wrap]'); var endWrap = form.querySelector('[data-end-wrap]'); + var startWrap = form.querySelector('[data-start-wrap]'); + var startInput = form.querySelector('input[name="start_date"]'); if (!sel) return; function sync() { var opt = sel.options[sel.selectedIndex]; var unit = opt && opt.getAttribute('data-unit'); var amount = opt && opt.getAttribute('data-amount'); - if (unit === 'count') { - if (daysWrap) daysWrap.hidden = true; - if (countWrap) { countWrap.hidden = false; if (amount) countWrap.querySelector('input').value = amount; } - if (endWrap) endWrap.hidden = true; - } else if (unit === 'season') { + var validity = opt && parseInt(opt.getAttribute('data-validity') || '0', 10); + var endInput = endWrap && endWrap.querySelector('input'); + + if (unit === 'season') { if (daysWrap) daysWrap.hidden = true; if (countWrap) countWrap.hidden = true; if (endWrap) endWrap.hidden = true; + if (startWrap) startWrap.hidden = true; + if (startInput) startInput.required = false; + return; + } + + if (startWrap) startWrap.hidden = false; + if (startInput) startInput.required = true; + + if (unit === 'count') { + if (daysWrap) daysWrap.hidden = true; + if (countWrap) { countWrap.hidden = false; if (amount) countWrap.querySelector('input').value = amount; } + if (endWrap) endWrap.hidden = false; + if (validity > 0 && endInput && !endInput.value && startInput && startInput.value) { + var d = new Date(startInput.value + 'T00:00:00'); + d.setDate(d.getDate() + validity - 1); + endInput.value = d.toISOString().slice(0, 10); + } } else if (unit === 'day') { if (daysWrap) { daysWrap.hidden = false; if (amount) daysWrap.querySelector('input').value = amount; } if (countWrap) countWrap.hidden = true; diff --git a/internal/web/templates/pages/customer_detail.html b/internal/web/templates/pages/customer_detail.html index b4add4d..accf809 100644 --- a/internal/web/templates/pages/customer_detail.html +++ b/internal/web/templates/pages/customer_detail.html @@ -89,12 +89,12 @@ -