v2 first commit

This commit is contained in:
denisdulici
2019-11-16 10:21:14 +03:00
parent 5b23e9c2c4
commit 6d50fa8442
3075 changed files with 3451681 additions and 65594 deletions

View File

@ -1,46 +1,17 @@
@stack('content_start')
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
@stack('content_wrapper_start')
<!-- Content Header (Page header) -->
<section class="content-header content-center">
@stack('content_header_start')
<h1>
@yield('title')
@yield('new_button')
@if (!empty($suggestion_modules))
@foreach($suggestion_modules as $s_module)
<span class="new-button">
<a href="{{ url($s_module->action_url) . '?' . http_build_query((array) $s_module->action_parameters) }}" class="btn btn-default btn-sm" target="{{ $s_module->action_target }}"><span class="fa fa-rocket"></span> &nbsp;{{ $s_module->name }}</a>
</span>
@endforeach
@endif
</h1>
@stack('content_header_end')
</section>
<!-- Main content -->
<section class="content content-center">
@include('flash::message')
<div id="app">
@stack('content_content_start')
@yield('content')
@yield('content')
@stack('content_content_end')
</section>
<!-- /.content -->
<notifications></notifications>
@stack('content_wrapper_end')
</div>
<!-- /.content-wrapper -->
<script type="text/javascript">
$('div.alert').not('.alert-important').delay(3000).fadeOut(350);
</script>
@stack('content_end')
<akaunting-modal
v-if="addNew.modal"
:show="addNew.modal"
:title="addNew.title"
:message="addNew.html">
</akaunting-modal>
</div>
@stack('content_end')

View File

@ -1,10 +1,16 @@
@stack('footer_start')
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>{{ trans('footer.version') }}</b> {{ version('short') }}
</div>
<strong>{{ trans('footer.powered') }}</strong>: <a href="{{ trans('footer.link') }}" target="_blank">{{ trans('footer.software') }}</a>
</footer>
<footer class="footer">
<div class="row">
<div class="col-md-6">
<div class="text-sm float-left text-muted footer-texts">
{{ trans('footer.powered') }}: <a class="text-success" href="{{ trans('footer.link') }}" target="_blank">{{ trans('footer.software') }}</a>
</div>
</div>
<div class="col-md-6">
<div class="text-sm float-right text-muted footer-texts">
{{ trans('footer.version') }} {{ version('short') }}
</div>
</div>
</div>
</footer>
@stack('footer_end')

View File

@ -1,72 +1,54 @@
<head>
@stack('head_start')
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<title>@yield('title') - @setting('company.name')</title>
<title>@yield('title') - @setting('general.company_name')</title>
@include('partials.pwa.pwa')
<!-- Bootstrap 3.3.6 -->
<link rel="stylesheet" href="{{ asset('vendor/almasaeed2010/adminlte/bootstrap/css/bootstrap.min.css') }}">
<!-- Font Awesome -->
<link rel="stylesheet" href="{{ asset('public/css/font-awesome.min.css') }}">
<!-- Ionicons -->
<link rel="stylesheet" href="{{ asset('public/css/ionicons.min.css') }}">
<!-- Theme style -->
<link rel="stylesheet" href="{{ asset('vendor/almasaeed2010/adminlte/dist/css/AdminLTE.min.css') }}">
<!-- AdminLTE Skins -->
@if (setting('general.admin_theme', 'skin-green-light') == 'skin-green-light')
<link rel="stylesheet" href="{{ asset('vendor/almasaeed2010/adminlte/dist/css/skins/skin-green-light.min.css') }}">
@else
<link rel="stylesheet" href="{{ asset('vendor/almasaeed2010/adminlte/dist/css/skins/skin-black.min.css') }}">
<link rel="stylesheet" href="{{ asset('public/css/skin-black.css?v=' . version('short')) }}">
@endif
<!-- Select2 -->
<link rel="stylesheet" href="{{ asset('vendor/almasaeed2010/adminlte/plugins/select2/select2.min.css') }}">
<!-- App style -->
<link rel="stylesheet" href="{{ asset('public/css/app.css?v=' . version('short')) }}">
<link rel="stylesheet" href="{{ asset('public/css/akaunting-green.css?v=' . version('short')) }}">
<link rel="shortcut icon" href="{{ asset('public/img/favicon.ico') }}">
@stack('css')
<!-- Favicon -->
<link rel="icon" href="{{ asset('public/img/favicon.ico') }}" type="image/png">
@stack('stylesheet')
<!-- Font -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Icons -->
<link rel="stylesheet" href="{{ asset('public/vendor/nucleo/css/nucleo.css') }}" type="text/css">
<link rel="stylesheet" href="{{ asset('public/vendor/@fortawesome/fontawesome-free/css/all.min.css') }}" type="text/css">
<!-- jQuery 2.2.3 -->
<script src="{{ asset('vendor/almasaeed2010/adminlte/plugins/jQuery/jquery-2.2.3.min.js') }}"></script>
<!-- Bootstrap 3.3.6 -->
<script src="{{ asset('vendor/almasaeed2010/adminlte/bootstrap/js/bootstrap.min.js') }}"></script>
<!-- SlimScroll -->
<script src="{{ asset('vendor/almasaeed2010/adminlte/plugins/slimScroll/jquery.slimscroll.min.js') }}"></script>
<!-- FastClick -->
<script src="{{ asset('vendor/almasaeed2010/adminlte/plugins/fastclick/fastclick.js') }}"></script>
<!-- AdminLTE App -->
<script src="{{ asset('vendor/almasaeed2010/adminlte/dist/js/app.min.js') }}"></script>
<!-- Select2 -->
<script src="{{ asset('vendor/almasaeed2010/adminlte/plugins/select2/select2.min.js') }}"></script>
<!-- Mask Money -->
<script src="{{ asset('public/js/jquery/jquery.maskMoney.js') }}"></script>
<!-- Css -->
<!-- Argon -->
<link rel="stylesheet" href="{{ asset('public/css/argon.css?v=1.1.0') }}" type="text/css">
<script src="{{ asset('public/js/app.js?v=' . version('short')) }}"></script>
<!-- Color -->
<link rel="stylesheet" href="{{ asset('public/css/akaunting-color.css?v=' . version('short')) }}">
<!-- Custom -->
<link rel="stylesheet" href="{{ asset('public/css/custom.css?v=' . version('short')) }}">
<script type="text/javascript"><!--
var app_url = '{{ url("/") }}';
var url_search = '{{ url("common/search/search") }}';
//--></script>
@stack('css')
@stack('js')
@stack('stylesheet')
@stack('scripts')
<script type="text/javascript"><!--
var url = '{{ url("/") }}';
var app_url = '{{ env("APP_URL") }}';
//--></script>
@stack('js')
<script type="text/javascript"><!--
window.Laravel = <?php echo json_encode([
'csrfToken' => csrf_token(),
]); ?>;
var aka_currency = {!! !empty($currency) ? $currency : 'false' !!};
var flash_notification = {!! (session()->has('flash_notification')) ? json_encode(session()->get('flash_notification')) : 'false' !!};
//--></script>
{{ session()->forget('flash_notification') }}
@stack('scripts')
@stack('head_end')
</head>

View File

@ -1,250 +1,31 @@
@stack('header_start')
<div id="header" class="header pb-6">
<div class="container-fluid content-layout">
<div class="header-body">
<div class="row py-4 align-items-center">
<div class="col-sm-4 col-md-5 align-items-center">
<h2 class="d-inline-block mb-0">@yield('title')</h2>
@yield('dashboard_action')
</div>
<div class="col-sm-8 col-md-7">
<div class="text-right">
@yield('new_button')
<header class="main-header">
<!-- Logo -->
<a href="{{ url('/') }}" class="logo">
@if (setting('general.admin_theme', 'skin-green-light') == 'skin-green-light')
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini"><img src="{{ asset('public/img/akaunting-logo-white.png') }}" class="logo-image-mini" width="25" alt="Akaunting Logo"></span>
<!-- logo for regular state and mobile devices -->
<span class="logo-lg"><img src="{{ asset('public/img/akaunting-logo-white.png') }}" class="logo-image-lg" width="25" alt="Akaunting Logo"> <b>Akaunting</b></span>
@else
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini"><img src="{{ asset('public/img/akaunting-logo-green.png') }}" class="logo-image-mini" width="25" alt="Akaunting Logo"></span>
<!-- logo for regular state and mobile devices -->
<span class="logo-lg"><img src="{{ asset('public/img/akaunting-logo-green.png') }}" class="logo-image-lg" width="25" alt="Akaunting Logo"> <b>Akaunting</b></span>
@endif
</a>
<!-- Header Navbar: style can be found in header.less -->
<nav class="navbar navbar-static-top">
<!-- Sidebar toggle button-->
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
<span class="sr-only">Toggle navigation</span>
</a>
<ul class="add-new nav navbar-nav pull-left">
<!-- Notifications: style can be found in dropdown.less -->
<li class="dropdown add-new-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-plus"></i>
</a>
<div class="dropdown-menu">
<ul class="list-inline">
<li>
<ul class="list-unstyled">
<li class="header"><i class="fa fa-money"></i> &nbsp;<span style="font-weight: 600;">{{ trans_choice('general.incomes', 1) }}</span></li>
<li>
<ul class="menu">
@permission('create-incomes-invoices')
<li><a href="{{ url('incomes/invoices/create') }}">{{ trans_choice('general.invoices', 1) }}</a></li>
@endpermission
@permission('create-incomes-revenues')
<li><a href="{{ url('incomes/revenues/create') }}">{{ trans_choice('general.revenues', 1) }}</a></li>
@endpermission
@permission('create-incomes-customers')
<li><a href="{{ url('incomes/customers/create') }}">{{ trans_choice('general.customers', 1) }}</a></li>
@endpermission
</ul>
</li>
</ul>
</li>
<li>
<ul class="list-unstyled">
<li class="header"><i class="fa fa-shopping-cart"></i> &nbsp;<span style="font-weight: 600;">{{ trans_choice('general.expenses', 1) }}</span></li>
<li>
<ul class="menu">
@permission('create-expenses-bills')
<li><a href="{{ url('expenses/bills/create') }}">{{ trans_choice('general.bills', 1) }}</a></li>
@endpermission
@permission('create-expenses-payments')
<li><a href="{{ url('expenses/payments/create') }}">{{ trans_choice('general.payments', 1) }}</a></li>
@endpermission
@permission('create-expenses-vendors')
<li><a href="{{ url('expenses/vendors/create') }}">{{ trans_choice('general.vendors', 1) }}</a></li>
@endpermission
</ul>
</li>
</ul>
</li>
<li>
<ul class="list-unstyled">
<li class="header"><i class="fa fa-university"></i> &nbsp;<span style="font-weight: 600;">{{ trans('general.banking') }}</span></li>
<li>
<ul class="menu">
@permission('create-banking-accounts')
<li><a href="{{ url('banking/accounts/create') }}">{{ trans_choice('general.accounts', 1) }}</a></li>
@endpermission
@permission('create-banking-transfers')
<li><a href="{{ url('banking/transfers/create') }}">{{ trans_choice('general.transfers', 1) }}</a></li>
@endpermission
@permission('create-banking-reconciliations')
<li><a href="{{ url('banking/reconciliations/create') }}">{{ trans_choice('general.reconciliations', 1) }}</a></li>
@endpermission
</ul>
</li>
</ul>
</li>
</ul>
</div>
</li>
</ul>
@stack('header_navbar_left')
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
@stack('header_navbar_right')
@permission('read-notifications')
<!-- Notifications: style can be found in dropdown.less -->
<li class="dropdown notifications-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-bell-o"></i>
@if ($notifications)
<span class="label label-warning">{{ $notifications }}</span>
@endif
</a>
<ul class="dropdown-menu">
<li class="header">{{ trans_choice('header.notifications.counter', $notifications, ['count' => $notifications]) }}</li>
<li>
<!-- inner menu: contains the actual data -->
<ul class="menu">
@if (count($bills))
<li>
<a href="{{ url('auth/users/' . $user->id . '/read-bills') }}">
<i class="fa fa-shopping-cart text-red"></i> {{ trans_choice('header.notifications.upcoming_bills', count($bills), ['count' => count($bills)]) }}
</a>
</li>
@permission('read-modules-home')
@if (!empty($suggestion_modules))
@foreach($suggestion_modules as $s_module)
<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> &nbsp;{{ $s_module->name }}</a>
</span>
@endforeach
@endif
@if (count($invoices))
<li>
<a href="{{ url('auth/users/' . $user->id . '/read-invoices') }}">
<i class="fa fa-money text-green"></i> {{ trans_choice('header.notifications.overdue_invoices', count($invoices), ['count' => count($invoices)]) }}
</a>
</li>
@endif
@if (count($items))
<li>
<a href="{{ url('auth/users/' . $user->id . '/read-items') }}">
<i class="fa fa-cubes text-red"></i> {{ trans_choice('header.notifications.items_stock', count($items), ['count' => count($items)]) }}
</a>
</li>
@endif
@if (count($items_reminder))
<li>
<a href="{{ url('auth/users/' . $user->id . '/read-items') }}">
<i class="fa fa-cubes text-red"></i> {{ trans_choice('header.notifications.items_reminder', count($items_reminder), ['count' => count($items_reminder)]) }}
</a>
</li>
@endif
</ul>
</li>
<li class="footer"><a href="#">{{ trans('header.notifications.view_all') }}</a></li>
</ul>
</li>
@endpermission
<!-- Tasks: style can be found in dropdown.less -->
<li class="dropdown tasks-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-flag-o"></i>
</a>
<ul class="dropdown-menu">
<li class="header">{{ trans('header.change_language') }}</li>
<li>
<!-- inner menu: contains the actual data -->
{!! language()->flags() !!}
</li>
</ul>
</li>
@permission('read-install-updates')
<!-- Updates: style can be found in dropdown.less -->
<li>
<a href="{{ url('install/updates') }}" data-toggle="tooltip" data-placement="bottom" title="{{ $updates }} Updates Available">
<i class="fa fa-refresh"></i>
@if ($updates)
<span class="label label-danger">{{ $updates }}</span>
@endif
</a>
</li>
@endpermission
<!-- Updates: style can be found in dropdown.less -->
<li class="hidden-xs">
<a href="{{ url(trans('header.docs_link')) }}" target="_blank" title="{{ trans('general.help') }}">
<i class="fa fa-life-ring"></i>
</a>
</li>
<!-- User Account: style can be found in dropdown.less -->
<li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
@if ($user->picture)
@if (setting('general.use_gravatar', '0') == '1')
<img src="{{ $user->picture }}" class="user-image" alt="User Image">
@else
<img src="{{ Storage::url($user->picture->id) }}" class="user-image" alt="User Image">
@endif
@else
<i class="fa fa-user-o"></i>
@endif
@if (!empty($user->name))
<span class="hidden-xs">{{ $user->name }}</span>
@endif
</a>
<ul class="dropdown-menu">
<!-- User image -->
<li class="user-header">
@if ($user->picture)
@if (setting('general.use_gravatar', '0') == '1')
<img src="{{ $user->picture }}" class="img-circle" alt="User Image">
@else
<img src="{{ Storage::url($user->picture->id) }}" class="img-circle" alt="User Image">
@endif
@else
<i class="fa fa-4 fa-user-o" style="color: #fff; font-size: 7em;"></i>
@endif
<p>
@if (!empty($user->name))
{{ $user->name }}
@endif
<small>{{ trans('header.last_login', ['time' => $user->last_logged_in_at]) }}</small>
</p>
</li>
<!-- Menu Body -->
<li class="user-body">
<div class="row">
@permission('read-auth-users')
<div class="col-xs-4 text-center">
<a href="{{ url('auth/users') }}">{{ trans_choice('general.users', 2) }}</a>
</div>
@endpermission
@permission('read-auth-roles')
<div class="col-xs-4 text-center">
<a href="{{ url('auth/roles') }}">{{ trans_choice('general.roles', 2) }}</a>
</div>
@endpermission
@permission('read-auth-permissions')
<div class="col-xs-4 text-center">
<a href="{{ url('auth/permissions') }}">{{ trans_choice('general.permissions', 2) }}</a>
</div>
@endpermission
</div>
<!-- /.row -->
</li>
<!-- Menu Footer-->
<li class="user-footer">
@permission('read-auth-profile')
<div class="pull-left">
<a href="{{ url('auth/users/' . $user->id . '/edit') }}" class="btn btn-default btn-flat">{{ trans('auth.profile') }}</a>
</div>
@endpermission
<div class="pull-right">
<a href="{{ url('auth/logout') }}" class="btn btn-default btn-flat">{{ trans('auth.logout') }}</a>
</div>
</li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
@stack('header_button')
</div>
</div>
</div>
</div>
</div>
</div>
@stack('header_end')

View File

@ -1,43 +1,47 @@
@stack('menu_start')
<aside class="main-sidebar">
<!-- sidebar: style can be found in sidebar.less -->
<section class="sidebar">
<!-- Sidebar user panel -->
<div class="user-panel">
<div class="pull-left image">
<img src="{{ setting('general.company_logo') ? Storage::url(setting('general.company_logo')) : asset('public/img/company.png') }}" class="img-circle" alt="@setting('general.company_name')">
</div>
<div class="pull-left info">
<p>{{ str_limit(setting('general.company_name'), 22) }}</p>
@permission('read-common-companies')
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="caret"></span> &nbsp;{{ trans('general.switch') }}</a>
<ul class="dropdown-menu">
@foreach($companies as $com)
<li><a href="{{ url('common/companies/'. $com->id .'/set') }}">{{ str_limit($com->company_name, 18) }}</a></li>
@endforeach
@permission('update-common-companies')
<li role="separator" class="divider"></li>
<li><a href="{{ url('common/companies') }}">{{ trans('companies.manage') }}</a></li>
@endpermission
<nav class="sidenav navbar navbar-vertical fixed-left navbar-expand-xs navbar-light bg-default" id="sidenav-main">
<div class="scrollbar-inner">
<div class="sidenav-header d-flex align-items-center ml-4">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<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') }}">
</span>
<div class="media-body pl-2 d-grid nav-header-text">
<span class="font-weight-bold o-y">{{ Str::limit(setting('company.name'), 22) }}<i class="fas fa-sort-down pl-2"></i></span>
</div>
</a>
@permission('read-common-companies')
<div class="dropdown-menu dropdown-menu-right menu-dropdown">
@foreach($companies as $com)
<a href="{{ route('companies.switch', $com->id) }}" class="dropdown-item">
<i class="fas fa-building"></i>
<span>{{ Str::limit($com->name, 18) }}</span>
</a>
@endforeach
@permission('update-common-companies')
<div class="dropdown-divider"></div>
<a href="{{ route('companies.index') }}" class="dropdown-item">
<i class="fas fa-cogs"></i>
<span>{{ trans('companies.manage') }}</span>
</a>
@endpermission
</div>
@endpermission
</li>
</ul>
@endpermission
<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>
{!! menu('admin') !!}
</div>
<!-- search form -->
<form action="#" method="get" id="form-search" class="sidebar-form">
<div id="live-search" class="input-group">
<input type="text" name="live-search" value="<?php //echo $search; ?>" id="input-search" class="form-control" placeholder="{{ trans('general.search_placeholder') }}">
<span class="input-group-btn">
<button type="submit" name="live-search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i></button>
</span>
</div>
</form>
<!-- /.search form -->
<!-- sidebar menu: : style can be found in sidebar.less -->
{!! Menu::get('AdminMenu') !!}
</section>
<!-- /.sidebar -->
</aside>
@stack('menu_end')
</nav>
@stack('menu_end')

View File

@ -0,0 +1,248 @@
@stack('navbar_start')
<nav class="navbar navbar-top navbar-expand navbar-dark border-bottom">
<div class="container-fluid">
<div class="collapse navbar-collapse" id="navbarSupportedContent">
@if (user()->can('read-common-search'))
<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 class="input-group input-group-alternative input-group-merge">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-search"></i></span>
</div>
<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="list-group list-group-flush">
<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="col ml--2">
<div class="d-flex justify-content-between align-items-center">
<div>
<div class="name" v-text="item.name"></div>
</div>
<div class="text-muted">
<span class="type" v-text="item.type"></span>
</div>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
<button type="button" class="close" data-action="search-close" data-target="#navbar-search-main" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</form>
@endif
<ul class="navbar-nav align-items-center ml-md-auto">
<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="sidenav-toggler-inner">
<i class="sidenav-toggler-line"></i>
<i class="sidenav-toggler-line"></i>
<i class="sidenav-toggler-line"></i>
</div>
</div>
</li>
<li class="nav-item d-sm-none">
<a class="nav-link" href="#" data-action="search-show" data-target="#navbar-search-main">
<i class="fa fa-search"></i>
</a>
</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
<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-floating badge-warning">{{ $notifications }}</span>
@endif
</a>
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right py-0 overflow-hidden">
<div class="px-3 py-3">
<a class="text-sm text-muted m-0">{{ trans_choice('header.notifications.counter', $notifications, ['count' => $notifications]) }}</a>
</div>
<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-alt"></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>
<a href="#" class="dropdown-item text-center text-success font-weight-bold py-3">{{ trans('header.notifications.view_all') }}</a>
</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>
<i class="fa fa-sync-alt"></i>
</span>
@if ($updates)
<span class="badge badge-md badge-circle badge-floating badge-warning">{{ $updates }}</span>
@endif
</a>
</li>
@endpermission
<li class="nav-item hidden-md">
<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">
<span class="avatar avatar-sm rounded-circle bg-default font-size-1">
<i class="fas fa-user-alt"></i>
</span>
<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>
</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>
</li>
</ul>
</div>
</div>
</nav>
@stack('navbar_end')

View File

@ -1,16 +1,24 @@
@stack('pagination_start')
@if ($items->firstItem())
<div class="col-6">
<span class="table-text hidden-lg">
{{ trans('general.show') }}
</span>
{!! Form::select('limit', $limits, request('limit', setting('default.list_limit', '25')), ['class' => 'form-control form-control-sm table-header-search hidden-md', 'onchange' => 'this.form.submit()']) !!}
<span class="table-text hidden-lg">
{{ trans('pagination.page') }}
{{ trans('pagination.showing', ['first' => $items->firstItem(), 'last' => $items->lastItem(), 'total' => $items->total(), 'type' => strtolower((isset($title)) ? $title : trans_choice('general.' . $type, 2))]) }}
</span>
</div>
@if ($items->firstItem())
<div class="pull-left" style="margin-top: 7px;">
<small>{{ trans('pagination.showing', ['first' => $items->firstItem(), 'last' => $items->lastItem(), 'total' => $items->total(), 'type' => strtolower((isset($title)) ? $title : trans_choice('general.' . $type, 2))]) }}</small>
</div>
<div class="pull-right">
{!! $items->appends(request()->except('page'))->links() !!}
</div>
@else
<div class="pull-left">
<small>{{ trans('general.no_records') }}</small>
</div>
@endif
@stack('pagination_end')
<div class="col-6">
<nav class="float-right">
{!! $items->appends(request()->except('page'))->links() !!}
</nav>
</div>
@else
<div class="col-12" id="datatable-basic_info" role="status" aria-live="polite">
<small>{{ trans('general.no_records') }}</small>
</div>
@endif
@stack('pagination_end')

View File

@ -0,0 +1,143 @@
<!-- Core -->
<script src="{{ asset('public/vendor/jquery/dist/jquery.min.js') }}"></script>
<script src="{{ asset('public/vendor/bootstrap/dist/js/bootstrap.bundle.min.js') }}"></script>
<script src="{{ asset('public/vendor/js-cookie/js.cookie.js') }}"></script>
@stack('scripts_start')
<script src="{{ asset('public/vendor/chart.js/dist/Chart.min.js') }}"></script>
<script src="{{ asset('public/js/common/search.js?v=' . version('short')) }}"></script>
<script src="https://unpkg.com/vue"></script>
@stack('charts')
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.0.2/echarts-en.min.js" charset=utf-8></script>
<!-- Argon -->
<script type="text/javascript">
'use strict';
var Layout = (function() {
function pinSidenav() {
$('.sidenav-toggler').addClass('active');
$('.sidenav-toggler').data('action', 'sidenav-unpin');
$('body').removeClass('g-sidenav-hidden').addClass('g-sidenav-show g-sidenav-pinned');
$('body').append('<div class="backdrop d-xl-none" data-action="sidenav-unpin" data-target='+$('#sidenav-main').data('target')+' />');
// Store the sidenav state in a cookie session
Cookies.set('sidenav-state', 'pinned');
}
function unpinSidenav() {
$('.sidenav-toggler').removeClass('active');
$('.sidenav-toggler').data('action', 'sidenav-pin');
$('body').removeClass('g-sidenav-pinned').addClass('g-sidenav-hidden');
$('body').find('.backdrop').remove();
// Store the sidenav state in a cookie session
Cookies.set('sidenav-state', 'unpinned');
}
// Set sidenav state from cookie
var $sidenavState = Cookies.get('sidenav-state') ? Cookies.get('sidenav-state') : 'pinned';
if($(window).width() > 1200) {
if($sidenavState == 'pinned') {
pinSidenav()
}
if(Cookies.get('sidenav-state') == 'unpinned') {
unpinSidenav()
}
}
$("body").on("click", "[data-action]", function(e) {
e.preventDefault();
var $this = $(this);
var action = $this.data('action');
var target = $this.data('target');
// Manage actions
switch (action) {
case 'sidenav-pin':
pinSidenav();
break;
case 'sidenav-unpin':
unpinSidenav();
break;
case 'search-show':
target = $this.data('target');
$('body').removeClass('g-navbar-search-show').addClass('g-navbar-search-showing');
setTimeout(function() {
$('body').removeClass('g-navbar-search-showing').addClass('g-navbar-search-show');
}, 150);
setTimeout(function() {
$('body').addClass('g-navbar-search-shown');
}, 300)
break;
case 'search-close':
target = $this.data('target');
$('body').removeClass('g-navbar-search-shown');
setTimeout(function() {
$('body').removeClass('g-navbar-search-show').addClass('g-navbar-search-hiding');
}, 150);
setTimeout(function() {
$('body').removeClass('g-navbar-search-hiding').addClass('g-navbar-search-hidden');
}, 300);
setTimeout(function() {
$('body').removeClass('g-navbar-search-hidden');
}, 500);
break;
}
})
// Add sidenav modifier classes on mouse events
$('.sidenav').on('mouseenter', function() {
if(! $('body').hasClass('g-sidenav-pinned')) {
$('body').removeClass('g-sidenav-hide').removeClass('g-sidenav-hidden').addClass('g-sidenav-show');
}
})
$('.sidenav').on('mouseleave', function() {
if(! $('body').hasClass('g-sidenav-pinned')) {
$('body').removeClass('g-sidenav-show').addClass('g-sidenav-hide');
setTimeout(function() {
$('body').removeClass('g-sidenav-hide').addClass('g-sidenav-hidden');
}, 300);
}
})
// Make the body full screen size if it has not enough content inside
$(window).on('load resize', function() {
if($('body').height() < 800) {
$('body').css('min-height', '100vh');
$('#footer-main').addClass('footer-auto-bottom')
}
})
})();
</script>
@stack('body_css')
@stack('body_stylesheet')
@stack('body_js')
@stack('body_scripts')
@stack('scripts_end')