1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00

feat: Retrieve automatico dei model in una select

This commit is contained in:
Maicol Battistini
2022-01-27 20:30:32 +01:00
parent c63755d1ac
commit dcdd1719e8
2 changed files with 17 additions and 3 deletions

View File

@@ -507,7 +507,15 @@ export class RecordsPage extends Page {
// (temporary) .first((s) => field.id in s.fields);
.filter((s) => field.id in s.fields)
.first();
let {options} = section.fields[field.id] as SelectT;
const select = section.fields[field.id] as SelectT;
let {options} = select;
const {model, labelAttribute} = select;
if (model && labelAttribute) {
options = this.getModelSelectOptions(model, labelAttribute);
}
if (options instanceof Promise) {
options = await options;
}
@@ -541,7 +549,10 @@ export class RecordsPage extends Page {
return list.join('');
}
async getModelSelectOptions(model: typeof Model, labelAttribute: string): Promise<SelectOptionsT> {
async getModelSelectOptions(
model: typeof Model,
labelAttribute: string
): Promise<SelectOptionsT> {
const response = await model.all();
const categories = response.getData();

View File

@@ -6,6 +6,7 @@ import {
} from '@material/mwc-textfield';
import {MaterialIcons} from './icons';
import {Model} from '../Models';
export interface FieldT {
id?: string
@@ -85,5 +86,7 @@ export type SelectT = FieldT & {
selected?: ListItemBase | null
items?: ListItemBase[]
index?: number
options?: SelectOptionsT | Promise<SelectOptionsT>
options?: SelectOptionsT | Promise<SelectOptionsT>,
model?: typeof Model,
labelAttribute?: string
};