UNPKG

angular-flash-alert

Version:
178 lines (144 loc) 5.48 kB
![license](https://img.shields.io/npm/l/angular-flash-alert.svg) ![travis](https://travis-ci.org/sachinchoolur/angular-flash.svg?branch=master) ![bower](https://img.shields.io/bower/v/angular-flash-alert.svg) ![npm](https://img.shields.io/npm/v/angular-flash-alert.svg) # angular-flash A simple lightweight flash message module for AngularJS and Bootstrap. ## Demo [angular-flash](http://sachinchoolur.github.io/angular-flash/) | [jsfiddle](http://jsfiddle.net/roopehakulinen/uxeg4nze/) | [codepen](http://codepen.io/RoopeHakulinen/pen/QyZjxm) ## Install #### npm You can also find angular-flash on [npm](http://npmjs.org) ```sh $ npm install angular-flash-alert ``` #### Bower You can Install angular-flash using the [Bower](http://bower.io) package manager. ```sh $ bower install angular-flash-alert --save ``` Add the Following code to the &lt;head&gt; of your document. ```html <link type="text/css" rel="stylesheet" href="dist/angular-flash.min.css" /> // If you are using bootstrap v3 no need to include angular-flash.css <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <script src="dist/angular-flash.min.js"></script> // Do not include both angular-flash.js and angular-flash.min.js ``` Add `ngFlash` dependency to your module ```javascript var myApp = angular.module("app", ["ngFlash"]) ``` Include directive below in your HTML template. ```html <flash-message></flash-message> ``` ## Configure You can configure angular-flash by two ways: Add attributes on the `<flash-message>` directive. ```html <flash-message duration="5000" show-close="true" on-dismiss="myCallback(flash);" ></flash-message> <!-- 5000ms as the default duration to show flash message. Show the close button (x on the right). Call myCallback with flash dismissed as parameter when flash has been dismissed. --> ``` Set configuration with `flashProvider`. ```javascript app.config((FlashProvider) => { FlashProvider.setTimeout(5000); FlashProvider.setShowClose(true); FlashProvider.setOnDismiss(myCallback); }); ``` #### Use a custom template By default, angular-flash use the Bootstrap flash standard template, but you can set your own template. **By giving it in the Js**: use `.setTemplate(...)` with the template in parameter. ```javascript app.config((FlashProvider) => { FlashProvider.setTemplate(` <div class="my-flash">{{ flash.text }}</div> `); }); ``` **By giving it in the HTML**: use `.setTemplatePreset('transclude')` with the template transcluded in the `<flash-message>` directive. ```javascript app.config((FlashProvider) => { FlashProvider.setTemplatePreset('transclude'); }); ``` ```html <flash-message> <div class="my-flash">{{ flash.text }}</div> </flash-message> ``` ## How to use Inject the `Flash` factory in your controller ```javascript myApp.controller('demoCtrl', ['Flash', function(Flash) { $scope.successAlert = function () { var message = '<strong>Well done!</strong> You successfully read this important alert message.'; var id = Flash.create('success', message, 0, {class: 'custom-class', id: 'custom-id'}, true); // First argument (string) is the type of the flash alert. // Second argument (string) is the message displays in the flash alert (HTML is ok). // Third argument (number, optional) is the duration of showing the flash. 0 to not automatically hide flash (user needs to click the cross on top-right corner). // Fourth argument (object, optional) is the custom class and id to be added for the flash message created. // Fifth argument (boolean, optional) is the visibility of close button for this flash. // Returns the unique id of flash message that can be used to call Flash.dismiss(id); to dismiss the flash message. } }]); ``` #### Flash types #### + success + info + warning + danger #### Methods These methods are mostly for internal usage but can be used also from outside. ``` javascript Flash.dismiss(1); // Dismiss the flash with id of 1. Id is not the index of flash but instead a value returned by Flash.create() ``` ``` javascript Flash.clear(); // Dismisses all flashes shown. ``` #### Animating You can animate the flash messages via traditional Angular way by including _ngAnimate_ as a dependency of your application and then defining the CSS transitions for different classes (_ng-enter_, _ng-move_, _ng-leave_) provided by Angular. Example: ``` .alert.ng-leave { opacity: 1; transition: opacity 1.5s ease-out; } .alert.ng-leave-active { opacity: 0; } ``` #### Multiple flash containers You can send flashes to different containers by naming them and specifying their name in the config you pass to the `Flash.create` function. ```html <flash-message name="flash-fixed"></flash-message> ``` ```js Flash.create('success', 'Hooray!', 0, {container: 'flash-fixed'}); ``` #### [Guidelines for contributors](https://github.com/sachinchoolur/angular-flash/blob/master/contributing.md) #### Running tests You'll need relatively new versions of Firefox and Chrome installed on your local system to run the tests. Once you do, run: ``` npm install npm run test ``` #### Contributors * [Sachin Choluur](https://github.com/sachinchoolur) (Original author) * [Roope Hakulinen](https://github.com/RoopeHakulinen) (Version 2) * [Nicolas Coden](https://github.com/ncoden) #### License MIT © [Sachin Choluur](https://twitter.com/sachinchoolur)