akaunting 3.0 (the last dance)
This commit is contained in:
121
app/View/Components/Index/Search.php
Normal file
121
app/View/Components/Index/Search.php
Normal file
@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Index;
|
||||
|
||||
use App\Abstracts\View\Component;
|
||||
|
||||
class Search extends Component
|
||||
{
|
||||
/**
|
||||
* The Currency currency.
|
||||
*
|
||||
* @var bool|string
|
||||
*/
|
||||
public $searchString;
|
||||
|
||||
/**
|
||||
* The Currency currency.
|
||||
*
|
||||
* @var bool|string
|
||||
*/
|
||||
public $bulkAction;
|
||||
|
||||
/**
|
||||
* The Currency currency.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $action;
|
||||
|
||||
/**
|
||||
* The Currency currency.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $route;
|
||||
|
||||
/**
|
||||
* The Currency currency.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $url;
|
||||
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
$searchString = false, $bulkAction = false, $action = false, $route = false, $url = false
|
||||
) {
|
||||
$this->searchString = $searchString;
|
||||
$this->bulkAction = $bulkAction;
|
||||
$this->action = $this->getAction($action, $route, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.index.search');
|
||||
}
|
||||
|
||||
protected function getAction($action, $route, $url)
|
||||
{
|
||||
if (! empty($action)) {
|
||||
return $action;
|
||||
}
|
||||
|
||||
if (! empty($route)) {
|
||||
return $this->getRouteAction($route);
|
||||
}
|
||||
|
||||
if (! empty($url)) {
|
||||
return $this->getUrlAction($url);
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the action for a "url" option.
|
||||
*
|
||||
* @param array|string $options
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getUrlAction($options)
|
||||
{
|
||||
if (is_array($options)) {
|
||||
return url($options[0], array_slice($options, 1));
|
||||
}
|
||||
|
||||
return url($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the action for a "route" option.
|
||||
*
|
||||
* @param array|string $options
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getRouteAction($options)
|
||||
{
|
||||
if (is_array($options)) {
|
||||
$parameters = array_slice($options, 1);
|
||||
|
||||
if (array_keys($options) === [0, 1]) {
|
||||
$parameters = head($parameters);
|
||||
}
|
||||
|
||||
return route($options[0], $parameters);
|
||||
}
|
||||
|
||||
return route($options);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user