All files / realm/blong-access/meta/model accessAccessModel.ts

100% Statements 63/63
100% Branches 2/2
100% Functions 1/1
100% Lines 63/63

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 641x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 1x  
import {model} from '@feasibleone/blong';
 
/**
 * accessAccessModel — browse-only view of the access rules.
 *
 * `accessName` is the display name (lives in `core_resource.resourceName`) and
 * is provided by the custom `access.access.find` handler. No Create/Edit/Delete
 * toolbar — the entity is not editable from the UI.
 */
export default model(
    () =>
        async function accessAccessModel() {
            return {
                subject: 'access',
                object: 'access',
                objectTitle: 'Access',
                public: true,
                nameField: 'access.accessName',
 
                schema: {
                    properties: {
                        access: {
                            properties: {
                                accessName: {
                                    title: 'Name',
                                    filter: true,
                                    sort: true,
                                },
                                accessType: {
                                    title: 'Type',
                                    filter: true,
                                },
                                isActive: {title: 'Active', type: 'boolean'},
                                // accessRule is a JSON rule configuration.
                                accessRule: {
                                    title: 'Rule',
                                    widget: {type: 'textArea'},
                                },
                                // server schema defined:
                                // accessId: {},
                            },
                            widget: {
                                columns: ['accessName', 'accessType', 'isActive'],
                            },
                        },
                    },
                },
 
                cards: {
                    browse: {
                        label: 'Access Rules',
                        widgets: ['access'],
                    },
                },
 
                browser: {
                    title: 'Access Rules',
                    icon: 'pi pi-lock-open',
                    toolbar: [],
                },
            };
        },
);