mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-31 11:07:31 -04: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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user