Skip to content

Set of extendable Backbone Views for working with Bootstrap Modal Dialogs

License

Notifications You must be signed in to change notification settings

leafygreen/backbone-bootstrap-modals

Repository files navigation

backbone-bootstrap-modals

Build Status Code Climate

The goal of backbone-bootstrap-modals is to produce a set of core Backbone Views when working with Bootstrap modal dialogs.

Advantages

  • Simple integration with Bootstrap and Backbone
  • Easily extensible with sane defaults
  • All boilerplate taken care of for you
  • Compatible with Marionette Views

Installing with NPM

npm install backbone-bootstrap-modals

Download Links

backbone-bootstrap-modals.js

backbone-bootstrap-modals.min.js

Documentation

The source code is well annotated and run through Docco:

Annotated Source Code

Please click the following links to see the library in action:

(See /examples)

Component Documentation

Quick Examples

// Extending BaseModal
var ExtendedModal = BackboneBootstrapModals.BaseModal.extend({
  headerView: BackboneBootstrapModals.BaseHeaderView,
  headerViewOptions: {
    label: 'Extended Example'
  },
  bodyView: BackboneBootstrapModals.BaseBodyView,
  // options may be defined as functions
  bodyViewOptions: function() {
    return {
      text: 'Today is '+new Date()
    };
  },
  // subviews may be dynamically defined
  getFooterView: function() { return BackboneBootstrapModals.BaseFooterView; },
  footerViewOptions: {
    buttons: [
      { className: 'btn btn-default', value: 'Cancel', attributes: { 'data-dismiss': 'modal', 'aria-hidden': 'true' }},
      { id: 'apply-btn', className: 'btn btn-primary', value: 'Apply' }
    ]
  }
});
var modal = new ExtendedModal();
modal.render();
// Using ConfirmationModal directly (It could also be extended as above.)
var modal = new BackboneBootstrapModals.ConfirmationModal({
  label: 'Confirm Action',
  text: 'Are you sure you want to do that?',
  onConfirm: function() {
    console.log("action confirmed");
  },
  onCancel: function() {
    console.log("action canceled");
  }
});
modal.render();
// Using WizardModal directly (It could also be extended as above.)
var modal = new BackboneBootstrapModals.WizardModal({
  stepGraph: [{
    label: 'Wizard: Step One',
    view: BackboneBootstrapModals.BaseBodyView,
    viewOptions: { text: 'This is step one' },
    nextIndex: 1,
    onNext: function() {
      console.log('next for step one');
    }
  },
  {
    label: 'Wizard: Step Two',
    view: BackboneBootstrapModals.BaseBodyView,
    viewOptions: { text: 'This is step two' },
    nextIndex: 2,
    previousIndex: 0,
    onNext: function() {
      console.log('next for step two');
    }
  },
  {
    label: 'Wizard: Step Three',
    view: BackboneBootstrapModals.BaseBodyView,
    viewOptions: { text: 'This is step three' },
    nextText: 'Finish',
    previousIndex: 1,
    onNext: function() {
      console.log('next for step three');
    }
  }]
});
modal.render();

Supported browsers

Should work with all modern browsers, including Internet Exploror 9+

Building

npm install
grunt

Running the tests

cd test
grunt mocha

Contributing

Contributions are welcome! To make the process as seamless as possible, please:

  • Fork the project and make your changes. We encourage pull requests to discuss code changes.
  • Have test cases for the new code. If you have questions about how to do this, please ask in your pull request.

License

Licensed under the MIT license.

Shout Outs

backbone-bootstrap-modals is a MongoDB Skunkworks Project Friendly Skunk

About

Set of extendable Backbone Views for working with Bootstrap Modal Dialogs

Resources

License

Stars

Watchers

Forks

Packages

No packages published