Update Metronic Version to 8.2.1 #1

Merged
putrakuningan merged 77 commits from dev into master 2024-05-04 09:46:45 +00:00
31 changed files with 152 additions and 105 deletions
Showing only changes of commit a669fd602f - Show all commits

View File

@ -7,6 +7,7 @@
"laravel"
],
"license": "MIT",
"version": "8.2.2",
"require": {
"php": "^8.0.2",
"anlutro/l4-settings": "^1.3",
@ -28,6 +29,7 @@
"livewire/livewire": "^3.0",
"mhmiton/laravel-modules-livewire": "^2.1",
"nwidart/laravel-modules": "^10.0",
"pharaonic/livewire-select2": "^1.2",
"putrakuningan/logs-module": "dev-master",
"putrakuningan/usermanager-module": "dev-sit",
"simplesoftwareio/simple-qrcode": "^4.2",

View File

@ -0,0 +1 @@
var Pharaonic;void 0===Pharaonic&&(Pharaonic={});var PharaonicSelect2={Select2:{init:function(){$('[data-pharaonic="select2"]:not("[data-select2-id]")').each(function(){Pharaonic.Select2.load($(this),$(this).is("[data-component-id]")?$(this).data("component-id"):null)})},load:function(a,e){var t,i,n,l,d;e&&(t={multiple:$(a).is("[multiple]"),tags:$(a).is("[data-tags]"),placeholder:$(a).is("[data-placeholder]")?$(a).data("placeholder"):"Select an option",language:$(a).is("[data-language]")?$(a).data("language"):"en",dir:$(a).is("[data-dir]")?$(a).data("dir"):"ltr",dropdownParent:$(a).is("[data-parent]")?$($(a).data("parent")):null,minimumResultsForSearch:$(a).is("[data-search-off]")?-1:0,allowClear:$(a).is("[data-clear]")},n=(i=a[0].attributes).getNamedItem("wire:model")||i.getNamedItem("wire:model.defer")||null,i.getNamedItem("class")||$(a).attr("class","form-select"),delete i,(a=$(a).select2(t))&&(l=n.value,d=0<n.name.search("defer"),a.on("change",function(){Livewire.find(e).set(l,$(a).val(),d)})))}}};Object.assign(Pharaonic,PharaonicSelect2),$(document).ready(function(){Pharaonic.Select2.init()}),window.addEventListener("pharaonic.select2.init",()=>{Pharaonic.Select2.init()}),window.addEventListener("pharaonic.select2.load",a=>{Pharaonic.Select2.load($(a.detail.target),a.detail.component)});

View File

@ -50,6 +50,7 @@ var KTSearch = function(element, options) {
the.toggleElement = _getElement('toggle');
the.submitElement = _getElement('submit');
the.toolbarElement = _getElement('toolbar');
the.minLength = parseInt(_getOption('min-length'));
the.resultsElement = _getElement('results');
the.suggestionElement = _getElement('suggestion');
@ -146,7 +147,7 @@ var KTSearch = function(element, options) {
var _focus = function() {
the.element.classList.add('focus');
if ( _getOption('show-on-focus') === true || the.inputElement.value.length >= minLength ) {
if ( _getOption('show-on-focus') === true || the.inputElement.value.length >= the.minLength ) {
_show();
}
}
@ -170,9 +171,7 @@ var KTSearch = function(element, options) {
// Input
var _input = function() {
if ( _getOption('min-length') ) {
var minLength = parseInt(_getOption('min-length'));
if ( the.inputElement.value.length >= minLength ) {
if ( the.inputElement.value.length >= the.minLength ) {
_search();
} else if ( the.inputElement.value.length === 0 ) {
_clear();

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -63,13 +63,23 @@
&.badge-outline {
border: 1px solid var(--#{$prefix}#{$name});
color: var(--#{$prefix}#{$name});
background-color: transparent;
@if $name == 'secondary' {
color: var(--#{$prefix}#{$name}-inverse);
} @else {
color: var(--#{$prefix}#{$name});
}
}
}
.badge-light-#{$name} {
color: var(--#{$prefix}#{$name});
.badge-light-#{$name} {
background-color: var(--#{$prefix}#{$name}-light);
@if $name == 'secondary' {
color: var(--#{$prefix}#{$name}-inverse);
} @else {
color: var(--#{$prefix}#{$name});
}
}
}

View File

@ -260,6 +260,10 @@
padding: $card-py $card-px !important;
}
.card-border {
border: $card-border-width $card-border-style var(--#{$prefix}root-card-border-color) !important;
}
.card-px {
padding-left: $card-px !important;
padding-right: $card-px !important;

View File

@ -57,15 +57,15 @@ $primary-clarity: rgba(#1B84FF, 0.2) !default;
$primary-inverse: $white !default;
// Secondary colors
$secondary: #F9F9F9 !default;
$secondary-active: $gray-300 !default;
$secondary: $gray-200 !default;
$secondary-active: $gray-400 !default;
$secondary-light: #F9F9F9 !default;
$secondary-clarity: rgba(#F9F9F9, 0.2) !default;
$secondary-inverse: $gray-800 !default;
// Light colors
$light: $gray-100 !default;
$light-active: #FCFCFC !default;
$light-active: $gray-200 !default;
$light-light: #ffffff !default;
$light-clarity: rgba($white, 0.2) !default;
$light-inverse: $gray-800 !default;

View File

@ -60,6 +60,11 @@
.btn.btn-light-#{$name} {
$color: var(--#{$prefix}#{$name});
$icon-color: var(--#{$prefix}#{$name});
@if $name == 'secondary' {
$color: var(--#{$prefix}#{$name}-inverse);
$icon-color: var(--#{$prefix}#{$name}-inverse);
}
$border-color: var(--#{$prefix}#{$name}-light);
$bg-color: var(--#{$prefix}#{$name}-light);
@ -112,6 +117,11 @@
$color-active: var(--#{$prefix}#{$name});
$icon-color-active: var(--#{$prefix}#{$name});
@if $name == 'secondary' {
$color-active: var(--#{$prefix}#{$name}-inverse);
$icon-color-active: var(--#{$prefix}#{$name}-inverse);
}
$border-color-active: var(--#{$prefix}#{$name}-light);
$bg-color-active: var(--#{$prefix}#{$name}-light);
@ -124,13 +134,27 @@
$color: var(--#{$prefix}#{$name});
$icon-color: var(--#{$prefix}#{$name});
$border-color: var(--#{$prefix}#{$name});
@if $name == 'secondary' {
$color: var(--#{$prefix}#{$name}-inverse);
$icon-color: var(--#{$prefix}#{$name}-inverse);
$border-color: var(--#{$prefix}#{$name}-inverse);
}
$bg-color: transparent;
$color-active: var(--#{$prefix}#{$name}-active);
$icon-color-active: var(--#{$prefix}#{$name}-active);
$border-color-active: var(--#{$prefix}#{$name});
@if $name == 'secondary' {
$color-active: var(--#{$prefix}#{$name}-inverse);
$icon-color-active: var(--#{$prefix}#{$name}-inverse);
$border-color-active: var(--#{$prefix}#{$name}-inverse);
}
$bg-color-active: var(--#{$prefix}#{$name}-light);
@include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active);
}
}
@ -257,6 +281,12 @@
$bg-color-active: get($value, base);
$border-color-active: get($value, base);
@if $name == 'secondary' {
color: var(--#{$prefix}#{$name}-inverse);
} @else {
color: var(--#{$prefix}#{$name});
}
@include button-custom-variant($color, $icon-color, $border-color, $bg-color, $color-active, $icon-color-active, $border-color-active, $bg-color-active);
}
}

View File

@ -21,6 +21,10 @@
// Hover border colors
@each $name, $value in $theme-colors {
.border-#{$name}-clarity {
border-color: var(--#{$prefix}#{$name}-clarity) !important;
}
.border-hover-#{$name}:hover {
border-color: var(--#{$prefix}#{$name}) !important;
}
@ -30,6 +34,11 @@
}
}
.border-hover-primary-clarity:hover,
.border-active-primary-clarity.active {
border-color: var(--#{$prefix}primary-clarity) !important;
}
// Hover transparent
.border-hover-transparent:hover {
border-color: transparent !important;

View File

@ -266,7 +266,27 @@ table.dataTable tbody tr > .dtfc-fixed-right {
// Child details
.dtr-details {
display: table !important;
li {
display: flex;
display: table-row !important;
.dtr-title {
padding-right: 0.75rem;
color: var(--#{$prefix}gray-900);
}
.dtr-data {
color: var(--#{$prefix}gray-700);
}
.dtr-title,
.dtr-data {
font-size: 1rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
display: table-cell !important;
border-bottom: 1px solid var(--#{$prefix}border-color);
}
}
}

View File

@ -1,40 +1,40 @@
{
"name": "keenthemes",
"version": "8.2.1",
"version": "1.0.0",
"author": "Keenthemes",
"homepage": "https://keenthemes.com/",
"description": "Packages used by yarn, npm, gulp and webpack",
"main": "gulpfile.js",
"type": "module",
"dependencies": {
"@ckeditor/ckeditor5-alignment": "40.0.0",
"@ckeditor/ckeditor5-build-balloon": "40.0.0",
"@ckeditor/ckeditor5-build-balloon-block": "40.0.0",
"@ckeditor/ckeditor5-build-classic": "40.0.0",
"@ckeditor/ckeditor5-build-decoupled-document": "40.0.0",
"@ckeditor/ckeditor5-build-inline": "40.0.0",
"@eonasdan/tempus-dominus": "^6.7.16",
"@fortawesome/fontawesome-free": "^6.4.2",
"@ckeditor/ckeditor5-alignment": "40.2.0",
"@ckeditor/ckeditor5-build-balloon": "40.2.0",
"@ckeditor/ckeditor5-build-balloon-block": "40.2.0",
"@ckeditor/ckeditor5-build-classic": "40.2.0",
"@ckeditor/ckeditor5-build-decoupled-document": "40.2.0",
"@ckeditor/ckeditor5-build-inline": "40.2.0",
"@eonasdan/tempus-dominus": "^6.9.4",
"@fortawesome/fontawesome-free": "^6.5.1",
"@popperjs/core": "2.11.8",
"@shopify/draggable": "^1.1.3",
"@yaireo/tagify": "^4.17.9",
"acorn": "^8.10.0",
"apexcharts": "3.44.0",
"apexcharts": "3.45.1",
"autosize": "^6.0.1",
"axios": "^1.6.0",
"axios": "^1.6.2",
"bootstrap": "5.3.2",
"bootstrap-cookie-alert": "^1.2.2",
"bootstrap-daterangepicker": "^3.1.0",
"bootstrap-icons": "^1.11.1",
"bootstrap-icons": "^1.11.2",
"bootstrap-maxlength": "^1.10.1",
"bootstrap-multiselectsplitter": "^1.0.4",
"chalk": "^5.3.0",
"chart.js": "^4.4.0",
"chart.js": "^4.4.1",
"clipboard": "^2.0.11",
"countup.js": "^2.8.0",
"cropperjs": "^1.6.1",
"datatables.net": "^1.13.6",
"datatables.net-bs5": "^1.13.6",
"datatables.net": "^1.13.8",
"datatables.net-bs5": "^1.13.8",
"datatables.net-buttons": "^2.4.2",
"datatables.net-buttons-bs5": "^2.4.2",
"datatables.net-colreorder": "^1.7.0",
@ -51,15 +51,15 @@
"datatables.net-rowgroup-bs5": "^1.4.1",
"datatables.net-rowreorder": "^1.4.1",
"datatables.net-rowreorder-bs5": "^1.4.1",
"datatables.net-scroller": "^2.2.0",
"datatables.net-scroller-bs5": "^2.2.0",
"datatables.net-scroller": "^2.3.0",
"datatables.net-scroller-bs5": "^2.3.0",
"datatables.net-select": "^1.7.0",
"datatables.net-select-bs5": "^1.7.0",
"dropzone": "^5.9.3",
"es6-promise": "^4.2.8",
"es6-promise-polyfill": "^1.2.0",
"es6-shim": "^0.35.8",
"esri-leaflet": "^3.0.11",
"esri-leaflet": "^3.0.12",
"esri-leaflet-geocoder": "^3.1.4",
"flatpickr": "^4.6.13",
"flot": "^4.2.6",
@ -77,8 +77,8 @@
"lozad": "^1.16.0",
"moment": "^2.29.4",
"nouislider": "^15.7.1",
"npm": "^10.2.1",
"pdfmake": "^0.2.7",
"npm": "^10.2.5",
"pdfmake": "^0.2.8",
"prism-themes": "^1.9.0",
"prismjs": "^1.29.0",
"quill": "^1.3.7",
@ -88,7 +88,7 @@
"tiny-slider": "^2.9.4",
"tinymce": "^5.8.2",
"toastr": "^2.1.4",
"typed.js": "2.0.16",
"typed.js": "2.1.0",
"vis-timeline": "^7.7.3",
"wnumb": "^1.2.0"
},

View File

@ -36,7 +36,7 @@ module.exports = [
// Select2 - Select2 is a jQuery based replacement for select boxes: https://select2.org/
'node_modules/select2/dist/js/select2.full.js',
'resources/_keenthemes/src//js/vendors/plugins/select2.init.js',
'resources/_keenthemes/src/js/vendors/plugins/select2.init.js',
// FormValidation - Best premium validation library for JavaScript. Zero dependencies. Learn more: https://formvalidation.io/
"resources/_keenthemes/src/plugins/@form-validation/umd/bundle/popular.min.js",
@ -64,7 +64,7 @@ module.exports = [
// DropzoneJS - is an open source library that provides drag'n'drop file uploads with image previews: https://www.dropzonejs.com/
'node_modules/dropzone/dist/min/dropzone.min.js',
'resources/_keenthemes/src//js/vendors/plugins/dropzone.init.js',
'resources/_keenthemes/src/js/vendors/plugins/dropzone.init.js',
// Quill - is a free, open source WYSIWYG editor built for the modern web. Completely customize it for any need with its modular architecture and expressive API: https://quilljs.com/
'node_modules/quill/dist/quill.js',
@ -84,13 +84,13 @@ module.exports = [
// Sweetalert2 - a beautiful, responsive, customizable and accessible (WAI-ARIA) replacement for JavaScript's popup boxes: https://sweetalert2.github.io/
'node_modules/sweetalert2/dist/sweetalert2.min.js',
'resources/_keenthemes/src//js/vendors/plugins/sweetalert2.init.js',
'resources/_keenthemes/src/js/vendors/plugins/sweetalert2.init.js',
// CountUp.js - is a dependency-free, lightweight JavaScript class that can be used to quickly create animations that display numerical data in a more interesting way.
'node_modules/countup.js/dist/countUp.umd.js',
// Chart.js - Simple yet flexible JavaScript charting for designers & developers
'node_modules/chart.js/dist/chart.js',
'node_modules/chart.js/dist/chart.umd.js',
// Tiny slider - for all purposes, inspired by Owl Carousel.
'node_modules/tiny-slider/dist/min/tiny-slider.js',
@ -107,8 +107,3 @@ module.exports = [
'node_modules/@eonasdan/tempus-dominus/dist/js/tempus-dominus.min.js',
'node_modules/@eonasdan/tempus-dominus/dist/plugins/customDateFormat.js',
];
// window.axios.defaults.headers.common = {
// 'X-Requested-With': 'XMLHttpRequest',
// 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content')
// };

View File

@ -56,7 +56,7 @@
@import "~tiny-slider/dist/tiny-slider.css";
// Keenthemes Vendors customization
@import "../_keenthemes/src//sass/plugins";
@import "../_keenthemes/src/sass/plugins";
// Keenicons - High quality and pixel perfect font icons available in 3 styles, duotone, outline and solid for Metronic elements
@import "../_keenthemes/src/plugins/keenicons/duotone/style.css";

View File

@ -1,8 +1,8 @@
const glob = require('glob');
// Keenthemes' plugins
var componentJs = glob.sync(`resources/_keenthemes/src//js/components/*.js`) || [];
var coreLayoutJs = glob.sync(`resources/_keenthemes/src//js/layout/*.js`) || [];
var componentJs = glob.sync(`resources/_keenthemes/src/js/components/*.js`) || [];
var coreLayoutJs = glob.sync(`resources/_keenthemes/src/js/layout/*.js`) || [];
module.exports = [
...componentJs,

View File

@ -2,7 +2,7 @@
module.exports = [
'node_modules/datatables.net/js/jquery.dataTables.js',
'node_modules/datatables.net-bs5/js/dataTables.bootstrap5.js',
'resources/_keenthemes/src//js/vendors/plugins/datatables.init.js',
'resources/_keenthemes/src/js/vendors/plugins/datatables.init.js',
'node_modules/jszip/dist/jszip.js',
'node_modules/pdfmake/build/pdfmake.js',
'node_modules/pdfmake/build/vfs_fonts.js',

View File

@ -1,5 +1,7 @@
// Form Repeater - Creates an interface to add and remove a repeatable group of input elements: https://github.com/DubFriend/jquery.repeater
module.exports = [
'node_modules/jquery.repeater/jquery.repeater.js'
'node_modules/jquery.repeater/src/lib.js',
'node_modules/jquery.repeater/src/jquery.input.js',
'node_modules/jquery.repeater/src/repeater.js',
];

View File

@ -23,12 +23,8 @@
<!--begin::Footer-->
<div class="d-flex flex-center flex-wrap px-5">
<!--begin::Links-->
<div class="d-flex fw-semibold text-primary fs-base">
<a href="#" class="px-5" target="_blank">Terms</a>
<a href="#" class="px-5" target="_blank">Plans</a>
<a href="#" class="px-5" target="_blank">Contact Us</a>
<div class="d-flex fw-semibold text-default fs-base">
PT Indo Artha Teknologi © {{ date('Y') }} - Daeng Deni Mardaeni
</div>
<!--end::Links-->
</div>
@ -40,32 +36,11 @@
<div class="d-flex flex-lg-row-fluid w-lg-50 bgi-size-cover bgi-position-center order-1 order-lg-2" style="background-image: url({{ image('misc/auth-bg.png') }})">
<!--begin::Content-->
<div class="d-flex flex-column flex-center py-7 py-lg-15 px-5 px-md-15 w-100">
<!--begin::Logo-->
<a href="{{ route('dashboard') }}" class="mb-12">
<img alt="Logo" src="{{ image('logos/custom-1.png') }}" class="h-60px h-lg-75px"/>
</a>
<!--end::Logo-->
<!--begin::Image-->
<img class="d-none d-lg-block mx-auto w-275px w-md-50 w-xl-500px mb-10 mb-lg-20" src="{{ image('misc/auth-screens.png') }}" alt=""/>
<img class="d-none d-lg-block mx-auto w-500px mb-10 mb-lg-20" src="{{ image('misc/bg-login.png') }}" alt=""/>
<!--end::Image-->
<!--begin::Title-->
<h1 class="d-none d-lg-block text-white fs-2qx fw-bolder text-center mb-7">
Fast, Efficient and Productive
</h1>
<!--end::Title-->
<!--begin::Text-->
<div class="d-none d-lg-block text-white fs-base text-center">
In this kind of post, <a href="#" class="opacity-75-hover text-warning fw-bold me-1">the blogger</a>
introduces a person theyve interviewed <br/> and provides some background information about
<a href="#" class="opacity-75-hover text-warning fw-bold me-1">the interviewee</a>
and their <br/> work following this is a transcript of the interview.
</div>
<!--end::Text-->
</div>
<!--end::Content-->
</div>

View File

@ -71,7 +71,7 @@
<!--end::Javascript-->
<script>
document.addEventListener('livewire:load', () => {
document.addEventListener('livewire:init', () => {
Livewire.on('success', (message) => {
toastr.success(message);
});

View File

@ -1195,7 +1195,7 @@
<!--begin:Menu link-->
<a class="menu-link" href="https://preview.keenthemes.com/laravel/metronic/docs/changelog" target="_blank">
<span class="menu-icon">{!! getIcon('code', 'fs-2') !!}</span>
<span class="menu-title">Changelog v8.2.0</span>
<span class="menu-title">Changelog v8.2.2</span>
</a>
<!--end:Menu link-->
</div>

View File

@ -2,5 +2,6 @@
<div id="kt_app_sidebar" class="app-sidebar flex-column" data-kt-drawer="true" data-kt-drawer-name="app-sidebar" data-kt-drawer-activate="{default: true, lg: false}" data-kt-drawer-overlay="true" data-kt-drawer-width="225px" data-kt-drawer-direction="start" data-kt-drawer-toggle="#kt_app_sidebar_mobile_toggle">
@include(config('settings.KT_THEME_LAYOUT_DIR').'/partials/sidebar-layout/sidebar/_logo')
@include(config('settings.KT_THEME_LAYOUT_DIR').'/partials/sidebar-layout/sidebar/_menu')
@include(config('settings.KT_THEME_LAYOUT_DIR').'/partials/sidebar-layout/sidebar/_footer')
</div>
<!--end::Sidebar-->

View File

@ -38,7 +38,7 @@
<!--end::Notice-->
<!--end::Notice-->
<!--begin::Form-->
<form id="kt_modal_update_permission_form" class="form" action="#" wire:submit.prevent="submit">
<form id="kt_modal_update_permission_form" class="form" action="#" wire:submit="submit">
<!--begin::Input group-->
<div class="fv-row mb-7">
<!--begin::Label-->
@ -50,7 +50,7 @@
</label>
<!--end::Label-->
<!--begin::Input-->
<input class="form-control form-control-solid" placeholder="Enter a permission name" name="name" wire:model.defer="name"/>
<input class="form-control form-control-solid" placeholder="Enter a permission name" name="name" wire:model="name"/>
<!--end::Input-->
@error('name')
<span class="text-danger">{{ $message }}</span> @enderror
@ -83,7 +83,7 @@
const modal = document.querySelector('#kt_modal_update_permission');
modal.addEventListener('show.bs.modal', (e) => {
Livewire.emit('modal.show.permission_name', e.relatedTarget.getAttribute('data-permission-id'));
Livewire.dispatch('modal.show.permission_name', [e.relatedTarget.getAttribute('data-permission-id')]);
});
</script>
@endpush

View File

@ -18,7 +18,7 @@
<!--begin::Modal body-->
<div class="modal-body scroll-y mx-5 my-7">
<!--begin::Form-->
<form id="kt_modal_update_role_form" class="form" action="#" wire:submit.prevent="submit">
<form id="kt_modal_update_role_form" class="form" action="#" wire:submit="submit">
<!--begin::Scroll-->
<div class="d-flex flex-column scroll-y me-n7 pe-7" id="kt_modal_update_role_scroll" data-kt-scroll="true" data-kt-scroll-activate="{default: false, lg: true}" data-kt-scroll-max-height="auto"
data-kt-scroll-dependencies="#kt_modal_update_role_header" data-kt-scroll-wrappers="#kt_modal_update_role_scroll" data-kt-scroll-offset="300px">
@ -30,7 +30,7 @@
</label>
<!--end::Label-->
<!--begin::Input-->
<input class="form-control form-control-solid" placeholder="Enter a role name" name="name" wire:model.defer="name"/>
<input class="form-control form-control-solid" placeholder="Enter a role name" name="name" wire:model="name"/>
<!--end::Input-->
@error('name')
<span class="text-danger">{{ $message }}</span> @enderror
@ -57,7 +57,7 @@
<td>
<!--begin::Checkbox-->
<label class="form-check form-check-sm form-check-custom form-check-solid me-9">
<input class="form-check-input" type="checkbox" id="kt_roles_select_all" wire:model.defer="check_all" wire:change="checkAll" />
<input class="form-check-input" type="checkbox" id="kt_roles_select_all" wire:model="check_all" wire:change="checkAll" />
<span class="form-check-label" for="kt_roles_select_all">Select all</span>
</label>
<!--end::Checkbox-->
@ -77,7 +77,7 @@
<div class="d-flex">
<!--begin::Checkbox-->
<label class="form-check form-check-sm form-check-custom form-check-solid me-5 me-lg-20">
<input class="form-check-input" type="checkbox" wire:model.defer="checked_permissions" value="{{ $permission->name }}"/>
<input class="form-check-input" type="checkbox" wire:model="checked_permissions" value="{{ $permission->name }}"/>
<span class="form-check-label">{{ ucwords(Str::before($permission->name, ' ')) }}</span>
</label>
<!--end::Checkbox-->
@ -127,7 +127,7 @@
const modal = document.querySelector('#kt_modal_update_role');
modal.addEventListener('show.bs.modal', (e) => {
Livewire.emit('modal.show.role_name', e.relatedTarget.getAttribute('data-role-id'));
Livewire.dispatch('modal.show.role_name', [e.relatedTarget.getAttribute('data-role-id')]);
});
</script>
@endpush

View File

@ -18,8 +18,8 @@
<!--begin::Modal body-->
<div class="modal-body px-5 my-7">
<!--begin::Form-->
<form id="kt_modal_add_user_form" class="form" action="#" wire:submit.prevent="submit" enctype="multipart/form-data">
<input type="hidden" wire:model.defer="user_id" name="user_id" value="{{ $user_id }}"/>
<form id="kt_modal_add_user_form" class="form" action="#" wire:submit="submit" enctype="multipart/form-data">
<input type="hidden" wire:model="user_id" name="user_id" value="{{ $user_id }}"/>
<!--begin::Scroll-->
<div class="d-flex flex-column scroll-y px-5 px-lg-10" id="kt_modal_add_user_scroll" data-kt-scroll="true" data-kt-scroll-activate="true" data-kt-scroll-max-height="auto" data-kt-scroll-dependencies="#kt_modal_add_user_header" data-kt-scroll-wrappers="#kt_modal_add_user_scroll" data-kt-scroll-offset="300px">
<!--begin::Input group-->
@ -51,7 +51,7 @@
<label class="btn btn-icon btn-circle btn-active-color-primary w-25px h-25px bg-body shadow" data-kt-image-input-action="change" data-bs-toggle="tooltip" title="Change avatar">
{!! getIcon('pencil','fs-7') !!}
<!--begin::Inputs-->
<input type="file" wire:model.defer="avatar" name="avatar" accept=".png, .jpg, .jpeg"/>
<input type="file" wire:model="avatar" name="avatar" accept=".png, .jpg, .jpeg"/>
<input type="hidden" name="avatar_remove"/>
<!--end::Inputs-->
</label>
@ -81,7 +81,7 @@
<label class="required fw-semibold fs-6 mb-2">Full Name</label>
<!--end::Label-->
<!--begin::Input-->
<input type="text" wire:model.defer="name" name="name" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Full name"/>
<input type="text" wire:model="name" name="name" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Full name"/>
<!--end::Input-->
@error('name')
<span class="text-danger">{{ $message }}</span> @enderror
@ -93,7 +93,7 @@
<label class="required fw-semibold fs-6 mb-2">Email</label>
<!--end::Label-->
<!--begin::Input-->
<input type="email" wire:model.defer="email" name="email" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="example@domain.com"/>
<input type="email" wire:model="email" name="email" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="example@domain.com"/>
<!--end::Input-->
@error('email')
<span class="text-danger">{{ $message }}</span> @enderror
@ -113,7 +113,7 @@
<!--begin::Radio-->
<div class="form-check form-check-custom form-check-solid">
<!--begin::Input-->
<input class="form-check-input me-3" id="kt_modal_update_role_option_{{ $role->id }}" wire:model.defer="role" name="role" type="radio" value="{{ $role->name }}" checked="checked"/>
<input class="form-check-input me-3" id="kt_modal_update_role_option_{{ $role->id }}" wire:model="role" name="role" type="radio" value="{{ $role->name }}" checked="checked"/>
<!--end::Input-->
<!--begin::Label-->
<label class="form-check-label" for="kt_modal_update_role_option_{{ $role->id }}">

View File

@ -14,7 +14,7 @@ document.querySelectorAll('[data-kt-action="delete_row"]').forEach(function (ele
}
}).then((result) => {
if (result.isConfirmed) {
Livewire.emit('delete_permission', this.getAttribute('data-permission-id'));
Livewire.dispatch('delete_permission', [this.getAttribute('data-permission-id')]);
}
});
});

View File

@ -73,7 +73,7 @@
document.getElementById('mySearchInput').addEventListener('keyup', function () {
window.LaravelDataTables['permissions-table'].search(this.value).draw();
});
document.addEventListener('livewire:load', function () {
document.addEventListener('livewire:init', function () {
Livewire.on('success', function () {
$('#kt_modal_update_permission').modal('hide');
window.LaravelDataTables['permissions-table'].ajax.reload();

View File

@ -5,7 +5,7 @@ KTMenu.init();
document.querySelectorAll('[data-kt-action="delete_row"]').forEach(function (element) {
element.addEventListener('click', function () {
if (confirm('Are you sure you want to remove?')) {
Livewire.emit('delete_user', this.getAttribute('data-kt-user-id'));
Livewire.dispatch('delete_user', [this.getAttribute('data-kt-user-id')]);
}
});
});
@ -13,7 +13,7 @@ document.querySelectorAll('[data-kt-action="delete_row"]').forEach(function (ele
// Add click event listener to update buttons
document.querySelectorAll('[data-kt-action="update_row"]').forEach(function (element) {
element.addEventListener('click', function () {
Livewire.emit('update_user', this.getAttribute('data-kt-user-id'));
Livewire.dispatch('update_user', [this.getAttribute('data-kt-user-id')]);
});
});

View File

@ -17,7 +17,7 @@ document.querySelectorAll('[data-kt-action="delete_row"]').forEach(function (ele
}
}).then((result) => {
if (result.isConfirmed) {
Livewire.emit('delete_user', this.getAttribute('data-kt-user-id'));
Livewire.dispatch('delete_user', [this.getAttribute('data-kt-user-id')]);
}
});
});
@ -26,7 +26,7 @@ document.querySelectorAll('[data-kt-action="delete_row"]').forEach(function (ele
// Add click event listener to update buttons
document.querySelectorAll('[data-kt-action="update_row"]').forEach(function (element) {
element.addEventListener('click', function () {
Livewire.emit('update_user', this.getAttribute('data-kt-user-id'));
Livewire.dispatch('update_user', [this.getAttribute('data-kt-user-id')]);
});
});

View File

@ -60,7 +60,7 @@
document.getElementById('mySearchInput').addEventListener('keyup', function () {
window.LaravelDataTables['users-table'].search(this.value).draw();
});
document.addEventListener('livewire:load', function () {
document.addEventListener('livewire:init', function () {
Livewire.on('success', function () {
$('#kt_modal_add_user').modal('hide');
window.LaravelDataTables['users-table'].ajax.reload();

View File

@ -11,12 +11,12 @@
<!--end::Item-->
<!--begin::Item-->
<li class="breadcrumb-item">
<span class="bullet bg-gray-400 w-5px h-2px"></span>
<span class="bullet bg-gray-500 w-5px h-2px"></span>
</li>
<!--end::Item-->
@else
<!--begin::Item-->
<li class="breadcrumb-item text-dark">
<li class="breadcrumb-item text-gray-900">
{{ $breadcrumb->title }}
</li>
<!--end::Item-->

View File

@ -29,5 +29,3 @@ Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/error', function () {
abort(500);
});
Route::get('/auth/redirect/{provider}', [SocialiteController::class, 'redirect']);

View File

@ -54,17 +54,18 @@ mix.sass(`${dir}/sass/style.scss`, `public/assets/css/style.bundle.css`, {sassOp
// Build custom 3rd party plugins
(glob.sync(`resources/mix/vendors/**/*.js`) || []).forEach(file => {
mix.scripts(require('./' + file), `public/assets/${file.replace('resources/mix/vendors/', 'plugins/custom/')}`);
mix.scripts(require('./' + file), `public/assets/${file.replace(path.normalize('resources/mix/vendors/'), 'plugins/custom/')}`);
});
(glob.sync(`resources/mix/vendors/**/*.scss`) || []).forEach(file => {
mix.sass(file, `public/assets/${file.replace('resources/mix/vendors/', 'plugins/custom/').replace('scss', 'css')}`);
mix.sass(file, `public/assets/${file.replace(path.normalize('resources/mix/vendors/'), 'plugins/custom/').replace('scss', 'css')}`);
});
// JS pages (single page use)
(glob.sync(`${dir}/js/custom/**/*.js`) || []).forEach(file => {
var output = `public/assets/${file.replace(`${dir}/`, '')}`;
var output = `public/assets${file.replace(path.normalize(dir), '')}`;
mix.scripts(file, output);
});
// Override custom JS files
(glob.sync(`resources/mix/custom/**/*.js`) || []).forEach(file => {
var output = `public/assets/${file.replace(`resources/mix`, 'js')}`;
@ -132,7 +133,7 @@ mix.webpackConfig({
mix.copy(file, `public/assets/plugins/global/fonts/${path.parse(file).name}/${path.basename(file)}`);
});
glob.sync('node_modules/+(@fortawesome|socicon|line-awesome|bootstrap-icons)/**/*.+(woff|woff2|eot|ttf)').forEach(file => {
const [, folder] = file.match(/node_modules\/(.*?)\//);
const [, folder] = file.match(/node_modules[\\|/](.*?)[\\|/]/);
mix.copy(file, `public/assets/plugins/global/fonts/${folder}/${path.basename(file)}`);
});
(glob.sync('node_modules/jstree/dist/themes/default/*.+(png|gif)') || []).forEach(file => {