From e360cd03c880b036c518fa1a5ddfa05f271a2050 Mon Sep 17 00:00:00 2001 From: "Martin, Alexander Scott" Date: Mon, 3 Feb 2025 16:14:18 -0500 Subject: [PATCH] add modifiers for task dates --- tdx-enhanced.js | 86 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 2 deletions(-) diff --git a/tdx-enhanced.js b/tdx-enhanced.js index 39c92bf..48a7d9f 100644 --- a/tdx-enhanced.js +++ b/tdx-enhanced.js @@ -154,13 +154,77 @@ //convert to original format newCal.addEventListener("input",event=>{ let parsedValue = moment(event.target.value,newFormat) - let parsedFormat = parsedValue.format(originalFormat) - calendar.value = parsedFormat + date = parsedValue + updateDate() }) + //date modifier shortcuts + let calBox = document.createElement("div") + calBox.classList = ["calBox"] + let calTxt = document.createElement("span") + calTxt.innerText = date.format('dddd') + + //modify date + function btnModify(btn) { + console.log("Modify date:",btn) + if ('add' in btn) { + date.add(btn.add) + } else if ('set' in btn) { + date.set(btn.set) + } + + //check business days + let day = date.isoWeekday() + let hour = date.hour() + let min = date.minute() + let wkday = date.weekday() + + console.log("WkDay:",wkday,"Day:",day,"hour:",hour,"min:",min) + + //if Friday after 5pm + if (day>=5 && (hour>17 || (hour==17 && min>0))) { + date.set({ + h: 8, + d: 1+7, + m: 0 + }) + } else if (day>5) { + //if sat/sun + date.set({ + d: 1+7 + }) + } + + + updateDate() + } + + let buttons = [ + {name:"+1 day",add: {days:1}}, + {name:"+1 week",add: {weeks:1}}, + {name:"+1 month",add: {months:1}}, + {name:"12PM",set: {h:12,m:0}}, + {name:"5PM",set: {h:17,m:0}} + ] + + for (const btn of buttons) { + let button = document.createElement("button") + button.classList = "btn btn-calendar" + button.innerText = btn.name + button.addEventListener("click",(event)=>{ + event.preventDefault() + btnModify(btn) + }) + calBox.appendChild(button) + } + + updateDate() + //old input still needs to exist for proper format conversion calendar.style.display = "none" calendar.parentElement.append(newCal) + calendar.parentElement.append(calTxt) + calendar.parentElement.append(calBox) }); } @@ -1204,6 +1268,24 @@ display: flex; gap: 24px; } +.calBox { + display: flex; + justify-content: space-around; + flex-wrap: wrap; + padding-top: 4px; + gap: 4px; + max-width: 220px; +} + +.btn-calendar { + flex-grow: 1; + padding: 2px; + background-color: var(--bg-3); +} + +.btn-calendar:hover { + background-color: var(--bg-4); +} #statusBox:hover #statusMsg { display: block;