mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-02 04:39:54 -05:00
stubbed out all Food GenericModalForms
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* Utility CLASS to define model configurations
|
||||
* */
|
||||
import i18n from "@/i18n";
|
||||
|
||||
// TODO this needs rethought and simplified
|
||||
// maybe a function that returns a single dictionary based on action?
|
||||
@@ -25,26 +26,94 @@ export class Models {
|
||||
},
|
||||
'tree': {'default': undefined},
|
||||
},
|
||||
},
|
||||
'delete': {
|
||||
"form": {
|
||||
'instruction': {
|
||||
'form_field': true,
|
||||
'type': 'instruction',
|
||||
'function': 'translate',
|
||||
'phrase': "del_confimation_tree",
|
||||
'params':[
|
||||
{
|
||||
'token': 'source',
|
||||
'from':'item1',
|
||||
'attribute': "name"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MODELS - inherits and takes precedence over MODEL_TYPES and ACTIONS
|
||||
static FOOD = {
|
||||
'name': 'Food', // *OPTIONAL: parameters will be built model -> model_type -> default
|
||||
'model_type': this.TREE, // *OPTIONAL* model specific params for api, if not present will attempt modeltype_create then default_create
|
||||
'name': i18n.t('Food'), // *OPTIONAL* : parameters will be built model -> model_type -> default
|
||||
'apiName': 'Food', // *REQUIRED* : the name that is used in api.ts for this model
|
||||
'model_type': this.TREE, // *OPTIONAL* : model specific params for api, if not present will attempt modeltype_create then default_create
|
||||
// REQUIRED: unordered array of fields that can be set during create
|
||||
'create': {
|
||||
// if not defined partialUpdate will use the same parameters, prepending 'id'
|
||||
'params': [['name', 'description', 'recipe', 'ignore_shopping', 'supermarket_category']]
|
||||
'params': [['name', 'description', 'recipe', 'ignore_shopping', 'supermarket_category']],
|
||||
'form': {
|
||||
'name': {
|
||||
'form_field': true,
|
||||
'type': 'text',
|
||||
'field': 'name',
|
||||
'label': i18n.t('Name'),
|
||||
'placeholder': ''
|
||||
},
|
||||
'description': {
|
||||
'form_field': true,
|
||||
'type': 'text',
|
||||
'field': 'description',
|
||||
'label': i18n.t('Description'),
|
||||
'placeholder': ''
|
||||
},
|
||||
'recipe': {
|
||||
'form_field': true,
|
||||
'type': 'lookup',
|
||||
'field': 'recipe',
|
||||
'list': 'RECIPE',
|
||||
'label': i18n.t('Recipe')
|
||||
},
|
||||
'shopping': {
|
||||
'form_field': true,
|
||||
'type': 'checkbox',
|
||||
'field': 'ignore_shopping',
|
||||
'label': i18n.t('Ignore_Shopping')
|
||||
},
|
||||
'shopping_category': {
|
||||
'form_field': true,
|
||||
'type': 'lookup',
|
||||
'field': 'supermarket_category',
|
||||
'list': 'SHOPPING_CATEGORY',
|
||||
'label': i18n.t('Shopping_Category')
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
static KEYWORD = {}
|
||||
static KEYWORD = {
|
||||
'name': i18n.t('Keyword'), // *OPTIONAL: parameters will be built model -> model_type -> default
|
||||
'apiName': 'Keyword',
|
||||
'model_type': this.TREE
|
||||
}
|
||||
static UNIT = {}
|
||||
static RECIPE = {}
|
||||
static SHOPPING_LIST = {}
|
||||
static RECIPE_BOOK = {
|
||||
'name': i18n.t('Recipe_Book'),
|
||||
'apiName': 'RecipeBook',
|
||||
}
|
||||
static SHOPPING_CATEGORY = {
|
||||
'name': i18n.t('Shopping_Category'),
|
||||
'apiName': 'SupermarketCategory',
|
||||
}
|
||||
|
||||
static RECIPE = {
|
||||
'name': 'Recipe',
|
||||
'name': i18n.t('Recipe'),
|
||||
'apiName': 'Recipe',
|
||||
'list': {
|
||||
'params': ['query', 'keywords', 'foods', 'books', 'keywordsOr', 'foodsOr', 'booksOr', 'internal', 'random', '_new', 'page', 'pageSize', 'options'],
|
||||
'config': {
|
||||
@@ -60,14 +129,69 @@ export class Models {
|
||||
|
||||
export class Actions {
|
||||
static CREATE = {
|
||||
"function": "create"
|
||||
"function": "create",
|
||||
'form': {
|
||||
'title': {
|
||||
'function': 'translate',
|
||||
'phrase': 'create_title',
|
||||
'params' : [
|
||||
{
|
||||
'token': 'type',
|
||||
'from': 'model',
|
||||
'attribute':'name'
|
||||
}
|
||||
],
|
||||
},
|
||||
'ok_label': i18n.t('Save'),
|
||||
}
|
||||
}
|
||||
static UPDATE = {
|
||||
"function": "partialUpdate",
|
||||
// special case for update only - updated assumes create form is sufficient, but a different title is required.
|
||||
"form_title": {
|
||||
'function': 'translate',
|
||||
'phrase': 'edit_title',
|
||||
'params' : [
|
||||
{
|
||||
'token': 'type',
|
||||
'from': 'model',
|
||||
'attribute':'name'
|
||||
}
|
||||
],
|
||||
},
|
||||
}
|
||||
static DELETE = {
|
||||
"function": "destroy",
|
||||
'params': ['id']
|
||||
'params': ['id'],
|
||||
'form': {
|
||||
'title': {
|
||||
'function': 'translate',
|
||||
'phrase': 'delete_title',
|
||||
'params' : [
|
||||
{
|
||||
'token': 'type',
|
||||
'from': 'model',
|
||||
'attribute':'name'
|
||||
}
|
||||
],
|
||||
},
|
||||
'ok_label': i18n.t('Delete'),
|
||||
'instruction': {
|
||||
'form_field': true,
|
||||
'type': 'instruction',
|
||||
'label': {
|
||||
'function': 'translate',
|
||||
'phrase': "delete_confirmation",
|
||||
'params':[
|
||||
{
|
||||
'token': 'source',
|
||||
'from':'item1',
|
||||
'attribute': "name"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
static FETCH = {
|
||||
"function": "retrieve",
|
||||
@@ -78,26 +202,107 @@ export class Actions {
|
||||
"suffix": "s",
|
||||
"params": ['query', 'page', 'pageSize'],
|
||||
"config": {
|
||||
'query': {'default':undefined},
|
||||
'query': {'default': undefined},
|
||||
'page': {'default': 1},
|
||||
'pageSize': {'default': 25}
|
||||
}
|
||||
|
||||
}
|
||||
static MERGE = {
|
||||
"function": "merge",
|
||||
'params': ['source', 'target'],
|
||||
"config": {
|
||||
'source': {'type':'string'},
|
||||
'source': {'type': 'string'},
|
||||
'target': {'type': 'string'}
|
||||
},
|
||||
'form': {
|
||||
'title': {
|
||||
'function': 'translate',
|
||||
'phrase': 'merge_title',
|
||||
'params' : [
|
||||
{
|
||||
'token': 'type',
|
||||
'from': 'model',
|
||||
'attribute':'name'
|
||||
}
|
||||
],
|
||||
},
|
||||
'ok_label': i18n.t('Merge'),
|
||||
'instruction': {
|
||||
'form_field': true,
|
||||
'type': 'instruction',
|
||||
'label': {
|
||||
'function': 'translate',
|
||||
'phrase': "merge_selection",
|
||||
'params':[
|
||||
{
|
||||
'token': 'source',
|
||||
'from':'item1',
|
||||
'attribute': "name"
|
||||
},
|
||||
{
|
||||
'token': 'type',
|
||||
'from':'model',
|
||||
'attribute': "name"
|
||||
},
|
||||
]
|
||||
}
|
||||
},
|
||||
'target': {
|
||||
'form_field': true,
|
||||
'type': 'lookup',
|
||||
'field': 'target',
|
||||
'list': 'self'
|
||||
}
|
||||
}
|
||||
}
|
||||
static MOVE = {
|
||||
"function": "move",
|
||||
'params': ['source', 'target'],
|
||||
"config": {
|
||||
'source': {'type':'string'},
|
||||
'source': {'type': 'string'},
|
||||
'target': {'type': 'string'}
|
||||
},
|
||||
'form': {
|
||||
'title': {
|
||||
'function': 'translate',
|
||||
'phrase': 'move_title',
|
||||
'params' : [
|
||||
{
|
||||
'token': 'type',
|
||||
'from': 'model',
|
||||
'attribute':'name'
|
||||
}
|
||||
],
|
||||
},
|
||||
'ok_label': i18n.t('Move'),
|
||||
'instruction': {
|
||||
'form_field': true,
|
||||
'type': 'instruction',
|
||||
'label': {
|
||||
'function': 'translate',
|
||||
'phrase': "move_selection",
|
||||
'params':[
|
||||
{
|
||||
'token': 'source',
|
||||
'from':'item1',
|
||||
'attribute': "name"
|
||||
},
|
||||
{
|
||||
'token': 'type',
|
||||
'from':'model',
|
||||
'attribute': "name"
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
},
|
||||
'target': {
|
||||
'form_field': true,
|
||||
'type': 'lookup',
|
||||
'field': 'target',
|
||||
'list': 'self'
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user