From b5add9b8a0b477eb8bf4faf4b9f6b1e3173ead4e Mon Sep 17 00:00:00 2001 From: Lordmau5 Date: Mon, 20 Nov 2023 17:50:43 +0100 Subject: [PATCH] Basic goal list editing / creation / deletion --- src/composables/EditGoalDialog.vue | 18 ++- src/composables/EditGoalListDialog.vue | 130 ++++++++-------- src/composables/GameEditorDialog.vue | 204 ++++++++++++++++--------- src/js/lib/BingoGame.ts | 4 + src/js/lib/BingoGoalList.ts | 2 + 5 files changed, 216 insertions(+), 142 deletions(-) diff --git a/src/composables/EditGoalDialog.vue b/src/composables/EditGoalDialog.vue index 0b5efb3..a0e1f20 100644 --- a/src/composables/EditGoalDialog.vue +++ b/src/composables/EditGoalDialog.vue @@ -8,6 +8,8 @@ { + if (isNameReserved(goal_name.value)) { + return 'Name is reserved'; + } + + return ''; +}); +function isNameReserved(name: string) { + return name.length && data.reserved_names.some(reserved_name => + reserved_name !== data.goal?.name + && stringCompare(reserved_name, name)); +} + function canSave() { - return goal_name.value?.length > 0 - && !data.reserved_names.some(name => name !== data.goal?.name && stringCompare(name, goal_name.value)); + return !isNameReserved(goal_name.value); } function addTag(value: string, done: Function) { diff --git a/src/composables/EditGoalListDialog.vue b/src/composables/EditGoalListDialog.vue index cbc5026..9441518 100644 --- a/src/composables/EditGoalListDialog.vue +++ b/src/composables/EditGoalListDialog.vue @@ -7,7 +7,9 @@ > - - + @click="deleteGoalList()" + :disabled="!delete_actually_enabled" + > + + Cannot delete goal list with goals + + @@ -83,7 +73,7 @@ color="green" icon="save" label="Save" - @click="saveGoal()" + @click="saveGoalList()" :disabled="!canSave()" /> @@ -95,43 +85,50 @@ bordered > - + diff --git a/src/composables/GameEditorDialog.vue b/src/composables/GameEditorDialog.vue index 7f07078..7770ddd 100644 --- a/src/composables/GameEditorDialog.vue +++ b/src/composables/GameEditorDialog.vue @@ -1,7 +1,7 @@