diff --git a/app/Console/Commands/UserCreate.php b/app/Console/Commands/UserCreate.php index df4417b..2bf8d40 100644 --- a/app/Console/Commands/UserCreate.php +++ b/app/Console/Commands/UserCreate.php @@ -8,6 +8,7 @@ use Carbon\Carbon; use Illuminate\Console\Command; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\ValidationException; +use Illuminate\Support\Str; class UserCreate extends Command { @@ -200,18 +201,22 @@ class UserCreate extends Command try { $tmp = $this->choice( 'Select his role', - [RoleEnum::conceptor->label(), RoleEnum::admin->label(), RoleEnum::visitor->label()], - RoleEnum::visitor->label(), + [ + Str::ucFirst(RoleEnum::conceptor->label()), + Str::ucFirst(RoleEnum::admin->label()), + Str::ucFirst(RoleEnum::visitor->label()) + ], + Str::ucFirst(RoleEnum::visitor->label()), $maxAttempts = null, $allowMultipleSelections = false ); - if ($tmp === RoleEnum::conceptor->label()) { + if ($tmp === Str::ucFirst(RoleEnum::conceptor->label())) { $tmp = RoleEnum::conceptor; } - if ($tmp === RoleEnum::admin->label()) { + if ($tmp === Str::ucFirst(RoleEnum::admin->label())) { $tmp = RoleEnum::admin; } - if ($tmp === RoleEnum::visitor->label()) { + if ($tmp === Str::ucFirst(RoleEnum::visitor->label())) { $tmp = RoleEnum::visitor; } $validator = Validator::make(['role' => $tmp], [ diff --git a/app/Http/Requests/Bo/StaticPages/UpdateStaticPageRequest.php b/app/Http/Requests/Bo/StaticPages/UpdateStaticPageRequest.php index a309bc4..ebb0746 100644 --- a/app/Http/Requests/Bo/StaticPages/UpdateStaticPageRequest.php +++ b/app/Http/Requests/Bo/StaticPages/UpdateStaticPageRequest.php @@ -26,7 +26,7 @@ class UpdateStaticPageRequest extends FormRequest public function prepareForValidation(): void { $this->merge([ - 'content' => (string)Str::of($this->input('content')) + 'content' => Str::of($this->input('content'))->value() ]); } diff --git a/app/Http/Requests/Bo/Users/StoreUserRequest.php b/app/Http/Requests/Bo/Users/StoreUserRequest.php index 3253b45..0a9b323 100644 --- a/app/Http/Requests/Bo/Users/StoreUserRequest.php +++ b/app/Http/Requests/Bo/Users/StoreUserRequest.php @@ -3,6 +3,7 @@ namespace App\Http\Requests\Bo\Users; use App\Enums\Users\RoleEnum; +use App\Models\User; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Facades\Gate; use Illuminate\Validation\Rules\Enum; diff --git a/resources/sass/bo/base/_common.scss b/resources/sass/bo/base/_common.scss index 45080eb..56971d2 100644 --- a/resources/sass/bo/base/_common.scss +++ b/resources/sass/bo/base/_common.scss @@ -1,6 +1,16 @@ // * LAYOUT body { + > nav { + .navbar-toggler.collapsed .navbar-toggler-icon-close { + display: none; + } + + .navbar-toggler:not(.collapsed) .navbar-toggler-icon { + display: inline; + } + } + > main { min-height: calc(100vh - #{$bo-header-height} - #{$bo-footer-height}); margin-top: $bo-header-height; diff --git a/resources/ts/bo/components/PasswordVisibility.vue b/resources/ts/bo/components/PasswordVisibility.vue index 2a43515..a4ac298 100644 --- a/resources/ts/bo/components/PasswordVisibility.vue +++ b/resources/ts/bo/components/PasswordVisibility.vue @@ -10,7 +10,7 @@ type="button" :title="visible ? __('vue.PasswordVisibility.hide') : __('vue.PasswordVisibility.show')" - data-bs="tooltip" + data-bs-toggle="tooltip" > import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; -import { Tooltip } from "bootstrap"; import { defineComponent } from "vue"; +import bsTooltips from "./../../modules/bsTooltips"; import trans from "./../../modules/trans"; export default defineComponent({ name: "PasswordVisibility", - mixins: [trans], + mixins: [bsTooltips, trans], components: { FontAwesomeIcon }, data(): { inputId: string; @@ -68,7 +68,7 @@ export default defineComponent({ } this.input = this.input as HTMLInputElement; this.$nextTick(() => { - this.updateBootstrapTooltip(); + this.initTooltips(); }); }, methods: { @@ -97,32 +97,7 @@ export default defineComponent({ this.visible = false; } this.$nextTick(() => { - this.updateBootstrapTooltip(); - }); - }, - /** - * Update Bootstrap tooltips. - */ - updateBootstrapTooltip() { - let newTooltipList = [].slice.call( - document.querySelectorAll( - ".password-visibility-" + this.inputId + " [data-bs=\"tooltip\"]" - ) - ) as HTMLButtonElement[]; - let tmp = newTooltipList.filter((x) => !this.tooltipList.includes(x)); - tmp.map((tooltip) => { - return new Tooltip(tooltip); - }); - this.closeBootstrapTooltip(); - this.tooltipList = newTooltipList; - }, - /** - * Close all Bootstrap tooltips. - */ - closeBootstrapTooltip() { - this.tooltipList.forEach((tooltip) => { - tooltip.blur(); - Tooltip.getInstance(tooltip)?.hide(); + this.initTooltips(); }); }, }, diff --git a/resources/ts/bo/utilities/fontawesome.ts b/resources/ts/bo/utilities/fontawesome.ts index d4b9149..3866b43 100644 --- a/resources/ts/bo/utilities/fontawesome.ts +++ b/resources/ts/bo/utilities/fontawesome.ts @@ -1,10 +1,7 @@ import { config, dom, library } from "@fortawesome/fontawesome-svg-core"; import { - faArrowAltCircleDown, - faArrowAltCircleUp, faArrowDown, faArrowLeft, - faArrowLeftLong, faArrowRight, faArrowRightFromBracket, faArrowUp, @@ -12,14 +9,10 @@ import { faArrowsAltV, faBackspace, faBan, - faCheck, faChevronLeft, faChevronRight, - faCircleCheck, faCircleExclamation, faCircleInfo, - faCircleNotch, - faCircleXmark, faCopy, faCrop, faEraser, @@ -35,17 +28,15 @@ import { faSearch, faSearchMinus, faSearchPlus, - faSliders, faSyncAlt, - faTimes, faTrash, faUndoAlt, - faWandMagic + faWandMagic, + faXmark } from "@fortawesome/free-solid-svg-icons"; config.autoReplaceSvg = false; library.add(faEraser); -library.add(faArrowLeftLong); library.add(faPlus); library.add(faTrash); library.add(faEye); @@ -53,7 +44,6 @@ library.add(faEyeSlash); library.add(faFolderOpen); library.add(faCrop); library.add(faQuestionCircle); -library.add(faCheck); library.add(faUndoAlt); library.add(faRedoAlt); library.add(faSyncAlt); @@ -67,26 +57,17 @@ library.add(faArrowsAltH); library.add(faArrowsAltV); library.add(faWandMagic); library.add(faPencil); -library.add(faTimes); library.add(faBackspace); library.add(faSearch); library.add(faArrowRightFromBracket); -library.add(faArrowAltCircleDown); -library.add(faArrowAltCircleUp); -library.add(faCircleCheck); -library.add(faCircleXmark); library.add(faCopy); library.add(faListUl); library.add(faBan); library.add(faCircleExclamation); library.add(faCircleInfo); library.add(faPaintRoller); - -// Front +library.add(faXmark); library.add(faChevronLeft); library.add(faChevronRight); -library.add(faCircleXmark); -library.add(faCircleNotch); -library.add(faSliders); dom.watch(); diff --git a/resources/ts/fo/utilities/fontawesome.ts b/resources/ts/fo/utilities/fontawesome.ts index d749a13..ac0d8d3 100644 --- a/resources/ts/fo/utilities/fontawesome.ts +++ b/resources/ts/fo/utilities/fontawesome.ts @@ -1,90 +1,19 @@ -import { dom, library, config } from "@fortawesome/fontawesome-svg-core"; +import { config, dom, library } from "@fortawesome/fontawesome-svg-core"; import { - faEraser, - faArrowLeftLong, - faPlus, - faTrash, - faEye, - faFolderOpen, - faCrop, - faQuestionCircle, - faCheck, - faUndoAlt, - faRedoAlt, - faSyncAlt, - faSearchPlus, - faSearchMinus, - faArrowLeft, - faArrowRight, - faArrowUp, - faArrowDown, - faArrowsAltH, - faArrowsAltV, - faWandMagic, - faPencil, - faTimes, - faBackspace, - faSearch, - faArrowRightFromBracket, - faArrowAltCircleDown, - faArrowAltCircleUp, - faChevronLeft, - faChevronRight, - faCircleNotch, - faSliders, faCircleCheck, - faCircleXmark, - faCopy, - faListUl, - faBan, - faEyeSlash, faCircleExclamation, - faCircleInfo + faCircleInfo, + faCirclePlay, + faCircleXmark, + faQuestionCircle } from "@fortawesome/free-solid-svg-icons"; config.autoReplaceSvg = false; -library.add(faEraser); -library.add(faArrowLeftLong); -library.add(faPlus); -library.add(faTrash); -library.add(faEye); -library.add(faEyeSlash); -library.add(faFolderOpen); -library.add(faCrop); -library.add(faQuestionCircle); -library.add(faCheck); -library.add(faUndoAlt); -library.add(faRedoAlt); -library.add(faSyncAlt); -library.add(faSearchPlus); -library.add(faSearchMinus); -library.add(faArrowLeft); -library.add(faArrowRight); -library.add(faArrowUp); -library.add(faArrowDown); -library.add(faArrowsAltH); -library.add(faArrowsAltV); -library.add(faWandMagic); -library.add(faPencil); -library.add(faTimes); -library.add(faBackspace); -library.add(faSearch); -library.add(faArrowRightFromBracket); -library.add(faArrowAltCircleDown); -library.add(faArrowAltCircleUp); library.add(faCircleCheck); library.add(faCircleXmark); -library.add(faCopy); -library.add(faListUl); -library.add(faBan); library.add(faCircleExclamation); library.add(faCircleInfo); - -// Front -library.add(faChevronLeft); -library.add(faChevronRight); -library.add(faCircleXmark); -library.add(faCircleNotch); -library.add(faSliders); +library.add(faCirclePlay); +library.add(faQuestionCircle); dom.watch(); diff --git a/resources/ts/modules/bsTooltips.ts b/resources/ts/modules/bsTooltips.ts index 6467bcd..8b81cf8 100644 --- a/resources/ts/modules/bsTooltips.ts +++ b/resources/ts/modules/bsTooltips.ts @@ -4,12 +4,11 @@ let tooltips: Array = []; export default { methods: { + /** + * Initialize all Bootstrap tooltips. + */ initTooltips() { - // Disable tooltips on reboot. - tooltips.forEach((tooltip) => { - tooltip.disable(); - tooltip.hide(); - }); + this.disableBootstrapTooltip(); tooltips = [].slice .call(document.querySelectorAll("[data-bs-toggle=\"tooltip\"]")) .map(function (tooltipTriggerEl) { @@ -22,5 +21,25 @@ export default { }); }); }, + /** + * Disable all Bootstrap tooltips. + */ + disableBootstrapTooltip() { + tooltips.forEach((tooltip) => { + tooltip.disable(); + tooltip.hide(); + }); + }, + /** + * Close all Bootstrap tooltips. + */ + closeBootstrapTooltip() { + [].slice + .call(document.querySelectorAll("[data-bs-toggle=\"tooltip\"]")) + .forEach((tooltip: HTMLElement) => { + tooltip.blur(); + window.bootstrap.Tooltip.getInstance(tooltip)?.hide(); + }); + }, }, }; diff --git a/resources/views/bo/layouts/header.blade.php b/resources/views/bo/layouts/header.blade.php index a56df95..5ffc950 100644 --- a/resources/views/bo/layouts/header.blade.php +++ b/resources/views/bo/layouts/header.blade.php @@ -5,9 +5,10 @@ {{ config('app.name', 'Laravel') }} @auth - @endauth @@ -18,10 +19,11 @@