JS Form abstraction (#2542)

* added npm package to resolve typescript dependencies

* OO JS forms

*  OO forms

* Refactors forms to abstract form CRUD

* Working on Promises

* Fix for errors in js form

* Form validation with array of data

* Client update validation - array

* handle array validation

* Toastr notifications

* Clean up
This commit is contained in:
David Bomba 2018-12-05 19:23:12 +11:00 committed by GitHub
parent c72e1f0139
commit 7ee295ec44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 5457 additions and 3432 deletions

View File

@ -0,0 +1,32 @@
<?php
namespace App\Http\Requests\Client;
use App\Http\Requests\Request;
class StoreClientRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
// return ! auth()->user(); //todo permissions
}
public function rules()
{
return [
'name' => 'required',
'contacts.*.email' => 'email|unique:client_contacts,email'
];
}
}

View File

@ -3,6 +3,8 @@
namespace App\Http\Requests\Client;
use App\Http\Requests\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Rule;
class UpdateClientRequest extends Request
{
@ -19,12 +21,28 @@ class UpdateClientRequest extends Request
}
public function rules()
{
/* Ensure we have a client name, and that all emails are unique!!!!!*/
$rules['name'] = 'required';
$contacts = request('contacts');
for ($i = 0; $i < count($contacts); $i++) {
$rules['contacts.' . $i . '.email'] = 'required|email|unique:client_contacts,email,' . $contacts[$i]['id'];
}
return $rules;
}
public function messages()
{
return [
'name' => 'required',
//'contacts.*.email' => 'email|unique:client_contacts,email'
'unique' => trans('validation.unique', ['attribute' => 'email']),
'required' => trans('validation.required', ['attribute' => 'email']),
'email' => trans('validation.email', ['attribute' => 'email'])
];
}

View File

@ -5,7 +5,6 @@ namespace App\Repositories;
use App\Models\Client;
use App\Repositories\ClientContactRepository;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
/**
*
@ -21,7 +20,6 @@ class ClientRepository extends BaseRepository
public function save(Request $request, Client $client) : ?Client
{
Log::error(print_r($request->input(),1));
$client->fill($request->input());
$client->save();

View File

@ -14,6 +14,8 @@
"@coreui/coreui": "^2.0.12",
"@coreui/coreui-plugin-chartjs-custom-tooltips": "1.2.0",
"@coreui/icons": "^0.3.0",
"@types/bluebird": "^3.5.24",
"@types/core-js": "^0.9.36",
"@types/jest": "^23.3.9",
"axios": "^0.18",
"bootstrap": "^4.0.0",
@ -40,6 +42,7 @@
"socket.io-client": "^2.1.1",
"ts-loader": "3.5.0",
"typescript": "^3.1.6",
"vue-i18n": "^8.3.0"
"vue-i18n": "^8.3.0",
"vue-toastr": "^2.0.16"
}
}

504
public/css/ninja.css vendored
View File

@ -1,7 +1,7 @@
@charset "UTF-8";
/*!
* CoreUI - Open Source Dashboard UI Kit
* @version v2.1.3
* @version v2.0.18
* @link https://coreui.io
* Copyright (c) 2018 creativeLabs Łukasz Holeczek
* Licensed under MIT (https://coreui.io/license)
@ -10347,6 +10347,10 @@ a.text-dark:hover, a.text-dark:focus {
box-shadow: 0 0 0 0.2rem rgba(170, 212, 80, 0.5);
}
button {
cursor: pointer;
}
.btn-transparent {
color: #fff;
background-color: transparent;
@ -11695,28 +11699,6 @@ canvas {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E");
}
.sidebar .nav-link.disabled {
color: #b3b3b3;
cursor: default;
background: transparent;
}
.sidebar .nav-link.disabled .nav-icon {
color: #73818f;
}
.sidebar .nav-link.disabled:hover {
color: #b3b3b3;
}
.sidebar .nav-link.disabled:hover .nav-icon {
color: #73818f;
}
.sidebar .nav-link.disabled:hover.nav-dropdown-toggle::before {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E");
}
.sidebar .nav-link.nav-link-primary {
background: #20a8d8;
}
@ -11884,19 +11866,6 @@ canvas {
border-left: 0;
}
.sidebar .nav-dropdown.open .nav-link.disabled {
color: #b3b3b3;
background: transparent;
}
.sidebar .nav-dropdown.open .nav-link.disabled:hover {
color: #b3b3b3;
}
.sidebar .nav-dropdown.open .nav-link.disabled:hover .nav-icon {
color: #73818f;
}
.sidebar .nav-dropdown.open > .nav-dropdown-toggle::before {
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg);
@ -11941,7 +11910,6 @@ canvas {
position: relative;
-ms-flex: 0 0 50px;
flex: 0 0 50px;
cursor: pointer;
background-color: rgba(0, 0, 0, 0.2);
border: 0;
}
@ -12054,12 +12022,6 @@ canvas {
.sidebar-minimized .sidebar .nav-item:hover > .nav-link .nav-icon {
color: #fff;
}
.sidebar-minimized .sidebar .nav-item:hover > .nav-link.disabled {
background: #2f353a;
}
.sidebar-minimized .sidebar .nav-item:hover > .nav-link.disabled .nav-icon {
color: #73818f;
}
.sidebar-minimized .sidebar .nav-link {
position: relative;
padding-left: 0;
@ -12107,43 +12069,6 @@ canvas {
left: 50px;
display: inline;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav {
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav .divider {
height: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .sidebar-minimizer::before {
width: 100%;
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link {
padding-right: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link .nav-icon {
float: right;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link .badge {
right: auto;
left: 15px;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link:hover .badge {
display: inline;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav > .nav-dropdown > .nav-dropdown-items {
display: none;
max-height: 1000px;
background: #2f353a;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav > .nav-dropdown:hover {
background: #20a8d8;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav > .nav-dropdown:hover > .nav-dropdown-items {
position: absolute;
left: 0;
display: inline;
}
}
*[dir="rtl"] .sidebar .nav-dropdown-toggle::before {
@ -12174,12 +12099,41 @@ canvas {
}
*[dir="rtl"] .sidebar .sidebar-minimizer::before {
right: auto;
right: unset;
left: 0;
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav {
list-style-type: disc;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link {
padding-right: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link .nav-icon {
float: right;
padding: 0;
margin: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link .badge {
right: auto;
left: 15px;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-dropdown:hover > .nav-dropdown-items {
right: 50px;
left: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .sidebar-minimizer::before {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
*[dir="rtl"] .sidebar-toggler {
margin-right: 0 !important;
}
@ -12884,26 +12838,94 @@ html[dir="rtl"] .aside-menu {
z-index: 1017;
}
html:not([dir="rtl"]) .sidebar-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu {
margin-right: 0;
}
html[dir="rtl"] .sidebar-show .sidebar,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@-webkit-keyframes opacity {
0% {
opacity: 0;
@ -12943,99 +12965,71 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
@media (min-width: 576px) {
html:not([dir="rtl"]) .sidebar-sm-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
html:not([dir="rtl"]) .sidebar-sm-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 200px;
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .aside-menu-sm-show .aside-menu {
margin-right: 0;
}
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir="rtl"]) .aside-menu-sm-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-sm-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .aside-menu-sm-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-sm-show .sidebar,
html[dir="rtl"] .sidebar-show .sidebar {
html[dir="rtl"] .sidebar-sm-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 200px;
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .aside-menu-sm-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir="rtl"] .aside-menu-sm-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-sm-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .aside-menu-sm-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@ -13057,100 +13051,92 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
}
@media (min-width: 576px) and (max-width: 575.98px) {
.sidebar-sm-show .main,
.aside-menu-sm-show .main {
position: relative;
}
.sidebar-sm-show .main::before,
.aside-menu-sm-show .main::before {
position: absolute;
top: 0;
left: 0;
z-index: 1018;
width: 100%;
height: 100%;
content: "";
background: rgba(0, 0, 0, 0.7);
-webkit-animation: opacity 0.25s;
animation: opacity 0.25s;
}
}
@media (min-width: 768px) {
html:not([dir="rtl"]) .sidebar-md-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
html:not([dir="rtl"]) .sidebar-md-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 200px;
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .aside-menu-md-show .aside-menu {
margin-right: 0;
}
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir="rtl"]) .aside-menu-md-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-md-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .aside-menu-md-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-md-show .sidebar,
html[dir="rtl"] .sidebar-show .sidebar {
html[dir="rtl"] .sidebar-md-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .sidebar-md-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-md-show.sidebar-fixed .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
html[dir="rtl"] .sidebar-md-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 200px;
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .aside-menu-md-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir="rtl"] .aside-menu-md-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-md-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .aside-menu-md-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@ -13172,100 +13158,92 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
}
@media (min-width: 768px) and (max-width: 575.98px) {
.sidebar-md-show .main,
.aside-menu-md-show .main {
position: relative;
}
.sidebar-md-show .main::before,
.aside-menu-md-show .main::before {
position: absolute;
top: 0;
left: 0;
z-index: 1018;
width: 100%;
height: 100%;
content: "";
background: rgba(0, 0, 0, 0.7);
-webkit-animation: opacity 0.25s;
animation: opacity 0.25s;
}
}
@media (min-width: 992px) {
html:not([dir="rtl"]) .sidebar-lg-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
html:not([dir="rtl"]) .sidebar-lg-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .aside-menu-lg-show .aside-menu {
margin-right: 0;
}
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir="rtl"]) .aside-menu-lg-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-lg-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .aside-menu-lg-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-lg-show .sidebar,
html[dir="rtl"] .sidebar-show .sidebar {
html[dir="rtl"] .sidebar-lg-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .aside-menu-lg-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir="rtl"] .aside-menu-lg-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-lg-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .aside-menu-lg-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@ -13287,100 +13265,92 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
}
@media (min-width: 992px) and (max-width: 575.98px) {
.sidebar-lg-show .main,
.aside-menu-lg-show .main {
position: relative;
}
.sidebar-lg-show .main::before,
.aside-menu-lg-show .main::before {
position: absolute;
top: 0;
left: 0;
z-index: 1018;
width: 100%;
height: 100%;
content: "";
background: rgba(0, 0, 0, 0.7);
-webkit-animation: opacity 0.25s;
animation: opacity 0.25s;
}
}
@media (min-width: 1200px) {
html:not([dir="rtl"]) .sidebar-xl-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
html:not([dir="rtl"]) .sidebar-xl-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .aside-menu-xl-show .aside-menu {
margin-right: 0;
}
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir="rtl"]) .aside-menu-xl-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-xl-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .aside-menu-xl-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-xl-show .sidebar,
html[dir="rtl"] .sidebar-show .sidebar {
html[dir="rtl"] .sidebar-xl-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .aside-menu-xl-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir="rtl"] .aside-menu-xl-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-xl-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .aside-menu-xl-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@ -13402,6 +13372,26 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
}
@media (min-width: 1200px) and (max-width: 575.98px) {
.sidebar-xl-show .main,
.aside-menu-xl-show .main {
position: relative;
}
.sidebar-xl-show .main::before,
.aside-menu-xl-show .main::before {
position: absolute;
top: 0;
left: 0;
z-index: 1018;
width: 100%;
height: 100%;
content: "";
background: rgba(0, 0, 0, 0.7);
-webkit-animation: opacity 0.25s;
animation: opacity 0.25s;
}
}
.footer-fixed .app-footer {
position: fixed;
right: 0;

View File

@ -1,7 +1,7 @@
@charset "UTF-8";
/*!
* CoreUI - Open Source Dashboard UI Kit
* @version v2.1.3
* @version v2.0.18
* @link https://coreui.io
* Copyright (c) 2018 creativeLabs Łukasz Holeczek
* Licensed under MIT (https://coreui.io/license)
@ -10347,6 +10347,10 @@ a.text-dark:hover, a.text-dark:focus {
box-shadow: 0 0 0 0.2rem rgba(170, 212, 80, 0.5);
}
button {
cursor: pointer;
}
.btn-transparent {
color: #fff;
background-color: transparent;
@ -11695,28 +11699,6 @@ canvas {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E");
}
.sidebar .nav-link.disabled {
color: #b3b3b3;
cursor: default;
background: transparent;
}
.sidebar .nav-link.disabled .nav-icon {
color: #73818f;
}
.sidebar .nav-link.disabled:hover {
color: #b3b3b3;
}
.sidebar .nav-link.disabled:hover .nav-icon {
color: #73818f;
}
.sidebar .nav-link.disabled:hover.nav-dropdown-toggle::before {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E");
}
.sidebar .nav-link.nav-link-primary {
background: #20a8d8;
}
@ -11884,19 +11866,6 @@ canvas {
border-left: 0;
}
.sidebar .nav-dropdown.open .nav-link.disabled {
color: #b3b3b3;
background: transparent;
}
.sidebar .nav-dropdown.open .nav-link.disabled:hover {
color: #b3b3b3;
}
.sidebar .nav-dropdown.open .nav-link.disabled:hover .nav-icon {
color: #73818f;
}
.sidebar .nav-dropdown.open > .nav-dropdown-toggle::before {
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg);
@ -11941,7 +11910,6 @@ canvas {
position: relative;
-ms-flex: 0 0 50px;
flex: 0 0 50px;
cursor: pointer;
background-color: rgba(0, 0, 0, 0.2);
border: 0;
}
@ -12054,12 +12022,6 @@ canvas {
.sidebar-minimized .sidebar .nav-item:hover > .nav-link .nav-icon {
color: #fff;
}
.sidebar-minimized .sidebar .nav-item:hover > .nav-link.disabled {
background: #2f353a;
}
.sidebar-minimized .sidebar .nav-item:hover > .nav-link.disabled .nav-icon {
color: #73818f;
}
.sidebar-minimized .sidebar .nav-link {
position: relative;
padding-left: 0;
@ -12107,43 +12069,6 @@ canvas {
left: 50px;
display: inline;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav {
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav .divider {
height: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .sidebar-minimizer::before {
width: 100%;
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link {
padding-right: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link .nav-icon {
float: right;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link .badge {
right: auto;
left: 15px;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link:hover .badge {
display: inline;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav > .nav-dropdown > .nav-dropdown-items {
display: none;
max-height: 1000px;
background: #2f353a;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav > .nav-dropdown:hover {
background: #20a8d8;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav > .nav-dropdown:hover > .nav-dropdown-items {
position: absolute;
left: 0;
display: inline;
}
}
*[dir="rtl"] .sidebar .nav-dropdown-toggle::before {
@ -12174,12 +12099,41 @@ canvas {
}
*[dir="rtl"] .sidebar .sidebar-minimizer::before {
right: auto;
right: unset;
left: 0;
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav {
list-style-type: disc;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link {
padding-right: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link .nav-icon {
float: right;
padding: 0;
margin: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-link .badge {
right: auto;
left: 15px;
}
*[dir="rtl"] .sidebar-minimized .sidebar .nav-dropdown:hover > .nav-dropdown-items {
right: 50px;
left: 0;
}
*[dir="rtl"] .sidebar-minimized .sidebar .sidebar-minimizer::before {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
*[dir="rtl"] .sidebar-toggler {
margin-right: 0 !important;
}
@ -12884,26 +12838,94 @@ html[dir="rtl"] .aside-menu {
z-index: 1017;
}
html:not([dir="rtl"]) .sidebar-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu {
margin-right: 0;
}
html[dir="rtl"] .sidebar-show .sidebar,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@-webkit-keyframes opacity {
0% {
opacity: 0;
@ -12943,99 +12965,71 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
@media (min-width: 576px) {
html:not([dir="rtl"]) .sidebar-sm-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
html:not([dir="rtl"]) .sidebar-sm-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 200px;
html:not([dir="rtl"]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html:not([dir="rtl"]) .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .aside-menu-sm-show .aside-menu {
margin-right: 0;
}
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir="rtl"]) .aside-menu-sm-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-sm-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .aside-menu-sm-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-sm-show .sidebar,
html[dir="rtl"] .sidebar-show .sidebar {
html[dir="rtl"] .sidebar-sm-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 200px;
html[dir="rtl"] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html[dir="rtl"] .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .aside-menu-sm-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir="rtl"] .aside-menu-sm-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-sm-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .aside-menu-sm-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@ -13057,100 +13051,92 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
}
@media (min-width: 576px) and (max-width: 575.98px) {
.sidebar-sm-show .main,
.aside-menu-sm-show .main {
position: relative;
}
.sidebar-sm-show .main::before,
.aside-menu-sm-show .main::before {
position: absolute;
top: 0;
left: 0;
z-index: 1018;
width: 100%;
height: 100%;
content: "";
background: rgba(0, 0, 0, 0.7);
-webkit-animation: opacity 0.25s;
animation: opacity 0.25s;
}
}
@media (min-width: 768px) {
html:not([dir="rtl"]) .sidebar-md-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
html:not([dir="rtl"]) .sidebar-md-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 200px;
html:not([dir="rtl"]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html:not([dir="rtl"]) .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .aside-menu-md-show .aside-menu {
margin-right: 0;
}
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir="rtl"]) .aside-menu-md-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-md-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .aside-menu-md-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-md-show .sidebar,
html[dir="rtl"] .sidebar-show .sidebar {
html[dir="rtl"] .sidebar-md-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .sidebar-md-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-md-show.sidebar-fixed .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
html[dir="rtl"] .sidebar-md-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 200px;
html[dir="rtl"] .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html[dir="rtl"] .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .aside-menu-md-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir="rtl"] .aside-menu-md-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-md-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .aside-menu-md-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@ -13172,100 +13158,92 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
}
@media (min-width: 768px) and (max-width: 575.98px) {
.sidebar-md-show .main,
.aside-menu-md-show .main {
position: relative;
}
.sidebar-md-show .main::before,
.aside-menu-md-show .main::before {
position: absolute;
top: 0;
left: 0;
z-index: 1018;
width: 100%;
height: 100%;
content: "";
background: rgba(0, 0, 0, 0.7);
-webkit-animation: opacity 0.25s;
animation: opacity 0.25s;
}
}
@media (min-width: 992px) {
html:not([dir="rtl"]) .sidebar-lg-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
html:not([dir="rtl"]) .sidebar-lg-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
html:not([dir="rtl"]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html:not([dir="rtl"]) .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .aside-menu-lg-show .aside-menu {
margin-right: 0;
}
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir="rtl"]) .aside-menu-lg-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-lg-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .aside-menu-lg-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-lg-show .sidebar,
html[dir="rtl"] .sidebar-show .sidebar {
html[dir="rtl"] .sidebar-lg-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
html[dir="rtl"] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html[dir="rtl"] .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .aside-menu-lg-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir="rtl"] .aside-menu-lg-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-lg-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .aside-menu-lg-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@ -13287,100 +13265,92 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
}
@media (min-width: 992px) and (max-width: 575.98px) {
.sidebar-lg-show .main,
.aside-menu-lg-show .main {
position: relative;
}
.sidebar-lg-show .main::before,
.aside-menu-lg-show .main::before {
position: absolute;
top: 0;
left: 0;
z-index: 1018;
width: 100%;
height: 100%;
content: "";
background: rgba(0, 0, 0, 0.7);
-webkit-animation: opacity 0.25s;
animation: opacity 0.25s;
}
}
@media (min-width: 1200px) {
html:not([dir="rtl"]) .sidebar-xl-show .sidebar,
html:not([dir="rtl"]) .sidebar-show .sidebar {
html:not([dir="rtl"]) .sidebar-xl-show .sidebar {
margin-left: 0;
}
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed .app-footer {
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed .app-footer {
margin-left: 200px;
}
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer {
margin-left: 150px;
}
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir="rtl"]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
html:not([dir="rtl"]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-left: 50px;
}
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed .breadcrumb {
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed .breadcrumb {
left: 200px;
}
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
left: 150px;
}
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir="rtl"]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html:not([dir="rtl"]) .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
left: 50px;
}
html:not([dir="rtl"]) .aside-menu-show .aside-menu,
html:not([dir="rtl"]) .aside-menu-xl-show .aside-menu {
margin-right: 0;
}
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir="rtl"]) .aside-menu-xl-show.aside-menu-fixed .main,
html:not([dir="rtl"]) .aside-menu-xl-show.aside-menu-fixed .app-footer {
margin-right: 250px;
}
html:not([dir="rtl"]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir="rtl"]) .aside-menu-xl-show.breadcrumb-fixed .breadcrumb {
right: 250px;
}
html[dir="rtl"] .sidebar-xl-show .sidebar,
html[dir="rtl"] .sidebar-show .sidebar {
html[dir="rtl"] .sidebar-xl-show .sidebar {
margin-right: 0;
}
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed .app-footer {
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed .app-footer {
margin-right: 200px;
}
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer {
margin-right: 150px;
}
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir="rtl"] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
html[dir="rtl"] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer {
margin-right: 50px;
}
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed .breadcrumb {
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed .breadcrumb {
right: 200px;
}
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
right: 150px;
}
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir="rtl"] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
html[dir="rtl"] .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
right: 50px;
}
html[dir="rtl"] .aside-menu-show .aside-menu,
html[dir="rtl"] .aside-menu-xl-show .aside-menu {
margin-left: 0;
}
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir="rtl"] .aside-menu-xl-show.aside-menu-fixed .main,
html[dir="rtl"] .aside-menu-xl-show.aside-menu-fixed .app-footer {
margin-left: 250px;
}
html[dir="rtl"] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir="rtl"] .aside-menu-xl-show.breadcrumb-fixed .breadcrumb {
left: 250px;
}
@ -13402,6 +13372,26 @@ html[dir="rtl"] .aside-menu-show .aside-menu {
}
}
@media (min-width: 1200px) and (max-width: 575.98px) {
.sidebar-xl-show .main,
.aside-menu-xl-show .main {
position: relative;
}
.sidebar-xl-show .main::before,
.aside-menu-xl-show .main::before {
position: absolute;
top: 0;
left: 0;
z-index: 1018;
width: 100%;
height: 100%;
content: "";
background: rgba(0, 0, 0, 0.7);
-webkit-animation: opacity 0.25s;
animation: opacity 0.25s;
}
}
.footer-fixed .app-footer {
position: fixed;
right: 0;

2097
public/js/client_edit.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1629
public/js/coreui.js vendored

File diff suppressed because it is too large Load Diff

1629
public/js/coreui.min.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,13 @@
//import * as Vue from 'vue';
import Vue from 'vue';
import axios from 'axios';
import Form from '../utils/form';
// import Toastr
import Toastr from 'vue-toastr';
// import toastr scss file: need webpack sass-loader
require('vue-toastr/src/vue-toastr.scss');
// Register vue component
Vue.component('vue-toastr',Toastr);
declare var client_object: any;
declare var hashed_id: string;
@ -11,14 +18,11 @@ declare var hashed_id: string;
el : '#client_edit',
data: function () {
return {
'client': [],
'errors': [],
form: new Form(client_object)
}
},
mounted(this: any) {
//this.client = {!! $client !!};
this.client = client_object;
console.dir(this.client);
console.log('mounted')
},
beforeMount: function () {
console.log('before mount')
@ -30,50 +34,44 @@ declare var hashed_id: string;
console.dir('updated')
},
methods:{
remove(this: any, contact:any){
let index = this.client.contacts.indexOf(contact);
this.client.contacts.splice(index, 1);
remove(this:any, contact:any){
let index = this.form.contacts.indexOf(contact);
this.form.contacts.splice(index, 1);
},
add(this: any){
console.dir('i will add a contact here')
this.client.contacts.push({first_name: '', last_name: '', email: '', phone: '', id: -1});
this.form.contacts.push({first_name: '', last_name: '', email: '', phone: '', id: -1});
window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);
this.$nextTick(() => {
let index = this.client.contacts.length - 1;
let index = this.form.contacts.length - 1;
let input = this.$refs.first_name[index];
input.focus();
});
},
submit(this: any) {
this.errors = {};
axios.put('/clients/' + hashed_id, this.client).then(response => {
// axios.put('/clients/' + {{ $client->present()->id }}, this.client).then(response => {
this.client = response.data;
}).catch(error => {
if (error.response.status === 422) {
this.errors = error.response.data.errors || {};
}
else if(error.response.status === 419) {
//csrf token has expired, we'll need to force a page reload
}
});
onSubmit() {
this.form.put('/clients/' + hashed_id)
.then(response => this.$root.$refs.toastr.s("Saved client"))
.catch(error => {
this.$root.$refs.toastr.e("Error saving client");
});
},
copy(type: any) {
if(type.includes('copy_billing')){
this.client.shipping_address1 = this.client.address1;
this.client.shipping_address2 = this.client.address2;
this.client.shipping_city = this.client.city;
this.client.shipping_state = this.client.state;
this.client.shipping_postal_code = this.client.postal_code;
this.client.shipping_country_id = this.client.country_id;
this.form.shipping_address1 = this.form.address1;
this.form.shipping_address2 = this.form.address2;
this.form.shipping_city = this.form.city;
this.form.shipping_state = this.form.state;
this.form.shipping_postal_code = this.form.postal_code;
this.form.shipping_country_id = this.form.country_id;
}else {
this.client.address1 = this.client.shipping_address1;
this.client.address2 = this.client.shipping_address2;
this.client.city = this.client.shipping_city;
this.client.state = this.client.shipping_state;
this.client.postal_code = this.client.shipping_postal_code;
this.client.country_id = this.client.shipping_country_id;
this.form.address1 = this.form.shipping_address1;
this.form.address2 = this.form.shipping_address2;
this.form.city = this.form.shipping_city;
this.form.state = this.form.shipping_state;
this.form.postal_code = this.form.shipping_postal_code;
this.form.country_id = this.form.shipping_country_id;
}
}
}

View File

@ -0,0 +1,74 @@
export default class FormErrors {
errors:any;
/**
* Create a new Errors instance.
*/
constructor() {
this.errors = {};
}
/**
* Determine if an errors exists for the given field.
*
* @param {string} field
*/
has(field:string) {
return this.errors.hasOwnProperty(field);
}
/**
* Determine if we have any errors.
*/
any() {
return Object.keys(this.errors).length > 0;
}
/**
* Retrieve the error message for a field.
*
* @param {string} field
*/
get(field:string) {
if (this.errors[field]) {
return this.errors[field][0];
}
}
/**
* Record the new errors.
*
* @param {object} errors
*/
record(errors:any) {
this.errors = errors;
}
/**
* Clear one or all error fields.
*
* @param {string|null} field
*/
clear(field:string) {
if (field) {
delete this.errors[field];
return;
}
this.errors = {};
}
}
//@keydown="errors.clear($event.target.name)"
//
//
//

View File

@ -0,0 +1,161 @@
import axios from 'axios';
import FormErrors from '../utils/form-errors';
export default class Form {
errors:any;
originalData:any;
/**
* Create a new Form instance.
*
* @param {object} data
*/
constructor(data) {
this.originalData = data;
for (let field in data) {
this[field] = data[field];
}
this.errors = new FormErrors();
}
/**
* Fetch all relevant data for the form.
*/
data() {
let data = {};
for (let property in this.originalData) {
data[property] = this[property];
}
return data;
}
/**
* Reset the form fields.
*/
reset() {
for (let field in this.originalData) {
this[field] = '';
}
this.errors.clear();
}
/**
* Send a POST request to the given URL.
* .
* @param {string} url
*/
post(url) {
return this.submit('post', url);
}
/**
* Send a PUT request to the given URL.
* .
* @param {string} url
*/
put(url:string) {
return this.submit('put', url);
}
/**
* Send a PATCH request to the given URL.
* .
* @param {string} url
*/
patch(url:string) {
return this.submit('patch', url);
}
/**
* Send a DELETE request to the given URL.
* .
* @param {string} url
*/
delete(url:string) {
return this.submit('delete', url);
}
/**
* Submit the form.
*
* @param {string} requestType
* @param {string} url
*/
submit(requestType:string, url:string) {
return new Promise((resolve, reject) => {
axios[requestType](url, this.data())
.then(response => {
this.onSuccess(response.data);
resolve(response.data);
})
.catch(error => {
if (error.response.status === 422) {
this.onFail(error.response.data.errors);
}
else if(error.response.status === 419) {
//csrf token has expired, we'll need to force a page reload
}
reject(error.response.data);
});
});
}
/**
* Handle a successful form submission.
*
* @param {object} data
*/
onSuccess(data) {
this.errors.clear();
}
/**
* Handle a failed form submission.
*
* @param {object} errors
*/
onFail(errors) {
this.errors.record(errors);
}
}

View File

@ -6,9 +6,11 @@
<!-- Breadcrumb-->
{{ Breadcrumbs::render('clients.edit', $client) }}
<form @submit.prevent="submit">
<form @submit.prevent="onSubmit" @keydown="form.errors.clear($event.target.name)">
<div class="container-fluid">
<vue-toastr ref="toastr"></vue-toastr>
<div class="row">
<!-- Client Details and Address Column -->
<div class="col-md-6">
@ -29,7 +31,7 @@
</span>
</div>
<template v-for="contact in client.contacts">
<template v-for="(contact, key, index) in form.contacts">
@include('client.partial.contact_details')
</template>
@ -40,7 +42,7 @@
<div class="row">
<div class="col-md-12 text-center">
<button class="btn btn-lg btn-success" type="button" @click="submit"><i class="fa fa-save"></i> {{ trans('texts.save') }}</button>
<button class="btn btn-lg btn-success" type="button" @click="onSubmit"><i class="fa fa-save"></i> {{ trans('texts.save') }}</button>
</div>
</div>

View File

@ -4,43 +4,48 @@
<div class="form-group row">
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.client_name')</label>
<div class="col-sm-9">
<input name="name" placeholder="@lang('texts.name')" class="form-control" v-model="client.name" value="{{ $client->name }}">
<div v-if="errors && errors.name" class="text-danger">@{{ errors.name[0] }}</div>
<input name="name" placeholder="@lang('texts.name')" class="form-control" v-model="form.name" value="{{ $client->name }}">
<div v-if="form.errors.has('name')" class="text-danger" v-text="form.errors.get('name')"></div>
</div>
</div>
<div class="form-group row">
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.id_number')</label>
<div class="col-sm-9">
<input name="id_number" placeholder="@lang('texts.id_number')" class="form-control" v-model="client.id_number">
<input name="id_number" placeholder="@lang('texts.id_number')" class="form-control" v-model="form.id_number">
<div v-if="form.errors.has('id_number')" class="text-danger" v-text="form.errors.get('id_number')"></div>
</div>
</div>
<div class="form-group row">
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.vat_number')</label>
<div class="col-sm-9">
<input name="vat_number" placeholder="@lang('texts.vat_number')" class="form-control" v-model="client.vat_number">
<input name="vat_number" placeholder="@lang('texts.vat_number')" class="form-control" v-model="form.vat_number">
<div v-if="form.errors.has('vat_number')" class="text-danger" v-text="form.errors.get('vat_number')"></div>
</div>
</div>
<div class="form-group row">
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.website')</label>
<div class="col-sm-9">
<input name="website" placeholder="@lang('texts.website')" class="form-control" v-model="client.website">
<input name="website" placeholder="@lang('texts.website')" class="form-control" v-model="form.website">
<div v-if="form.errors.has('website')" class="text-danger" v-text="form.errors.get('website')"></div>
</div>
</div>
<div class="form-group row">
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.custom_value1')</label>
<div class="col-sm-9">
<input name="custom_value1" placeholder="@lang('texts.custom_value1')" class="form-control" v-model="client.custom_value1">
<input name="custom_value1" placeholder="@lang('texts.custom_value1')" class="form-control" v-model="form.custom_value1">
<div v-if="form.errors.has('custom_value1')" class="text-danger" v-text="form.errors.get('custom_value1')"></div>
</div>
</div>
<div class="form-group row">
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.custom_value2')</label>
<div class="col-sm-9">
<input name="custom_value2" placeholder="@lang('texts.custom_value2')" class="form-control" v-model="client.custom_value2">
<input name="custom_value2" placeholder="@lang('texts.custom_value2')" class="form-control" v-model="form.custom_value2">
<div v-if="form.errors.has('custom_value2')" class="text-danger" v-text="form.errors.get('custom_value2')"></div>
</div>
</div>
</div>

View File

@ -16,21 +16,21 @@
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.address1')</label>
<div class="col-lg-9">
<input name="address1" placeholder="@lang('texts.address1')" class="form-control" v-model="client.address1">
<input name="address1" placeholder="@lang('texts.address1')" class="form-control" v-model="form.address1">
</div>
</div>
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.address2')</label>
<div class="col-lg-9">
<input name="address2" placeholder="@lang('texts.address2')" class="form-control" v-model="client.address2" id="address2">
<input name="address2" placeholder="@lang('texts.address2')" class="form-control" v-model="form.address2" id="address2">
</div>
</div>
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.city')</label>
<div class="col-lg-9">
<input name="city" placeholder="@lang('texts.city')" class="form-control" v-model="client.city" id="city">
<input name="city" placeholder="@lang('texts.city')" class="form-control" v-model="form.city" id="city">
</div>
</div>
@ -38,7 +38,7 @@
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.state')</label>
<div class="col-lg-9">
<input name="state" placeholder="@lang('texts.state')" class="form-control" v-model="client.state" id="state">
<input name="state" placeholder="@lang('texts.state')" class="form-control" v-model="form.state" id="state">
</div>
</div>
@ -46,14 +46,14 @@
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.postal_code')</label>
<div class="col-lg-9">
<input name="postal_code" placeholder="@lang('texts.postal_code')" class="form-control" v-model="client.postal_code" id="postal_code">
<input name="postal_code" placeholder="@lang('texts.postal_code')" class="form-control" v-model="form.postal_code" id="postal_code">
</div>
</div>
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.country')</label>
<div class="col-lg-9">
<input name="country_id" placeholder="@lang('texts.country')" class="form-control" v-model="client.country_id" id="country">
<input name="country_id" placeholder="@lang('texts.country')" class="form-control" v-model="form.country_id" id="country">
</div>
</div>
</div>
@ -64,21 +64,21 @@
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.address1')</label>
<div class="col-lg-9">
<input name="shipping_address1" placeholder="@lang('texts.address1')" class="form-control" v-model="client.shipping_address1">
<input name="shipping_address1" placeholder="@lang('texts.address1')" class="form-control" v-model="form.shipping_address1">
</div>
</div>
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.address2')</label>
<div class="col-lg-9">
<input name="shipping_address2" placeholder="@lang('texts.address2')" class="form-control" v-model="client.shipping_address2" id="address2">
<input name="shipping_address2" placeholder="@lang('texts.address2')" class="form-control" v-model="form.shipping_address2" id="address2">
</div>
</div>
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.city')</label>
<div class="col-lg-9">
<input name="shipping_city" placeholder="@lang('texts.city')" class="form-control" v-model="client.shipping_city" id="city">
<input name="shipping_city" placeholder="@lang('texts.city')" class="form-control" v-model="form.shipping_city" id="city">
</div>
</div>
@ -86,7 +86,7 @@
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.state')</label>
<div class="col-lg-9">
<input name="shipping_state" placeholder="@lang('texts.state')" class="form-control" v-model="client.shipping_state" id="state">
<input name="shipping_state" placeholder="@lang('texts.state')" class="form-control" v-model="form.shipping_state" id="state">
</div>
</div>
@ -94,14 +94,14 @@
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.postal_code')</label>
<div class="col-lg-9">
<input name="shipping_postal_code" placeholder="@lang('texts.postal_code')" class="form-control" v-model="client.shipping_postal_code" id="postal_code">
<input name="shipping_postal_code" placeholder="@lang('texts.postal_code')" class="form-control" v-model="form.shipping_postal_code" id="postal_code">
</div>
</div>
<div class="form-group row">
<label for="name" class="col-lg-3 col-form-label text-right">@lang('texts.country')</label>
<div class="col-lg-9">
<input name="shipping_country_id" placeholder="@lang('texts.country')" class="form-control" v-model="client.shipping_country_id" id="country">
<input name="shipping_country_id" placeholder="@lang('texts.country')" class="form-control" v-model="form.shipping_country_id" id="country">
</div>
</div>
</div>

View File

@ -2,8 +2,9 @@
<div class="form-group row">
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.first_name')</label>
<div class="col-sm-9">
<input name="id" type="hidden" v-model="contact.id" value="{{ $client->present()->id ?: -1}}">
<input name="id" type="hidden" v-model="contact.client_id" value="{{ $client->present()->id ?: -1}}">
<input ref="first_name" name="first_name" placeholder="@lang('texts.first_name')" class="form-control" v-model="contact.first_name">
<div v-if="form.errors.has('contacts.'+key+'.first_name')" class="text-danger" v-text="form.errors.get('contacts.'+key+'.first_name')"></div>
</div>
</div>
@ -11,6 +12,7 @@
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.last_name')</label>
<div class="col-sm-9">
<input name="last_name" placeholder="@lang('texts.last_name')" class="form-control" v-model="contact.last_name">
<div v-if="form.errors.has('contacts.'+key+'.last_name')" class="text-danger" v-text="form.errors.get('contacts.'+key+'.last_name')"></div>
</div>
</div>
@ -18,6 +20,7 @@
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.email')</label>
<div class="col-sm-9">
<input name="email" placeholder="@lang('texts.email')" class="form-control" v-model="contact.email">
<div v-if="form.errors.has('contacts.'+key+'.email')" class="text-danger" v-text="form.errors.get('contacts.'+key+'.email')"></div>
</div>
</div>
@ -25,6 +28,7 @@
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.phone')</label>
<div class="col-sm-9">
<input name="phone" placeholder="@lang('texts.phone')" class="form-control" v-model="contact.phone">
<div v-if="form.errors.has('contacts.'+key+'.phone')" class="text-danger" v-text="form.errors.get('contacts.'+key+'.phone')"></div>
</div>
</div>
@ -32,6 +36,7 @@
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.custom_value1')</label>
<div class="col-sm-9">
<input name="custom_value1" placeholder="@lang('texts.custom_value1')" class="form-control" v-model="contact.custom_value1">
<div v-if="form.errors.has('contacts.'+key+'.custom_value1')" class="text-danger" v-text="form.errors.get('contacts.'+key+'.custom_value1')"></div>
</div>
</div>
@ -39,6 +44,7 @@
<label for="name" class="col-sm-3 col-form-label text-right">@lang('texts.custom_value2')</label>
<div class="col-sm-9">
<input name="custom_value2" placeholder="@lang('texts.custom_value2')" class="form-control" v-model="contact.custom_value2">
<div v-if="form.errors.has('contacts.'+key+'.custom_value2')" class="text-danger" v-text="form.errors.get('contacts.'+key+'.custom_value2')"></div>
</div>
</div>
<div class="float-right">