Laravel 5 Flash Notifications with icons and animations and with a timeout
13,982
33
5
Package Data
Maintainer Username: bpocallaghan
Maintainer Contact: bpocallaghan@gmail.com (Ben-Piet O'Callaghan)
Package Create Date: 2015-04-03
Package Last Update: 2023-10-05
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-11-21 03:00:33
Package Statistics
Total Downloads: 13,982
Monthly Downloads: 134
Daily Downloads: 15
Total Stars: 33
Total Watchers: 5
Total Forks: 12
Total Open Issues: 0

Notify (Laravel)

Notify alert boxes to the browser with sound and font awesome icons and give it a timeout to fly out. Works great to notify the user after a successfull action (CRUD). Flash the information from Laravel or create multiple from javascript.

###Want to see the current package in action, have a look at my starter project. ####Laravel Starter Project

Installation

First, pull in the package through Composer.

"require": {
    "bpocallaghan/notify": "2.*"
}

OR

composer require bpocallaghan/notify

Laravel <5.4 only (Laravel 5.5 has automatic package discovery)

Include the service provider within config\app.php.

'providers' => [
    Bpocallaghan\Notify\NotifyServiceProvider::class,
];

Add a facade alias or use the globel helper function notify().

'aliases' => [
    'Notify' => Bpocallaghan\Notify\Facades\Notify::class,
];

Usage

Within any view file (preferable your master layout).

@include('notify::notify')

Within any Controller.

public function index()
{
    // helper function - default to the 'info'
    notify('Title', 'Description');
    
    // return object first
    notify()->info('Title', 'Description');
    
    // via the facade
    Notify::info('Title', 'Description');
    
    return view('home');
}

The different 'levels' are:

  • notify()->info('Title', 'Description');
  • notify()->success('Title', 'Description');
  • notify()->warning('Title', 'Description');
  • notify()->error('Title', 'Description');

The different arguments:

  • notify()->info('Title', 'Description', false); // without the icon
  • notify()->info('Title', 'Description', 'smile-o'); // specify the icon class
  • notify()->message($level = 'info', $title, $content, $icon, $iconSmall, $timeout = 5000) // arguments
  • notify()->message('info', 'Title', 'Description', 'smile-o'); // specify the type of level
  • notify()->message('info', 'Title', 'Description', 'smile-o', 'thumbs-o-up'); // show a different small icon
  • notify()->message('info', 'Title', 'Description', 'smile-o', 'thumbs-o-up', 10000); // specify the timeout

If you need to modify the view partial, you can run:

php artisan vendor:publish --provider="Bpocallaghan\Notify\NotifyServiceProvider" --tag=view

The view partial can be found here resources\views\vendor\notify\notify.blade.

You need to publish the assets.

php artisan vendor:publish --provider="Bpocallaghan\Notify\NotifyServiceProvider" --tag=public

Find the files here public\vendor\notify\. Move the mp3s to public\sounds\. If you use Laravel Elixir, move the css and js to your resource\assets and include them in your gulpfile.js, otherwise link to the individual files in your html header.

TODO

  • Maybe a config file (sound on/off, sound path, position, fade in/out, etc)
  • Cleanup code (decide on the animations.css)
  • Maybe add a bigger box
  • Maybe add a 'modal' option (bootstrap's modal)

Note

Please keep in mind this is for my personal workflow and might not fit your need. I developed this to help speed up my day to day workflow. Please let me know about any issues or if you have any suggestions.

My other Packages