akaunting 3.0 (the last dance)
This commit is contained in:
@@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Pagination\Paginator;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\ServiceProvider as Provider;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
|
||||
class App extends Provider
|
||||
{
|
||||
@@ -23,6 +24,8 @@ class App extends Provider
|
||||
if (config('app.env') !== 'production') {
|
||||
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
|
||||
}
|
||||
|
||||
Sanctum::ignoreMigrations();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\View\Components\Form\Group\Sswitch;
|
||||
use App\View\Components\Media\Ffile as MFile;
|
||||
use App\View\Components\Form\Input\Ffile;
|
||||
use App\View\Components\Index\Ddefault;
|
||||
use App\Traits\DateTime;
|
||||
use Illuminate\Support\Facades\Blade as Facade;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
@@ -28,6 +32,11 @@ class Blade extends ServiceProvider
|
||||
Facade::if('readonly', function () {
|
||||
return config('read-only.enabled');
|
||||
});
|
||||
|
||||
Facade::component('form.group.switch', Sswitch::class);
|
||||
Facade::component('media.file', MFile::class);
|
||||
Facade::component('form.input.file', Ffile::class);
|
||||
Facade::component('index.default', Ddefault::class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -15,32 +15,7 @@ class Event extends Provider
|
||||
'App\Events\Install\UpdateFinished' => [
|
||||
'App\Listeners\Update\CreateModuleUpdatedHistory',
|
||||
'App\Listeners\Module\UpdateExtraModules',
|
||||
'App\Listeners\Update\V20\Version200',
|
||||
'App\Listeners\Update\V20\Version203',
|
||||
'App\Listeners\Update\V20\Version205',
|
||||
'App\Listeners\Update\V20\Version207',
|
||||
'App\Listeners\Update\V20\Version208',
|
||||
'App\Listeners\Update\V20\Version209',
|
||||
'App\Listeners\Update\V20\Version2014',
|
||||
'App\Listeners\Update\V20\Version2017',
|
||||
'App\Listeners\Update\V20\Version2020',
|
||||
'App\Listeners\Update\V20\Version2023',
|
||||
'App\Listeners\Update\V20\Version2024',
|
||||
'App\Listeners\Update\V21\Version210',
|
||||
'App\Listeners\Update\V21\Version213',
|
||||
'App\Listeners\Update\V21\Version218',
|
||||
'App\Listeners\Update\V21\Version219',
|
||||
'App\Listeners\Update\V21\Version2112',
|
||||
'App\Listeners\Update\V21\Version2114',
|
||||
'App\Listeners\Update\V21\Version2116',
|
||||
'App\Listeners\Update\V21\Version2117',
|
||||
'App\Listeners\Update\V21\Version2118',
|
||||
'App\Listeners\Update\V21\Version2124',
|
||||
'App\Listeners\Update\V21\Version2125',
|
||||
'App\Listeners\Update\V21\Version2126',
|
||||
'App\Listeners\Update\V21\Version2127',
|
||||
'App\Listeners\Update\V21\Version2133',
|
||||
'App\Listeners\Update\V21\Version2134',
|
||||
'App\Listeners\Update\V30\Version300',
|
||||
],
|
||||
'Illuminate\Auth\Events\Login' => [
|
||||
'App\Listeners\Auth\Login',
|
||||
@@ -55,6 +30,12 @@ class Event extends Provider
|
||||
'App\Events\Auth\LandingPageShowing' => [
|
||||
'App\Listeners\Auth\AddLandingPages',
|
||||
],
|
||||
'App\Events\Auth\InvitationCreated' => [
|
||||
'App\Listeners\Auth\SendUserInvitation',
|
||||
],
|
||||
'App\Events\Auth\UserDeleted' => [
|
||||
'App\Listeners\Auth\DeleteUserInvitation',
|
||||
],
|
||||
'App\Events\Document\DocumentCreated' => [
|
||||
'App\Listeners\Document\CreateDocumentCreatedHistory',
|
||||
'App\Listeners\Document\IncreaseNextDocumentNumber',
|
||||
@@ -84,15 +65,28 @@ class Event extends Provider
|
||||
],
|
||||
'App\Events\Document\DocumentViewed' => [
|
||||
'App\Listeners\Document\MarkDocumentViewed',
|
||||
'App\Listeners\Document\SendDocumentViewNotification',
|
||||
],
|
||||
'App\Events\Install\UpdateFailed' => [
|
||||
'App\Listeners\Update\SendNotificationOnFailure',
|
||||
],
|
||||
'App\Events\Menu\NotificationsCreated' => [
|
||||
'App\Listeners\Menu\ShowInNotifications',
|
||||
],
|
||||
'App\Events\Menu\AdminCreated' => [
|
||||
'App\Listeners\Menu\AddAdminItems',
|
||||
'App\Listeners\Menu\ShowInAdmin',
|
||||
],
|
||||
'App\Events\Menu\ProfileCreated' => [
|
||||
'App\Listeners\Menu\ShowInProfile',
|
||||
],
|
||||
'App\Events\Menu\SettingsCreated' => [
|
||||
'App\Listeners\Menu\ShowInSettings',
|
||||
],
|
||||
'App\Events\Menu\NewwCreated' => [
|
||||
'App\Listeners\Menu\ShowInNeww',
|
||||
],
|
||||
'App\Events\Menu\PortalCreated' => [
|
||||
'App\Listeners\Menu\AddPortalItems',
|
||||
'App\Listeners\Menu\ShowInPortal',
|
||||
],
|
||||
'App\Events\Module\Installed' => [
|
||||
'App\Listeners\Module\InstallExtraModules',
|
||||
@@ -101,6 +95,9 @@ class Event extends Provider
|
||||
'App\Events\Module\Uninstalled' => [
|
||||
'App\Listeners\Module\FinishUninstallation',
|
||||
],
|
||||
'App\Events\Banking\TransactionCreated' => [
|
||||
'App\Listeners\Banking\IncreaseNextTransactionNumber',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,160 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Form as Facade;
|
||||
use Illuminate\Support\ServiceProvider as Provider;
|
||||
|
||||
class Form extends Provider
|
||||
{
|
||||
/**
|
||||
* Register bindings in the container.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
// Form components
|
||||
Facade::component('moneyGroup', 'partials.form.money_group', [
|
||||
'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'value' => null, 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('dateTimeGroup', 'partials.form.date_time_group', [
|
||||
'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'value' => null, 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('dateGroup', 'partials.form.date_group', [
|
||||
'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'value' => null, 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('timeGroup', 'partials.form.time_group', [
|
||||
'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'value' => null, 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('textGroup', 'partials.form.text_group', [
|
||||
'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'value' => null, 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('emailGroup', 'partials.form.email_group', [
|
||||
'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'value' => null, 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('passwordGroup', 'partials.form.password_group', [
|
||||
'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('numberGroup', 'partials.form.number_group', [
|
||||
'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'value' => null, 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('multiSelectGroup', 'partials.form.multi_select_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('multiSelectAddNewGroup', 'partials.form.multi_select_add_new_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('multiSelectRemoteGroup', 'partials.form.multi_select_remote_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('multiSelectRemoteAddNewGroup', 'partials.form.multi_select_remote_add_new_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required', 'path' => ''], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('selectGroup', 'partials.form.select_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('selectAddNewGroup', 'partials.form.select_add_new_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required', 'path' => ''], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('selectGroupGroup', 'partials.form.select_group_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('selectGroupAddNewGroup', 'partials.form.select_group_add_new_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('selectRemoteGroup', 'partials.form.select_remote_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('selectRemoteAddNewGroup', 'partials.form.select_remote_add_new_group', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required', 'path' => ''], 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('textareaGroup', 'partials.form.textarea_group', [
|
||||
'name', 'text', 'icon', 'value' => null, 'attributes' => ['rows' => '3'], 'col' => 'col-md-12', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('textEditorGroup', 'partials.form.text_editor_group', [
|
||||
'name', 'text', 'icon', 'value' => null, 'attributes' => ['rows' => '3'], 'col' => 'col-md-12', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('radioGroup', 'partials.form.radio_group', [
|
||||
'name', 'text', 'value' => null, 'enable' => trans('general.yes'), 'disable' => trans('general.no'), 'attributes' => [], 'col' => 'col-md-6',
|
||||
]);
|
||||
|
||||
Facade::component('checkboxGroup', 'partials.form.checkbox_group', [
|
||||
'name', 'text', 'items' => [], 'value' => 'name', 'id' => 'id', 'selected'=>[], 'attributes' => ['required' => 'required'], 'col' => 'col-md-12',
|
||||
]);
|
||||
|
||||
Facade::component('fileGroup', 'partials.form.file_group', [
|
||||
'name', 'text', 'icon', 'attributes' => [], 'value' => null, 'col' => 'col-md-6',
|
||||
]);
|
||||
|
||||
Facade::component('deleteButton', 'partials.form.delete_button', [
|
||||
'item', 'url', 'text' => '', 'value' => 'name', 'id' => 'id',
|
||||
]);
|
||||
|
||||
Facade::component('deleteLink', 'partials.form.delete_link', [
|
||||
'item', 'url', 'text' => '', 'value' => 'name', 'id' => 'id',
|
||||
]);
|
||||
|
||||
Facade::component('saveButtons', 'partials.form.save_buttons', [
|
||||
'cancel', 'col' => 'col-md-12',
|
||||
]);
|
||||
|
||||
Facade::component('recurring', 'partials.form.recurring', [
|
||||
'page', 'model' => null, 'col' => 'col-md-6',
|
||||
]);
|
||||
|
||||
Facade::component('invoice_text', 'partials.form.invoice_text', [
|
||||
'name', 'text', 'icon', 'values', 'selected' => null, 'attributes' => ['required' => 'required'], 'input_name', 'input_value', 'col' => 'col-md-6', 'group_class' => null
|
||||
]);
|
||||
|
||||
Facade::component('dateRange', 'partials.form.date_range', [
|
||||
'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'value' => null, 'col' => 'col-md-6',
|
||||
]);
|
||||
|
||||
Facade::component('bulkActionRowGroup', 'partials.form.bulk_action_row_group', [
|
||||
'text', 'actions', 'path', 'attributes' => []
|
||||
]);
|
||||
|
||||
Facade::component('bulkActionAllGroup', 'partials.form.bulk_action_all_group', [
|
||||
'attributes' => []
|
||||
]);
|
||||
|
||||
Facade::component('bulkActionGroup', 'partials.form.bulk_action_group', [
|
||||
'id', 'name', 'attributes' => []
|
||||
]);
|
||||
|
||||
Facade::component('enabledGroup', 'partials.form.enabled_group', [
|
||||
'id', 'name', 'value'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the service provider.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Illuminate\Support\Str;
|
||||
@@ -27,7 +28,7 @@ class Macro extends ServiceProvider
|
||||
public function boot()
|
||||
{
|
||||
Request::macro('isApi', function () {
|
||||
return $this->is(config('api.subtype') . '/*');
|
||||
return $this->is(config('api.prefix') . '/*');
|
||||
});
|
||||
|
||||
Request::macro('isNotApi', function () {
|
||||
@@ -50,6 +51,14 @@ class Macro extends ServiceProvider
|
||||
return !$this->isInstall();
|
||||
});
|
||||
|
||||
Request::macro('isPreview', function ($company_id) {
|
||||
return $this->is($company_id . '/preview/*');
|
||||
});
|
||||
|
||||
Request::macro('isNotPreview', function ($company_id) {
|
||||
return !$this->isPreview($company_id);
|
||||
});
|
||||
|
||||
Request::macro('isSigned', function ($company_id) {
|
||||
return $this->is($company_id . '/signed/*');
|
||||
});
|
||||
@@ -109,5 +118,15 @@ class Macro extends ServiceProvider
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
Collection::macro('withChildren', function ($relation, $addChildren) {
|
||||
$list = new Collection();
|
||||
|
||||
foreach ($this as $model) {
|
||||
$addChildren($list, $model, $relation, 0, $addChildren);
|
||||
}
|
||||
|
||||
return $list;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Models\Banking\Transaction;
|
||||
use App\Models\Setting\Category;
|
||||
use Illuminate\Support\ServiceProvider as Provider;
|
||||
|
||||
class Observer extends Provider
|
||||
@@ -25,5 +26,6 @@ class Observer extends Provider
|
||||
public function boot()
|
||||
{
|
||||
Transaction::observe('App\Observers\Transaction');
|
||||
Category::observe('App\Observers\Category');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,10 +43,8 @@ class Queue extends Provider
|
||||
|
||||
$payload = $event->job->payload();
|
||||
|
||||
if (!array_key_exists('company_id', $payload)) {
|
||||
$event->job->delete();
|
||||
|
||||
throw new \Exception('Missing company. Payload: ' . json_encode($payload));
|
||||
if (! array_key_exists('company_id', $payload)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$company = company($payload['company_id']);
|
||||
|
||||
@@ -78,6 +78,14 @@ class Route extends Provider
|
||||
], $attributes));
|
||||
});
|
||||
|
||||
Facade::macro('preview', function ($alias, $routes, $attributes = []) {
|
||||
return Facade::module($alias, $routes, array_merge([
|
||||
'middleware' => 'preview',
|
||||
'prefix' => 'preview/' . $alias,
|
||||
'as' => 'preview.' . $alias . '.',
|
||||
], $attributes));
|
||||
});
|
||||
|
||||
Facade::macro('portal', function ($alias, $routes, $attributes = []) {
|
||||
return Facade::module($alias, $routes, array_merge([
|
||||
'middleware' => 'portal',
|
||||
@@ -94,18 +102,14 @@ class Route extends Provider
|
||||
], $attributes));
|
||||
});
|
||||
|
||||
Facade::macro('api', function ($alias, $routes, $attrs = []) {
|
||||
$attributes = array_merge([
|
||||
Facade::macro('api', function ($alias, $routes, $attributes = []) {
|
||||
return Facade::module($alias, $routes, array_merge([
|
||||
'namespace' => 'Modules\\' . module($alias)->getStudlyName() . '\Http\Controllers\Api',
|
||||
'prefix' => $alias,
|
||||
'as' => 'api.' . $alias,
|
||||
], $attrs);
|
||||
|
||||
$api = app('Dingo\Api\Routing\Router');
|
||||
|
||||
return $api->version(config('api.version'), ['middleware' => ['api']], function($api) use ($attributes, $routes) {
|
||||
$api->group($attributes, $routes);
|
||||
});
|
||||
'domain' => config('api.domain'),
|
||||
'middleware' => config('api.middleware'),
|
||||
'prefix' => config('api.prefix') ? config('api.prefix') . '/' . $alias : $alias,
|
||||
'as' => 'api.' . $alias . '.',
|
||||
], $attributes));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -130,6 +134,8 @@ class Route extends Provider
|
||||
|
||||
$this->mapAdminRoutes();
|
||||
|
||||
$this->mapPreviewRoutes();
|
||||
|
||||
$this->mapPortalRoutes();
|
||||
|
||||
$this->mapSignedRoutes();
|
||||
@@ -159,8 +165,10 @@ class Route extends Provider
|
||||
*/
|
||||
protected function mapApiRoutes()
|
||||
{
|
||||
Facade::prefix('api')
|
||||
->namespace($this->namespace)
|
||||
Facade::prefix(config('api.prefix'))
|
||||
->domain(config('api.domain'))
|
||||
->middleware(config('api.middleware'))
|
||||
->namespace($this->namespace . '\Api')
|
||||
->group(base_path('routes/api.php'));
|
||||
}
|
||||
|
||||
@@ -222,6 +230,20 @@ class Route extends Provider
|
||||
->namespace($this->namespace)
|
||||
->group(base_path('routes/admin.php'));
|
||||
}
|
||||
/**
|
||||
* Define the "preview" routes for the application.
|
||||
*
|
||||
* These routes all receive session state, CSRF protection, etc.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function mapPreviewRoutes()
|
||||
{
|
||||
Facade::prefix('{company_id}/preview')
|
||||
->middleware('preview')
|
||||
->namespace($this->namespace)
|
||||
->group(base_path('routes/preview.php'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the "portal" routes for the application.
|
||||
|
||||
@@ -46,11 +46,11 @@ class Validation extends Provider
|
||||
Validator::extend('amount', function ($attribute, $value, $parameters, $validator) use (&$amount) {
|
||||
$status = false;
|
||||
|
||||
if ($value > 0) {
|
||||
if ($value > 0 || in_array($value, $parameters)) {
|
||||
$status = true;
|
||||
}
|
||||
|
||||
if (!preg_match("/^(?=.*?[0-9])[0-9.,]+$/", $value)) {
|
||||
if (! preg_match("/^(?=.*?[0-9])[0-9.,]+$/", $value)) {
|
||||
$status = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider as Provider;
|
||||
use View;
|
||||
use Illuminate\Support\Facades\View;
|
||||
|
||||
class ViewComposer extends Provider
|
||||
{
|
||||
@@ -14,46 +14,10 @@ class ViewComposer extends Provider
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
// Suggestions
|
||||
// Add Contact Type
|
||||
View::composer(
|
||||
'partials.admin.header', 'App\Http\ViewComposers\Suggestions'
|
||||
);
|
||||
|
||||
// Notifications
|
||||
View::composer(
|
||||
'partials.admin.content', 'App\Http\ViewComposers\Notifications'
|
||||
);
|
||||
|
||||
// Add company info to menu
|
||||
View::composer(
|
||||
['partials.admin.menu', 'partials.portal.menu'],
|
||||
'App\Http\ViewComposers\Menu'
|
||||
);
|
||||
|
||||
// Add notifications to header
|
||||
View::composer(
|
||||
['partials.wizard.navbar', 'partials.admin.navbar', 'partials.portal.navbar'],
|
||||
'App\Http\ViewComposers\Header'
|
||||
);
|
||||
|
||||
// Add limits and bulk actions to index
|
||||
View::composer(
|
||||
'*.index', 'App\Http\ViewComposers\Index'
|
||||
);
|
||||
|
||||
// Add limits to show
|
||||
View::composer(
|
||||
'*.show', 'App\Http\ViewComposers\Index'
|
||||
);
|
||||
|
||||
// Add Modules
|
||||
View::composer(
|
||||
'modules.*', 'App\Http\ViewComposers\Modules'
|
||||
);
|
||||
|
||||
// Add recurring
|
||||
View::composer(
|
||||
'partials.form.recurring', 'App\Http\ViewComposers\Recurring'
|
||||
['contacts.*'],
|
||||
'App\Http\ViewComposers\ContactType'
|
||||
);
|
||||
|
||||
// Add Document Type
|
||||
@@ -62,13 +26,14 @@ class ViewComposer extends Provider
|
||||
'App\Http\ViewComposers\DocumentType'
|
||||
);
|
||||
|
||||
// Wizard
|
||||
// Document Recurring Metadata
|
||||
View::composer(
|
||||
'layouts.wizard', 'App\Http\ViewComposers\Wizard'
|
||||
['components.documents.form.metadata'],
|
||||
'App\Http\ViewComposers\DocumentRecurring'
|
||||
);
|
||||
|
||||
View::composer(
|
||||
['partials.admin.content'],
|
||||
['components.layouts.admin.notifications'],
|
||||
'App\Http\ViewComposers\ReadOnlyNotification'
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user