- Added 'needsFix' as a new review state to improve task tracking and management. - Updated kanban and task handling functions to accommodate the new review state, including modifications to clearKanban and task status updates. - Enhanced task briefing output to include sections for tasks needing fixes, pending tasks, and approved tasks, improving clarity in task management. - Updated UI components to display the 'needsFix' state appropriately across various views, including task rows and tooltips. - Refactored tests to cover new functionalities related to the 'needsFix' state, ensuring comprehensive coverage of task management scenarios.
58 lines
1.7 KiB
JavaScript
58 lines
1.7 KiB
JavaScript
const kanbanStore = require('./kanbanStore.js');
|
|
const tasks = require('./tasks.js');
|
|
|
|
function getKanbanState(context) {
|
|
return kanbanStore.readKanbanState(context.paths, context.teamName);
|
|
}
|
|
|
|
function setKanbanColumn(context, taskId, column) {
|
|
const canonicalTaskId = tasks.resolveTaskId(context, taskId);
|
|
kanbanStore.setKanbanColumn(context.paths, context.teamName, canonicalTaskId, String(column));
|
|
return getKanbanState(context);
|
|
}
|
|
|
|
function clearKanban(context, taskId, options) {
|
|
const canonicalTaskId = tasks.resolveTaskId(context, taskId);
|
|
kanbanStore.clearKanban(context.paths, context.teamName, canonicalTaskId, options);
|
|
return getKanbanState(context);
|
|
}
|
|
|
|
function listReviewers(context) {
|
|
return getKanbanState(context).reviewers;
|
|
}
|
|
|
|
function addReviewer(context, reviewer) {
|
|
const state = getKanbanState(context);
|
|
const next = new Set(state.reviewers);
|
|
next.add(String(reviewer));
|
|
kanbanStore.writeKanbanState(context.paths, context.teamName, {
|
|
...state,
|
|
reviewers: [...next],
|
|
});
|
|
return listReviewers(context);
|
|
}
|
|
|
|
function removeReviewer(context, reviewer) {
|
|
const state = getKanbanState(context);
|
|
const next = state.reviewers.filter((entry) => entry !== reviewer);
|
|
kanbanStore.writeKanbanState(context.paths, context.teamName, {
|
|
...state,
|
|
reviewers: next,
|
|
});
|
|
return listReviewers(context);
|
|
}
|
|
|
|
function updateColumnOrder(context, columnId, orderedTaskIds) {
|
|
const canonicalIds = orderedTaskIds.map((taskId) => tasks.resolveTaskId(context, taskId));
|
|
return kanbanStore.updateColumnOrder(context.paths, context.teamName, columnId, canonicalIds);
|
|
}
|
|
|
|
module.exports = {
|
|
getKanbanState,
|
|
setKanbanColumn,
|
|
clearKanban,
|
|
listReviewers,
|
|
addReviewer,
|
|
removeReviewer,
|
|
updateColumnOrder,
|
|
};
|