Selection provider
Una funzionalità molto potente di Portofino sono i selection provider, con il passaggio alla versione 5 è diventato più complicato interagirci. La CrudAction consente di ottenerli con semplicità tramite questi metodi:
selectionProviders: PortofinoSelectionProvider[]
// Ottiene il selection provider tramite il nome della fk
getSelectionProvider(name: string): PortofinoSelectionProvider
// Ottiene il selection provider tramite il nome dell'attributo su cui è la ralazione
getSelectionProviderByPropertyName(fieldName: string): PortofinoSelectionProvider
1
2
3
4
5
6
7
2
3
4
5
6
7
Una volta ottenuto il selection provider abbiamo a disposizione la sua configurazione e con il metodo getOptions
possiamo ottenere le opzioni del nostro selection provider.
interface PortofinoSelectionProvider {
searchDisplayMode: string;
fieldNames: string[];
name: string;
displayMode: string;
getOptions: () => Promise<SelectionProviderOption[]>;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
Il metodo getOptions
è un metodo asincrono che ritorna un array di oggetti { v, l }
, per esempio in react si può useare come in questo esempio.
function CostTypeSelect({ action }) {
const [costTypes, setCostTypes] = useState<SelectionProviderOption[]>([]);
useEffect(() => {
const selectionProvider =
action.getSelectionProviderByPropertyName('cost-type_id');
selectionProvider.getOptions().then((options) => {
setCostTypes(options);
});
}, []);
return (
<select>
{costTypes.map((ct) => (
<option value={ct.v}>{ct.l}</option>
))}
</select>
);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18