NAME Mojolicious::Plugin::BootstrapAlerts - Bootstrap alerts for your web app VERSION version 0.07 SYNOPSIS In your startup: sub startup { my $self = shift; # do some Mojolicious stuff $self->plugin( 'BootstrapAlerts' ); # more Mojolicious stuff } In your controller: $self->notify( 'success', 'message' ); $self->notify( 'danger', [qw/item1 item2/] ); In your template: <%= notifications() %> HELPERS This plugin adds two helper methods to your web application: notify Add a new notification. The first parameter is the notification type, one of these * success * info * warning * danger (alias: error) The second parameter is the notification message. If it is a plain string, that's the message. If the parameter is an array reference an unordered list will be created. A third parameter is optional. That is a hashreference to configure the notification: # this notification is not dismissable $self->notify( 'success', 'message', { dismissable => 0 } ); # this notification has an ordered list $self->notify( 'danger', [qw/item1 item2/], { ordered_list => 1 } ); notifications Creates the HTML for the notifications. The notifications call in the SYNOPSIS will create
message
METHODS register Called when registering the plugin. On creation, the plugin accepts a hashref to configure the plugin. # load plugin, alerts are dismissable by default $self->plugin( 'BootstrapAlerts' ); Configuration $self->plugin( 'BootstrapAlerts' => { dismissable => 0, # notifications aren't dismissable by default anymore auto_inject => 1, # inject notifications into your HTML output, no need for "notifications()" anymore after => $selector, # CSS selector to find the element after that the notifications should be injected before => $selector, # CSS selector to find the element before that the notifications should be injected }); NOTES You have to include the Bootstrap CSS and JavaScript yourself! This plugin uses the stash key __NOTIFICATIONS__, so you should avoid using this stash key for your own purposes. Known Issues Mojo::DOM html_unescapes HTML entities when the HTML is parsed. So the injection might fail if you have a HTML entity in the element before/after that the notifications are injected. AUTHOR Renee Baecker COPYRIGHT AND LICENSE This software is Copyright (c) 2013 by Renee Baecker. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible)