Config route get dynamic..

This commit is contained in:
Cüneyt Şentürk 2021-01-09 20:38:45 +03:00
parent fd2054cebe
commit 7f318911fd
4 changed files with 160 additions and 236 deletions

View File

@ -53,7 +53,7 @@ abstract class Document extends Component
return $translation;
}
public function getRouteFromConfig($type, $config_key)
public function getRouteFromConfig($type, $config_key, $config_parameters = [])
{
$route = '';
@ -62,7 +62,23 @@ abstract class Document extends Component
return $route;
}
$prefix = config("type.' . $type . '.route.prefix");
$prefix = config('type.' . $type . '.route.prefix');
$route = $prefix . '.' . $config_key;
try {
route($route, $config_parameters);
} catch (\Exception $e) {
try {
$route = Str::plural($type, 2) . '.' . $config_key;
route($route, $config_parameters);
} catch (\Exception $e) {
$route = '';
}
}
return $route;
}
public function getPermissionFromConfig($type, $config_key)

View File

@ -294,27 +294,13 @@ abstract class DocumentForm extends Base
return $routeStore;
}
if ($route = config("type.{$type}.route.store")) {
$route = $this->getRouteFromConfig($type, 'store');
if (!empty($route)) {
return $route;
}
$prefix = config("type.{$type}.route.prefix");
$route = $prefix . '.store';
try {
route($route);
} catch (\Exception $e) {
try {
$route = Str::plural($type, 2) . '.store';
route($route);
} catch (\Exception $e) {
$route = '';
}
}
return $route;
return 'invoices.store';
}
protected function getRouteUpdate($type, $routeUpdate, $document, $parameters = [])
@ -323,33 +309,17 @@ abstract class DocumentForm extends Base
return $routeUpdate;
}
if ($route = config("type.{$type}.route.update")) {
$parameters = [
config('type.' . $type. '.route.parameter') => $document->id
];
$route = $this->getRouteFromConfig($type, 'update', $parameters);
if (!empty($route)) {
return $route;
}
$prefix = config("type.{$type}.route.prefix");
$route = $prefix . '.update';
if (!empty($parameters)) {
$parameters = [
config("type.{$type}.route.parameter") => $document->id
];
}
try {
route($route, $parameters);
} catch (\Exception $e) {
try {
$route = Str::plural($type, 2) . '.update';
route($route, $parameters);
} catch (\Exception $e) {
$route = '';
}
}
return $route;
return 'invoices.update';
}
protected function getContacts($type, $contacts)

View File

@ -267,7 +267,7 @@ abstract class DocumentIndex extends Base
$this->classDocumentNumber = $this->getClassDocumentNumber($type, $classDocumentNumber);
$this->classContactName = $this->getClassContactName($type, $classContactName);
$this->classAmount = $this->getClassAmount($type, $classAmount);
$this->classIssuedAt = $this->getclassIssuedAt($type, $classIssuedAt);
$this->classIssuedAt = $this->getClassIssuedAt($type, $classIssuedAt);
$this->classDueAt = $this->getClassDueAt($type, $classDueAt);
$this->classStatus = $this->getClassStatus($type, $classStatus);
$this->classActions = $this->getClassActions($type, $classActions);
@ -292,6 +292,12 @@ abstract class DocumentIndex extends Base
return $page;
}
$route = $this->getRouteFromConfig($type, 'update');
if (!empty($route)) {
return $route;
}
return config("type.{$type}.route.prefix");
}
@ -323,17 +329,13 @@ abstract class DocumentIndex extends Base
return $createRoute;
}
$page = config("type.{$type}.route.prefix");
$route = $this->getRouteFromConfig($type, 'create');
$route = $page . '.create';
try {
route($route);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.create';
}
protected function getImportRoute($importRoute)
@ -353,10 +355,12 @@ abstract class DocumentIndex extends Base
return $importRouteParameters;
}
$route = $this->getRouteFromConfig($type, 'import');
$importRouteParameters = [
'group' => config("type.{$type}.group"),
'type' => config("type.{$type}.route.prefix"),
'route' => 'invoices.import',
'group' => config('type.' . $type . '.group'),
'type' => config('type.' . $type . '.route.prefix'),
'route' => ($route) ? $route : 'invoices.import',
];
return $importRouteParameters;
@ -368,17 +372,13 @@ abstract class DocumentIndex extends Base
return $exportRoute;
}
$page = config("type.{$type}.route.prefix");
$route = $this->getRouteFromConfig($type, 'export');
$route = $page . '.export';
try {
route($route);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.export';
}
protected function getRoute($type, $formCardHeaderRoute)
@ -387,17 +387,13 @@ abstract class DocumentIndex extends Base
return $formCardHeaderRoute;
}
$page = config("type.{$type}.route.prefix");
$route = $this->getRouteFromConfig($type, 'index');
$route = $page . '.index';
try {
route($route);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.index';
}
protected function getSearchStringModel($type, $searchStringModel)
@ -480,9 +476,15 @@ abstract class DocumentIndex extends Base
return $bulkActionRouteParameters;
}
$group = config('type.' . $type . '.group');
if (!empty(config('type.' . $type . '.alias'))) {
$group = config('type.' . $type . '.alias');
}
$bulkActionRouteParameters = [
'group' => config("type.{$type}.group"),
'type' => config("type.{$type}.route.prefix")
'group' => $group,
'type' => config('type.' . $type . '.route.prefix')
];
return $bulkActionRouteParameters;
@ -594,7 +596,7 @@ abstract class DocumentIndex extends Base
return 'invoices.invoice_date';
}
protected function getclassIssuedAt($type, $classIssuedAt)
protected function getClassIssuedAt($type, $classIssuedAt)
{
if (!empty($classIssuedAt)) {
return $classIssuedAt;
@ -684,20 +686,16 @@ abstract class DocumentIndex extends Base
return $routeButtonShow;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.show';
$route = $this->getRouteFromConfig($type, 'show', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.show';
}
protected function getRouteButtonEdit($type, $routeButtonEdit)
@ -706,20 +704,16 @@ abstract class DocumentIndex extends Base
return $routeButtonEdit;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.edit';
$route = $this->getRouteFromConfig($type, 'edit', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.edit';
}
protected function getRouteButtonDuplicate($type, $routeButtonDuplicate)
@ -728,20 +722,16 @@ abstract class DocumentIndex extends Base
return $routeButtonDuplicate;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.duplicate';
$route = $this->getRouteFromConfig($type, 'duplicate', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.duplicate';
}
protected function getRouteButtonCancelled($type, $routeButtonCancelled)
@ -750,20 +740,16 @@ abstract class DocumentIndex extends Base
return $routeButtonCancelled;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.cancelled';
$route = $this->getRouteFromConfig($type, 'cancelled', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.cancelled';
}
protected function getRouteButtonDelete($type, $routeButtonDelete)
@ -772,20 +758,16 @@ abstract class DocumentIndex extends Base
return $routeButtonDelete;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.destroy';
$route = $this->getRouteFromConfig($type, 'destroy', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.destroy';
}
protected function getPermissionCreate($type, $permissionCreate)

View File

@ -605,7 +605,7 @@ abstract class DocumentShow extends Base
return $signedUrl;
}
$page = config("type.{$type}.route.prefix");
$page = config('type.' . $type . '.route.prefix');
$route = 'signed.' . $page . '.show';
@ -614,7 +614,7 @@ abstract class DocumentShow extends Base
$signedUrl = URL::signedRoute($route, [$this->document->id, 'company_id' => session('company_id')]);
} catch (\Exception $e) {
$route = '';
$signedUrl = URL::signedRoute('signed.invoices.show', [$this->document->id, 'company_id' => session('company_id')]);
}
return $signedUrl;
@ -660,17 +660,13 @@ abstract class DocumentShow extends Base
return $routeButtonAddNew;
}
$page = config("type.{$type}.route.prefix");
$route = $this->getRouteFromConfig($type, 'create');
$route = $page . '.create';
try {
route($route);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.create';
}
protected function getRouteButtonEdit($type, $routeButtonEdit)
@ -679,20 +675,16 @@ abstract class DocumentShow extends Base
return $routeButtonEdit;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.edit';
$route = $this->getRouteFromConfig($type, 'edit', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.edit';
}
protected function getRouteButtonDuplicate($type, $routeButtonDuplicate)
@ -701,20 +693,16 @@ abstract class DocumentShow extends Base
return $routeButtonDuplicate;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.duplicate';
$route = $this->getRouteFromConfig($type, 'duplicate', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.duplicate';
}
protected function getRouteButtonPrint($type, $routeButtonPrint)
@ -723,20 +711,16 @@ abstract class DocumentShow extends Base
return $routeButtonPrint;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.print';
$route = $this->getRouteFromConfig($type, 'print', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.print';
}
protected function getRouteButtonPdf($type, $routeButtonPdf)
@ -745,20 +729,16 @@ abstract class DocumentShow extends Base
return $routeButtonPdf;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.pdf';
$route = $this->getRouteFromConfig($type, 'pdf', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.pdf';
}
protected function getRouteButtonCancelled($type, $routeButtonCancelled)
@ -767,20 +747,16 @@ abstract class DocumentShow extends Base
return $routeButtonCancelled;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.cancelled';
$route = $this->getRouteFromConfig($type, 'cancelled', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.cancelled';
}
protected function getRouteButtonCustomize($type, $routeButtonCustomize)
@ -794,7 +770,7 @@ abstract class DocumentShow extends Base
try {
route($route);
} catch (\Exception $e) {
$route = '';
$route = 'settings.invoice.edit';
}
return $route;
@ -806,20 +782,16 @@ abstract class DocumentShow extends Base
return $routeButtonDelete;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.destroy';
$route = $this->getRouteFromConfig($type, 'destroy', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.destroy';
}
protected function getRouteButtonPaid($type, $routeButtonPaid)
@ -828,20 +800,16 @@ abstract class DocumentShow extends Base
return $routeButtonPaid;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.paid';
$route = $this->getRouteFromConfig($type, 'paid', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.paid';
}
protected function getRouteButtonSent($type, $routeButtonSent)
@ -850,20 +818,16 @@ abstract class DocumentShow extends Base
return $routeButtonSent;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.sent';
$route = $this->getRouteFromConfig($type, 'sent', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.sent';
}
protected function getRouteButtonReceived($type, $routeButtonReceived)
@ -872,20 +836,16 @@ abstract class DocumentShow extends Base
return $routeButtonReceived;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.received';
$route = $this->getRouteFromConfig($type, 'received', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.received';
}
protected function getRouteButtonEmail($type, $routeButtonEmail)
@ -894,20 +854,16 @@ abstract class DocumentShow extends Base
return $routeButtonEmail;
}
$page = config("type.{$type}.route.prefix");
//example route parameter.
$parameter = 1;
$route = $page . '.email';
$route = $this->getRouteFromConfig($type, 'email', $parameter);
try {
//example route parameter.
$parameter = 1;
route($route, $parameter);
} catch (\Exception $e) {
$route = '';
if (!empty($route)) {
return $route;
}
return $route;
return 'invoices.email';
}
protected function getPermissionCreate($type, $permissionCreate)