mirror of
https://github.com/actualbudget/actual.git
synced 2026-04-28 18:40:34 -05:00
feat: Don't allow duplicate cat-groups in budget (#2262)
* feat: Don't allow duplicate cat-groups in budget * Add release notes * fix: error message * pass group instead of name for accurate error message * improve error message
This commit is contained in:
@@ -313,7 +313,24 @@ function BudgetInner(props: BudgetProps) {
|
||||
}
|
||||
};
|
||||
|
||||
const groupNameAlreadyExistsNotification = group => {
|
||||
props.addNotification({
|
||||
type: 'error',
|
||||
message: `A ${group.hidden ? 'hidden ' : ''}’${group.name}’ category group already exists.`,
|
||||
});
|
||||
};
|
||||
|
||||
const onSaveGroup = async group => {
|
||||
const categories = await props.getCategories();
|
||||
const matchingGroups = categories.grouped
|
||||
.filter(g => g.name.toUpperCase() === group.name.toUpperCase())
|
||||
.filter(g => group.id === 'new' || group.id !== g.id);
|
||||
|
||||
if (matchingGroups.length > 0) {
|
||||
groupNameAlreadyExistsNotification(matchingGroups[0]);
|
||||
return;
|
||||
}
|
||||
|
||||
if (group.id === 'new') {
|
||||
const id = await props.createGroup(group.name);
|
||||
setIsAddingGroup(false);
|
||||
|
||||
@@ -304,6 +304,17 @@ export async function getCategoriesGrouped(): Promise<
|
||||
}
|
||||
|
||||
export async function insertCategoryGroup(group) {
|
||||
// Don't allow duplicate group
|
||||
const existingGroup = await first(
|
||||
`SELECT id, name, hidden FROM category_groups WHERE UPPER(name) = ? and tombstone = 0 LIMIT 1`,
|
||||
[group.name.toUpperCase()],
|
||||
);
|
||||
if (existingGroup) {
|
||||
throw new Error(
|
||||
`A ${existingGroup.hidden ? 'hidden ' : ''}’${existingGroup.name}’ category group already exists.`,
|
||||
);
|
||||
}
|
||||
|
||||
const lastGroup = await first(`
|
||||
SELECT sort_order FROM category_groups WHERE tombstone = 0 ORDER BY sort_order DESC, id DESC LIMIT 1
|
||||
`);
|
||||
|
||||
6
upcoming-release-notes/2262.md
Normal file
6
upcoming-release-notes/2262.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
category: Features
|
||||
authors: [dhruvramdev]
|
||||
---
|
||||
|
||||
Don't allow duplicate category groups
|
||||
Reference in New Issue
Block a user