Add the ability to select multiple tasks at once

This commit is contained in:
augustin64 2023-07-12 21:56:05 +02:00
parent 8ee456ac53
commit dd0a0db947
2 changed files with 42 additions and 32 deletions

View File

@ -31,6 +31,7 @@ void delete_task(int id);
/* /*
Copie la tâche [id] dans *t si elle existe Copie la tâche [id] dans *t si elle existe
t.id vaut -1 si non trouvé
*/ */
void get_task(int id, task_t* t); void get_task(int id, task_t* t);

View File

@ -15,9 +15,9 @@ void help(char* name) {
printf("\tFormat de la date:\n"); printf("\tFormat de la date:\n");
printf("\t\tRelatif: min+%%d, h+%%d, j+%%d\n"); printf("\t\tRelatif: min+%%d, h+%%d, j+%%d\n");
printf("\t\tAbsolu: dd/mm (pas de changement d'année pour l'instant\n"); printf("\t\tAbsolu: dd/mm (pas de changement d'année pour l'instant\n");
printf("\tinfo <id>\n"); printf("\tinfo <id1> <id2> ...\n");
printf("\tdone <id>\n"); printf("\tdone <id1> <id2> ...\n");
printf("\trm <id>\n"); printf("\trm <id1> <id2> ...\n");
} }
@ -84,6 +84,9 @@ int add(int argc, char* argv[]) {
} }
task_t t = create_task(argv[2], due_to); task_t t = create_task(argv[2], due_to);
if (t.id == -1) {
return 1;
}
if (add_task(t) != 0) { if (add_task(t) != 0) {
printf("Erreur lors de l'ajout à la base de données\n"); printf("Erreur lors de l'ajout à la base de données\n");
@ -102,20 +105,22 @@ int info(int argc, char* argv[]) {
return 1; return 1;
} }
int id = strtol(argv[2], NULL, 10); for (int i=2; i < argc; i++) {
int id = strtol(argv[i], NULL, 10);
task_t t; task_t t;
t.id = -1; t.id = -1;
get_task(id, &t); get_task(id, &t);
if (t.id == -1) { if (t.id == -1) {
printf(BOLD YELLOW "Tâche inexistante. Vérifiez que l'identifiant est bien correct\n" RESET); printf(YELLOW "Tâche " BOLD "[%s]" RESET YELLOW " inexistante. Vérifiez que l'identifiant est bien correct\n" RESET, argv[i]);
return 1; return 1;
}
print_task(t);
free(t.text);
} }
print_task(t);
free(t.text);
return 0; return 0;
} }
@ -126,20 +131,22 @@ int mark_done(int argc, char* argv[]) {
return 1; return 1;
} }
int id = strtol(argv[2], NULL, 10); for (int i=2; i < argc; i++) {
int id = strtol(argv[i], NULL, 10);
task_t t; task_t t;
t.id = -1; t.id = -1;
get_task(id, &t); get_task(id, &t);
if (t.id == -1) { if (t.id == -1) {
printf(BOLD YELLOW "Tâche inexistante. Vérifiez que l'identifiant est bien correct\n" RESET); printf(YELLOW "Tâche " BOLD "[%s]" RESET YELLOW " inexistante. Vérifiez que l'identifiant est bien correct\n" RESET, argv[i]);
return 1; return 1;
}
t.done = true;
update_task(t);
} }
t.done = true;
update_task(t);
return 0; return 0;
} }
@ -151,19 +158,21 @@ int delete(int argc, char* argv[]) {
return 1; return 1;
} }
int id = strtol(argv[2], NULL, 10); for (int i=2; i < argc; i++) {
int id = strtol(argv[i], NULL, 10);
task_t t; task_t t;
t.id = -1; t.id = -1;
get_task(id, &t); get_task(id, &t);
if (t.id == -1) { if (t.id == -1) {
printf(BOLD YELLOW "Tâche inexistante. Vérifiez que l'identifiant est bien correct\n" RESET); printf(YELLOW "Tâche " BOLD "[%s]" RESET YELLOW " inexistante. Vérifiez que l'identifiant est bien correct\n" RESET, argv[i]);
return 1; return 1;
}
delete_task(t.id);
} }
delete_task(t.id);
return 0; return 0;
} }