All files / realm/blong-gateway/meta/model gatewayApplicationModel.ts

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

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 64 65 661x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x  
import {model} from '@feasibleone/blong';
 
/**
 * OAuth application management model (browser).
 *
 * The clientId is the `core_resource.resourceName`; the entity columns below
 * drive the auto-generated Browse/New/Open pages for `gateway.application`.
 */
export default model(
    () =>
        async function gatewayApplicationModel() {
            return {
                subject: 'gateway',
                object: 'application',
                objectTitle: 'Application',
                public: true,
 
                schema: {
                    properties: {
                        application: {
                            properties: {
                                ownerUserId: {title: 'Owner'},
                                applicationType: {
                                    title: 'Type',
                                    widget: {
                                        options: [{value: 'oauth2_client', label: 'OAuth2 Client'}],
                                    },
                                },
                                description: {title: 'Description'},
                                isActive: {title: 'Active'},
                            },
                            widget: {
                                columns: ['applicationType', 'description', 'isActive'],
                            },
                        },
                    },
                },
 
                cards: {
                    browse: {
                        label: 'Applications',
                        widgets: ['application'],
                    },
                    edit: {
                        label: 'Application Details',
                        widgets: [
                            'application.applicationType',
                            'application.description',
                            'application.isActive',
                        ],
                    },
                    detail: {
                        label: '',
                        readOnly: true,
                        watch: '$.selected.application',
                        widgets: [
                            '$.edit.application.applicationType',
                            '$.edit.application.description',
                            '$.edit.application.isActive',
                        ],
                    },
                },
            };
        },
);