commit
6f3b774a9f
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Http\ViewComposers;
|
namespace App\Http\ViewComposers;
|
||||||
|
|
||||||
use Auth;
|
|
||||||
use App\Utilities\Updater;
|
use App\Utilities\Updater;
|
||||||
use Illuminate\View\View;
|
use Illuminate\View\View;
|
||||||
use App\Traits\Modules as RemoteModules;
|
use App\Traits\Modules as RemoteModules;
|
||||||
@ -21,42 +20,43 @@ class Header
|
|||||||
{
|
{
|
||||||
$user = user();
|
$user = user();
|
||||||
|
|
||||||
$bills = [];
|
$invoices = $bills = [];
|
||||||
$invoices = [];
|
$updates = $notifications = 0;
|
||||||
$notifications = 0;
|
|
||||||
$company = null;
|
$company = null;
|
||||||
|
|
||||||
// Get customer company
|
if (!empty($user)) {
|
||||||
if ($user->can('read-client-portal')) {
|
// Get customer company
|
||||||
$company = (object) [
|
if ($user->can('read-client-portal')) {
|
||||||
'company_name' => setting('company.name'),
|
$company = (object) [
|
||||||
'company_email' => setting('company.email'),
|
'company_name' => setting('company.name'),
|
||||||
'company_address' => setting('company.address'),
|
'company_email' => setting('company.email'),
|
||||||
'company_logo' => setting('company.logo'),
|
'company_address' => setting('company.address'),
|
||||||
];
|
'company_logo' => setting('company.logo'),
|
||||||
}
|
];
|
||||||
|
|
||||||
$undereads = $user->unreadNotifications;
|
|
||||||
|
|
||||||
foreach ($undereads as $underead) {
|
|
||||||
$data = $underead->getAttribute('data');
|
|
||||||
|
|
||||||
switch ($underead->getAttribute('type')) {
|
|
||||||
case 'App\Notifications\Expense\Bill':
|
|
||||||
$bills[$data['bill_id']] = $data['amount'];
|
|
||||||
$notifications++;
|
|
||||||
break;
|
|
||||||
case 'App\Notifications\Income\Invoice':
|
|
||||||
$invoices[$data['invoice_id']] = $data['amount'];
|
|
||||||
$notifications++;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$undereads = $user->unreadNotifications;
|
||||||
|
|
||||||
|
foreach ($undereads as $underead) {
|
||||||
|
$data = $underead->getAttribute('data');
|
||||||
|
|
||||||
|
switch ($underead->getAttribute('type')) {
|
||||||
|
case 'App\Notifications\Expense\Bill':
|
||||||
|
$bills[$data['bill_id']] = $data['amount'];
|
||||||
|
$notifications++;
|
||||||
|
break;
|
||||||
|
case 'App\Notifications\Income\Invoice':
|
||||||
|
$invoices[$data['invoice_id']] = $data['amount'];
|
||||||
|
$notifications++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$updates = count(Updater::all());
|
||||||
|
|
||||||
|
$this->loadSuggestions();
|
||||||
}
|
}
|
||||||
|
|
||||||
$updates = count(Updater::all());
|
|
||||||
|
|
||||||
$this->loadSuggestions();
|
|
||||||
|
|
||||||
$view->with([
|
$view->with([
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'notifications' => $notifications,
|
'notifications' => $notifications,
|
||||||
|
@ -19,7 +19,7 @@ class Notifications
|
|||||||
public function compose(View $view)
|
public function compose(View $view)
|
||||||
{
|
{
|
||||||
// No need to add suggestions in console
|
// No need to add suggestions in console
|
||||||
if (app()->runningInConsole() || !env('APP_INSTALLED')) {
|
if (app()->runningInConsole() || !env('APP_INSTALLED') || !user()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,26 +26,28 @@ class Suggestions
|
|||||||
|
|
||||||
$modules = false;
|
$modules = false;
|
||||||
|
|
||||||
$path = Route::current()->uri();
|
if (user()) {
|
||||||
|
$path = Route::current()->uri();
|
||||||
|
|
||||||
if ($path) {
|
if ($path) {
|
||||||
$suggestions = $this->getSuggestions($path);
|
$suggestions = $this->getSuggestions($path);
|
||||||
|
|
||||||
|
if ($suggestions) {
|
||||||
|
$suggestion_modules = $suggestions->modules;
|
||||||
|
|
||||||
|
foreach ($suggestion_modules as $key => $module) {
|
||||||
|
$installed = Module::where('company_id', session('company_id'))->where('alias', $module->alias)->first();
|
||||||
|
|
||||||
if ($suggestions) {
|
if ($installed) {
|
||||||
$suggestion_modules = $suggestions->modules;
|
unset($suggestion_modules[$key]);
|
||||||
|
}
|
||||||
foreach ($suggestion_modules as $key => $module) {
|
|
||||||
$installed = Module::where('company_id', '=', session('company_id'))->where('alias', '=', $module->alias)->first();
|
|
||||||
|
|
||||||
if ($installed) {
|
|
||||||
unset($suggestion_modules[$key]);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($suggestion_modules) {
|
if ($suggestion_modules) {
|
||||||
shuffle($suggestion_modules);
|
shuffle($suggestion_modules);
|
||||||
|
|
||||||
$modules[] = $suggestion_modules[0];
|
$modules[] = $suggestion_modules[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,23 +2,22 @@
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
'forbidden_access' => 'Forbidden Access',
|
'title' => [
|
||||||
'error_page' => 'Error Page',
|
'403' => 'Oops! Forbidden Access',
|
||||||
'page_not_found' => 'Page Not Found',
|
'404' => 'Oops! Page not found',
|
||||||
|
'500' => 'Oops! Something went wrong',
|
||||||
'body' => [
|
|
||||||
'forbidden_access' => 'Oops! Forbidden Access.',
|
|
||||||
'error_page' => 'Oops! Something went wrong.',
|
|
||||||
'page_not_found' => 'Oops! Page not found.',
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'messages' => [
|
'header' => [
|
||||||
'forbidden_access' => 'You can not access this page.
|
'403' => '403 Forbidden',
|
||||||
Meanwhile, you may <a href=":link">return to dashboard</a>.',
|
'404' => '404 Not Found',
|
||||||
'error_page' => 'We will work on fixing that right away.
|
'500' => '500 Internal Server Error',
|
||||||
Meanwhile, you may <a href=":link">return to dashboard</a>.',
|
],
|
||||||
'page_not_found' => 'We could not find the page you were looking for.
|
|
||||||
Meanwhile, you may <a href=":link">return to dashboard</a>.',
|
'message' => [
|
||||||
|
'403' => 'You can not access this page.',
|
||||||
|
'404' => 'We could not find the page you were looking for.',
|
||||||
|
'500' => 'We will work on fixing that right away.',
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
@extends('layouts.admin')
|
@extends('layouts.error')
|
||||||
|
|
||||||
@section('title', trans('errors.forbidden_access'))
|
@section('title', trans('errors.title.403'))
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h2 class="mb-0 text-warning">403 Forbidden</h2>
|
<h2 class="mb-0 text-danger"><i class="fa fa-exclamation-triangle text-danger"></i> {{ trans('errors.header.403') }}</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h3><i class="fa fa-exclamation-triangle text-danger"></i> {{ trans('errors.body.forbidden_access') }}</h3>
|
<p>{{ trans('errors.message.403') }}</p>
|
||||||
|
|
||||||
<p>{!! trans('errors.messages.forbidden_access', ['link' => url('/') ]) !!}</p>
|
<a href="{{ url('/') }}" class="btn btn-success header-button-top"><span class="fa fa-tachometer-alt"></span> {{ trans('general.go_to', ['name' => trans('general.dashboard')]) }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
@extends('layouts.admin')
|
@extends('layouts.error')
|
||||||
|
|
||||||
@section('title', trans('errors.page_not_found'))
|
@section('title', trans('errors.title.404'))
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h2 class="mb-0 text-yellow">404 Not Found</h2>
|
<h2 class="mb-0 text-warning"><i class="fa fa-exclamation-triangle text-warning"></i> {{ trans('errors.header.404') }}</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h3><i class="fa fa-exclamation-triangle text-yellow"></i> {{ trans('errors.body.page_not_found') }}</h3>
|
<p>{{ trans('errors.message.404') }}</p>
|
||||||
|
|
||||||
<p>{!! trans('errors.messages.page_not_found', ['link' => url('/')]) !!}</p>
|
<a href="{{ url('/') }}" class="btn btn-success header-button-top"><span class="fa fa-tachometer-alt"></span> {{ trans('general.go_to', ['name' => trans('general.dashboard')]) }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
@extends('layouts.admin')
|
@extends('layouts.error')
|
||||||
|
|
||||||
@section('title', trans('errors.error_page'))
|
@section('title', trans('errors.title.500'))
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h2 class="mb-0 text-danger">500 Internal Server Error</h2>
|
<h2 class="mb-0 text-danger"><i class="fa fa-exclamation-triangle text-danger"></i> {{ trans('errors.header.500') }}</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h3><i class="fa fa-exclamation-triangle text-danger"></i> {{ trans('errors.body.error_page') }}</h3>
|
<p>{{ trans('errors.message.500') }}</p>
|
||||||
|
|
||||||
<p>{!! trans('errors.messages.error_page', ['link' => url('/') ]) !!}</p>
|
<a href="{{ url('/') }}" class="btn btn-success header-button-top"><span class="fa fa-tachometer-alt"></span> {{ trans('general.go_to', ['name' => trans('general.dashboard')]) }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
|
@ -3,35 +3,33 @@
|
|||||||
@include('partials.admin.head')
|
@include('partials.admin.head')
|
||||||
|
|
||||||
<body class="g-sidenav-show g-sidenav-pinned">
|
<body class="g-sidenav-show g-sidenav-pinned">
|
||||||
|
|
||||||
@stack('body_start')
|
@stack('body_start')
|
||||||
|
|
||||||
@include('partials.admin.menu')
|
@include('partials.admin.menu')
|
||||||
|
|
||||||
<div class="main-content" id="panel">
|
<div class="main-content" id="panel">
|
||||||
|
|
||||||
@include('partials.admin.navbar')
|
@include('partials.admin.navbar')
|
||||||
|
|
||||||
<div id="main-body">
|
<div id="main-body">
|
||||||
|
|
||||||
@include('partials.admin.header')
|
@include('partials.admin.header')
|
||||||
|
|
||||||
<div class="container-fluid content-layout mt--6">
|
<div class="container-fluid content-layout mt--6">
|
||||||
|
|
||||||
@include('partials.admin.content')
|
@include('partials.admin.content')
|
||||||
|
|
||||||
@include('partials.admin.footer')
|
@include('partials.admin.footer')
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
@stack('body_end')
|
@stack('body_end')
|
||||||
|
|
||||||
@include('partials.admin.scripts')
|
@include('partials.admin.scripts')
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -3,69 +3,67 @@
|
|||||||
@include('partials.auth.head')
|
@include('partials.auth.head')
|
||||||
|
|
||||||
<body class="login-page">
|
<body class="login-page">
|
||||||
|
|
||||||
@stack('body_start')
|
@stack('body_start')
|
||||||
|
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<div class="header py-5">
|
<div class="header py-5">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="header-body text-center mb-5">
|
<div class="header-body text-center mb-5">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-xl-5 col-lg-6 col-md-8">
|
<div class="col-xl-5 col-lg-6 col-md-8">
|
||||||
<img class="pb-5" src="{{ asset('public/img/akaunting-logo-white.png') }}" width="22%" alt="Akaunting"/>
|
<img class="pb-5" src="{{ asset('public/img/akaunting-logo-white.png') }}" width="22%" alt="Akaunting"/>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@stack('login_box_start')
|
@stack('login_box_start')
|
||||||
<div class="container mt--7 pb-5">
|
<div class="container mt--7 pb-5">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-lg-5 col-md-7">
|
<div class="col-lg-5 col-md-7">
|
||||||
<div class="card mb-0 login-card-bg">
|
<div class="card mb-0 login-card-bg">
|
||||||
<div class="card-body px-lg-5 py-lg-5">
|
<div class="card-body px-lg-5 py-lg-5">
|
||||||
<div class="text-center text-white mb-4">
|
<div class="text-center text-white mb-4">
|
||||||
<small>@yield('message')</small>
|
<small>@yield('message')</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="app">
|
<div id="app">
|
||||||
@stack('login_content_start')
|
@stack('login_content_start')
|
||||||
|
|
||||||
@yield('content')
|
@yield('content')
|
||||||
|
|
||||||
@stack('login_content_end')
|
@stack('login_content_end')
|
||||||
<notifications></notifications>
|
<notifications></notifications>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@stack('login_box_end')
|
</div>
|
||||||
|
@stack('login_box_end')
|
||||||
|
|
||||||
@yield('forgotten-password')
|
@yield('forgotten-password')
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row align-items-center justify-content-xl-between">
|
<div class="row align-items-center justify-content-xl-between">
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
<div class="copyright text-center text-lg-center text-white">
|
<div class="copyright text-center text-lg-center text-white">
|
||||||
<small>
|
<small>
|
||||||
<a>{{ trans('footer.powered') }}:</a> <a class="text-success" href="{{ trans('footer.link') }}" target="_blank">{{ trans('footer.software') }}</a>
|
<a>{{ trans('footer.powered') }}:</a> <a class="text-success" href="{{ trans('footer.link') }}" target="_blank">{{ trans('footer.software') }}</a>
|
||||||
</small>
|
</small>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@stack('body_end')
|
@stack('body_end')
|
||||||
|
|
||||||
@include('partials.auth.scripts')
|
@include('partials.auth.scripts')
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
31
resources/views/layouts/error.blade.php
Normal file
31
resources/views/layouts/error.blade.php
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<html lang="{{ app()->getLocale() }}">
|
||||||
|
|
||||||
|
@include('partials.admin.head')
|
||||||
|
|
||||||
|
<body class="g-sidenav-show g-sidenav-pinned">
|
||||||
|
@stack('body_start')
|
||||||
|
|
||||||
|
<div class="main-content" id="panel">
|
||||||
|
|
||||||
|
<div id="main-body">
|
||||||
|
|
||||||
|
@include('partials.admin.header')
|
||||||
|
|
||||||
|
<div class="container-fluid content-layout mt--6">
|
||||||
|
|
||||||
|
@include('partials.admin.content')
|
||||||
|
|
||||||
|
@include('partials.admin.footer')
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@stack('body_end')
|
||||||
|
|
||||||
|
@include('partials.admin.scripts')
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -3,35 +3,33 @@
|
|||||||
@include('partials.modules.head')
|
@include('partials.modules.head')
|
||||||
|
|
||||||
<body class="g-sidenav-show g-sidenav-pinned">
|
<body class="g-sidenav-show g-sidenav-pinned">
|
||||||
|
|
||||||
@stack('body_start')
|
@stack('body_start')
|
||||||
|
|
||||||
@include('partials.admin.menu')
|
@include('partials.admin.menu')
|
||||||
|
|
||||||
<div class="main-content" id="panel">
|
<div class="main-content" id="panel">
|
||||||
|
|
||||||
@include('partials.admin.navbar')
|
@include('partials.admin.navbar')
|
||||||
|
|
||||||
<div id="main-body">
|
<div id="main-body">
|
||||||
|
|
||||||
@include('partials.admin.header')
|
@include('partials.admin.header')
|
||||||
|
|
||||||
<div class="container-fluid content-layout mt--6">
|
<div class="container-fluid content-layout mt--6">
|
||||||
|
|
||||||
@include('partials.admin.content')
|
@include('partials.admin.content')
|
||||||
|
|
||||||
@include('partials.admin.footer')
|
@include('partials.admin.footer')
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
@stack('body_end')
|
@stack('body_end')
|
||||||
|
|
||||||
@include('partials.admin.scripts')
|
@include('partials.admin.scripts')
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -3,35 +3,33 @@
|
|||||||
@include('partials.portal.head')
|
@include('partials.portal.head')
|
||||||
|
|
||||||
<body class="g-sidenav-show g-sidenav-pinned">
|
<body class="g-sidenav-show g-sidenav-pinned">
|
||||||
|
|
||||||
@stack('body_start')
|
@stack('body_start')
|
||||||
|
|
||||||
@include('partials.portal.menu')
|
@include('partials.portal.menu')
|
||||||
|
|
||||||
<div class="main-content" id="panel">
|
<div class="main-content" id="panel">
|
||||||
|
|
||||||
@include('partials.portal.navbar')
|
@include('partials.portal.navbar')
|
||||||
|
|
||||||
<div id="main-body">
|
<div id="main-body">
|
||||||
|
|
||||||
@include('partials.portal.header')
|
@include('partials.portal.header')
|
||||||
|
|
||||||
<div class="container-fluid content-layout mt--6">
|
<div class="container-fluid content-layout mt--6">
|
||||||
|
|
||||||
@include('partials.portal.content')
|
@include('partials.portal.content')
|
||||||
|
|
||||||
@include('partials.portal.footer')
|
@include('partials.portal.footer')
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
@stack('body_end')
|
@stack('body_end')
|
||||||
|
|
||||||
@include('partials.portal.scripts')
|
@include('partials.portal.scripts')
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -9,13 +9,11 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<body onload="window.print();">
|
<body onload="window.print();">
|
||||||
|
|
||||||
@stack('body_start')
|
@stack('body_start')
|
||||||
|
|
||||||
@yield('content')
|
@yield('content')
|
||||||
|
|
||||||
@stack('body_end')
|
@stack('body_end')
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -2,19 +2,17 @@
|
|||||||
@include('partials.signed.head')
|
@include('partials.signed.head')
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
@stack('body_start')
|
@stack('body_start')
|
||||||
|
|
||||||
<div class="container-fluid content-layout mt-4">
|
<div class="container-fluid content-layout mt-4">
|
||||||
|
|
||||||
@include('partials.signed.content')
|
@include('partials.signed.content')
|
||||||
|
|
||||||
@include('partials.signed.footer')
|
@include('partials.signed.footer')
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@stack('body_end')
|
@stack('body_end')
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -4,21 +4,18 @@
|
|||||||
<body class="wizard-page">
|
<body class="wizard-page">
|
||||||
|
|
||||||
<div class="container mt--5">
|
<div class="container mt--5">
|
||||||
|
|
||||||
@stack('body_start')
|
@stack('body_start')
|
||||||
|
|
||||||
<div id="app">
|
<div id="app">
|
||||||
|
|
||||||
@include('partials.wizard.content')
|
@include('partials.wizard.content')
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@stack('body_end')
|
@stack('body_end')
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@include('partials.wizard.scripts')
|
@include('partials.wizard.scripts')
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
@stack('header_start')
|
@stack('header_start')
|
||||||
<div id="header" class="header pb-6">
|
<div id="header" class="header pb-6">
|
||||||
<div class="container-fluid content-layout">
|
<div class="container-fluid content-layout">
|
||||||
<div class="header-body">
|
<div class="header-body">
|
||||||
<div class="row py-4 align-items-center">
|
<div class="row py-4 align-items-center">
|
||||||
<div class="col-sm-4 col-md-5 align-items-center">
|
<div class="col-sm-4 col-md-5 align-items-center">
|
||||||
<h2 class="d-inline-flex mb-0 long-texts">@yield('title')</h2>
|
<h2 class="d-inline-flex mb-0 long-texts">@yield('title')</h2>
|
||||||
@yield('dashboard_action')
|
@yield('dashboard_action')
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-8 col-md-7">
|
<div class="col-sm-8 col-md-7">
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
@yield('new_button')
|
@yield('new_button')
|
||||||
|
|
||||||
@permission('read-modules-home')
|
@permission('read-modules-home')
|
||||||
@if (!empty($suggestion_modules))
|
@if (!empty($suggestion_modules))
|
||||||
@foreach($suggestion_modules as $s_module)
|
@foreach($suggestion_modules as $s_module)
|
||||||
<span>
|
<span>
|
||||||
<a href="{{ url($s_module->action_url) . '?' . http_build_query((array) $s_module->action_parameters) }}" class="btn btn-white btn-sm header-button-bottom" target="{{ $s_module->action_target }}"><span class="fa fa-rocket"></span> {{ $s_module->name }}</a>
|
<a href="{{ url($s_module->action_url) . '?' . http_build_query((array) $s_module->action_parameters) }}" class="btn btn-white btn-sm header-button-bottom" target="{{ $s_module->action_target }}"><span class="fa fa-rocket"></span> {{ $s_module->name }}</a>
|
||||||
</span>
|
</span>
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
@endpermission
|
@endpermission
|
||||||
|
|
||||||
@stack('header_button')
|
@stack('header_button')
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
@stack('header_end')
|
@stack('header_end')
|
||||||
|
@ -1,46 +1,46 @@
|
|||||||
@stack('menu_start')
|
@stack('menu_start')
|
||||||
<nav class="sidenav navbar navbar-vertical fixed-left navbar-expand-xs navbar-light bg-default" id="sidenav-main">
|
<nav class="sidenav navbar navbar-vertical fixed-left navbar-expand-xs navbar-light bg-default" id="sidenav-main">
|
||||||
<div class="scrollbar-inner">
|
<div class="scrollbar-inner">
|
||||||
<div class="sidenav-header d-flex align-items-center ml-4">
|
<div class="sidenav-header d-flex align-items-center ml-4">
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="avatar avatar-xs background-unset">
|
<span class="avatar avatar-xs background-unset">
|
||||||
<img class="border-radius-0 border-0 mr-3" alt="Image placeholder" src="{{ setting('company.logo') ? Storage::url(setting('company.logo')) : asset('public/img/akaunting-logo-white.png') }}">
|
<img class="border-radius-0 border-0 mr-3" alt="Image placeholder" src="{{ setting('company.logo') ? Storage::url(setting('company.logo')) : asset('public/img/akaunting-logo-white.png') }}">
|
||||||
</span>
|
</span>
|
||||||
<span class="nav-link-text long-texts pl-2 mwpx-100">{{ Str::limit(setting('company.name'), 22) }}</span>
|
<span class="nav-link-text long-texts pl-2 mwpx-100">{{ Str::limit(setting('company.name'), 22) }}</span>
|
||||||
<i class="fas fa-sort-down pl-2"></i>
|
<i class="fas fa-sort-down pl-2"></i>
|
||||||
</a>
|
</a>
|
||||||
@permission('read-common-companies')
|
@permission('read-common-companies')
|
||||||
<div class="dropdown-menu dropdown-menu-right menu-dropdown">
|
<div class="dropdown-menu dropdown-menu-right menu-dropdown">
|
||||||
@foreach($companies as $com)
|
@foreach($companies as $com)
|
||||||
<a href="{{ route('companies.switch', $com->id) }}" class="dropdown-item">
|
<a href="{{ route('companies.switch', $com->id) }}" class="dropdown-item">
|
||||||
<i class="fas fa-building"></i>
|
<i class="fas fa-building"></i>
|
||||||
<span>{{ Str::limit($com->name, 18) }}</span>
|
<span>{{ Str::limit($com->name, 18) }}</span>
|
||||||
</a>
|
</a>
|
||||||
@endforeach
|
@endforeach
|
||||||
@permission('update-common-companies')
|
@permission('update-common-companies')
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a href="{{ route('companies.index') }}" class="dropdown-item">
|
<a href="{{ route('companies.index') }}" class="dropdown-item">
|
||||||
<i class="fas fa-cogs"></i>
|
<i class="fas fa-cogs"></i>
|
||||||
<span>{{ trans('companies.manage') }}</span>
|
<span>{{ trans('companies.manage') }}</span>
|
||||||
</a>
|
</a>
|
||||||
@endpermission
|
@endpermission
|
||||||
</div>
|
|
||||||
@endpermission
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<div class="ml-auto left-menu-toggle-position">
|
|
||||||
<div class="sidenav-toggler d-none d-xl-block left-menu-toggle" data-action="sidenav-unpin" data-target="#sidenav-main">
|
|
||||||
<div class="sidenav-toggler-inner">
|
|
||||||
<i class="sidenav-toggler-line"></i>
|
|
||||||
<i class="sidenav-toggler-line"></i>
|
|
||||||
<i class="sidenav-toggler-line"></i>
|
|
||||||
</div>
|
</div>
|
||||||
|
@endpermission
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="ml-auto left-menu-toggle-position">
|
||||||
|
<div class="sidenav-toggler d-none d-xl-block left-menu-toggle" data-action="sidenav-unpin" data-target="#sidenav-main">
|
||||||
|
<div class="sidenav-toggler-inner">
|
||||||
|
<i class="sidenav-toggler-line"></i>
|
||||||
|
<i class="sidenav-toggler-line"></i>
|
||||||
|
<i class="sidenav-toggler-line"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{!! menu('admin') !!}
|
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
{!! menu('admin') !!}
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
@stack('menu_end')
|
@stack('menu_end')
|
||||||
|
@ -1,252 +1,252 @@
|
|||||||
@stack('navbar_start')
|
@stack('navbar_start')
|
||||||
<nav class="navbar navbar-top navbar-expand navbar-dark border-bottom">
|
<nav class="navbar navbar-top navbar-expand navbar-dark border-bottom">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
@if (user()->can('read-common-search'))
|
@permission('read-common-search')
|
||||||
<form class="navbar-search navbar-search-light form-inline mb-0" id="navbar-search-main" autocomplete="off">
|
<form class="navbar-search navbar-search-light form-inline mb-0" id="navbar-search-main" autocomplete="off">
|
||||||
<div id="global-search" class="form-group mb-0 mr-sm-3">
|
<div id="global-search" class="form-group mb-0 mr-sm-3">
|
||||||
<div class="input-group input-group-alternative input-group-merge">
|
<div class="input-group input-group-alternative input-group-merge">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text"><i class="fa fa-search"></i></span>
|
<span class="input-group-text"><i class="fa fa-search"></i></span>
|
||||||
</div>
|
</div>
|
||||||
<input type="text" name="search" v-model="keyword" @input="onChange" v-click-outside="closeResult" class="form-control" autocomplete="off" placeholder="Search">
|
<input type="text" name="search" v-model="keyword" @input="onChange" v-click-outside="closeResult" class="form-control" autocomplete="off" placeholder="Search">
|
||||||
<div class="dropdown-menu dropdown-menu-xl dropdown-menu-center" ref="menu" :class="[{show: show}]">
|
<div class="dropdown-menu dropdown-menu-xl dropdown-menu-center" ref="menu" :class="[{show: show}]">
|
||||||
<div class="list-group list-group-flush">
|
<div class="list-group list-group-flush">
|
||||||
<a class="list-group-item list-group-item-action" :href="item.href" v-for="(item, index) in items">
|
<a class="list-group-item list-group-item-action" :href="item.href" v-for="(item, index) in items">
|
||||||
<div class="row align-items-center">
|
<div class="row align-items-center">
|
||||||
<div class="col ml--2">
|
<div class="col ml--2">
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
<div>
|
<div>
|
||||||
<div class="name" v-text="item.name"></div>
|
<div class="name" v-text="item.name"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-muted">
|
<div class="text-muted">
|
||||||
<span class="type" v-text="item.type"></span>
|
<span class="type" v-text="item.type"></span>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="close" data-action="search-close" data-target="#navbar-search-main" aria-label="Close">
|
</div>
|
||||||
<span aria-hidden="true">×</span>
|
<button type="button" class="close" data-action="search-close" data-target="#navbar-search-main" aria-label="Close">
|
||||||
</button>
|
<span aria-hidden="true">×</span>
|
||||||
</form>
|
</button>
|
||||||
@endif
|
</form>
|
||||||
|
@endpermission
|
||||||
|
|
||||||
<ul class="navbar-nav align-items-center ml-md-auto">
|
<ul class="navbar-nav align-items-center ml-md-auto">
|
||||||
<li class="nav-item d-xl-none">
|
<li class="nav-item d-xl-none">
|
||||||
<div class="pr-3 sidenav-toggler sidenav-toggler-dark" data-action="sidenav-pin" data-target="#sidenav-main">
|
<div class="pr-3 sidenav-toggler sidenav-toggler-dark" data-action="sidenav-pin" data-target="#sidenav-main">
|
||||||
<div class="sidenav-toggler-inner">
|
<div class="sidenav-toggler-inner">
|
||||||
<i class="sidenav-toggler-line"></i>
|
<i class="sidenav-toggler-line"></i>
|
||||||
<i class="sidenav-toggler-line"></i>
|
<i class="sidenav-toggler-line"></i>
|
||||||
<i class="sidenav-toggler-line"></i>
|
<i class="sidenav-toggler-line"></i>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li class="nav-item d-sm-none">
|
<li class="nav-item d-sm-none">
|
||||||
<a class="nav-link" href="#" data-action="search-show" data-target="#navbar-search-main">
|
<a class="nav-link" href="#" data-action="search-show" data-target="#navbar-search-main">
|
||||||
<i class="fa fa-search"></i>
|
<i class="fa fa-search"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@if (user()->can(['create-incomes-invoices', 'create-incomes-revenues', 'create-incomes-customers', 'create-expenses-bills', 'create-expenses-payments', 'create-expenses-vendors']))
|
|
||||||
<li class="nav-item dropdown">
|
|
||||||
<a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="fas fa-plus"></i>
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-dark dropdown-menu-right">
|
|
||||||
<div class="row shortcuts px-4">
|
|
||||||
@permission('create-incomes-invoices')
|
|
||||||
<a href="{{ route('invoices.create') }}" class="col-4 shortcut-item">
|
|
||||||
<span class="shortcut-media avatar rounded-circle bg-gradient-info">
|
|
||||||
<i class="fa fa-money-bill"></i>
|
|
||||||
</span>
|
|
||||||
<small class="text-info">{{ trans_choice('general.invoices', 1) }}</small>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
|
|
||||||
@permission('create-incomes-revenues')
|
|
||||||
<a href="{{ route('revenues.create') }}" class="col-4 shortcut-item">
|
|
||||||
<span class="shortcut-media avatar rounded-circle bg-gradient-info">
|
|
||||||
<i class="fas fa-hand-holding-usd"></i>
|
|
||||||
</span>
|
|
||||||
<small class="text-info">{{ trans_choice('general.revenues', 1) }}</small>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
|
|
||||||
@permission('create-incomes-customers')
|
|
||||||
<a href="{{ route('customers.create') }}" class="col-4 shortcut-item">
|
|
||||||
<span class="shortcut-media avatar rounded-circle bg-gradient-info">
|
|
||||||
<i class="fas fa-user"></i>
|
|
||||||
</span>
|
|
||||||
<small class="text-info">{{ trans_choice('general.customers', 1) }}</small>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
|
|
||||||
@permission('create-expenses-bills')
|
|
||||||
<a href="{{ route('bills.create') }}" class="col-4 shortcut-item">
|
|
||||||
<span class="shortcut-media avatar rounded-circle bg-gradient-danger">
|
|
||||||
<i class="fa fa-shopping-cart"></i>
|
|
||||||
</span>
|
|
||||||
<small class="text-danger">{{ trans_choice('general.bills', 1) }}</small>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
|
|
||||||
@permission('create-expenses-payments')
|
|
||||||
<a href="{{ route('payments.create') }}" class="col-4 shortcut-item">
|
|
||||||
<span class="shortcut-media avatar rounded-circle bg-gradient-danger">
|
|
||||||
<i class="fas fa-hand-holding-usd"></i>
|
|
||||||
</span>
|
|
||||||
<small class="text-danger">{{ trans_choice('general.payments', 1) }}</small>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
|
|
||||||
@permission('create-expenses-vendors')
|
|
||||||
<a href="{{ route('vendors.create') }}" class="col-4 shortcut-item">
|
|
||||||
<span class="shortcut-media avatar rounded-circle bg-gradient-danger">
|
|
||||||
<i class="fas fa-user"></i>
|
|
||||||
</span>
|
|
||||||
<small class="text-danger">{{ trans_choice('general.vendors', 1) }}</small>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
|
@permission(['create-incomes-invoices', 'create-incomes-revenues', 'create-incomes-customers', 'create-expenses-bills', 'create-expenses-payments', 'create-expenses-vendors'])
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<i class="fas fa-plus"></i>
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-dark dropdown-menu-right">
|
||||||
|
<div class="row shortcuts px-4">
|
||||||
|
@permission('create-incomes-invoices')
|
||||||
|
<a href="{{ route('invoices.create') }}" class="col-4 shortcut-item">
|
||||||
|
<span class="shortcut-media avatar rounded-circle bg-gradient-info">
|
||||||
|
<i class="fa fa-money-bill"></i>
|
||||||
|
</span>
|
||||||
|
<small class="text-info">{{ trans_choice('general.invoices', 1) }}</small>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
|
||||||
|
@permission('create-incomes-revenues')
|
||||||
|
<a href="{{ route('revenues.create') }}" class="col-4 shortcut-item">
|
||||||
|
<span class="shortcut-media avatar rounded-circle bg-gradient-info">
|
||||||
|
<i class="fas fa-hand-holding-usd"></i>
|
||||||
|
</span>
|
||||||
|
<small class="text-info">{{ trans_choice('general.revenues', 1) }}</small>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
|
||||||
|
@permission('create-incomes-customers')
|
||||||
|
<a href="{{ route('customers.create') }}" class="col-4 shortcut-item">
|
||||||
|
<span class="shortcut-media avatar rounded-circle bg-gradient-info">
|
||||||
|
<i class="fas fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<small class="text-info">{{ trans_choice('general.customers', 1) }}</small>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
|
||||||
|
@permission('create-expenses-bills')
|
||||||
|
<a href="{{ route('bills.create') }}" class="col-4 shortcut-item">
|
||||||
|
<span class="shortcut-media avatar rounded-circle bg-gradient-danger">
|
||||||
|
<i class="fa fa-shopping-cart"></i>
|
||||||
|
</span>
|
||||||
|
<small class="text-danger">{{ trans_choice('general.bills', 1) }}</small>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
|
||||||
|
@permission('create-expenses-payments')
|
||||||
|
<a href="{{ route('payments.create') }}" class="col-4 shortcut-item">
|
||||||
|
<span class="shortcut-media avatar rounded-circle bg-gradient-danger">
|
||||||
|
<i class="fas fa-hand-holding-usd"></i>
|
||||||
|
</span>
|
||||||
|
<small class="text-danger">{{ trans_choice('general.payments', 1) }}</small>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
|
||||||
|
@permission('create-expenses-vendors')
|
||||||
|
<a href="{{ route('vendors.create') }}" class="col-4 shortcut-item">
|
||||||
|
<span class="shortcut-media avatar rounded-circle bg-gradient-danger">
|
||||||
|
<i class="fas fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<small class="text-danger">{{ trans_choice('general.vendors', 1) }}</small>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<span>
|
||||||
|
<i class="far fa-bell"></i>
|
||||||
|
</span>
|
||||||
|
@if ($notifications)
|
||||||
|
<span class="badge badge-md badge-circle badge-reminder badge-warning">{{ $notifications }}</span>
|
||||||
|
@endif
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right py-0 overflow-hidden">
|
||||||
|
@if ($notifications)
|
||||||
|
<div class="p-3">
|
||||||
|
<a class="text-sm text-muted">{{ trans_choice('header.notifications.counter', $notifications, ['count' => $notifications]) }}</a>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<div class="list-group list-group-flush">
|
||||||
|
@if (count($bills))
|
||||||
|
<a href="{{ route('users.read.bills', $user->id) }}" class="list-group-item list-group-item-action">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<div class="col-auto">
|
||||||
|
<i class="fa fa-shopping-cart"></i>
|
||||||
|
</div>
|
||||||
|
<div class="col ml--2">
|
||||||
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
|
<h4 class="mb-0 text-sm">{{ trans_choice('header.notifications.upcoming_bills', count($bills), ['count' => count($bills)]) }}</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if (count($invoices))
|
||||||
|
<a href="{{ route('users.read.invoices', $user->id) }}" class="list-group-item list-group-item-action">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<div class="col-auto">
|
||||||
|
<i class="fa fa-money-bill"></i>
|
||||||
|
</div>
|
||||||
|
<div class="col ml--2">
|
||||||
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
|
<h4 class="mb-0 text-sm">{{ trans_choice('header.notifications.overdue_invoices', count($invoices), ['count' => count($invoices)]) }}</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if ($notifications)
|
||||||
|
<a href="#" class="dropdown-item text-center text-primary font-weight-bold py-3">{{ trans('header.notifications.view_all') }}</a>
|
||||||
|
@else
|
||||||
|
<a class="dropdown-item text-center text-primary font-weight-bold py-3">{{ trans_choice('header.notifications.counter', $notifications, ['count' => $notifications]) }}</a>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
@permission('read-install-updates')
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="{{ route('updates.index') }}" title="{{ $updates }} Updates Available" role="button" aria-haspopup="true" aria-expanded="false">
|
||||||
<span>
|
<span>
|
||||||
<i class="far fa-bell"></i>
|
<i class="fa fa-sync-alt"></i>
|
||||||
</span>
|
</span>
|
||||||
@if ($notifications)
|
@if ($updates)
|
||||||
<span class="badge badge-md badge-circle badge-reminder badge-warning">{{ $notifications }}</span>
|
<span class="badge badge-md badge-circle badge-update badge-warning">{{ $updates }}</span>
|
||||||
@endif
|
@endif
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right py-0 overflow-hidden">
|
|
||||||
@if ($notifications)
|
|
||||||
<div class="p-3">
|
|
||||||
<a class="text-sm text-muted">{{ trans_choice('header.notifications.counter', $notifications, ['count' => $notifications]) }}</a>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
<div class="list-group list-group-flush">
|
|
||||||
@if (count($bills))
|
|
||||||
<a href="{{ route('users.read.bills', $user->id) }}" class="list-group-item list-group-item-action">
|
|
||||||
<div class="row align-items-center">
|
|
||||||
<div class="col-auto">
|
|
||||||
<i class="fa fa-shopping-cart"></i>
|
|
||||||
</div>
|
|
||||||
<div class="col ml--2">
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<h4 class="mb-0 text-sm">{{ trans_choice('header.notifications.upcoming_bills', count($bills), ['count' => count($bills)]) }}</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
@if (count($invoices))
|
|
||||||
<a href="{{ route('users.read.invoices', $user->id) }}" class="list-group-item list-group-item-action">
|
|
||||||
<div class="row align-items-center">
|
|
||||||
<div class="col-auto">
|
|
||||||
<i class="fa fa-money-bill"></i>
|
|
||||||
</div>
|
|
||||||
<div class="col ml--2">
|
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
|
||||||
<h4 class="mb-0 text-sm">{{ trans_choice('header.notifications.overdue_invoices', count($invoices), ['count' => count($invoices)]) }}</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@if ($notifications)
|
|
||||||
<a href="#" class="dropdown-item text-center text-primary font-weight-bold py-3">{{ trans('header.notifications.view_all') }}</a>
|
|
||||||
@else
|
|
||||||
<a class="dropdown-item text-center text-primary font-weight-bold py-3">{{ trans_choice('header.notifications.counter', $notifications, ['count' => $notifications]) }}</a>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
</li>
|
</li>
|
||||||
|
@endpermission
|
||||||
|
|
||||||
@permission('read-install-updates')
|
<li class="nav-item d-none d-md-block">
|
||||||
<li class="nav-item">
|
<a class="nav-link" href="{{ url(trans('header.support_link')) }}" target="_blank" title="{{ trans('general.help') }}" role="button" aria-haspopup="true" aria-expanded="false">
|
||||||
<a class="nav-link" href="{{ route('updates.index') }}" title="{{ $updates }} Updates Available" role="button" aria-haspopup="true" aria-expanded="false">
|
<i class="far fa-life-ring"></i>
|
||||||
<span>
|
</a>
|
||||||
<i class="fa fa-sync-alt"></i>
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="navbar-nav align-items-center ml-auto ml-md-0">
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link pr-0" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||||
|
<div class="media align-items-center">
|
||||||
|
<img src="{{ asset('public/img/user.png') }}" height="36" width="36" alt="User"/>
|
||||||
|
<div class="media-body ml-2 d-none d-lg-block">
|
||||||
|
<span class="mb-0 text-sm font-weight-bold">
|
||||||
|
@if (!empty($user->name))
|
||||||
|
{{ $user->name }}
|
||||||
|
@endif
|
||||||
</span>
|
</span>
|
||||||
@if ($updates)
|
|
||||||
<span class="badge badge-md badge-circle badge-update badge-warning">{{ $updates }}</span>
|
|
||||||
@endif
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endpermission
|
|
||||||
|
|
||||||
<li class="nav-item d-none d-md-block">
|
|
||||||
<a class="nav-link" href="{{ url(trans('header.support_link')) }}" target="_blank" title="{{ trans('general.help') }}" role="button" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="far fa-life-ring"></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="navbar-nav align-items-center ml-auto ml-md-0">
|
|
||||||
<li class="nav-item dropdown">
|
|
||||||
<a class="nav-link pr-0" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
|
||||||
<div class="media align-items-center">
|
|
||||||
<img src="{{ asset('public/img/user.png') }}" height="36" width="36" alt="User"/>
|
|
||||||
<div class="media-body ml-2 d-none d-lg-block">
|
|
||||||
<span class="mb-0 text-sm font-weight-bold">
|
|
||||||
@if (!empty($user->name))
|
|
||||||
{{ $user->name }}
|
|
||||||
@endif
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</a>
|
|
||||||
<div class="dropdown-menu dropdown-menu-right">
|
|
||||||
<div class="dropdown-header noti-title">
|
|
||||||
<h6 class="text-overflow m-0">{{ trans('general.welcome') }}</h6>
|
|
||||||
</div>
|
|
||||||
@permission('update-auth-users')
|
|
||||||
<a href="{{ route('users.edit', $user->id) }}" class="dropdown-item">
|
|
||||||
<i class="fas fa-user"></i>
|
|
||||||
<span>{{ trans('auth.profile') }}</span>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
@permission('read-auth-users')
|
|
||||||
<div class="dropdown-divider"></div>
|
|
||||||
<a href="{{ route('users.index') }}" class="dropdown-item">
|
|
||||||
<i class="fas fa-users"></i>
|
|
||||||
<span>{{ trans_choice('general.users', 2) }}</span>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
@permission('read-auth-roles')
|
|
||||||
<a href="{{ route('roles.index') }}" class="dropdown-item">
|
|
||||||
<i class="fas fa-list"></i>
|
|
||||||
<span>{{ trans_choice('general.roles', 2) }}</span>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
@permission('read-auth-permissions')
|
|
||||||
<a href="{{ route('permissions.index') }}" class="dropdown-item">
|
|
||||||
<i class="fas fa-key"></i>
|
|
||||||
<span>{{ trans_choice('general.permissions', 2) }}</span>
|
|
||||||
</a>
|
|
||||||
@endpermission
|
|
||||||
<div class="dropdown-divider"></div>
|
|
||||||
<a href="{{ route('logout') }}" class="dropdown-item">
|
|
||||||
<i class="fas fa-power-off"></i>
|
|
||||||
<span>{{ trans('auth.logout') }}</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</a>
|
||||||
</ul>
|
<div class="dropdown-menu dropdown-menu-right">
|
||||||
</div>
|
<div class="dropdown-header noti-title">
|
||||||
|
<h6 class="text-overflow m-0">{{ trans('general.welcome') }}</h6>
|
||||||
|
</div>
|
||||||
|
@permission('update-auth-users')
|
||||||
|
<a href="{{ route('users.edit', $user->id) }}" class="dropdown-item">
|
||||||
|
<i class="fas fa-user"></i>
|
||||||
|
<span>{{ trans('auth.profile') }}</span>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
@permission('read-auth-users')
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
<a href="{{ route('users.index') }}" class="dropdown-item">
|
||||||
|
<i class="fas fa-users"></i>
|
||||||
|
<span>{{ trans_choice('general.users', 2) }}</span>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
@permission('read-auth-roles')
|
||||||
|
<a href="{{ route('roles.index') }}" class="dropdown-item">
|
||||||
|
<i class="fas fa-list"></i>
|
||||||
|
<span>{{ trans_choice('general.roles', 2) }}</span>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
@permission('read-auth-permissions')
|
||||||
|
<a href="{{ route('permissions.index') }}" class="dropdown-item">
|
||||||
|
<i class="fas fa-key"></i>
|
||||||
|
<span>{{ trans_choice('general.permissions', 2) }}</span>
|
||||||
|
</a>
|
||||||
|
@endpermission
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
<a href="{{ route('logout') }}" class="dropdown-item">
|
||||||
|
<i class="fas fa-power-off"></i>
|
||||||
|
<span>{{ trans('auth.logout') }}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</div>
|
||||||
|
</nav>
|
||||||
@stack('navbar_end')
|
@stack('navbar_end')
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
@stack('header_start')
|
@stack('header_start')
|
||||||
<div id="header" class="header pb-6">
|
<div id="header" class="header pb-6">
|
||||||
<div class="container-fluid content-layout">
|
<div class="container-fluid content-layout">
|
||||||
<div class="header-body">
|
<div class="header-body">
|
||||||
<div class="row py-4 align-items-center">
|
<div class="row py-4 align-items-center">
|
||||||
<div class="col-sm-4 col-md-5 align-items-center">
|
<div class="col-sm-4 col-md-5 align-items-center">
|
||||||
<h2 class="d-inline-flex mb-0 long-texts">@yield('title')</h2>
|
<h2 class="d-inline-flex mb-0 long-texts">@yield('title')</h2>
|
||||||
@yield('dashboard_action')
|
@yield('dashboard_action')
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-8 col-md-7">
|
<div class="col-sm-8 col-md-7">
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
@yield('new_button')
|
@yield('new_button')
|
||||||
|
|
||||||
@stack('header_button')
|
@stack('header_button')
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
@stack('header_end')
|
@stack('header_end')
|
||||||
|
@ -1,28 +1,28 @@
|
|||||||
@stack('menu_start')
|
@stack('menu_start')
|
||||||
<nav class="sidenav navbar navbar-vertical fixed-left navbar-expand-xs navbar-light bg-default" id="sidenav-main">
|
<nav class="sidenav navbar navbar-vertical fixed-left navbar-expand-xs navbar-light bg-default" id="sidenav-main">
|
||||||
<div class="scrollbar-inner">
|
<div class="scrollbar-inner">
|
||||||
<div class="sidenav-header d-flex align-items-center ml-4">
|
<div class="sidenav-header d-flex align-items-center ml-4">
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="avatar avatar-xs background-unset">
|
<span class="avatar avatar-xs background-unset">
|
||||||
<img class="border-radius-0 border-0 mr-3" alt="Image placeholder" src="{{ setting('company.logo') ? Storage::url(setting('company.logo')) : asset('public/img/akaunting-logo-white.png') }}">
|
<img class="border-radius-0 border-0 mr-3" alt="Image placeholder" src="{{ setting('company.logo') ? Storage::url(setting('company.logo')) : asset('public/img/akaunting-logo-white.png') }}">
|
||||||
</span>
|
</span>
|
||||||
<span class="nav-link-text long-texts pl-2 mwpx-100">{{ Str::limit(setting('company.name'), 22) }}</span>
|
<span class="nav-link-text long-texts pl-2 mwpx-100">{{ Str::limit(setting('company.name'), 22) }}</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="ml-auto left-menu-toggle-position">
|
<div class="ml-auto left-menu-toggle-position">
|
||||||
<div class="sidenav-toggler d-none d-xl-block left-menu-toggle" data-action="sidenav-unpin" data-target="#sidenav-main">
|
<div class="sidenav-toggler d-none d-xl-block left-menu-toggle" data-action="sidenav-unpin" data-target="#sidenav-main">
|
||||||
<div class="sidenav-toggler-inner">
|
<div class="sidenav-toggler-inner">
|
||||||
<i class="sidenav-toggler-line"></i>
|
<i class="sidenav-toggler-line"></i>
|
||||||
<i class="sidenav-toggler-line"></i>
|
<i class="sidenav-toggler-line"></i>
|
||||||
<i class="sidenav-toggler-line"></i>
|
<i class="sidenav-toggler-line"></i>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{!! menu('portal') !!}
|
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
{!! menu('portal') !!}
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
@stack('menu_end')
|
@stack('menu_end')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user