Skip to content

soda-framework/reports

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

reports

Reporting module for Soda CMS

composer require soda-framework/reports

app.php Providers: Soda\Reports\SodaReportsServiceProvider::class

php artisan soda:reports:install

php artisan soda:reports:seed

#!sql
INSERT INTO `reports` (`id`, `name`, `description`, `class`, `application_id`, `position`, `times_ran`, `last_run_at`, `created_at`, `updated_at`)
VALUES
	(1, 'Subscriptions', NULL, 'Themes\\Snackable\\Components\\SubscriptionReport', 1, NULL, 4, '2017-01-27 04:13:20', NULL, '2017-01-27 04:13:20');

INSERT INTO `report_role` (`report_id`, `role_id`)
VALUES
	(1, 1),
	(1, 2);
#!php
Themes\Snackable\Components\SubscriptionReport.php
<?php

    namespace Themes\Snackable\Components;

    use Soda;
    use Illuminate\Http\Request;
    use Soda\Reports\Foundation\AbstractReporter;
    use Themes\Snackable\Controllers\PageController;
    use Zofe\Rapyd\Facades\DataGrid;

    class SubscriptionReport extends AbstractReporter{

        public function query(Request $request)
        {
            $query = Soda::model(PageController::$subscription_block)->select('name','email','dob','created_at');

            return $query;
        }

        public function run(Request $request)
        {
            $grid = DataGrid::source($this->query($request));
            $grid->add('name', 'Name');
            $grid->add('email', 'Email');
            $grid->add('dob', 'Date of Birth');
            $grid->add('created_at', 'Date Subscribed');

            $grid->paginate(20)->getGrid($this->getGridView());

            return view($this->getView(), ['report' => $this->report, 'grid' => $grid]);
        }
    }