mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 05:02:36 +01:00
Added setting to show/hide client portal dashboard
This commit is contained in:
parent
7e87b2eda4
commit
3b5311e960
@ -432,6 +432,7 @@ class AccountController extends BaseController
|
|||||||
'client_view_css' => $css,
|
'client_view_css' => $css,
|
||||||
'title' => trans("texts.client_portal"),
|
'title' => trans("texts.client_portal"),
|
||||||
'section' => ACCOUNT_CLIENT_PORTAL,
|
'section' => ACCOUNT_CLIENT_PORTAL,
|
||||||
|
'account' => $account,
|
||||||
];
|
];
|
||||||
|
|
||||||
return View::make("accounts.client_portal", $data);
|
return View::make("accounts.client_portal", $data);
|
||||||
@ -544,6 +545,7 @@ class AccountController extends BaseController
|
|||||||
|
|
||||||
$account = Auth::user()->account;
|
$account = Auth::user()->account;
|
||||||
$account->client_view_css = $sanitized_css;
|
$account->client_view_css = $sanitized_css;
|
||||||
|
$account->enable_client_portal = Input::get('enable_client_portal') ? true : false;
|
||||||
$account->save();
|
$account->save();
|
||||||
|
|
||||||
Session::flash('message', trans('texts.updated_settings'));
|
Session::flash('message', trans('texts.updated_settings'));
|
||||||
|
@ -34,10 +34,7 @@ class PublicClientController extends BaseController
|
|||||||
public function view($invitationKey)
|
public function view($invitationKey)
|
||||||
{
|
{
|
||||||
if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) {
|
if (!$invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) {
|
||||||
return response()->view('error', [
|
return $this->returnError();
|
||||||
'error' => trans('texts.invoice_not_found'),
|
|
||||||
'hideHeader' => true,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$invoice = $invitation->invoice;
|
$invoice = $invitation->invoice;
|
||||||
@ -118,6 +115,7 @@ class PublicClientController extends BaseController
|
|||||||
'showBreadcrumbs' => false,
|
'showBreadcrumbs' => false,
|
||||||
'hideLogo' => $account->isWhiteLabel(),
|
'hideLogo' => $account->isWhiteLabel(),
|
||||||
'hideHeader' => $account->isNinjaAccount(),
|
'hideHeader' => $account->isNinjaAccount(),
|
||||||
|
'hideDashboard' => !$account->enable_client_portal,
|
||||||
'clientViewCSS' => $account->clientViewCSS(),
|
'clientViewCSS' => $account->clientViewCSS(),
|
||||||
'clientFontUrl' => $account->getFontsUrl(),
|
'clientFontUrl' => $account->getFontsUrl(),
|
||||||
'invoice' => $invoice->hidePrivateFields(),
|
'invoice' => $invoice->hidePrivateFields(),
|
||||||
@ -188,11 +186,16 @@ class PublicClientController extends BaseController
|
|||||||
if (!$invitation = $this->getInvitation()) {
|
if (!$invitation = $this->getInvitation()) {
|
||||||
return $this->returnError();
|
return $this->returnError();
|
||||||
}
|
}
|
||||||
|
|
||||||
$account = $invitation->account;
|
$account = $invitation->account;
|
||||||
$invoice = $invitation->invoice;
|
$invoice = $invitation->invoice;
|
||||||
$client = $invoice->client;
|
$client = $invoice->client;
|
||||||
$color = $account->primary_color ? $account->primary_color : '#0b4d78';
|
$color = $account->primary_color ? $account->primary_color : '#0b4d78';
|
||||||
|
|
||||||
|
if (!$account->enable_client_portal) {
|
||||||
|
return $this->returnError();
|
||||||
|
}
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'color' => $color,
|
'color' => $color,
|
||||||
'account' => $account,
|
'account' => $account,
|
||||||
@ -244,6 +247,7 @@ class PublicClientController extends BaseController
|
|||||||
$data = [
|
$data = [
|
||||||
'color' => $color,
|
'color' => $color,
|
||||||
'hideLogo' => $account->isWhiteLabel(),
|
'hideLogo' => $account->isWhiteLabel(),
|
||||||
|
'hideDashboard' => !$account->enable_client_portal,
|
||||||
'clientViewCSS' => $account->clientViewCSS(),
|
'clientViewCSS' => $account->clientViewCSS(),
|
||||||
'clientFontUrl' => $account->getFontsUrl(),
|
'clientFontUrl' => $account->getFontsUrl(),
|
||||||
'title' => trans('texts.invoices'),
|
'title' => trans('texts.invoices'),
|
||||||
@ -275,6 +279,7 @@ class PublicClientController extends BaseController
|
|||||||
$data = [
|
$data = [
|
||||||
'color' => $color,
|
'color' => $color,
|
||||||
'hideLogo' => $account->isWhiteLabel(),
|
'hideLogo' => $account->isWhiteLabel(),
|
||||||
|
'hideDashboard' => !$account->enable_client_portal,
|
||||||
'clientViewCSS' => $account->clientViewCSS(),
|
'clientViewCSS' => $account->clientViewCSS(),
|
||||||
'clientFontUrl' => $account->getFontsUrl(),
|
'clientFontUrl' => $account->getFontsUrl(),
|
||||||
'entityType' => ENTITY_PAYMENT,
|
'entityType' => ENTITY_PAYMENT,
|
||||||
@ -312,6 +317,7 @@ class PublicClientController extends BaseController
|
|||||||
$data = [
|
$data = [
|
||||||
'color' => $color,
|
'color' => $color,
|
||||||
'hideLogo' => $account->isWhiteLabel(),
|
'hideLogo' => $account->isWhiteLabel(),
|
||||||
|
'hideDashboard' => !$account->enable_client_portal,
|
||||||
'clientViewCSS' => $account->clientViewCSS(),
|
'clientViewCSS' => $account->clientViewCSS(),
|
||||||
'clientFontUrl' => $account->getFontsUrl(),
|
'clientFontUrl' => $account->getFontsUrl(),
|
||||||
'title' => trans('texts.quotes'),
|
'title' => trans('texts.quotes'),
|
||||||
@ -332,13 +338,11 @@ class PublicClientController extends BaseController
|
|||||||
return $this->invoiceRepo->getClientDatatable($invitation->contact_id, ENTITY_QUOTE, Input::get('sSearch'));
|
return $this->invoiceRepo->getClientDatatable($invitation->contact_id, ENTITY_QUOTE, Input::get('sSearch'));
|
||||||
}
|
}
|
||||||
|
|
||||||
private function returnError()
|
private function returnError($error = false)
|
||||||
{
|
{
|
||||||
return response()->view('error', [
|
return response()->view('error', [
|
||||||
'error' => trans('texts.invoice_not_found'),
|
'error' => $error ?: trans('texts.invoice_not_found'),
|
||||||
'hideHeader' => true,
|
'hideHeader' => true,
|
||||||
'clientViewCSS' => $account->clientViewCSS(),
|
|
||||||
'clientFontUrl' => $account->getFontsUrl(),
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1048,7 +1048,10 @@ $LANG = array(
|
|||||||
'invoice_item_fields' => 'Invoice Item Fields',
|
'invoice_item_fields' => 'Invoice Item Fields',
|
||||||
'custom_invoice_item_fields_help' => 'Add a field when creating an invoice item and display the label and value on the PDF.',
|
'custom_invoice_item_fields_help' => 'Add a field when creating an invoice item and display the label and value on the PDF.',
|
||||||
'recurring_invoice_number' => 'Recurring Invoice Number',
|
'recurring_invoice_number' => 'Recurring Invoice Number',
|
||||||
'recurring_invoice_number_prefix_help' => 'Speciy a prefix to be added to the invoice number for recurring invoices. The default value is \'R\'.'
|
'recurring_invoice_number_prefix_help' => 'Speciy a prefix to be added to the invoice number for recurring invoices. The default value is \'R\'.',
|
||||||
|
'enable_client_portal' => 'Dashboard',
|
||||||
|
'enable_client_portal_help' => 'Show/hide the dashboard page in the client portal.',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return $LANG;
|
return $LANG;
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
{!! Former::open_for_files()
|
{!! Former::open_for_files()
|
||||||
->addClass('warn-on-exit') !!}
|
->addClass('warn-on-exit') !!}
|
||||||
|
|
||||||
|
{!! Former::populateField('enable_client_portal', intval($account->enable_client_portal)) !!}
|
||||||
{!! Former::populateField('client_view_css', $client_view_css) !!}
|
{!! Former::populateField('client_view_css', $client_view_css) !!}
|
||||||
|
|
||||||
@if (!Utils::isNinja() && !Auth::user()->account->isWhiteLabel())
|
@if (!Utils::isNinja() && !Auth::user()->account->isWhiteLabel())
|
||||||
@ -25,7 +26,20 @@
|
|||||||
@include('accounts.nav', ['selected' => ACCOUNT_CLIENT_PORTAL])
|
@include('accounts.nav', ['selected' => ACCOUNT_CLIENT_PORTAL])
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
|
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">{!! trans('texts.client_portal') !!}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="col-md-10 col-md-offset-1">
|
||||||
|
{!! Former::checkbox('enable_client_portal')
|
||||||
|
->text(trans('texts.enable'))
|
||||||
|
->help(trans('texts.enable_client_portal_help')) !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
@ -43,7 +57,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<center>
|
<center>
|
||||||
|
@ -22,10 +22,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="list-group">
|
<div class="list-group">
|
||||||
@foreach ($settings as $section)
|
@foreach ($settings as $section)
|
||||||
@if ($section != ACCOUNT_CLIENT_PORTAL || !Utils::isNinjaProd())
|
<a href="{{ URL::to("settings/{$section}") }}" class="list-group-item {{ $selected === $section ? 'selected' : '' }}"
|
||||||
<a href="{{ URL::to("settings/{$section}") }}" class="list-group-item {{ $selected === $section ? 'selected' : '' }}"
|
style="width:100%;text-align:left">{{ trans("texts.{$section}") }}</a>
|
||||||
style="width:100%;text-align:left">{{ trans("texts.{$section}") }}</a>
|
|
||||||
@endif
|
|
||||||
@endforeach
|
@endforeach
|
||||||
@if ($type === ADVANCED_SETTINGS && !Utils::isNinjaProd())
|
@if ($type === ADVANCED_SETTINGS && !Utils::isNinjaProd())
|
||||||
<a href="{{ URL::to("settings/system_settings") }}" class="list-group-item {{ $selected === 'system_settings' ? 'selected' : '' }}"
|
<a href="{{ URL::to("settings/system_settings") }}" class="list-group-item {{ $selected === 'system_settings' ? 'selected' : '' }}"
|
||||||
|
@ -76,9 +76,11 @@
|
|||||||
<div id="navbar" class="collapse navbar-collapse">
|
<div id="navbar" class="collapse navbar-collapse">
|
||||||
@if (!isset($hideHeader) || !$hideHeader)
|
@if (!isset($hideHeader) || !$hideHeader)
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
<li {{ Request::is('*client/dashboard') ? 'class="active"' : '' }}>
|
@if (!isset($hideDashboard) || !$hideDashboard)
|
||||||
{!! link_to('/client/dashboard', trans('texts.dashboard') ) !!}
|
<li {{ Request::is('*client/dashboard') ? 'class="active"' : '' }}>
|
||||||
</li>
|
{!! link_to('/client/dashboard', trans('texts.dashboard') ) !!}
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
<li {{ Request::is('*client/quotes') ? 'class="active"' : '' }}>
|
<li {{ Request::is('*client/quotes') ? 'class="active"' : '' }}>
|
||||||
{!! link_to('/client/quotes', trans('texts.quotes') ) !!}
|
{!! link_to('/client/quotes', trans('texts.quotes') ) !!}
|
||||||
</li>
|
</li>
|
||||||
|
Loading…
Reference in New Issue
Block a user