From bc67826cdd3ea3f2f6e17ea0018ab79052d41193 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Wed, 12 Oct 2022 19:24:32 +0000 Subject: [PATCH 01/14] Added translation using Weblate (Danish) --- lib/l10n/app_da.arb | 1 + 1 file changed, 1 insertion(+) create mode 100644 lib/l10n/app_da.arb diff --git a/lib/l10n/app_da.arb b/lib/l10n/app_da.arb new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/lib/l10n/app_da.arb @@ -0,0 +1 @@ +{} From 53ffe5572cc507112519e148e60afec2e7669fad Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Wed, 12 Oct 2022 19:30:54 +0000 Subject: [PATCH 02/14] Added translation using Weblate (Italian) --- lib/l10n/app_it.arb | 1 + 1 file changed, 1 insertion(+) create mode 100644 lib/l10n/app_it.arb diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/lib/l10n/app_it.arb @@ -0,0 +1 @@ +{} From 74603181e8402c0fb52ac5efb72d1a796930783f Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Wed, 12 Oct 2022 19:34:41 +0000 Subject: [PATCH 03/14] Translated using Weblate (Italian) Currently translated at 0.8% (1 of 121 strings) Translation: Untare Tandoor Community App/App Translate-URL: http://translate.tandoor.dev/projects/untare-tandoor-community-app/app/it/ --- lib/l10n/app_it.arb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index 0967ef4..fd64ad3 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -1 +1,4 @@ -{} +{ + "search": "Ricerca", + "@search": {} +} From 4926db17a32b176851cebdecbff6ef75efe69965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne?= Date: Wed, 12 Oct 2022 23:10:44 +0000 Subject: [PATCH 04/14] Added translation using Weblate (French) --- lib/l10n/app_fr.arb | 1 + 1 file changed, 1 insertion(+) create mode 100644 lib/l10n/app_fr.arb diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/lib/l10n/app_fr.arb @@ -0,0 +1 @@ +{} From 1e58b5f4a23a78f4c8637dc8aa8043adc86bcca7 Mon Sep 17 00:00:00 2001 From: bebur Date: Thu, 13 Oct 2022 07:23:46 +0000 Subject: [PATCH 05/14] Added translation using Weblate (Dutch) --- lib/l10n/app_nl.arb | 1 + 1 file changed, 1 insertion(+) create mode 100644 lib/l10n/app_nl.arb diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/lib/l10n/app_nl.arb @@ -0,0 +1 @@ +{} From 867ceb0c006fd24bf0dc1f933249e8159367cd18 Mon Sep 17 00:00:00 2001 From: Snawe Date: Fri, 14 Oct 2022 13:56:45 +0200 Subject: [PATCH 06/14] Create template for feature requests --- .github/ISSUE_TEMPLATE/feature_request.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..08ae28a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,22 @@ +name: Feature Request +description: Suggest a feature request for Untare +labels: feature request +body: + - type: textarea + attributes: + label: Your Request + description: > + What issue/problem is your feature request trying to solve? What becomes easier when implemented? + validations: + required: true + - type: textarea + attributes: + label: The Current State + description: > + If, how is it currently solved? + validations: + required: false + - type: textarea + attributes: + label: Additional Context + description: If there is anything else to say, please do so here. From e077aaae6cf582bd4d277282f7ae1d77665dd5a2 Mon Sep 17 00:00:00 2001 From: Snawe Date: Fri, 14 Oct 2022 14:05:05 +0200 Subject: [PATCH 07/14] Create template for bug reports --- .github/ISSUE_TEMPLATE/bug_report.yml | 39 +++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..d260653 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,39 @@ +name: Bug Report +description: Report for broken or incorrect behaviour +labels: unconfirmed bug +body: + - type: textarea + attributes: + label: Bug Summary + description: Summerize your bug report + validations: + required: true + - type: textarea + attributes: + label: Reproduction Steps + description: > + What you did to make it happen. + validations: + required: true + - type: textarea + attributes: + label: Expected Results + description: > + What did you expect to happen? + validations: + required: true + - type: textarea + attributes: + label: Actual Results + description: > + What actually happened? + validations: + required: true + - type: checkboxes + attributes: + label: Checklist + description: > + Please confirm that you have done the following checks! + options: + - label: I have searched the open issues for duplicates. + required: true From af22e56593a9dc67b2f554b65a44b263337f9af3 Mon Sep 17 00:00:00 2001 From: Morten Zink Stage Date: Thu, 13 Oct 2022 20:27:29 +0000 Subject: [PATCH 08/14] Translated using Weblate (Danish) Currently translated at 100.0% (121 of 121 strings) Translation: Untare Tandoor Community App/App Translate-URL: http://translate.tandoor.dev/projects/untare-tandoor-community-app/app/da/ --- lib/l10n/app_da.arb | 245 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 244 insertions(+), 1 deletion(-) diff --git a/lib/l10n/app_da.arb b/lib/l10n/app_da.arb index 0967ef4..405f54b 100644 --- a/lib/l10n/app_da.arb +++ b/lib/l10n/app_da.arb @@ -1 +1,244 @@ -{} +{ + "search": "Søg", + "@search": {}, + "create": "Opret", + "@create": {}, + "import": "Importer", + "@import": {}, + "url": "Url", + "@url": {}, + "recipesTooltipAddRecipe": "Tilføj opskrift", + "@recipesTooltipAddRecipe": {}, + "noRecipesFound": "Ingen opskrifter fundet", + "@noRecipesFound": {}, + "recipeEdit": "Rediger opskrift", + "@recipeEdit": {}, + "recipeCreate": "Opret opskrift", + "@recipeCreate": {}, + "recipeNoIngredientsPresent": "Der er i øjeblikket ingen ingredienser her", + "@recipeNoIngredientsPresent": {}, + "recipeNoDirectionsPresent": "Der er i øjeblikket ingen fremgangsmåde", + "@recipeNoDirectionsPresent": {}, + "edit": "Rediger", + "@edit": {}, + "add": "Tilføj", + "@add": {}, + "remove": "Fjern", + "@remove": {}, + "moreTooltip": "Mere", + "@moreTooltip": {}, + "saved": "Gemt", + "@saved": {}, + "cancel": "Annuller", + "@cancel": {}, + "addToMealPlan": "Tilføj til madplan", + "@addToMealPlan": {}, + "alternativeTitle": "Alternativ titel", + "@alternativeTitle": {}, + "addToShoppingList": "Tilføj til indkøbsliste", + "@addToShoppingList": {}, + "addToShoppingListTooltipIsInStock": "Er på lager", + "@addToShoppingListTooltipIsInStock": {}, + "addToShoppingListTooltipAddToStock": "Tilføj til lager", + "@addToShoppingListTooltipAddToStock": {}, + "sortBy": "Sorter efter", + "@sortBy": {}, + "sort": "Sorter", + "@sort": {}, + "sortBySearchRank": "Søgeplacering", + "@sortBySearchRank": {}, + "sortByFavorite": "Favorit", + "@sortByFavorite": {}, + "sortByCreated": "Oprettet", + "@sortByCreated": {}, + "ingredients": "Ingredienser", + "@ingredients": {}, + "directions": "Fremgangsmåde", + "@directions": {}, + "servings": "Serveringer", + "@servings": {}, + "lastCooked": "Sidst tilberedt", + "@lastCooked": {}, + "rating": "Vurdering", + "@rating": {}, + "prepTime": "Forberedelsestid", + "@prepTime": {}, + "waitingTime": "Ventetid", + "@waitingTime": {}, + "screenLock": "Skærmlås", + "@screenLock": {}, + "disabledScreenLock": "Skærmlås deaktiveret", + "@disabledScreenLock": {}, + "enabledScreenLock": "Skærmlås aktiveret", + "@enabledScreenLock": {}, + "name": "Navn", + "@name": {}, + "keywords": "Nøgleord", + "@keywords": {}, + "mealPlanThisWeek": "Denne uge", + "@mealPlanThisWeek": {}, + "mealPlanLastWeek": "Sidste uge", + "@mealPlanLastWeek": {}, + "mealPlanNextWeek": "Næste uge", + "@mealPlanNextWeek": {}, + "mealPlanToday": "I dag", + "@mealPlanToday": {}, + "mealPlanRemove": "Fjern fra madplan", + "@mealPlanRemove": {}, + "mealPlanEntryEdit": "rediger punk på madplan", + "@mealPlanEntryEdit": {}, + "mealPlanEntryAdd": "Tilføj punkt til madplan", + "@mealPlanEntryAdd": {}, + "removeMealType": "Fjern måltidstype", + "@removeMealType": {}, + "shoppingListTitle": "Indkøbsliste", + "@shoppingListTitle": {}, + "uncategorized": "Ukategoriseret", + "@uncategorized": {}, + "shoppingListNoEntries": "Din indkøbsliste er tom", + "@shoppingListNoEntries": {}, + "autoSync": "Automatisk synkronisering", + "@autoSync": {}, + "enabledAutoSync": "Automatisk synkronisering - opdaterer hvert %s. sekund", + "@enabledAutoSync": {}, + "simpleMode": "Enkel tilstand", + "@simpleMode": {}, + "showCompletedItems": "Vis gennemførte", + "@showCompletedItems": {}, + "hideCompletedItems": "Skjul gennemførte", + "@hideCompletedItems": {}, + "markAllAsComplete": "Marker alle som gennemførte", + "@markAllAsComplete": {}, + "removeSupermarketCategory": "Fjern supermarked-kategori", + "@removeSupermarketCategory": {}, + "shareWith": "Del med", + "@shareWith": {}, + "editMealPlanSharing": "Rediger deling af måltidsplan", + "@editMealPlanSharing": {}, + "editShoppingListSharing": "Rediger deling af indkøbsliste", + "@editShoppingListSharing": {}, + "unit": "Enhed", + "@unit": {}, + "units": "Enheder", + "@units": {}, + "note": "Bemærkning", + "@note": {}, + "recipe": "Opskrift", + "@recipe": {}, + "mealType": "Måltidstype", + "@mealType": {}, + "category": "Kategori", + "@category": {}, + "newCategoryName": "Nyt navn", + "@newCategoryName": {}, + "date": "Dato", + "@date": {}, + "days": "Dage", + "@days": {}, + "refreshIntervalInSeconds": "Opdateringsinterval i sekunder", + "@refreshIntervalInSeconds": {}, + "manageFoods": "Administrer madvarer", + "@manageFoods": {}, + "foods": "Fødevarer", + "@foods": {}, + "food": "Fødevare", + "@food": {}, + "editFood": "Rediger fødevare", + "@editFood": {}, + "removeFood": "Fjern fødevare", + "@removeFood": {}, + "removeUnit": "Fjern enhed", + "@removeUnit": {}, + "confirmRemoveFood": "Er du sikker på at du vil slette %s?", + "@confirmRemoveFood": {}, + "settingsTitle": "Indstillinger", + "@settingsTitle": {}, + "settingsCustomization": "Personliggør", + "@settingsCustomization": {}, + "settingsMiscellaneous": "Diverse", + "@settingsMiscellaneous": {}, + "settingsDefaultPage": "Startside", + "@settingsDefaultPage": {}, + "settingsRecipeLayout": "Opskriftslayout", + "@settingsRecipeLayout": {}, + "settingRecipeLayoutCard": "Kort", + "@settingRecipeLayoutCard": {}, + "settingRecipeLayoutList": "Liste", + "@settingRecipeLayoutList": {}, + "settingsDarkMode": "Dark mode", + "@settingsDarkMode": {}, + "settingsSharedWith": "Delt med", + "@settingsSharedWith": {}, + "settingsRefreshInterval": "Opdateringsinterval", + "@settingsRefreshInterval": {}, + "settingsRecentDays": "Nylige dage", + "@settingsRecentDays": {}, + "settingsRecentDaysDescription": "Viser de sidste %s dage af indkøbsliste", + "@settingsRecentDaysDescription": {}, + "settingsLogout": "Log ud", + "@settingsLogout": {}, + "accentColor": "Accentfarve", + "@accentColor": {}, + "pickColor": "Vælg en farve", + "@pickColor": {}, + "editRecentDays": "Rediger nylige dage", + "@editRecentDays": {}, + "editRefreshInterval": "Rediger opdateringsinterval", + "@editRefreshInterval": {}, + "editIngredient": "Rediger ingrediens", + "@editIngredient": {}, + "addingIngredientsToShoppingList": "Tilføjer ingrediens til indkøbslisten", + "@addingIngredientsToShoppingList": {}, + "importingRecipe": "Importerer opskrift", + "@importingRecipe": {}, + "splitDirections": "Opdel fremgangsmåde", + "@splitDirections": {}, + "removedRecipe": "Opskrift fjernet", + "@removedRecipe": {}, + "updatingRecipe": "Opdaterer opskrift", + "@updatingRecipe": {}, + "addedToMealPlan": "Tilføjet til madplan", + "@addedToMealPlan": {}, + "officialServer": "Officiel server", + "@officialServer": {}, + "username": "Brugernavn", + "@username": {}, + "password": "Adgangskode", + "@password": {}, + "spaces": "Områder", + "@spaces": {}, + "recipesTitle": "Opskrifter", + "@recipesTitle": {}, + "importRecipe": "Importer opskrift", + "@importRecipe": {}, + "recipeNoStepsFound": "Ingen trin fundet - tilføj nogle", + "@recipeNoStepsFound": {}, + "addMealPlanEntry": "Tilføj punkt på madplan", + "@addMealPlanEntry": {}, + "addToShoppingListTooltipAlreadyOnShoppingList": "Er allerede på din indkøbsliste", + "@addToShoppingListTooltipAlreadyOnShoppingList": {}, + "mealPlanTitle": "Madplan", + "@mealPlanTitle": {}, + "editMealType": "Rediger måltidstype", + "@editMealType": {}, + "editShoppingListEntry": "Rediger indkøbsliste-element", + "@editShoppingListEntry": {}, + "disabledAutoSync": "Automatisk synkronisering deaktiveret", + "@disabledAutoSync": {}, + "editSupermarketCategories": "Rediger supermarked-kategorier", + "@editSupermarketCategories": {}, + "quantity": "Mængde", + "@quantity": {}, + "manageUnits": "Administrer enheder", + "@manageUnits": {}, + "editUnit": "Rediger enhed", + "@editUnit": {}, + "confirmRemoveUnit": "Er du sikker på at du vil slette %s?", + "@confirmRemoveUnit": {}, + "settingsRefreshIntervalDescription": "Opdaterer indkøbslisten hvert %s. sekund når automatisk synkronisering er aktiveret", + "@settingsRefreshIntervalDescription": {}, + "createIngredient": "Opret ingrediens", + "@createIngredient": {}, + "shoppingListItemsAdded": "Tilføjet artikler til indkøbsliste", + "@shoppingListItemsAdded": {} +} From 65500af01447619e238b3968979073e808c28d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne?= Date: Wed, 12 Oct 2022 23:12:02 +0000 Subject: [PATCH 09/14] Translated using Weblate (French) Currently translated at 8.2% (10 of 121 strings) Translation: Untare Tandoor Community App/App Translate-URL: http://translate.tandoor.dev/projects/untare-tandoor-community-app/app/fr/ --- lib/l10n/app_fr.arb | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 0967ef4..821efe9 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -1 +1,22 @@ -{} +{ + "search": "Rechercher", + "@search": {}, + "create": "Créer", + "@create": {}, + "import": "Importer", + "@import": {}, + "importRecipe": "Importer une recette", + "@importRecipe": {}, + "url": "Url", + "@url": {}, + "recipesTooltipAddRecipe": "Ajouter une recette", + "@recipesTooltipAddRecipe": {}, + "recipeEdit": "Modifier la recette", + "@recipeEdit": {}, + "recipeCreate": "Nouvelle recette", + "@recipeCreate": {}, + "recipesTitle": "Recettes", + "@recipesTitle": {}, + "noRecipesFound": "Pas de recettes trouvées", + "@noRecipesFound": {} +} From 95469edc54edf77ed37e44b3d42d8f82fb45273b Mon Sep 17 00:00:00 2001 From: bebur Date: Thu, 13 Oct 2022 07:26:52 +0000 Subject: [PATCH 10/14] Translated using Weblate (Dutch) Currently translated at 100.0% (121 of 121 strings) Translation: Untare Tandoor Community App/App Translate-URL: http://translate.tandoor.dev/projects/untare-tandoor-community-app/app/nl/ --- lib/l10n/app_nl.arb | 245 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 244 insertions(+), 1 deletion(-) diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index 0967ef4..7d7736c 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -1 +1,244 @@ -{} +{ + "search": "Zoeken", + "@search": {}, + "import": "Importeren", + "@import": {}, + "importRecipe": "Importeer recept", + "@importRecipe": {}, + "url": "Url", + "@url": {}, + "recipesTooltipAddRecipe": "Recept toevoegen", + "@recipesTooltipAddRecipe": {}, + "noRecipesFound": "Geen recepten gevonden", + "@noRecipesFound": {}, + "recipeEdit": "Recept bewerken", + "@recipeEdit": {}, + "recipeNoStepsFound": "Geen stappen gevonden - voeg stap toe", + "@recipeNoStepsFound": {}, + "recipeNoIngredientsPresent": "Geen ingrediënten aanwezig", + "@recipeNoIngredientsPresent": {}, + "recipeNoDirectionsPresent": "Geen beschrijving aanwezig", + "@recipeNoDirectionsPresent": {}, + "edit": "Bewerken", + "@edit": {}, + "add": "Toevoegen", + "@add": {}, + "remove": "Verwijderen", + "@remove": {}, + "moreTooltip": "Meer", + "@moreTooltip": {}, + "saved": "Opgeslagen", + "@saved": {}, + "addToMealPlan": "Toevoegen aan maaltijdplan", + "@addToMealPlan": {}, + "addMealPlanEntry": "Voeg maaltijdplan toe", + "@addMealPlanEntry": {}, + "alternativeTitle": "Alternatieve titel", + "@alternativeTitle": {}, + "addToShoppingListTooltipIsInStock": "Is op voorraad", + "@addToShoppingListTooltipIsInStock": {}, + "addToShoppingListTooltipAddToStock": "Toevoegen aan voorraad", + "@addToShoppingListTooltipAddToStock": {}, + "addToShoppingListTooltipAlreadyOnShoppingList": "Staat al op je boodschappenlijstje", + "@addToShoppingListTooltipAlreadyOnShoppingList": {}, + "sortBy": "Sorteer op", + "@sortBy": {}, + "sort": "Sorteren", + "@sort": {}, + "sortBySearchRank": "Zoekrang", + "@sortBySearchRank": {}, + "sortByFavorite": "Favoriet", + "@sortByFavorite": {}, + "sortByCreated": "Aangemaakt", + "@sortByCreated": {}, + "directions": "Gebruiksaanwijzing", + "@directions": {}, + "servings": "Porties", + "@servings": {}, + "lastCooked": "Laatst gekookt", + "@lastCooked": {}, + "rating": "Beoordeling", + "@rating": {}, + "prepTime": "Voorbereidingstijd", + "@prepTime": {}, + "waitingTime": "Wachttijd", + "@waitingTime": {}, + "screenLock": "Schermvergrendeling", + "@screenLock": {}, + "enabledScreenLock": "Schermvergrendeling ingeschakeld", + "@enabledScreenLock": {}, + "name": "Naam", + "@name": {}, + "keywords": "Trefwoorden", + "@keywords": {}, + "mealPlanTitle": "Maaltijdplan", + "@mealPlanTitle": {}, + "mealPlanThisWeek": "Deze week", + "@mealPlanThisWeek": {}, + "mealPlanLastWeek": "Afgelopen week", + "@mealPlanLastWeek": {}, + "mealPlanNextWeek": "Volgende week", + "@mealPlanNextWeek": {}, + "mealPlanToday": "Vandaag", + "@mealPlanToday": {}, + "mealPlanEntryEdit": "Bewerk maaltijdplan", + "@mealPlanEntryEdit": {}, + "mealPlanEntryAdd": "Voeg toe aan maaltijdplan", + "@mealPlanEntryAdd": {}, + "editMealType": "Maaltijdtype bewerken", + "@editMealType": {}, + "removeMealType": "Verwijder maaltijdtype", + "@removeMealType": {}, + "shoppingListTitle": "Boodschappenlijst", + "@shoppingListTitle": {}, + "uncategorized": "Geen categorie", + "@uncategorized": {}, + "editShoppingListEntry": "Invoer boodschappenlijstje bewerken", + "@editShoppingListEntry": {}, + "enabledAutoSync": "Automatisch synchroniseren ingeschakeld - update elke %s seconden", + "@enabledAutoSync": {}, + "simpleMode": "Eenvoudige modus", + "@simpleMode": {}, + "showCompletedItems": "Voltooide items weergeven", + "@showCompletedItems": {}, + "hideCompletedItems": "Voltooide items verbergen", + "@hideCompletedItems": {}, + "editSupermarketCategories": "Supermarktcategorieën bewerken", + "@editSupermarketCategories": {}, + "removeSupermarketCategory": "Supermarktcategorie verwijderen", + "@removeSupermarketCategory": {}, + "shareWith": "Delen met", + "@shareWith": {}, + "editShoppingListSharing": "Delen van boodschappenlijstjes bewerken", + "@editShoppingListSharing": {}, + "editMealPlanSharing": "Maaltijdplan delen bewerken", + "@editMealPlanSharing": {}, + "food": "Eten", + "@food": {}, + "foods": "Eten", + "@foods": {}, + "unit": "Eenheid", + "@unit": {}, + "note": "Notitie", + "@note": {}, + "recipe": "Recept", + "@recipe": {}, + "quantity": "Hoeveelheid", + "@quantity": {}, + "mealType": "Maaltijdtype", + "@mealType": {}, + "category": "Categorie", + "@category": {}, + "newCategoryName": "Nieuwe naam", + "@newCategoryName": {}, + "date": "Datum", + "@date": {}, + "days": "Dagen", + "@days": {}, + "manageFoods": "Eten beheren", + "@manageFoods": {}, + "manageUnits": "Eenheden beheren", + "@manageUnits": {}, + "editFood": "Eten bewerken", + "@editFood": {}, + "editUnit": "Eenheid bewerken", + "@editUnit": {}, + "removeUnit": "Eenheid verwijderen", + "@removeUnit": {}, + "confirmRemoveFood": "Weet je zeker dat je %s wilt verwijderen?", + "@confirmRemoveFood": {}, + "settingsTitle": "Instellingen", + "@settingsTitle": {}, + "settingsCustomization": "Aanpassing", + "@settingsCustomization": {}, + "settingsMiscellaneous": "Diversen", + "@settingsMiscellaneous": {}, + "settingsDefaultPage": "Standaard pagina", + "@settingsDefaultPage": {}, + "settingsRecipeLayout": "Recept lay-out", + "@settingsRecipeLayout": {}, + "settingRecipeLayoutCard": "Kaart", + "@settingRecipeLayoutCard": {}, + "settingRecipeLayoutList": "Lijst", + "@settingRecipeLayoutList": {}, + "settingsDarkMode": "Donkere modus", + "@settingsDarkMode": {}, + "settingsSharedWith": "Gedeeld met", + "@settingsSharedWith": {}, + "settingsRefreshIntervalDescription": "Ververst de boodschappenlijst elke %s seconden wanneer automatisch synchroniseren is ingeschakeld", + "@settingsRefreshIntervalDescription": {}, + "settingsRecentDays": "Recente dagen", + "@settingsRecentDays": {}, + "settingsLogout": "Uitloggen", + "@settingsLogout": {}, + "accentColor": "Accent kleur", + "@accentColor": {}, + "pickColor": "Kies een kleur", + "@pickColor": {}, + "editRecentDays": "Recente dagen bewerken", + "@editRecentDays": {}, + "editRefreshInterval": "Vernieuwingsinterval bewerken", + "@editRefreshInterval": {}, + "editIngredient": "Bewerk ingrediënt", + "@editIngredient": {}, + "createIngredient": "Ingrediënt maken", + "@createIngredient": {}, + "addingIngredientsToShoppingList": "Ingrediënten toevoegen aan boodschappenlijstje", + "@addingIngredientsToShoppingList": {}, + "importingRecipe": "Recept importeren", + "@importingRecipe": {}, + "splitDirections": "Beschrijving splitsen", + "@splitDirections": {}, + "updatingRecipe": "Recept bijwerken", + "@updatingRecipe": {}, + "addedToMealPlan": "Toegevoegd aan maaltijdplan", + "@addedToMealPlan": {}, + "officialServer": "Officiële server", + "@officialServer": {}, + "username": "Gebruikersnaam", + "@username": {}, + "password": "Wachtwoord", + "@password": {}, + "spaces": "Ruimtes", + "@spaces": {}, + "recipesTitle": "Recepten", + "@recipesTitle": {}, + "create": "Maken", + "@create": {}, + "recipeCreate": "Recept maken", + "@recipeCreate": {}, + "cancel": "Annuleren", + "@cancel": {}, + "addToShoppingList": "Toevoegen aan boodschappenlijst", + "@addToShoppingList": {}, + "ingredients": "Ingrediënten", + "@ingredients": {}, + "disabledScreenLock": "Schermvergrendeling uitgeschakeld", + "@disabledScreenLock": {}, + "mealPlanRemove": "Verwijder uit maaltijdplan", + "@mealPlanRemove": {}, + "shoppingListNoEntries": "Er zijn geen artikelen in uw boodschappenlijst", + "@shoppingListNoEntries": {}, + "autoSync": "Automatisch synchroniseren", + "@autoSync": {}, + "disabledAutoSync": "Automatisch synchroniseren uitgeschakeld", + "@disabledAutoSync": {}, + "markAllAsComplete": "Alles markeren als voltooid", + "@markAllAsComplete": {}, + "units": "Eenheden", + "@units": {}, + "refreshIntervalInSeconds": "Vernieuwingsinterval in seconden", + "@refreshIntervalInSeconds": {}, + "removeFood": "Eten verwijderen", + "@removeFood": {}, + "confirmRemoveUnit": "Weet je zeker dat je %s wilt verwijderen?", + "@confirmRemoveUnit": {}, + "settingsRefreshInterval": "Vernieuwingsinterval", + "@settingsRefreshInterval": {}, + "settingsRecentDaysDescription": "Geeft de laatste %s dagen van de boodschappenlijst weer", + "@settingsRecentDaysDescription": {}, + "removedRecipe": "Verwijder recept", + "@removedRecipe": {}, + "shoppingListItemsAdded": "Artikelen toegevoegd aan boodschappenlijst", + "@shoppingListItemsAdded": {} +} From 13729ac36a15def743ae99a9186993ac3fc07252 Mon Sep 17 00:00:00 2001 From: Barbe Date: Fri, 25 Nov 2022 20:51:23 +0000 Subject: [PATCH 11/14] Translated using Weblate (French) Currently translated at 57.8% (70 of 121 strings) Translation: Untare Tandoor Community App/App Translate-URL: http://translate.tandoor.dev/projects/untare-tandoor-community-app/app/fr/ --- lib/l10n/app_fr.arb | 122 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 121 insertions(+), 1 deletion(-) diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 821efe9..39d93ef 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -18,5 +18,125 @@ "recipesTitle": "Recettes", "@recipesTitle": {}, "noRecipesFound": "Pas de recettes trouvées", - "@noRecipesFound": {} + "@noRecipesFound": {}, + "recipeNoStepsFound": "Pas d'étapes trouvées - Ajoutez en une", + "@recipeNoStepsFound": {}, + "recipeNoIngredientsPresent": "Pas d'ingrédients présents", + "@recipeNoIngredientsPresent": {}, + "recipeNoDirectionsPresent": "Pas d'instructions présentes", + "@recipeNoDirectionsPresent": {}, + "edit": "Modifier", + "@edit": {}, + "add": "Ajouter", + "@add": {}, + "remove": "Supprimer", + "@remove": {}, + "moreTooltip": "Plus", + "@moreTooltip": {}, + "saved": "Sauvegardé", + "@saved": {}, + "cancel": "Annuler", + "@cancel": {}, + "addToMealPlan": "Ajouter au menu", + "@addToMealPlan": {}, + "addToShoppingList": "Ajouter à la liste de courses", + "@addToShoppingList": {}, + "addToShoppingListTooltipAlreadyOnShoppingList": "Déjà dans la liste de courses", + "@addToShoppingListTooltipAlreadyOnShoppingList": {}, + "sortBy": "Trier par", + "@sortBy": {}, + "sort": "Trier", + "@sort": {}, + "sortByFavorite": "Favori", + "@sortByFavorite": {}, + "sortByCreated": "Créé", + "@sortByCreated": {}, + "addMealPlanEntry": "Ajouter une recette au menu", + "@addMealPlanEntry": {}, + "directions": "Instructions", + "@directions": {}, + "servings": "Portions", + "@servings": {}, + "lastCooked": "Cuisiné la dernière fois", + "@lastCooked": {}, + "rating": "Notation", + "@rating": {}, + "screenLock": "Écran verrouillé", + "@screenLock": {}, + "disabledScreenLock": "Désactiver verrouillage écran", + "@disabledScreenLock": {}, + "enabledScreenLock": "Écran verrouillé activé", + "@enabledScreenLock": {}, + "name": "Nom", + "@name": {}, + "keywords": "Mots clés", + "@keywords": {}, + "mealPlanTitle": "Menu", + "@mealPlanTitle": {}, + "mealPlanThisWeek": "Cette semaine", + "@mealPlanThisWeek": {}, + "mealPlanNextWeek": "Semaine prochaine", + "@mealPlanNextWeek": {}, + "mealPlanToday": "Aujourd'hui", + "@mealPlanToday": {}, + "mealPlanRemove": "Retirer du menu", + "@mealPlanRemove": {}, + "shoppingListTitle": "Liste de courses", + "@shoppingListTitle": {}, + "uncategorized": "Sans catégorie", + "@uncategorized": {}, + "autoSync": "Synchronisation automatique", + "@autoSync": {}, + "shareWith": "Partager avec", + "@shareWith": {}, + "recipe": "Recette", + "@recipe": {}, + "quantity": "Quantité", + "@quantity": {}, + "category": "Catégorie", + "@category": {}, + "newCategoryName": "Nouveau nom", + "@newCategoryName": {}, + "date": "Date", + "@date": {}, + "days": "Jours", + "@days": {}, + "settingsTitle": "Paramètres", + "@settingsTitle": {}, + "settingsCustomization": "Personnalisation", + "@settingsCustomization": {}, + "settingsMiscellaneous": "Divers", + "@settingsMiscellaneous": {}, + "settingRecipeLayoutList": "Liste", + "@settingRecipeLayoutList": {}, + "settingsDarkMode": "Mode sombre", + "@settingsDarkMode": {}, + "settingsSharedWith": "Partagé avec", + "@settingsSharedWith": {}, + "settingsRefreshInterval": "Intervalle de rafraîchissement", + "@settingsRefreshInterval": {}, + "settingsLogout": "Déconnexion", + "@settingsLogout": {}, + "pickColor": "Choisir une couleur", + "@pickColor": {}, + "editRefreshInterval": "Modifier intervalle rafraîchissement", + "@editRefreshInterval": {}, + "editIngredient": "Modifier ingrédient", + "@editIngredient": {}, + "createIngredient": "Créer ingredient", + "@createIngredient": {}, + "importingRecipe": "Importer recette", + "@importingRecipe": {}, + "splitDirections": "Séparer les instructions", + "@splitDirections": {}, + "removedRecipe": "Recette supprimée", + "@removedRecipe": {}, + "ingredients": "Ingrédients", + "@ingredients": {}, + "prepTime": "Temps de préparation", + "@prepTime": {}, + "mealPlanLastWeek": "La semaine dernière", + "@mealPlanLastWeek": {}, + "disabledAutoSync": "Synchronisation automatique désactivée", + "@disabledAutoSync": {} } From 21432baa659377b8b38d88e73a8267d6756b89a1 Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Dec 2022 15:36:18 +0100 Subject: [PATCH 12/14] Select Category when adding item to shopping list #12 --- .../dialogs/add_shopping_list_entry_dialog.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/components/dialogs/add_shopping_list_entry_dialog.dart b/lib/components/dialogs/add_shopping_list_entry_dialog.dart index 53f33a9..d278108 100644 --- a/lib/components/dialogs/add_shopping_list_entry_dialog.dart +++ b/lib/components/dialogs/add_shopping_list_entry_dialog.dart @@ -5,7 +5,9 @@ import 'package:untare/blocs/shopping_list/shopping_list_bloc.dart'; import 'package:untare/blocs/shopping_list/shopping_list_event.dart'; import 'package:untare/components/form_fields/food_type_ahead_form_field.dart'; import 'package:untare/components/form_fields/quantity_text_form_field.dart'; +import 'package:untare/components/form_fields/supermarket_category_type_ahead_form_field.dart'; import 'package:untare/components/form_fields/unit_type_ahead_form_field.dart'; +import 'package:untare/models/food.dart'; import 'package:untare/models/shopping_list_entry.dart'; import 'package:untare/models/unit.dart'; import 'package:flutter_gen/gen_l10n/app_locales.dart'; @@ -64,6 +66,8 @@ Future addShoppingListEntryDialog(BuildContext context) { ) ], ), + const SizedBox(height: 15), + supermarketCategoryTypeAheadFormField(null, formBuilderKey, context), ], ) ), @@ -83,7 +87,10 @@ Future addShoppingListEntryDialog(BuildContext context) { unit = formBuilderData['unit']; } - ShoppingListEntry newShoppingListEntry = ShoppingListEntry(food: formBuilderData['food'], unit: unit, amount: amount, checked: false); + // Set supermarket category on food + Food foodWithNewCategory = formBuilderData['food'].copyWith(supermarketCategory: formBuilderData['category']); + + ShoppingListEntry newShoppingListEntry = ShoppingListEntry(food: foodWithNewCategory, unit: unit, amount: amount, checked: false); shoppingListBloc.add(CreateShoppingListEntry(shoppingListEntry: newShoppingListEntry)); Navigator.pop(dContext); From 0c3a9b167dfc36411f366785c2ece9af614c1219 Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Dec 2022 15:39:26 +0100 Subject: [PATCH 13/14] Add time tracking to recipe steps Add "marked as done" to recipe steps Update translations --- .../upsert_recipe_step_time_dialog.dart | 60 ++++++++++ .../widgets/recipe_detail_tabbar_widget.dart | 109 ++++++++++++------ lib/l10n/app_da.arb | 5 +- lib/l10n/app_de.arb | 6 +- lib/l10n/app_en.arb | 6 +- lib/l10n/app_fr.arb | 5 +- lib/l10n/app_nl.arb | 5 +- lib/pages/recipe_upsert_page.dart | 68 ++++++++--- 8 files changed, 213 insertions(+), 51 deletions(-) create mode 100644 lib/components/dialogs/upsert_recipe_step_time_dialog.dart diff --git a/lib/components/dialogs/upsert_recipe_step_time_dialog.dart b/lib/components/dialogs/upsert_recipe_step_time_dialog.dart new file mode 100644 index 0000000..b842798 --- /dev/null +++ b/lib/components/dialogs/upsert_recipe_step_time_dialog.dart @@ -0,0 +1,60 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_form_builder/flutter_form_builder.dart'; +import 'package:form_builder_validators/form_builder_validators.dart'; +import 'package:flutter_gen/gen_l10n/app_locales.dart'; + +Future upsertRecipeStepTimeDialog(BuildContext context, int stepIndex, Function(Map) upsertStepTime, {int? stepTime}) { + final formKey = GlobalKey(); + + return showDialog(context: context, builder: (BuildContext dContext) { + return Dialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + insetPadding: const EdgeInsets.all(20), + child: Padding( + padding: const EdgeInsets.all(15), + child: Wrap( + spacing: 10, + children: [ + Padding( + padding: const EdgeInsets.only(bottom: 15), + child: Text(AppLocalizations.of(context)!.timeInMinutes, style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 17)), + ), + const SizedBox(height: 10), + FormBuilder( + key: formKey, + autovalidateMode: AutovalidateMode.disabled, + child: Column( + children: [ + FormBuilderTextField( + name: 'stepTime', + initialValue: (stepTime != null) ? stepTime.toString() : '0', + validator: FormBuilderValidators.compose([ + FormBuilderValidators.required(), + FormBuilderValidators.integer() + ]), + ), + const SizedBox(height: 15), + Container( + alignment: Alignment.bottomRight, + child: MaterialButton( + color: Theme.of(context).primaryColor, + onPressed: () { + formKey.currentState!.setInternalFieldValue('stepIndex', stepIndex, isSetState: true); + formKey.currentState!.save(); + if (formKey.currentState!.validate()) { + upsertStepTime(formKey.currentState!.value); + Navigator.pop(dContext); + } + }, + child: Text(AppLocalizations.of(context)!.edit) + ) + ) + ], + ), + ), + ], + ), + ) + ); + }); +} \ No newline at end of file diff --git a/lib/components/widgets/recipe_detail_tabbar_widget.dart b/lib/components/widgets/recipe_detail_tabbar_widget.dart index a287ba8..73164d5 100644 --- a/lib/components/widgets/recipe_detail_tabbar_widget.dart +++ b/lib/components/widgets/recipe_detail_tabbar_widget.dart @@ -3,6 +3,7 @@ import 'package:untare/models/ingredient.dart'; import 'package:untare/models/recipe.dart'; import 'package:untare/extensions/double_extension.dart'; import 'package:flutter_gen/gen_l10n/app_locales.dart'; +import 'package:collapsible/collapsible.dart'; class RecipeDetailTabBarWidget extends StatefulWidget { final Recipe recipe; @@ -122,7 +123,7 @@ class RecipeDetailTabBarWidgetState extends State { stepList.add(Padding(padding: const EdgeInsets.fromLTRB(20, 12, 15, 10), child: Text(widget.recipe.steps[i].instruction ?? '', style: const TextStyle(fontSize: 15)))); - directionsSteps.add(directionStepLayout(context, Column(crossAxisAlignment: CrossAxisAlignment.start, children: stepList), i+1)); + directionsSteps.add(directionStepLayout(context, Column(crossAxisAlignment: CrossAxisAlignment.start, children: stepList), i+1, widget.recipe.steps[i].time)); } } else if (widget.recipe.steps.length == 1) { @@ -146,7 +147,8 @@ class RecipeDetailTabBarWidgetState extends State { directionStepLayout( context, Padding(padding: const EdgeInsets.fromLTRB(20, 12, 15, 10), child: Text(splitInstruction, style: const TextStyle(fontSize: 15))), - i+1 + i+1, + widget.recipe.steps.first.time ) ); } @@ -165,41 +167,82 @@ class RecipeDetailTabBarWidgetState extends State { } } -Widget directionStepLayout(BuildContext context, Widget widget, int stepNumber) { - return Container( - alignment: Alignment.centerLeft, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - width: 60, - alignment: Alignment.center, - margin: const EdgeInsets.only(bottom: 5), - child: Container( - height: 30, - width: 30, - alignment: Alignment.center, +Widget directionStepLayout(BuildContext context, Widget widget, int stepNumber, int? stepTime) { + bool collapsed = false; + return StatefulBuilder(builder: (context, setState) { + return Container( + alignment: Alignment.centerLeft, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Container( + width: 60, + alignment: Alignment.center, + margin: const EdgeInsets.only(bottom: 5), + child: Container( + height: 30, + width: 30, + alignment: Alignment.center, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all(color: Theme.of(context).primaryColor, width: 2), + ), + child:Text((stepNumber).toString(), style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Theme.of(context).primaryColor)), + ) + ), + if (stepTime != null && stepTime != 0) + Row( + children: [ + Icon(Icons.timer_outlined, size: 15, color: (Theme.of(context).brightness.name == 'light') ? Colors.black45 : Colors.grey[600]!), + Text( + ' $stepTime min', + style: TextStyle( + fontStyle: FontStyle.italic, + color: (Theme.of(context).brightness.name == 'light') ? Colors.black45 : Colors.grey[600]!, + fontSize: 15 + ) + ) + ], + ) + ], + ), + IconButton( + icon: const Icon(Icons.check), + color: (collapsed) ? Theme.of(context).primaryColor : ((Theme.of(context).brightness.name == 'light') ? Colors.black45 : Colors.grey[600]!), + onPressed: () { + setState(() { + collapsed = !collapsed; + }); + }, + ) + ], + ), + Container( + margin: const EdgeInsets.only(left: 30, bottom: 15), decoration: BoxDecoration( - shape: BoxShape.circle, - border: Border.all(color: Theme.of(context).primaryColor, width: 2), + border: Border( + left: BorderSide( + color: Theme.of(context).primaryColor, + width: 1 + ) + ) + ), + child: Collapsible( + collapsed: collapsed, + axis: CollapsibleAxis.vertical, + alignment: Alignment.topCenter, + child: widget, ), - child: Text((stepNumber).toString(), style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Theme.of(context).primaryColor)), ) + ], ), - Container( - margin: const EdgeInsets.only(left: 30, bottom: 15), - decoration: BoxDecoration( - border: Border( - left: BorderSide( - color: Theme.of(context).primaryColor, - width: 1 - ) - ) - ), - child: widget, - ) - ], - ), + ); + } ); } diff --git a/lib/l10n/app_da.arb b/lib/l10n/app_da.arb index 405f54b..0bfdb27 100644 --- a/lib/l10n/app_da.arb +++ b/lib/l10n/app_da.arb @@ -240,5 +240,8 @@ "createIngredient": "Opret ingrediens", "@createIngredient": {}, "shoppingListItemsAdded": "Tilføjet artikler til indkøbsliste", - "@shoppingListItemsAdded": {} + "@shoppingListItemsAdded": {}, + "addTime": "Tilføj tid", + "editTime": "Rediger tid", + "timeInMinutes": "Tid i minutter" } diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 3dc50d1..3a5f81e 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -137,5 +137,9 @@ "username": "Benutzername", "password": "Passwort", - "spaces": "Spaces" + "spaces": "Spaces", + + "addTime": "Zeit hinzufügen", + "editTime": "Zeit ändern", + "timeInMinutes": "Zeit in Minuten" } \ No newline at end of file diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index ce37495..3822dc5 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -137,5 +137,9 @@ "username": "Username", "password": "Password", - "spaces": "Spaces" + "spaces": "Spaces", + + "addTime": "Add time", + "editTime": "Edit time", + "timeInMinutes": "Time in minutes" } \ No newline at end of file diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 39d93ef..7d69817 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -138,5 +138,8 @@ "mealPlanLastWeek": "La semaine dernière", "@mealPlanLastWeek": {}, "disabledAutoSync": "Synchronisation automatique désactivée", - "@disabledAutoSync": {} + "@disabledAutoSync": {}, + "addTime": "Ajouter du temps", + "editTime": "Temps d'édition", + "timeInMinutes": "Temps en minutes" } diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index 7d7736c..425c48c 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -240,5 +240,8 @@ "removedRecipe": "Verwijder recept", "@removedRecipe": {}, "shoppingListItemsAdded": "Artikelen toegevoegd aan boodschappenlijst", - "@shoppingListItemsAdded": {} + "@shoppingListItemsAdded": {}, + "addTime": "Tijd toevoegen", + "editTime": "Wijzigingstijd", + "timeInMinutes": "Tijd in minuten" } diff --git a/lib/pages/recipe_upsert_page.dart b/lib/pages/recipe_upsert_page.dart index 8a5db55..9326506 100644 --- a/lib/pages/recipe_upsert_page.dart +++ b/lib/pages/recipe_upsert_page.dart @@ -28,6 +28,8 @@ import 'package:untare/pages/recipe_detail_page.dart'; import 'package:flutter_gen/gen_l10n/app_locales.dart'; import 'package:path_provider/path_provider.dart'; +import '../components/dialogs/upsert_recipe_step_time_dialog.dart'; + class RecipeUpsertPage extends StatefulWidget { final Recipe? recipe; final bool? splitDirections; @@ -214,6 +216,15 @@ class RecipeUpsertPageState extends State { }); } + void _upsertTimeToStep(Map map) { + List newStepList = (recipe != null && recipe!.steps.isNotEmpty) ? recipe!.steps : []; + newStepList[map['stepIndex']] = recipe!.steps[map['stepIndex']].copyWith(time: int.parse(map['stepTime'])); + + setState(() { + recipe = rebuildRecipe(steps: newStepList); + }); + } + void _editDirections(String? text, int stepIndex) { List newStepList = (recipe != null && recipe!.steps.isNotEmpty) ? recipe!.steps : []; @@ -633,20 +644,38 @@ class RecipeUpsertPageState extends State { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Container( - width: 60, - alignment: Alignment.center, - margin: const EdgeInsets.only(bottom: 5), - child: Container( - height: 30, - width: 30, - alignment: Alignment.center, - decoration: BoxDecoration( - shape: BoxShape.circle, - border: Border.all(color: Theme.of(context).primaryColor, width: 2), - ), - child: Text((stepIndex+1).toString(), style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Theme.of(context).primaryColor)), + Row( + children: [ + Container( + width: 60, + alignment: Alignment.center, + margin: const EdgeInsets.only(bottom: 5), + child: Container( + height: 30, + width: 30, + alignment: Alignment.center, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all(color: Theme.of(context).primaryColor, width: 2), + ), + child: Text((stepIndex+1).toString(), style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Theme.of(context).primaryColor)), + ) + ), + if (step.time != null && step.time != 0) + Row( + children: [ + Icon(Icons.timer_outlined, size: 15, color: (Theme.of(context).brightness.name == 'light') ? Colors.black45 : Colors.grey[600]!), + Text( + ' ${step.time} min', + style: TextStyle( + fontStyle: FontStyle.italic, + color: (Theme.of(context).brightness.name == 'light') ? Colors.black45 : Colors.grey[600]!, + fontSize: 15 + ) + ) + ], ) + ], ), PopupMenuButton( padding: const EdgeInsets.only(right: 25), @@ -659,8 +688,19 @@ class RecipeUpsertPageState extends State { ), itemBuilder: (context) => [ PopupMenuItem( + padding: const EdgeInsets.fromLTRB(15, 5 ,15, 10), height: 18, value: 1, + child: Row( + children: [ + const Icon(Icons.timer_outlined), + Text(' ${(step.time == null || step.time == 0) ? AppLocalizations.of(context)!.addTime : AppLocalizations.of(context)!.editTime}') + ]), + ), + PopupMenuItem( + padding: const EdgeInsets.fromLTRB(15, 5 ,15, 5), + height: 18, + value: 2, child: Row( children: [ const Icon(Icons.delete_outline, color: Colors.redAccent), @@ -673,6 +713,8 @@ class RecipeUpsertPageState extends State { ], onSelected: (value) { if (value == 1) { + upsertRecipeStepTimeDialog(context, stepIndex, _upsertTimeToStep, stepTime: step.time); + } else if (value == 2) { _removeStep(stepIndex); } }, From 47133fa4720f7bdaa660607c0cb3a8c63fcbd425 Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 10 Dec 2022 15:40:32 +0100 Subject: [PATCH 14/14] Update flutter framework and dependencies --- lib/pages/shopping_list_page.dart | 6 +- pubspec.lock | 148 ++++++++++++++++++------------ pubspec.yaml | 5 +- 3 files changed, 94 insertions(+), 65 deletions(-) diff --git a/lib/pages/shopping_list_page.dart b/lib/pages/shopping_list_page.dart index fd487b5..871179e 100644 --- a/lib/pages/shopping_list_page.dart +++ b/lib/pages/shopping_list_page.dart @@ -308,7 +308,7 @@ class ShoppingListPageState extends State with TickerProviderS visualDensity: const VisualDensity(horizontal: 0, vertical: -2), contentPadding: const EdgeInsets.fromLTRB(15, 0, 15, 0), trailing: Transform.scale( - scale: 1.1, + scale: 1.2, child: Checkbox( value: checkBoxValue, activeColor: Theme.of(context).primaryColor, @@ -354,7 +354,7 @@ class ShoppingListPageState extends State with TickerProviderS visualDensity: const VisualDensity(horizontal: 0, vertical: -2), contentPadding: const EdgeInsets.fromLTRB(15, 0, 15, 0), trailing: Transform.scale( - scale: 1.1, + scale: 1.2, child: Checkbox( value: checkBoxValue, activeColor: Theme.of(context).primaryColor, @@ -488,7 +488,7 @@ class ShoppingListPageState extends State with TickerProviderS ? Padding(padding: const EdgeInsets.only(top: 4), child: Text(shoppingListEntry.recipeMealPlan!.name, style: TextStyle(color: Colors.grey[600]!))) : null, trailing: Transform.scale( - scale: 1.1, + scale: 1.2, child: Checkbox( activeColor: Theme.of(context).primaryColor, value: checkBoxValue, diff --git a/pubspec.lock b/pubspec.lock index 4a9a914..29a1819 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,7 +21,7 @@ packages: name: archive url: "https://pub.dartlang.org" source: hosted - version: "3.3.1" + version: "3.3.5" args: dependency: transitive description: @@ -35,7 +35,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.2" + version: "2.9.0" bloc: dependency: transitive description: @@ -63,7 +63,7 @@ packages: name: build_config url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" build_daemon: dependency: transitive description: @@ -84,14 +84,14 @@ packages: name: build_runner url: "https://pub.dartlang.org" source: hosted - version: "2.2.1" + version: "2.3.2" build_runner_core: dependency: transitive description: name: build_runner_core url: "https://pub.dartlang.org" source: hosted - version: "7.2.4" + version: "7.2.7" built_collection: dependency: transitive description: @@ -105,42 +105,35 @@ packages: name: built_value url: "https://pub.dartlang.org" source: hosted - version: "8.4.1" + version: "8.4.2" cached_network_image: dependency: "direct main" description: name: cached_network_image url: "https://pub.dartlang.org" source: hosted - version: "3.2.1" + version: "3.2.3" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "2.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.2" characters: dependency: transitive description: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.1" + version: "1.2.1" checked_yaml: dependency: transitive description: @@ -161,7 +154,7 @@ packages: name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" code_builder: dependency: transitive description: @@ -169,6 +162,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.3.0" + collapsible: + dependency: "direct main" + description: + name: collapsible + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" collection: dependency: transitive description: @@ -189,7 +189,7 @@ packages: name: convert url: "https://pub.dartlang.org" source: hosted - version: "3.0.2" + version: "3.1.1" cross_file: dependency: transitive description: @@ -231,7 +231,7 @@ packages: name: dropdown_search url: "https://pub.dartlang.org" source: hosted - version: "5.0.3" + version: "5.0.5" equatable: dependency: "direct main" description: @@ -245,7 +245,7 @@ packages: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.3.1" ffi: dependency: transitive description: @@ -320,14 +320,28 @@ packages: name: flutter_form_builder url: "https://pub.dartlang.org" source: hosted - version: "7.6.0" + version: "7.7.0" flutter_keyboard_visibility: dependency: transitive description: name: flutter_keyboard_visibility url: "https://pub.dartlang.org" source: hosted - version: "5.3.0" + version: "5.4.0" + flutter_keyboard_visibility_linux: + dependency: transitive + description: + name: flutter_keyboard_visibility_linux + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + flutter_keyboard_visibility_macos: + dependency: transitive + description: + name: flutter_keyboard_visibility_macos + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" flutter_keyboard_visibility_platform_interface: dependency: transitive description: @@ -342,6 +356,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0" + flutter_keyboard_visibility_windows: + dependency: transitive + description: + name: flutter_keyboard_visibility_windows + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" flutter_launcher_icons: dependency: "direct dev" description: @@ -395,7 +416,7 @@ packages: name: flutter_svg url: "https://pub.dartlang.org" source: hosted - version: "1.1.5" + version: "1.1.6" flutter_test: dependency: "direct dev" description: flutter @@ -433,35 +454,35 @@ packages: name: form_builder_image_picker url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "3.1.0" form_builder_validators: dependency: "direct main" description: name: form_builder_validators url: "https://pub.dartlang.org" source: hosted - version: "8.3.0" + version: "8.4.0" frontend_server_client: dependency: transitive description: name: frontend_server_client url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "3.2.0" glob: dependency: transitive description: name: glob url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" graphs: dependency: transitive description: name: graphs url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.2.0" grouped_list: dependency: "direct main" description: @@ -510,21 +531,21 @@ packages: name: http_parser url: "https://pub.dartlang.org" source: hosted - version: "4.0.1" + version: "4.0.2" image: dependency: transitive description: name: image url: "https://pub.dartlang.org" source: hosted - version: "3.2.0" + version: "3.2.2" image_picker: dependency: transitive description: name: image_picker url: "https://pub.dartlang.org" source: hosted - version: "0.8.5+3" + version: "0.8.6" image_picker_android: dependency: transitive description: @@ -594,7 +615,7 @@ packages: name: lints url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.1" logger: dependency: transitive description: @@ -608,35 +629,35 @@ packages: name: logging url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.1.0" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.11" + version: "0.12.12" material_color_utilities: dependency: transitive description: name: material_color_utilities url: "https://pub.dartlang.org" source: hosted - version: "0.1.4" + version: "0.1.5" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0" mime: dependency: transitive description: name: mime url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.3" nested: dependency: transitive description: @@ -664,7 +685,7 @@ packages: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.1" + version: "1.8.2" path_drawing: dependency: transitive description: @@ -692,7 +713,7 @@ packages: name: path_provider_android url: "https://pub.dartlang.org" source: hosted - version: "2.0.20" + version: "2.0.22" path_provider_ios: dependency: transitive description: @@ -741,7 +762,7 @@ packages: name: petitparser url: "https://pub.dartlang.org" source: hosted - version: "5.0.0" + version: "5.1.0" platform: dependency: transitive description: @@ -756,6 +777,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.3" + pointycastle: + dependency: transitive + description: + name: pointycastle + url: "https://pub.dartlang.org" + source: hosted + version: "3.6.2" pool: dependency: transitive description: @@ -776,14 +804,14 @@ packages: name: provider url: "https://pub.dartlang.org" source: hosted - version: "6.0.3" + version: "6.0.4" pub_semver: dependency: transitive description: name: pub_semver url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.3" pubspec_parse: dependency: transitive description: @@ -804,7 +832,7 @@ packages: name: rxdart url: "https://pub.dartlang.org" source: hosted - version: "0.27.5" + version: "0.27.7" settings_ui: dependency: "direct main" description: @@ -825,7 +853,7 @@ packages: name: shelf_web_socket url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.3" shimmer: dependency: "direct main" description: @@ -839,7 +867,7 @@ packages: name: signature url: "https://pub.dartlang.org" source: hosted - version: "5.2.1" + version: "5.3.0" sky_engine: dependency: transitive description: flutter @@ -858,7 +886,7 @@ packages: name: source_gen url: "https://pub.dartlang.org" source: hosted - version: "1.2.5" + version: "1.2.6" source_helper: dependency: transitive description: @@ -872,21 +900,21 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.2" + version: "1.9.0" sqflite: dependency: transitive description: name: sqflite url: "https://pub.dartlang.org" source: hosted - version: "2.0.3+1" + version: "2.2.2" sqflite_common: dependency: transitive description: name: sqflite_common url: "https://pub.dartlang.org" source: hosted - version: "2.3.0" + version: "2.4.0+2" stack_trace: dependency: transitive description: @@ -907,14 +935,14 @@ packages: name: stream_transform url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" synchronized: dependency: transitive description: @@ -928,14 +956,14 @@ packages: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.9" + version: "0.4.12" timing: dependency: transitive description: @@ -956,7 +984,7 @@ packages: name: uuid url: "https://pub.dartlang.org" source: hosted - version: "3.0.6" + version: "3.0.7" vector_math: dependency: transitive description: @@ -1005,7 +1033,7 @@ packages: name: watcher url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.2" web_socket_channel: dependency: transitive description: @@ -1019,14 +1047,14 @@ packages: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.1.2" workmanager: dependency: "direct main" description: name: workmanager url: "https://pub.dartlang.org" source: hosted - version: "0.5.0" + version: "0.5.1" xdg_directories: dependency: transitive description: @@ -1049,5 +1077,5 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.17.0 <3.0.0" - flutter: ">=3.0.0" + dart: ">=2.18.0 <3.0.0" + flutter: ">=3.3.0" diff --git a/pubspec.yaml b/pubspec.yaml index 1a7b1e4..d21c1ba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.1.0+1 +version: 1.0.0+1 environment: sdk: ">=2.17.0 <3.0.0" @@ -43,7 +43,7 @@ dependencies: flutter_form_builder: ^7.5.0 form_builder_validators: ^8.3.0 form_builder_extra_fields: ^8.3.0 - form_builder_image_picker: ^2.0.0 + form_builder_image_picker: ^3.1.0 flutter_slidable: ^2.0.0 intl: ^0.17.0 grouped_list: ^5.1.2 @@ -54,6 +54,7 @@ dependencies: flutter_colorpicker: ^1.0.3 wakelock: ^0.6.2 path_provider: ^2.0.11 + collapsible: ^1.0.0 dev_dependencies: flutter_test: