mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-04 05:39:00 -05:00
Recipe editor improvements
This commit is contained in:
@@ -7,24 +7,28 @@
|
|||||||
<v-closable-card-title :title="$t('Move')" v-model="dialog"
|
<v-closable-card-title :title="$t('Move')" v-model="dialog"
|
||||||
:sub-title="ingredientToString(step.ingredients[editingIngredientIndex])"></v-closable-card-title>
|
:sub-title="ingredientToString(step.ingredients[editingIngredientIndex])"></v-closable-card-title>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-btn block :disabled="editingIngredientIndex== 0" @click="moveIngredient(editingIngredientIndex, props.stepIndex, 0)">{{ $t('First') }}</v-btn>
|
<template v-if="step.ingredients.length > 1">
|
||||||
<v-btn block :disabled="editingIngredientIndex == 0" class="mt-1" @click="moveIngredient(editingIngredientIndex, props.stepIndex, editingIngredientIndex - 1)">{{
|
<v-btn block :disabled="editingIngredientIndex== 0" @click="moveIngredient(editingIngredientIndex, props.stepIndex, 0)">{{ $t('First') }}</v-btn>
|
||||||
$t('Up')
|
<v-btn block :disabled="editingIngredientIndex == 0" class="mt-1" @click="moveIngredient(editingIngredientIndex, props.stepIndex, editingIngredientIndex - 1)">
|
||||||
}}
|
{{
|
||||||
</v-btn>
|
$t('Up')
|
||||||
<v-btn block :disabled="editingIngredientIndex + 1 == step.ingredients.length" class="mt-1"
|
}}
|
||||||
@click="moveIngredient(editingIngredientIndex, props.stepIndex, editingIngredientIndex + 1)"> {{ $t('Down') }}
|
</v-btn>
|
||||||
</v-btn>
|
<v-btn block :disabled="editingIngredientIndex + 1 == step.ingredients.length" class="mt-1"
|
||||||
<v-btn block :disabled="editingIngredientIndex + 1 == step.ingredients.length" class="mt-1"
|
@click="moveIngredient(editingIngredientIndex, props.stepIndex, editingIngredientIndex + 1)"> {{ $t('Down') }}
|
||||||
@click="moveIngredient(editingIngredientIndex, props.stepIndex, step.ingredients.length - 1)">{{ $t('Last') }}
|
</v-btn>
|
||||||
</v-btn>
|
<v-btn block :disabled="editingIngredientIndex + 1 == step.ingredients.length" class="mt-1"
|
||||||
|
@click="moveIngredient(editingIngredientIndex, props.stepIndex, step.ingredients.length - 1)">{{ $t('Last') }}
|
||||||
|
</v-btn>
|
||||||
|
</template>
|
||||||
|
|
||||||
{{ $t('Step') }}
|
{{ $t('Step') }}
|
||||||
<v-btn block v-for="(s,i) in recipe.steps" :disabled="i == props.stepIndex" class="mt-1"
|
<v-btn block v-for="(s,i) in recipe.steps" :disabled="i == props.stepIndex" class="mt-1"
|
||||||
@click="moveIngredient(editingIngredientIndex, i, recipe.steps[i].ingredients.length)">{{ i + 1 }} <span v-if="'name' in s">{{ s.name }}</span>
|
@click="moveIngredient(editingIngredientIndex, i, recipe.steps[i].ingredients.length)">{{ i + 1 }} <span v-if="'name' in s">{{ s.name }}</span>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-btn @click="dialog = false">{{$t('Close')}}</v-btn>
|
<v-btn @click="dialog = false">{{ $t('Close') }}</v-btn>
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-dialog>
|
</v-dialog>
|
||||||
@@ -39,8 +43,8 @@ import {ref, watch} from "vue";
|
|||||||
import {useDisplay} from "vuetify/framework";
|
import {useDisplay} from "vuetify/framework";
|
||||||
|
|
||||||
const dialog = defineModel<Boolean>({required: true, default: false})
|
const dialog = defineModel<Boolean>({required: true, default: false})
|
||||||
const step = defineModel<Step|SourceImportStep>('step', {required: true})
|
const step = defineModel<Step | SourceImportStep>('step', {required: true})
|
||||||
const recipe = defineModel<Recipe|SourceImportRecipe>('recipe', {required: true})
|
const recipe = defineModel<Recipe | SourceImportRecipe>('recipe', {required: true})
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
stepIndex: {type: Number, required: true},
|
stepIndex: {type: Number, required: true},
|
||||||
ingredientIndex: {type: Number, required: true},
|
ingredientIndex: {type: Number, required: true},
|
||||||
|
|||||||
@@ -91,7 +91,10 @@
|
|||||||
$t('Move')
|
$t('Move')
|
||||||
}}
|
}}
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
|
<v-list-item v-if="ingredient.originalText" prepend-icon="$import">
|
||||||
|
<v-list-item-title>{{$t('Original_Text')}}</v-list-item-title>
|
||||||
|
<v-list-item-subtitle>{{ ingredient.originalText}}</v-list-item-subtitle>
|
||||||
|
</v-list-item>
|
||||||
</v-list>
|
</v-list>
|
||||||
</v-menu>
|
</v-menu>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
@@ -178,6 +181,7 @@
|
|||||||
<v-closable-card-title :title="$t('Ingredient Editor')" v-model="dialogIngredientEditor"></v-closable-card-title>
|
<v-closable-card-title :title="$t('Ingredient Editor')" v-model="dialogIngredientEditor"></v-closable-card-title>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-form>
|
<v-form>
|
||||||
|
<v-text-field :label="$t('Original_Text')" readonly v-model="step.ingredients[editingIngredientIndex].originalText" v-if="step.ingredients[editingIngredientIndex].originalText"></v-text-field>
|
||||||
<v-number-input v-model="step.ingredients[editingIngredientIndex].amount" inset control-variant="stacked" autofocus :label="$t('Amount')"
|
<v-number-input v-model="step.ingredients[editingIngredientIndex].amount" inset control-variant="stacked" autofocus :label="$t('Amount')"
|
||||||
:min="0" :precision="2" v-if="!step.ingredients[editingIngredientIndex].isHeader"></v-number-input>
|
:min="0" :precision="2" v-if="!step.ingredients[editingIngredientIndex].isHeader"></v-number-input>
|
||||||
<model-select model="Unit" v-model="step.ingredients[editingIngredientIndex].unit" :label="$t('Unit')" v-if="!step.ingredients[editingIngredientIndex].isHeader"
|
<model-select model="Unit" v-model="step.ingredients[editingIngredientIndex].unit" :label="$t('Unit')" v-if="!step.ingredients[editingIngredientIndex].isHeader"
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-card :loading="loading">
|
<v-card :loading="loading">
|
||||||
<v-closable-card-title
|
<v-closable-card-title
|
||||||
:title="$t(modelClass.model.localizationKey) + ((isChanged) ? '*' : '')"
|
:sub-title="$t(modelClass.model.localizationKey) + ((isChanged) ? ` (${$t('unsaved')})` : '')"
|
||||||
:sub-title="objectName"
|
:title="objectName"
|
||||||
:icon="modelClass.model.icon"
|
:icon="modelClass.model.icon"
|
||||||
@close="closeDialog()"
|
@close="closeDialog()"
|
||||||
:hide-close="!dialog"
|
:hide-close="!dialog"
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<v-tab value="recipe">{{ $t('Recipe') }}</v-tab>
|
<v-tab value="recipe">{{ $t('Recipe') }}</v-tab>
|
||||||
<v-tab value="steps">{{ $t('Steps') }}</v-tab>
|
<v-tab value="steps">{{ $t('Steps') }}</v-tab>
|
||||||
<v-tab value="properties">{{ $t('Properties') }}</v-tab>
|
<v-tab value="properties">{{ $t('Properties') }}</v-tab>
|
||||||
<v-tab value="settings">{{ $t('Settings') }}</v-tab>
|
<v-tab value="settings">{{ $t('Miscellaneous') }}</v-tab>
|
||||||
</v-tabs>
|
</v-tabs>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
<v-card-text v-if="!isSpaceAtRecipeLimit(useUserPreferenceStore().activeSpace)">
|
<v-card-text v-if="!isSpaceAtRecipeLimit(useUserPreferenceStore().activeSpace)">
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
<v-form :disabled="loading || fileApiLoading">
|
<v-form :disabled="loading || fileApiLoading">
|
||||||
<v-text-field :label="$t('Name')" v-model="editingObj.name"></v-text-field>
|
<v-text-field :label="$t('Name')" v-model="editingObj.name"></v-text-field>
|
||||||
<v-textarea :label="$t('Description')" v-model="editingObj.description" clearable counter="512" rows="2"></v-textarea>
|
<v-textarea :label="$t('Description')" v-model="editingObj.description" clearable counter="512" rows="2" auto-grow></v-textarea>
|
||||||
|
|
||||||
<v-row>
|
<v-row>
|
||||||
<v-col cols="12" md="6">
|
<v-col cols="12" md="6">
|
||||||
@@ -99,9 +99,9 @@
|
|||||||
v-model="editingObj.showIngredientOverview"></v-checkbox>
|
v-model="editingObj.showIngredientOverview"></v-checkbox>
|
||||||
|
|
||||||
<v-text-field :label="$t('Imported_From')" v-model="editingObj.sourceUrl"></v-text-field>
|
<v-text-field :label="$t('Imported_From')" v-model="editingObj.sourceUrl"></v-text-field>
|
||||||
<v-checkbox :label="$t('Private_Recipe')" :hint="$t('Private_Recipe_Help')" persistent-hint v-model="editingObj._private"></v-checkbox>
|
<v-checkbox :label="$t('Private_Recipe')" persistent-hint v-model="editingObj._private"></v-checkbox>
|
||||||
<model-select mode="tags" model="User" :label="$t('Private_Recipe')" :hint="$t('Private_Recipe_Help')" persistent-hint v-model="editingObj.shared"
|
<model-select mode="tags" model="User" :label="$t('Private_Recipe')" :hint="$t('Private_Recipe_Help')" persistent-hint v-model="editingObj.shared"
|
||||||
append-to-body></model-select>
|
append-to-body v-if="editingObj._private"></model-select>
|
||||||
|
|
||||||
</v-form>
|
</v-form>
|
||||||
</v-tabs-window-item>
|
</v-tabs-window-item>
|
||||||
|
|||||||
@@ -153,9 +153,8 @@ export function useModelEditorFunctions<T>(modelName: EditorSupportedModels, emi
|
|||||||
|
|
||||||
let name = ''
|
let name = ''
|
||||||
|
|
||||||
|
|
||||||
if (editingObj.value.id) {
|
if (editingObj.value.id) {
|
||||||
name = modelClass.value.getLabel(editingObj.value, useUserPreferenceStore().serverSettings.debug)
|
name = modelClass.value.getLabel(editingObj.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name == '') {
|
if (name == '') {
|
||||||
|
|||||||
@@ -578,6 +578,7 @@
|
|||||||
"today_recipes": "",
|
"today_recipes": "",
|
||||||
"tree_root": "",
|
"tree_root": "",
|
||||||
"tree_select": "",
|
"tree_select": "",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "",
|
"updatedon": "",
|
||||||
"view_recipe": "",
|
"view_recipe": "",
|
||||||
"warning_duplicate_filter": "",
|
"warning_duplicate_filter": "",
|
||||||
|
|||||||
@@ -565,6 +565,7 @@
|
|||||||
"today_recipes": "Днешните рецепти",
|
"today_recipes": "Днешните рецепти",
|
||||||
"tree_root": "Корен на дървото",
|
"tree_root": "Корен на дървото",
|
||||||
"tree_select": "Използвайте Избор на дърво",
|
"tree_select": "Използвайте Избор на дърво",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Актуализирано на",
|
"updatedon": "Актуализирано на",
|
||||||
"view_recipe": "Вижте рецепта",
|
"view_recipe": "Вижте рецепта",
|
||||||
"warning_duplicate_filter": "Предупреждение: Поради технически ограничения наличието на множество филтри от една и съща комбинация (и/или/не) може да доведе до неочаквани резултати.",
|
"warning_duplicate_filter": "Предупреждение: Поради технически ограничения наличието на множество филтри от една и съща комбинация (и/или/не) може да доведе до неочаквани резултати.",
|
||||||
|
|||||||
@@ -708,6 +708,7 @@
|
|||||||
"tree_root": "",
|
"tree_root": "",
|
||||||
"tree_select": "",
|
"tree_select": "",
|
||||||
"tsp": "",
|
"tsp": "",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "",
|
"updatedon": "",
|
||||||
"view_recipe": "",
|
"view_recipe": "",
|
||||||
"warning_duplicate_filter": "",
|
"warning_duplicate_filter": "",
|
||||||
|
|||||||
@@ -701,6 +701,7 @@
|
|||||||
"tree_root": "Kořen stromu",
|
"tree_root": "Kořen stromu",
|
||||||
"tree_select": "Použít stromový výběr",
|
"tree_select": "Použít stromový výběr",
|
||||||
"tsp": "lžička [tsp] (US, objem)",
|
"tsp": "lžička [tsp] (US, objem)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Upraveno",
|
"updatedon": "Upraveno",
|
||||||
"view_recipe": "Zobrazit recept",
|
"view_recipe": "Zobrazit recept",
|
||||||
"warning_duplicate_filter": "Varování: Kvůli technickým omezení může použití několika filtrů se stejnou kombinací (a/nebo/ne) přinést neočekávaný výsledek.",
|
"warning_duplicate_filter": "Varování: Kvůli technickým omezení může použití několika filtrů se stejnou kombinací (a/nebo/ne) přinést neočekávaný výsledek.",
|
||||||
|
|||||||
@@ -679,6 +679,7 @@
|
|||||||
"tree_root": "Roden af træet",
|
"tree_root": "Roden af træet",
|
||||||
"tree_select": "Benyt træ vælger",
|
"tree_select": "Benyt træ vælger",
|
||||||
"tsp": "teaspoon [tsp] (US, volumen)",
|
"tsp": "teaspoon [tsp] (US, volumen)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Opdateret den",
|
"updatedon": "Opdateret den",
|
||||||
"view_recipe": "Vis opskrift",
|
"view_recipe": "Vis opskrift",
|
||||||
"warning_duplicate_filter": "Advarsel: På grund af tekniske begrænsninger, kan det give uforventede resultater at have flere filtre med den samme kombination af (og/eller/not).",
|
"warning_duplicate_filter": "Advarsel: På grund af tekniske begrænsninger, kan det give uforventede resultater at have flere filtre med den samme kombination af (og/eller/not).",
|
||||||
|
|||||||
@@ -714,6 +714,7 @@
|
|||||||
"tree_root": "Ursprung des Baums",
|
"tree_root": "Ursprung des Baums",
|
||||||
"tree_select": "Baum-Auswahl verwenden",
|
"tree_select": "Baum-Auswahl verwenden",
|
||||||
"tsp": "Teelöffel [tsp] (US, Volumen)",
|
"tsp": "Teelöffel [tsp] (US, Volumen)",
|
||||||
|
"unsaved": "nicht gespeichert",
|
||||||
"updatedon": "Geändert am",
|
"updatedon": "Geändert am",
|
||||||
"view_recipe": "Rezept anschauen",
|
"view_recipe": "Rezept anschauen",
|
||||||
"warning_duplicate_filter": "Warnung: Wegen technischen Limitierungen können mehrere Filter der selben Kombination (und/oder/nicht) zu unerwarteten Ergebnissen führen.",
|
"warning_duplicate_filter": "Warnung: Wegen technischen Limitierungen können mehrere Filter der selben Kombination (und/oder/nicht) zu unerwarteten Ergebnissen führen.",
|
||||||
|
|||||||
@@ -662,6 +662,7 @@
|
|||||||
"tree_root": "Ρίζα του δέντρου",
|
"tree_root": "Ρίζα του δέντρου",
|
||||||
"tree_select": "Χρήση επιλογής δέντρου",
|
"tree_select": "Χρήση επιλογής δέντρου",
|
||||||
"tsp": "κουτάλι του γλυκού [tsp] (ΗΠΑ, όγκος)",
|
"tsp": "κουτάλι του γλυκού [tsp] (ΗΠΑ, όγκος)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Ενημερώθηκε στις",
|
"updatedon": "Ενημερώθηκε στις",
|
||||||
"view_recipe": "Εμφάνιση συνταγής",
|
"view_recipe": "Εμφάνιση συνταγής",
|
||||||
"warning_duplicate_filter": "Προειδοποίηση: Λόγω τεχνικών περιορισμών η ύπαρξη πολλαπλών φίλτρων με τους ίδιους συνδυασμούς (και/ή/όχι) μπορεί να οδηγήσει σε απρόσμενα αποτελέσματα.",
|
"warning_duplicate_filter": "Προειδοποίηση: Λόγω τεχνικών περιορισμών η ύπαρξη πολλαπλών φίλτρων με τους ίδιους συνδυασμούς (και/ή/όχι) μπορεί να οδηγήσει σε απρόσμενα αποτελέσματα.",
|
||||||
|
|||||||
@@ -711,6 +711,7 @@
|
|||||||
"tree_root": "Root of Tree",
|
"tree_root": "Root of Tree",
|
||||||
"tree_select": "Use Tree Selection",
|
"tree_select": "Use Tree Selection",
|
||||||
"tsp": "teaspoon [tsp] (US, volume)",
|
"tsp": "teaspoon [tsp] (US, volume)",
|
||||||
|
"unsaved": "unsaved",
|
||||||
"updatedon": "Updated On",
|
"updatedon": "Updated On",
|
||||||
"view_recipe": "View Recipe",
|
"view_recipe": "View Recipe",
|
||||||
"warning_duplicate_filter": "Warning: Due to technical limitations having multiple filters of the same combination (and/or/not) might yield unexpected results.",
|
"warning_duplicate_filter": "Warning: Due to technical limitations having multiple filters of the same combination (and/or/not) might yield unexpected results.",
|
||||||
|
|||||||
@@ -708,6 +708,7 @@
|
|||||||
"tree_root": "Raíz del Árbol",
|
"tree_root": "Raíz del Árbol",
|
||||||
"tree_select": "Usar Selección en Árbol",
|
"tree_select": "Usar Selección en Árbol",
|
||||||
"tsp": "cucharadita [tsp] (US, volumen)",
|
"tsp": "cucharadita [tsp] (US, volumen)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Actualizado En",
|
"updatedon": "Actualizado En",
|
||||||
"view_recipe": "Ver Receta",
|
"view_recipe": "Ver Receta",
|
||||||
"warning_duplicate_filter": "Aviso: Debido a limitaciones técnicas tener multiples filtros de la misma combinación (y/o/no - and/or/not) puede causar resultados inesperados.",
|
"warning_duplicate_filter": "Aviso: Debido a limitaciones técnicas tener multiples filtros de la misma combinación (y/o/no - and/or/not) puede causar resultados inesperados.",
|
||||||
|
|||||||
@@ -371,5 +371,6 @@
|
|||||||
"to_navigate": "",
|
"to_navigate": "",
|
||||||
"to_select": "",
|
"to_select": "",
|
||||||
"tree_root": "Root of Tree",
|
"tree_root": "Root of Tree",
|
||||||
|
"unsaved": "",
|
||||||
"warning_feature_beta": "Tämä ominaisuus on BETA (testaus) vaiheessa. Bugeja ja hajottavia muutoksia saattaa ilmaantua tulevaisuudessa tätä ominaisuutta (mahdollisesti menettää ominaisuuksiin liittyvää tietoa) käytettäessä."
|
"warning_feature_beta": "Tämä ominaisuus on BETA (testaus) vaiheessa. Bugeja ja hajottavia muutoksia saattaa ilmaantua tulevaisuudessa tätä ominaisuutta (mahdollisesti menettää ominaisuuksiin liittyvää tietoa) käytettäessä."
|
||||||
}
|
}
|
||||||
@@ -694,6 +694,7 @@
|
|||||||
"total": "total",
|
"total": "total",
|
||||||
"tree_root": "Racine de l’arbre",
|
"tree_root": "Racine de l’arbre",
|
||||||
"tree_select": "Utiliser l'arbre de sélection",
|
"tree_select": "Utiliser l'arbre de sélection",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Mis à jour le",
|
"updatedon": "Mis à jour le",
|
||||||
"view_recipe": "Voir la recette",
|
"view_recipe": "Voir la recette",
|
||||||
"warning_duplicate_filter": "Attention : en raison de limitations techniques, l'emploi de multiples filtres (and/or/not) peut mener à des résultats inattendus.",
|
"warning_duplicate_filter": "Attention : en raison de limitations techniques, l'emploi de multiples filtres (and/or/not) peut mener à des résultats inattendus.",
|
||||||
|
|||||||
@@ -709,6 +709,7 @@
|
|||||||
"tree_root": "מקור העץ",
|
"tree_root": "מקור העץ",
|
||||||
"tree_select": "השתמש בבחירת עץ",
|
"tree_select": "השתמש בבחירת עץ",
|
||||||
"tsp": "כפית",
|
"tsp": "כפית",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "עודכן ב",
|
"updatedon": "עודכן ב",
|
||||||
"view_recipe": "הצג מתכון",
|
"view_recipe": "הצג מתכון",
|
||||||
"warning_duplicate_filter": "אזהרה: בשל אתגרים טכנולוגיים, השימוש במספר מסננים בעל אותו צירוף עלול לגרום לתוצאות בלתי צפויות.",
|
"warning_duplicate_filter": "אזהרה: בשל אתגרים טכנולוגיים, השימוש במספר מסננים בעל אותו צירוף עלול לגרום לתוצאות בלתי צפויות.",
|
||||||
|
|||||||
@@ -667,6 +667,7 @@
|
|||||||
"tree_root": "",
|
"tree_root": "",
|
||||||
"tree_select": "",
|
"tree_select": "",
|
||||||
"tsp": "teáskanál [tsp] (USA, térfogat)",
|
"tsp": "teáskanál [tsp] (USA, térfogat)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Frissítve",
|
"updatedon": "Frissítve",
|
||||||
"view_recipe": "Recept megtekintése",
|
"view_recipe": "Recept megtekintése",
|
||||||
"warning_duplicate_filter": "Figyelem! A technikai megkötések miatt több azonos kombinációjú szűrő (és/vagy nem) használata nem várt eredményt adhat.",
|
"warning_duplicate_filter": "Figyelem! A technikai megkötések miatt több azonos kombinációjú szűrő (és/vagy nem) használata nem várt eredményt adhat.",
|
||||||
|
|||||||
@@ -281,5 +281,6 @@
|
|||||||
"to_close": "",
|
"to_close": "",
|
||||||
"to_navigate": "",
|
"to_navigate": "",
|
||||||
"to_select": "",
|
"to_select": "",
|
||||||
|
"unsaved": "",
|
||||||
"warning_feature_beta": "Այս հատկությունը ԲԵՏԱ տարբերակում է։ Ակնկալեք սխալներ և անգամ խափանող թարմացումներ ապագայում։"
|
"warning_feature_beta": "Այս հատկությունը ԲԵՏԱ տարբերակում է։ Ակնկալեք սխալներ և անգամ խափանող թարմացումներ ապագայում։"
|
||||||
}
|
}
|
||||||
@@ -603,6 +603,7 @@
|
|||||||
"today_recipes": "",
|
"today_recipes": "",
|
||||||
"tree_root": "",
|
"tree_root": "",
|
||||||
"tree_select": "",
|
"tree_select": "",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "",
|
"updatedon": "",
|
||||||
"view_recipe": "",
|
"view_recipe": "",
|
||||||
"warning_duplicate_filter": "",
|
"warning_duplicate_filter": "",
|
||||||
|
|||||||
@@ -707,6 +707,7 @@
|
|||||||
"tree_root": "",
|
"tree_root": "",
|
||||||
"tree_select": "",
|
"tree_select": "",
|
||||||
"tsp": "",
|
"tsp": "",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "",
|
"updatedon": "",
|
||||||
"view_recipe": "",
|
"view_recipe": "",
|
||||||
"warning_duplicate_filter": "",
|
"warning_duplicate_filter": "",
|
||||||
|
|||||||
@@ -619,6 +619,7 @@
|
|||||||
"today_recipes": "Ricette di oggi",
|
"today_recipes": "Ricette di oggi",
|
||||||
"tree_root": "Radice dell'albero",
|
"tree_root": "Radice dell'albero",
|
||||||
"tree_select": "Usa selezione ad albero",
|
"tree_select": "Usa selezione ad albero",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Aggiornato il",
|
"updatedon": "Aggiornato il",
|
||||||
"view_recipe": "Mostra ricetta",
|
"view_recipe": "Mostra ricetta",
|
||||||
"warning_duplicate_filter": "Avviso: a causa di limitazioni tecniche, usare più filtri di ricerca della stessa combinazione (and/or/not) potrebbe portare a risultati inaspettati.",
|
"warning_duplicate_filter": "Avviso: a causa di limitazioni tecniche, usare più filtri di ricerca della stessa combinazione (and/or/not) potrebbe portare a risultati inaspettati.",
|
||||||
|
|||||||
@@ -677,6 +677,7 @@
|
|||||||
"tree_root": "",
|
"tree_root": "",
|
||||||
"tree_select": "",
|
"tree_select": "",
|
||||||
"tsp": "",
|
"tsp": "",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "",
|
"updatedon": "",
|
||||||
"view_recipe": "",
|
"view_recipe": "",
|
||||||
"warning_duplicate_filter": "",
|
"warning_duplicate_filter": "",
|
||||||
|
|||||||
@@ -642,6 +642,7 @@
|
|||||||
"today_recipes": "",
|
"today_recipes": "",
|
||||||
"tree_root": "Rot av tre",
|
"tree_root": "Rot av tre",
|
||||||
"tree_select": "",
|
"tree_select": "",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "",
|
"updatedon": "",
|
||||||
"view_recipe": "",
|
"view_recipe": "",
|
||||||
"warning_duplicate_filter": "",
|
"warning_duplicate_filter": "",
|
||||||
|
|||||||
@@ -666,6 +666,7 @@
|
|||||||
"tree_root": "Hoogste niveau",
|
"tree_root": "Hoogste niveau",
|
||||||
"tree_select": "Gebruik boomselectie",
|
"tree_select": "Gebruik boomselectie",
|
||||||
"tsp": "theelepel [tsp] (VS, volume)",
|
"tsp": "theelepel [tsp] (VS, volume)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Geüpdatet op",
|
"updatedon": "Geüpdatet op",
|
||||||
"view_recipe": "Bekijk recept",
|
"view_recipe": "Bekijk recept",
|
||||||
"warning_duplicate_filter": "Waarschuwing: door technische beperkingen kan het hebben van meerdere filters of dezelfde combinatie (en/of/niet) tot onverwachte resultaten leiden.",
|
"warning_duplicate_filter": "Waarschuwing: door technische beperkingen kan het hebben van meerdere filters of dezelfde combinatie (en/of/niet) tot onverwachte resultaten leiden.",
|
||||||
|
|||||||
@@ -711,6 +711,7 @@
|
|||||||
"tree_root": "Poziom główny drzewa",
|
"tree_root": "Poziom główny drzewa",
|
||||||
"tree_select": "Użyj drzewa wyboru",
|
"tree_select": "Użyj drzewa wyboru",
|
||||||
"tsp": "łyżeczka [tsp] (USA, objętość)",
|
"tsp": "łyżeczka [tsp] (USA, objętość)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Zaktualizowano dnia",
|
"updatedon": "Zaktualizowano dnia",
|
||||||
"view_recipe": "Zobacz przepis",
|
"view_recipe": "Zobacz przepis",
|
||||||
"warning_duplicate_filter": "Ostrzeżenie: Ze względu na ograniczenia techniczne posiadanie wielu filtrów o tej samej kombinacji (i/lub/nie) może dać nieoczekiwane wyniki.",
|
"warning_duplicate_filter": "Ostrzeżenie: Ze względu na ograniczenia techniczne posiadanie wielu filtrów o tej samej kombinacji (i/lub/nie) może dać nieoczekiwane wyniki.",
|
||||||
|
|||||||
@@ -558,6 +558,7 @@
|
|||||||
"today_recipes": "",
|
"today_recipes": "",
|
||||||
"tree_root": "Raiz da árvore",
|
"tree_root": "Raiz da árvore",
|
||||||
"tree_select": "",
|
"tree_select": "",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Atualizado em",
|
"updatedon": "Atualizado em",
|
||||||
"view_recipe": "",
|
"view_recipe": "",
|
||||||
"warning_duplicate_filter": "",
|
"warning_duplicate_filter": "",
|
||||||
|
|||||||
@@ -670,6 +670,7 @@
|
|||||||
"total": "total",
|
"total": "total",
|
||||||
"tree_root": "Raiz",
|
"tree_root": "Raiz",
|
||||||
"tree_select": "Usar Árvore de Seleção",
|
"tree_select": "Usar Árvore de Seleção",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Atualizado Em",
|
"updatedon": "Atualizado Em",
|
||||||
"view_recipe": "Visualizar receita",
|
"view_recipe": "Visualizar receita",
|
||||||
"warning_duplicate_filter": "Aviso: Por limitações técnicas, ter múltiplos filtros de uma mesma combinação (e, ou, não) pode ocasionar resultados inesperados.",
|
"warning_duplicate_filter": "Aviso: Por limitações técnicas, ter múltiplos filtros de uma mesma combinação (e, ou, não) pode ocasionar resultados inesperados.",
|
||||||
|
|||||||
@@ -624,6 +624,7 @@
|
|||||||
"today_recipes": "Rețete de astăzi",
|
"today_recipes": "Rețete de astăzi",
|
||||||
"tree_root": "Rădăcina copacului",
|
"tree_root": "Rădăcina copacului",
|
||||||
"tree_select": "Utilizarea selecției arborilor",
|
"tree_select": "Utilizarea selecției arborilor",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Actualizat la data de",
|
"updatedon": "Actualizat la data de",
|
||||||
"view_recipe": "Vizionează rețeta",
|
"view_recipe": "Vizionează rețeta",
|
||||||
"warning_duplicate_filter": "Atenționare: Din cauza limitărilor tehnice care au mai multe filtre de aceeași combinație (și/sau/nu) ar putea da rezultate neașteptate.",
|
"warning_duplicate_filter": "Atenționare: Din cauza limitărilor tehnice care au mai multe filtre de aceeași combinație (și/sau/nu) ar putea da rezultate neașteptate.",
|
||||||
|
|||||||
@@ -494,6 +494,7 @@
|
|||||||
"to_select": "",
|
"to_select": "",
|
||||||
"tree_root": "Главный элемент",
|
"tree_root": "Главный элемент",
|
||||||
"tree_select": "Выбор дерева для использования",
|
"tree_select": "Выбор дерева для использования",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Обновлено",
|
"updatedon": "Обновлено",
|
||||||
"view_recipe": "Посмотреть рецепт",
|
"view_recipe": "Посмотреть рецепт",
|
||||||
"warning_feature_beta": "Данный функционал находится в стадии BETA (тестируется). Возможны баги и серьезные изменения функционала в будущем.",
|
"warning_feature_beta": "Данный функционал находится в стадии BETA (тестируется). Возможны баги и серьезные изменения функционала в будущем.",
|
||||||
|
|||||||
@@ -465,6 +465,7 @@
|
|||||||
"today_recipes": "Današnji recepti",
|
"today_recipes": "Današnji recepti",
|
||||||
"tree_root": "",
|
"tree_root": "",
|
||||||
"tree_select": "Uporabi drevesno označbo",
|
"tree_select": "Uporabi drevesno označbo",
|
||||||
|
"unsaved": "",
|
||||||
"warning_feature_beta": "Ta funkcija je trenutno v stanju BETA (testiranje). Pri uporabi te funkcije pričakujte napake in morebitne prelomne spremembe v prihodnosti (morda izgubite podatke, povezane s to funkcijo).",
|
"warning_feature_beta": "Ta funkcija je trenutno v stanju BETA (testiranje). Pri uporabi te funkcije pričakujte napake in morebitne prelomne spremembe v prihodnosti (morda izgubite podatke, povezane s to funkcijo).",
|
||||||
"warning_space_delete": "Izbrišete lahko svoj prostor, vključno z vsemi recepti, nakupovalnimi seznami, načrti obrokov in vsem drugim, kar ste ustvarili. Tega ni mogoče preklicati! Ste prepričani, da želite to storiti?"
|
"warning_space_delete": "Izbrišete lahko svoj prostor, vključno z vsemi recepti, nakupovalnimi seznami, načrti obrokov in vsem drugim, kar ste ustvarili. Tega ni mogoče preklicati! Ste prepričani, da želite to storiti?"
|
||||||
}
|
}
|
||||||
@@ -711,6 +711,7 @@
|
|||||||
"tree_root": "Roten av trädet",
|
"tree_root": "Roten av trädet",
|
||||||
"tree_select": "Använd trädval",
|
"tree_select": "Använd trädval",
|
||||||
"tsp": "tesked [tsp] (US, volym)",
|
"tsp": "tesked [tsp] (US, volym)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Uppdaterad den",
|
"updatedon": "Uppdaterad den",
|
||||||
"view_recipe": "Visa recept",
|
"view_recipe": "Visa recept",
|
||||||
"warning_duplicate_filter": "Varning: På grund av tekniska begränsningar kan flera filter av samma kombination (och/eller/inte) ge oväntade resultat.",
|
"warning_duplicate_filter": "Varning: På grund av tekniska begränsningar kan flera filter av samma kombination (och/eller/inte) ge oväntade resultat.",
|
||||||
|
|||||||
@@ -709,6 +709,7 @@
|
|||||||
"tree_root": "Ağaç Kökü",
|
"tree_root": "Ağaç Kökü",
|
||||||
"tree_select": "Ağaç Seçimini Kullan",
|
"tree_select": "Ağaç Seçimini Kullan",
|
||||||
"tsp": "çay kaşığı [tsp] (ABD, hacim)",
|
"tsp": "çay kaşığı [tsp] (ABD, hacim)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "Güncelleme Zamanı",
|
"updatedon": "Güncelleme Zamanı",
|
||||||
"view_recipe": "Tarif Görüntüle",
|
"view_recipe": "Tarif Görüntüle",
|
||||||
"warning_duplicate_filter": "Uyarı: Teknik sınırlamalar nedeniyle aynı kombinasyona sahip (ve/veya/değil) birden fazla filtreye sahip olmak beklenmedik sonuçlara yol açabilir.",
|
"warning_duplicate_filter": "Uyarı: Teknik sınırlamalar nedeniyle aynı kombinasyona sahip (ve/veya/değil) birden fazla filtreye sahip olmak beklenmedik sonuçlara yol açabilir.",
|
||||||
|
|||||||
@@ -584,6 +584,7 @@
|
|||||||
"today_recipes": "",
|
"today_recipes": "",
|
||||||
"tree_root": "Корінь Дерева",
|
"tree_root": "Корінь Дерева",
|
||||||
"tree_select": "",
|
"tree_select": "",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "",
|
"updatedon": "",
|
||||||
"view_recipe": "",
|
"view_recipe": "",
|
||||||
"warning_duplicate_filter": "",
|
"warning_duplicate_filter": "",
|
||||||
|
|||||||
@@ -701,6 +701,7 @@
|
|||||||
"tree_root": "树根",
|
"tree_root": "树根",
|
||||||
"tree_select": "使用树形选择",
|
"tree_select": "使用树形选择",
|
||||||
"tsp": "茶匙【tsp】(美制,体积)",
|
"tsp": "茶匙【tsp】(美制,体积)",
|
||||||
|
"unsaved": "",
|
||||||
"updatedon": "更新时间",
|
"updatedon": "更新时间",
|
||||||
"view_recipe": "查看食谱",
|
"view_recipe": "查看食谱",
|
||||||
"warning_duplicate_filter": "警告:由于技术限制,使用相同组合(和/或/不)的多个筛选器可能会产生意想不到的结果。",
|
"warning_duplicate_filter": "警告:由于技术限制,使用相同组合(和/或/不)的多个筛选器可能会产生意想不到的结果。",
|
||||||
|
|||||||
@@ -258,6 +258,7 @@
|
|||||||
"to_close": "",
|
"to_close": "",
|
||||||
"to_navigate": "",
|
"to_navigate": "",
|
||||||
"to_select": "",
|
"to_select": "",
|
||||||
|
"unsaved": "",
|
||||||
"warning_feature_beta": "此功能目前處於測試階段 (BETA)。使用此功能時,請預期可能會有漏洞和破壞性變更,未來可能會丟失與功能相關的數據。",
|
"warning_feature_beta": "此功能目前處於測試階段 (BETA)。使用此功能時,請預期可能會有漏洞和破壞性變更,未來可能會丟失與功能相關的數據。",
|
||||||
"warning_space_delete": "您可以刪除您的空間,包括所有食譜、購物清單、餐飲計畫以及其他您創建的內容。此操作無法撤銷!您確定要這樣做嗎?"
|
"warning_space_delete": "您可以刪除您的空間,包括所有食譜、購物清單、餐飲計畫以及其他您創建的內容。此操作無法撤銷!您確定要這樣做嗎?"
|
||||||
}
|
}
|
||||||
@@ -735,16 +735,11 @@ export class GenericModel {
|
|||||||
/**
|
/**
|
||||||
* gets a label for a specific object instance using the model toStringKeys property
|
* gets a label for a specific object instance using the model toStringKeys property
|
||||||
* @param obj obj to get label for
|
* @param obj obj to get label for
|
||||||
* @param includeId debug function to include the ID as part of the object label
|
|
||||||
*/
|
*/
|
||||||
getLabel(obj: EditorSupportedTypes, includeId?: boolean) {
|
getLabel(obj: EditorSupportedTypes) {
|
||||||
let name = ''
|
let name = ''
|
||||||
|
|
||||||
if (obj) {
|
if (obj) {
|
||||||
if (includeId) {
|
|
||||||
name += '#' + obj.id
|
|
||||||
}
|
|
||||||
|
|
||||||
this.model.toStringKeys.forEach(key => {
|
this.model.toStringKeys.forEach(key => {
|
||||||
let value = getNestedProperty(obj, key)
|
let value = getNestedProperty(obj, key)
|
||||||
name += ' ' + ((value != null) ? value : '')
|
name += ' ' + ((value != null) ? value : '')
|
||||||
|
|||||||
Reference in New Issue
Block a user