Cabrillo JS functions for presenting web content inside of native modals.

cabrillo.modal - dismissModal(Object data)

Use to dismiss a modal that has been presented with the presentModal() function.

A presented modal is responsible for dismissing itself and passing any results back to the presenting context. The dismissModal() function must be called from the presented context not from the presenting context.

Table 1. Parameters
Name Type Description
data Object Optional. An object to pass back to the presenting context when the presented context dismisses itself.
Table 2. Returns
Type Description
promise If successful, an unresolved object, otherwise an error.

Example

// Any object can be passed back to the presenting context when the presented context dismisses itself.
var results = {
    team: 'Mobile'
    company: 'ServiceNow'
}

cabrillo.modal.dismissModal(results).then(function() {
    console.log('Modal was dismissed and results were passed to presenting context.');
}, function(error) {
    console.log(error);
});

cabrillo.modal - presentModal( String title, String url, String closeButtonStyle, String modalPresentationStyle)

Presents content in a native modal interface.

Table 4. Returns
Type Description
promise If successful, a Cabrillo.ModalResponse object, otherwise an error.

Example

Present a native modal that loads a custom URL. This presents a custom Service Portal page in a form sheet style modal. The promise is fulfilled when the modal is dismissed. See the dismissModal() function for custom dismissal capabilities.

cabrillo.modal.presentModal('Portal Page',
    '/$sp.do?id=my_modal_page',
    cabrillo.modal.CLOSE_BUTTON_STYLE_CLOSE,
    cabrillo.modal.MODAL_PRESENTATION_STYLE_FORM_SHEET
).then(function(response) {
    // The results from the modal are in a results key on the response object.
    var results = response && response.results ? response.results : null;

    if (results) {
        console.log('Modal dismissed with results.', results);
    } else {
        console.log('Modal dismissed without results.');
    }
}, function(error) {
    console.log(error);
});