diff --git a/app/Ninja/Presenters/ClientPresenter.php b/app/Ninja/Presenters/ClientPresenter.php index bb32a8b62fb0..22ed376be6c6 100644 --- a/app/Ninja/Presenters/ClientPresenter.php +++ b/app/Ninja/Presenters/ClientPresenter.php @@ -2,9 +2,8 @@ use URL; use Utils; -use Laracasts\Presenter\Presenter; -class ClientPresenter extends Presenter { +class ClientPresenter extends EntityPresenter { public function country() { @@ -28,14 +27,4 @@ class ClientPresenter extends Presenter { return "{$text}"; } - - public function url() - { - return URL::to('/clients/' . $this->entity->public_id); - } - - public function link() - { - return link_to('/clients/' . $this->entity->public_id, $this->entity->getDisplayName()); - } -} \ No newline at end of file +} diff --git a/app/Ninja/Presenters/CreditPresenter.php b/app/Ninja/Presenters/CreditPresenter.php index 7e38205b1067..96c0e5b6f4d0 100644 --- a/app/Ninja/Presenters/CreditPresenter.php +++ b/app/Ninja/Presenters/CreditPresenter.php @@ -1,9 +1,8 @@ entity->credit_date); } -} \ No newline at end of file +} diff --git a/app/Ninja/Presenters/EntityPresenter.php b/app/Ninja/Presenters/EntityPresenter.php new file mode 100644 index 000000000000..b1e16acbd620 --- /dev/null +++ b/app/Ninja/Presenters/EntityPresenter.php @@ -0,0 +1,25 @@ +entity->getEntityType(); + $id = $this->entity->public_id; + $link = sprintf('/%ss/%s', $type, $id); + + return URL::to($link); + } + + public function link() + { + $name = $this->entity->getDisplayName(); + $link = $this->url(); + + return link_to($link, $name)->toHtml(); + } + +} diff --git a/app/Ninja/Presenters/ExpensePresenter.php b/app/Ninja/Presenters/ExpensePresenter.php index 1980480a2f53..275d4e657b09 100644 --- a/app/Ninja/Presenters/ExpensePresenter.php +++ b/app/Ninja/Presenters/ExpensePresenter.php @@ -1,9 +1,8 @@ entity->invoice_id ? $this->entity->convertedAmount() : 0; } - - public function link() - { - return link_to('/expenses/' . $this->entity->public_id, $this->entity->name); - } -} \ No newline at end of file + +} diff --git a/app/Ninja/Presenters/InvoicePresenter.php b/app/Ninja/Presenters/InvoicePresenter.php index 7c67fc98110b..827b171f4208 100644 --- a/app/Ninja/Presenters/InvoicePresenter.php +++ b/app/Ninja/Presenters/InvoicePresenter.php @@ -2,9 +2,8 @@ use URL; use Utils; -use Laracasts\Presenter\Presenter; -class InvoicePresenter extends Presenter { +class InvoicePresenter extends EntityPresenter { public function client() { @@ -69,16 +68,6 @@ class InvoicePresenter extends Presenter { return $this->entity->frequency ? $this->entity->frequency->name : ''; } - public function url() - { - return URL::to('/invoices/' . $this->entity->public_id); - } - - public function link() - { - return link_to('/invoices/' . $this->entity->public_id, $this->entity->invoice_number); - } - public function email() { $client = $this->entity->client; diff --git a/app/Ninja/Presenters/PaymentPresenter.php b/app/Ninja/Presenters/PaymentPresenter.php index a1c3692991fe..9b464b4c8a2a 100644 --- a/app/Ninja/Presenters/PaymentPresenter.php +++ b/app/Ninja/Presenters/PaymentPresenter.php @@ -2,9 +2,8 @@ use URL; use Utils; -use Laracasts\Presenter\Presenter; -class PaymentPresenter extends Presenter { +class PaymentPresenter extends EntityPresenter { public function client() { @@ -25,14 +24,4 @@ class PaymentPresenter extends Presenter { } } - public function url() - { - return URL::to('/payments/' . $this->entity->public_id . '/edit'); - } - - public function link() - { - return link_to('/payments/' . $this->entity->public_id . '/edit', $this->entity->getDisplayName()); - } - -} \ No newline at end of file +} diff --git a/app/Ninja/Presenters/TaskPresenter.php b/app/Ninja/Presenters/TaskPresenter.php index 367e849ca797..5e8eee222c95 100644 --- a/app/Ninja/Presenters/TaskPresenter.php +++ b/app/Ninja/Presenters/TaskPresenter.php @@ -1,9 +1,6 @@ {$text}"; } -} \ No newline at end of file +} diff --git a/app/Ninja/Presenters/VendorPresenter.php b/app/Ninja/Presenters/VendorPresenter.php index d0bef4e0c828..2dd535cac6cd 100644 --- a/app/Ninja/Presenters/VendorPresenter.php +++ b/app/Ninja/Presenters/VendorPresenter.php @@ -1,17 +1,10 @@ entity->country ? $this->entity->country->name : ''; } - - public function link() - { - return link_to('/vendors/' . $this->entity->public_id, $this->entity->name); - } -} \ No newline at end of file + +}