147 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\View\Components;
 | |
| 
 | |
| use Illuminate\View\Component;
 | |
| use Illuminate\Support\Str;
 | |
| use Symfony\Component\Routing\Exception\RouteNotFoundException;
 | |
| 
 | |
| class EmptyPage extends Component
 | |
| {
 | |
|     /** @var string */
 | |
|     public $page;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $group;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $imageEmptyPage;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textEmptyPage;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textPage;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $urlDocsPath;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $checkPermissionCreate;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $permissionCreate;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeCreate;
 | |
| 
 | |
|     /**
 | |
|      * Create a new component instance.
 | |
|      *
 | |
|      * @return void
 | |
|      */
 | |
|     public function __construct(
 | |
|         string $page, string $group = '', string $imageEmptyPage = '', string $textEmptyPage = '', string $textPage = '',
 | |
|         string $urlDocsPath = '', bool $checkPermissionCreate = true, string $permissionCreate  = '', string $routeCreate = ''
 | |
|     ) {
 | |
|         $this->page = $page;
 | |
|         $this->group = $group;
 | |
|         $this->imageEmptyPage = $this->getImageEmptyPage($page, $imageEmptyPage);
 | |
|         $this->textEmptyPage = $this->getTextEmptyPage($page, $textEmptyPage);
 | |
|         $this->textPage = $this->getTextPage($page, $textPage);
 | |
|         $this->urlDocsPath = $this->getUrlDocsPath($page, $group, $urlDocsPath);
 | |
|         $this->checkPermissionCreate = $checkPermissionCreate;
 | |
|         $this->permissionCreate = $this->getPermissionCreate($page, $group, $permissionCreate);
 | |
|         $this->routeCreate = $this->getRouteCreate($page, $routeCreate);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the view / contents that represent the component.
 | |
|      *
 | |
|      * @return \Illuminate\Contracts\View\View|string
 | |
|      */
 | |
|     public function render()
 | |
|     {
 | |
|         return view('components.empty-page');
 | |
|     }
 | |
| 
 | |
|     protected function getImageEmptyPage($page, $imageEmptyPage)
 | |
|     {
 | |
|         if ($imageEmptyPage) {
 | |
|             return $imageEmptyPage;
 | |
|         }
 | |
| 
 | |
|         return 'public/img/empty_pages/' . $page . '.png';
 | |
|     }
 | |
| 
 | |
|     protected function getTextEmptyPage($page, $textEmptyPage)
 | |
|     {
 | |
|         if ($textEmptyPage) {
 | |
|             return $textEmptyPage;
 | |
|         }
 | |
| 
 | |
|         return 'general.empty.' . $page;
 | |
|     }
 | |
| 
 | |
|     protected function getTextPage($page, $textPage)
 | |
|     {
 | |
|         if ($textPage) {
 | |
|             return $textPage;
 | |
|         }
 | |
| 
 | |
|         return 'general.' . $page;
 | |
|     }
 | |
| 
 | |
|     protected function getUrlDocsPath($page, $group, $urlDocsPath)
 | |
|     {
 | |
|         if ($urlDocsPath) {
 | |
|             return $urlDocsPath;
 | |
|         }
 | |
| 
 | |
|         $docs_path = $page;
 | |
|         
 | |
|         if (!empty($group)) {
 | |
|             $docs_path = $group . '/' . $page;
 | |
|         }
 | |
| 
 | |
|         return 'https://akaunting.com/docs/user-manual/' . $docs_path;
 | |
|     }
 | |
| 
 | |
|     protected function getPermissionCreate($page, $group, $permissionCreate)
 | |
|     {
 | |
|         if ($permissionCreate) {
 | |
|             return $permissionCreate;
 | |
|         }
 | |
| 
 | |
|         $pages = [
 | |
|             'reconciliations' => 'create-banking-reconciliations',
 | |
|             'transfers' => 'create-banking-transfers',
 | |
|             'payments' => 'create-purchases-payments',
 | |
|             'vendors' => 'create-purchases-vendors',
 | |
|             'customers' => 'create-sales-customers',
 | |
|             'revenues' => 'create-sales-revenues',
 | |
|             'taxes' => 'create-settings-taxes',
 | |
|             'items' => 'create-common-items',
 | |
|         ];
 | |
| 
 | |
|         if (array_key_exists($page, $pages)) {
 | |
|             $permissionCreate = $pages[$page];
 | |
|         }
 | |
| 
 | |
|         if (empty($permissionCreate) && !empty($group)) {
 | |
|             $permissionCreate = 'create-' . $group . '-' . $page;
 | |
|         }
 | |
| 
 | |
|         return $permissionCreate;
 | |
|     }
 | |
| 
 | |
|     protected function getRouteCreate($page, $routeCreate)
 | |
|     {
 | |
|         if ($routeCreate) {
 | |
|             return $routeCreate;
 | |
|         }
 | |
| 
 | |
|         return $page . '.create';
 | |
|     }
 | |
| }
 |