Skip to content

Commit

Permalink
Fixed aliases registering
Browse files Browse the repository at this point in the history
  • Loading branch information
butschster committed Mar 4, 2016
1 parent d9a3627 commit e1c2acf
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 91 deletions.
34 changes: 25 additions & 9 deletions src/AliasBinder.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,37 @@ class AliasBinder
*
* @param string $alias
* @param string $class
*
* @return $this
*/
public function register($alias, $class)
public function add($alias, $class)
{
$this->aliases[$alias] = $class;

app('router')->group(
['prefix' => config('sleeping_owl.url_prefix'), 'middleware' => config('sleeping_owl.middleware')],
function () use ($class) {
if (method_exists($class, 'registerRoutes')) {
app('router')->group([
'prefix' => config('sleeping_owl.url_prefix'),
'middleware' => config('sleeping_owl.middleware'),
], function () use ($class) {
call_user_func([$class, 'registerRoutes']);
});
}

if (method_exists($class, 'registerRoutes')) {
call_user_func([$class, 'registerRoutes']);
}
return $this;
}

/**
* @param array $classes
*
* @return $this
*/
public function register(array $classes)
{
foreach ($classes as $key => $class) {
$this->add($key, $class);
}

}
);
return $this;
}

/**
Expand Down
158 changes: 76 additions & 82 deletions src/Providers/AliasesServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,128 +9,122 @@ class AliasesServiceProvider extends ServiceProvider
{
public function register()
{
$this->registerColumns();
$this->registerColumnFilters();
$this->registerDisplays();
$this->registerColumns();
$this->registerForms();
$this->registerFormElements();
$this->registerFilters();
}

protected function registerColumnFilters()
{
$this->app->singleton('sleeping_owl.column_filter', function () {

$alias = new AliasBinder();

$alias->register('text', \SleepingOwl\Admin\Display\Column\Filter\Text::class);
$alias->register('date', \SleepingOwl\Admin\Display\Column\Filter\Date::class);
$alias->register('range', \SleepingOwl\Admin\Display\Column\Filter\Range::class);
$alias->register('select', \SleepingOwl\Admin\Display\Column\Filter\Select::class);

$alias = (new AliasBinder())->register([
'text' => \SleepingOwl\Admin\Display\Column\Filter\Text::class,
'date' => \SleepingOwl\Admin\Display\Column\Filter\Date::class,
'range' => \SleepingOwl\Admin\Display\Column\Filter\Range::class,
'select' => \SleepingOwl\Admin\Display\Column\Filter\Select::class,
]);

$this->app->singleton('sleeping_owl.column_filter', function() use($alias) {
return $alias;
});
}

protected function registerDisplays()
{
$this->app->singleton('sleeping_owl.display', function () {

$alias = new AliasBinder();

$alias->register('datatables', \SleepingOwl\Admin\Display\DisplayDatatables::class);
$alias->register('datatablesAsync', \SleepingOwl\Admin\Display\DisplayDatatablesAsync::class);
$alias->register('tab', \SleepingOwl\Admin\Display\DisplayTab::class);
$alias->register('tabbed', \SleepingOwl\Admin\Display\DisplayTabbed::class);
$alias->register('table', \SleepingOwl\Admin\Display\DisplayTable::class);
$alias->register('tree', \SleepingOwl\Admin\Display\DisplayTree::class);

$alias = (new AliasBinder())->register([
'datatables' => \SleepingOwl\Admin\Display\DisplayDatatables::class,
'datatablesAsync' => \SleepingOwl\Admin\Display\DisplayDatatablesAsync::class,
'tab' => \SleepingOwl\Admin\Display\DisplayTab::class,
'tabbed' => \SleepingOwl\Admin\Display\DisplayTabbed::class,
'table' => \SleepingOwl\Admin\Display\DisplayTable::class,
'tree' => \SleepingOwl\Admin\Display\DisplayTree::class
]);

$this->app->singleton('sleeping_owl.display', function() use($alias) {
return $alias;
});
}

protected function registerColumns()
{
$this->app->singleton('sleeping_owl.table.column', function () {

$alias = new AliasBinder();

$alias->register('action', \SleepingOwl\Admin\Display\Column\Action::class);
$alias->register('checkbox', \SleepingOwl\Admin\Display\Column\Checkbox::class);
$alias->register('control', \SleepingOwl\Admin\Display\Column\Control::class);
$alias->register('count', \SleepingOwl\Admin\Display\Column\Count::class);
$alias->register('custom', \SleepingOwl\Admin\Display\Column\Custom::class);
$alias->register('datetime', \SleepingOwl\Admin\Display\Column\DateTime::class);
$alias->register('filter', \SleepingOwl\Admin\Display\Column\Filter::class);
$alias->register('image', \SleepingOwl\Admin\Display\Column\Image::class);
$alias->register('lists', \SleepingOwl\Admin\Display\Column\Lists::class);
$alias->register('order', \SleepingOwl\Admin\Display\Column\Order::class);
$alias->register('text', \SleepingOwl\Admin\Display\Column\Text::class);
$alias->register('link', \SleepingOwl\Admin\Display\Column\Link::class);
$alias->register('relatedLink', \SleepingOwl\Admin\Display\Column\RelatedLink::class);
$alias->register('email', \SleepingOwl\Admin\Display\Column\Email::class);
$alias->register('treeControl', \SleepingOwl\Admin\Display\Column\TreeControl::class);

$alias = (new AliasBinder())->register([
'action' => \SleepingOwl\Admin\Display\Column\Action::class,
'checkbox' => \SleepingOwl\Admin\Display\Column\Checkbox::class,
'control' => \SleepingOwl\Admin\Display\Column\Control::class,
'count' => \SleepingOwl\Admin\Display\Column\Count::class,
'custom' => \SleepingOwl\Admin\Display\Column\Custom::class,
'datetime' => \SleepingOwl\Admin\Display\Column\DateTime::class,
'filter' => \SleepingOwl\Admin\Display\Column\Filter::class,
'image' => \SleepingOwl\Admin\Display\Column\Image::class,
'lists' => \SleepingOwl\Admin\Display\Column\Lists::class,
'order' => \SleepingOwl\Admin\Display\Column\Order::class,
'text' => \SleepingOwl\Admin\Display\Column\Text::class,
'link' => \SleepingOwl\Admin\Display\Column\Link::class,
'relatedLink' => \SleepingOwl\Admin\Display\Column\RelatedLink::class,
'email' => \SleepingOwl\Admin\Display\Column\Email::class,
'treeControl' => \SleepingOwl\Admin\Display\Column\TreeControl::class,
]);

$this->app->singleton('sleeping_owl.table.column', function() use($alias) {
return $alias;
});
}

protected function registerFormElements()
{
$this->app->singleton('sleeping_owl.form.element', function () {

$alias = new AliasBinder();

$alias->register('columns', \SleepingOwl\Admin\Form\Element\Columns::class);
$alias->register('text', \SleepingOwl\Admin\Form\Element\Text::class);
$alias->register('time', \SleepingOwl\Admin\Form\Element\Time::class);
$alias->register('date', \SleepingOwl\Admin\Form\Element\Date::class);
$alias->register('timestamp', \SleepingOwl\Admin\Form\Element\Timestamp::class);
$alias->register('textaddon', \SleepingOwl\Admin\Form\Element\TextAddon::class);
$alias->register('select', \SleepingOwl\Admin\Form\Element\Select::class);
$alias->register('multiselect', \SleepingOwl\Admin\Form\Element\MultiSelect::class);
$alias->register('hidden', \SleepingOwl\Admin\Form\Element\Hidden::class);
$alias->register('checkbox', \SleepingOwl\Admin\Form\Element\Checkbox::class);
$alias->register('ckeditor', \SleepingOwl\Admin\Form\Element\CKEditor::class);
$alias->register('custom', \SleepingOwl\Admin\Form\Element\Custom::class);
$alias->register('password', \SleepingOwl\Admin\Form\Element\Password::class);
$alias->register('textarea', \SleepingOwl\Admin\Form\Element\Textarea::class);
$alias->register('view', \SleepingOwl\Admin\Form\Element\View::class);
$alias->register('image', \SleepingOwl\Admin\Form\Element\Image::class);
$alias->register('images', \SleepingOwl\Admin\Form\Element\Images::class);
$alias->register('file', \SleepingOwl\Admin\Form\Element\File::class);
$alias->register('radio', \SleepingOwl\Admin\Form\Element\Radio::class);
$alias->register('wysiwyg', \SleepingOwl\Admin\Form\Element\Wysiwyg::class);

$alias = (new AliasBinder())->register([
'columns' => \SleepingOwl\Admin\Form\Element\Columns::class,
'text' => \SleepingOwl\Admin\Form\Element\Text::class,
'time' => \SleepingOwl\Admin\Form\Element\Time::class,
'date' => \SleepingOwl\Admin\Form\Element\Date::class,
'timestamp' => \SleepingOwl\Admin\Form\Element\Timestamp::class,
'textaddon' => \SleepingOwl\Admin\Form\Element\TextAddon::class,
'select' => \SleepingOwl\Admin\Form\Element\Select::class,
'multiselect' => \SleepingOwl\Admin\Form\Element\MultiSelect::class,
'hidden' => \SleepingOwl\Admin\Form\Element\Hidden::class,
'checkbox' => \SleepingOwl\Admin\Form\Element\Checkbox::class,
'ckeditor' => \SleepingOwl\Admin\Form\Element\CKEditor::class,
'custom' => \SleepingOwl\Admin\Form\Element\Custom::class,
'password' => \SleepingOwl\Admin\Form\Element\Password::class,
'textarea' => \SleepingOwl\Admin\Form\Element\Textarea::class,
'view' => \SleepingOwl\Admin\Form\Element\View::class,
'image' => \SleepingOwl\Admin\Form\Element\Image::class,
'images' => \SleepingOwl\Admin\Form\Element\Images::class,
'file' => \SleepingOwl\Admin\Form\Element\File::class,
'radio' => \SleepingOwl\Admin\Form\Element\Radio::class,
'wysiwyg' => \SleepingOwl\Admin\Form\Element\Wysiwyg::class,
]);

$this->app->singleton('sleeping_owl.form.element', function() use($alias) {
return $alias;
});
}

protected function registerForms()
{
$this->app->singleton('sleeping_owl.form', function () {

$alias = new AliasBinder();

$alias->register('form', \SleepingOwl\Admin\Form\FormDefault::class);
$alias->register('tabbed', \SleepingOwl\Admin\Form\FormTabbed::class);
$alias->register('panel', \SleepingOwl\Admin\Form\FormPanel::class);
$alias = (new AliasBinder())->register([
'form' => \SleepingOwl\Admin\Form\FormDefault::class,
'tabbed' => \SleepingOwl\Admin\Form\FormTabbed::class,
'panel' => \SleepingOwl\Admin\Form\FormPanel::class,
]);

$this->app->singleton('sleeping_owl.form', function() use($alias) {
return $alias;
});
}

protected function registerFilters()
{
$this->app->singleton('sleeping_owl.display.filter', function () {

$alias = new AliasBinder();

$alias->register('field', \SleepingOwl\Admin\Display\Filter\FilterField::class);
$alias->register('scope', \SleepingOwl\Admin\Display\Filter\FilterScope::class);
$alias->register('custom', \SleepingOwl\Admin\Display\Filter\FilterCustom::class);
$alias->register('related', \SleepingOwl\Admin\Display\Filter\FilterRelated::class);

$alias = (new AliasBinder())->register([
'field' => \SleepingOwl\Admin\Display\Filter\FilterField::class,
'scope' => \SleepingOwl\Admin\Display\Filter\FilterScope::class,
'custom' => \SleepingOwl\Admin\Display\Filter\FilterCustom::class,
'related' => \SleepingOwl\Admin\Display\Filter\FilterRelated::class,
]);

$this->app->singleton('sleeping_owl.display.filter', function() use($alias) {
return $alias;
});
}
Expand Down

0 comments on commit e1c2acf

Please sign in to comment.