To add your custom dashboard lens to the dashboard you need to register it with the admin and the admin dashboard.
To register your dashboard lens with the admin you need to call the Aero\Admin\Facades\Admin facade registerLens method and pass in your dashboard lens class.
<?php
namespace Acme\MyModule;
use Aero\Admin\Facades\Admin;
use Aero\Admin\Lenses\RevenueLens;
use Aero\Common\Providers\ModuleServiceProvider;
class ServiceProvider extends ModuleServiceProvider
{
public function setup()
{
Admin::registerLens(RevenueLens::class);
}
}
Once you have registered your dashboard lens with the admin you are able to extend Aero\Admin\Http\Responses\AdminDashboardPage and add your lens using the setLens, addLens, addLensBefore, or addLensAfter methods.
setLens Method
This method accepts a key and a lens class. The key's current value will be replaced with the lens class you provide.
addLens Method
This method accepts a key and a lens class. When using this method your lens will be added as the first dashboard lens.
addLensBefore Method
This method accepts the same parameters as the addLens method but additionally accepts a third parameter, the key of the lens this new lens should be added before.
addLensAfter Method
This method accepts the same parameters as the addLens method but additionally accepts a third parameter, the key of the lens this new lens should be added after.
Finding the Current Dashboard Lenses Keys
If you do not know the keys of the current dashboard lenses you can use this code snippet to dump the current keys out when visiting the dashboard.
<?php
namespace Acme\MyModule;
use Aero\Admin\Http\Responses\AdminDashboardPage;
use Aero\Common\Providers\ModuleServiceProvider;
class ServiceProvider extends ModuleServiceProvider
{
public function setup()
{
AdminDashboardPage::extend(function (AdminDashboardPage $page) {
dd($page->getLenses()->keys());
});
}
}
<?php
namespace Acme\MyModule;
use Aero\Admin\Facades\Admin;
use Aero\Admin\Http\Responses\AdminDashboardPage;
use Aero\Admin\Lenses\RevenueLens;
use Aero\Common\Providers\ModuleServiceProvider;
class ServiceProvider extends ModuleServiceProvider
{
public function setup()
{
Admin::registerLens(RevenueLens::class);
AdminDashboardPage::extend(function (AdminDashboardPage $page) {
$page->addLensBefore('revenue-lens', RevenueLens::class, 'average-order-value-lens');
});
}
}