first upload all files

This commit is contained in:
NW
2023-06-11 13:14:03 +01:00
parent f14dbc52b5
commit c08b36d1b6
1705 changed files with 106852 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
<?php
namespace Modules\Admin\Http\Controllers\Admin;
use Modules\User\Entities\User;
use Modules\Order\Entities\Order;
use Modules\Review\Entities\Review;
use Modules\Product\Entities\Product;
use Modules\Product\Entities\SearchTerm;
class DashboardController
{
/**
* Display the dashboard with its widgets.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('admin::dashboard.index', [
'totalSales' => Order::totalSales(),
'totalOrders' => Order::withoutCanceledOrders()->count(),
'totalProducts' => Product::withoutGlobalScope('active')->count(),
'totalCustomers' => User::totalCustomers(),
'latestSearchTerms' => $this->getLatestSearchTerms(),
'latestOrders' => $this->getLatestOrders(),
'latestReviews' => $this->getLatestReviews(),
]);
}
private function getLatestSearchTerms()
{
return SearchTerm::latest('updated_at')->take(5)->get();
}
/**
* Get latest five orders.
*
* @return \Illuminate\Database\Eloquent\Collection
*/
private function getLatestOrders()
{
return Order::select([
'id',
'customer_first_name',
'customer_last_name',
'total',
'status',
'created_at',
])->latest()->take(5)->get();
}
/**
* Get latest five reviews.
*
* @return \Illuminate\Database\Eloquent\Collection
*/
private function getLatestReviews()
{
return Review::select('id', 'product_id', 'reviewer_name', 'rating')
->has('product')
->with('product:id')
->limit(5)
->get();
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace Modules\Admin\Http\Controllers\Admin;
use Modules\Order\Entities\Order;
class SalesAnalyticsController
{
/**
* Display a listing of the resource.
*
* @param \Modules\Order\Entities\Order $order
* @return \Illuminate\Http\Response
*/
public function index(Order $order)
{
return response()->json([
'labels' => trans('admin::dashboard.sales_analytics.day_names'),
'data' => $order->salesAnalytics(),
]);
}
}

View File

@@ -0,0 +1,39 @@
<?php
namespace Modules\Admin\Http\ViewComposers;
use Modules\Core\Events\CollectingAssets;
use Modules\Core\Foundation\Asset\Pipeline\AssetPipeline;
class AssetsComposer
{
/**
* The instance of AssetPipeline.
*
* @var \Modules\Core\Foundation\Asset\Pipeline\AssetPipeline
*/
private $assetPipeline;
/**
* Create a new composer instance.
*
* @param \Modules\Core\Foundation\Asset\Pipeline\AssetPipeline $assetPipeline
*/
public function __construct(AssetPipeline $assetPipeline)
{
$this->assetPipeline = $assetPipeline;
}
/**
* Bind data to the view.
*
* @param \Illuminate\View\View $view
* @return void
*/
public function compose($view)
{
event(new CollectingAssets($this->assetPipeline));
$view->with('assets', $this->assetPipeline);
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace Modules\Admin\Http\ViewCreators;
use Illuminate\View\View;
use Modules\Admin\Sidebar\AdminSidebar;
use Maatwebsite\Sidebar\Presentation\SidebarRenderer;
class AdminSidebarCreator
{
/**
* @var \Modules\Admin\Sidebar\AdminSidebar
*/
protected $sidebar;
/**
* @var \Maatwebsite\Sidebar\Presentation\SidebarRenderer
*/
protected $renderer;
/**
* @param \Modules\Admin\Sidebar\AdminSidebar $sidebar
* @param \Maatwebsite\Sidebar\Presentation\SidebarRenderer $renderer
*/
public function __construct(AdminSidebar $sidebar, SidebarRenderer $renderer)
{
$this->sidebar = $sidebar;
$this->renderer = $renderer;
}
public function create(View $view)
{
$view->sidebar = $this->renderer->render($this->sidebar);
}
}