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; return $translation;
} }
public function getRouteFromConfig($type, $config_key) public function getRouteFromConfig($type, $config_key, $config_parameters = [])
{ {
$route = ''; $route = '';
@ -62,7 +62,23 @@ abstract class Document extends Component
return $route; 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) public function getPermissionFromConfig($type, $config_key)

View File

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

View File

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

View File

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