feat: run Agenda as a work session (Closes #731)
This commit is contained in:
1 parent
af27bb06e0
commit
523968f5a3
3 files changed
+79
-9
No files matched your search
+19
-6
@@ -1148,7 +1148,9 @@
|
||||
}
|
||||
function updateWorkSessionActions() {
|
||||
const active = workSession.active();
|
||||
qs('#start-work-session').hidden = active;
|
||||
const startWorkSession = qs('#start-work-session');
|
||||
startWorkSession.hidden = active;
|
||||
startWorkSession.textContent = selectedWorkFilter === 'agenda' ? 'Start Agenda' : 'Start work';
|
||||
qs('#resume-today-session').hidden = active || !todayMyWork.length || !workSession.resumable();
|
||||
qs('#end-today-session').hidden = !active;
|
||||
updateDetailDeferLabels(active);
|
||||
@@ -1157,9 +1159,11 @@
|
||||
}
|
||||
|
||||
const workSession = createWorkSession({
|
||||
getItems: () => selectedWorkFilter === 'today' ? todayMyWork : activeMyWork,
|
||||
getFilter: () => selectedWorkFilter === 'today' ? 'all' : selectedWorkFilter,
|
||||
getMilestone: () => selectedWorkMilestone,
|
||||
getItems: () => selectedWorkFilter === 'today' ? todayMyWork :
|
||||
selectedWorkFilter === 'agenda' ? agendaMyWork(activeMyWork) : activeMyWork,
|
||||
getFilter: () => selectedWorkFilter === 'today' ? 'all' :
|
||||
selectedWorkFilter === 'agenda' ? 'all' : selectedWorkFilter,
|
||||
getMilestone: () => selectedWorkFilter === 'agenda' ? 'all' : selectedWorkMilestone,
|
||||
checkpoint: sessionCheckpoint,
|
||||
checkpointEnabled: () => selectedWorkFilter === 'today',
|
||||
onOpen: openWorkSessionItem,
|
||||
@@ -1178,7 +1182,15 @@
|
||||
button.hidden = !workSession.checkpointed();
|
||||
});
|
||||
},
|
||||
onFinish: () => todayRecapView.finish(selectedWorkFilter),
|
||||
onFinish: () => {
|
||||
updateWorkSessionActions();
|
||||
if (selectedWorkFilter === 'agenda') {
|
||||
closeOpenWorkSheets();
|
||||
qs('#my-work-action-status').textContent = 'Agenda complete.';
|
||||
return;
|
||||
}
|
||||
todayRecapView.finish(selectedWorkFilter);
|
||||
},
|
||||
});
|
||||
function selectTodayWork() {
|
||||
qs('[data-work-filter="today"]').click();
|
||||
@@ -5868,7 +5880,7 @@
|
||||
qs('#save-today-plan').addEventListener('click', event => commitPlanToday(false, event.currentTarget));
|
||||
qs('#save-and-start-today').addEventListener('click', event => commitPlanToday(true, event.currentTarget));
|
||||
qs('#start-work-session').addEventListener('click', () => {
|
||||
const sessionItems = selectedWorkFilter === 'today' ? todayMyWork : filterMyWork(lastMyWork, selectedWorkFilter);
|
||||
const sessionItems = workSession.items();
|
||||
if (!sessionItems.length) {
|
||||
qs('#my-work-action-status').textContent = 'No visible work to start.';
|
||||
return;
|
||||
@@ -6053,6 +6065,7 @@
|
||||
const selectedCount = button.querySelector('[data-work-count]').textContent;
|
||||
qs('#active-work-queue').textContent = button.firstChild.textContent.trim() + ' (' + selectedCount + ')';
|
||||
renderMyWork();
|
||||
updateWorkSessionActions();
|
||||
updateWorkPaginationControls();
|
||||
if (selectedWorkFilter === 'agenda') completeAgendaIssues();
|
||||
if (!preserveRoute) workRoute.queue(filter);
|
||||
|
||||
Reference in new issue
Block a user