Include the library
In package.json, turn includeModal:'true'
Launch the modal
Using modal dialogs is a common design pattern with core apps. This helper does most of the work for you, including AODA compliance.
The method below is a static method of the cot_app (if your app is standalone) or CotApp (if your app is embedded) class.
Use it like this:
CotApp.showModal(options); //embedded apps cot_app.showModal(options); //standalone apps
Options reference
Property | Description | Example |
---|---|---|
| string Optional. Loads template. | Default is Possible values are
|
| String Title of the modal. Accepts HTML | title: <h2>This is my modal</h2>, |
| String Body of the modal. Accepts HTML |
|
| String Set the default bootstrap size of the modal. | modalSize:'modal-lg' |
| String RequiredAn element (DOM or $-selected) to set focus to after the modal is closed, use for accessibility | originatingElement: $('#myButton') |
| String Optional, CSS class to put on the root div.modal element | className: 'myCustomClass' |
| string Optional. When preset='alert', sets a bootstrap alert class to the modal. | Default is 'default'. Possible values are |
| Function Required if preset='confirm'. Callback function when user confirms the message | |
| Object Optional. When preset='confirm' will change the buttons content and class | buttons: { cancel: { label: ' Cancel', bootstrapType: 'default' }, confirm: { label: ' Confirm', bootstrapType: 'primary' } } |
| Function Hook into boostrap modal events | |
| Function Hook into boostrap modal events | |
| Function Hook into boostrap modal events | |
| Function Hook into boostrap modal events | |
| Function | Example / Usage Details Using options.footerButtonsHtml'<div class="modal fade ' + options.className + '" id="' + id + '" tabindex="-1" role="dialog" aria-labelledby="' + id + '_title" aria-hidden="true" aria-modal="true">' + ' <div class="modal-dialog ' + options.modalSize + '">' + ' <div class="modal-content">' + ' <div class="modal-header">' + ' <button type="button" aria-label="Close" class="close" type="button" data-dismiss="modal">' + ' <span aria-hidden="true">×</span>' + ' </button>' + ' <div role="heading" aria-level="2" id="' + id + '_title" class="modal-title">' + options.title + '</div>' + ' </div>' + ' <div id="' + id + '_body" class="modal-body">' + options.body + '</div>' + ' <div class="modal-footer">' + options.footerButtonsHtml + ' </div>' + ' </div>' + ' </div>' + ' </div>';
returnButton functionvar returnButton = function returnButton(bsType, opt) { if (opt && opt.hasOwnProperty('bootstrapType')) { var bsTypes = ['primary', 'success', 'info', 'warning', 'danger']; if (bsTypes.indexOf(opt.bootstrapType) == -1) { opt.bootstrapType = 'default'; } } There are two functions calls made when the 'confirm' preset is being used confirm preset returnButton callsreturnButton('cancel', { bootstrapType: options.buttons.cancel.bootstrapType, label: options.buttons.cancel.label }) returnButton('confirm', { bootstrapType: options.buttons.confirm.bootstrapType, label: options.buttons.confirm.label }); Then the final footer is being built: confirm preset final footer<div class="modal-footer">' + returnButton('cancel', { bootstrapType: options.buttons.cancel.bootstrapType, label: options.buttons.cancel.label }) + ' ' + returnButton('confirm', { bootstrapType: options.buttons.confirm.bootstrapType, label: options.buttons.confirm.label }); ' </div>' To customize the footer you will want to do the last code section expect for the |
Code sample
Options for a large default window
CotApp.showModal({ originatingElement:$('#target_to_focus_when_modal_close'), title: "This is the title", body: "<p>Content goes here</p><p>Include <strong>HTML</strong> if you <em>want</em></p>", modalSize: "modal-lg", onShow:function(){ console.log('this event happens onShow'); }, onShown:function(){ console.log('this event happens onShown'); }, onHide:function(){ console.log('this event happens onHide'); }, onHidden:function(){ console.log('this event happens onHidden'); } })
Options for an Alert window
CotApp.showModal({ preset:'alert', bootstrapType:'danger', // primary | success | info | danger | warning originatingElement:$('#target_to_focus_when_modal_close'), body: "<p>Warning ! This is an alert !</p>", modalSize: "modal-md" })
Options for a Confirm window
CotApp.showModal({ preset:'confirm', originatingElement:$('#target_to_focus_when_modal_close'), title:'Answer the question', body: "<p>Do you really really want it !</p>", modalSize: "modal-md", callback:function(){ alert('You confirmed !') } })
Options for a Confirm window with custom buttons
CotApp.showModal({ preset:'confirm', originatingElement:$('#target_to_focus_when_modal_close'), title:'Answer the question', body: "<p>Do you really really want it !</p>", modalSize: "modal-md", buttons: { cancel: { label: ' Custom cancel button', bootstrapType: 'danger' }, confirm: { label: 'Custom Confirm !', bootstrapType: 'success' } }, callback:function(){ alert('You confirmed !') } })