Upgrade boilerplate

This commit is contained in:
Ludovic CANDELLIER
2021-09-22 21:01:43 +02:00
parent ffb9f81353
commit e98266e556
56 changed files with 1477 additions and 701 deletions

View File

@@ -9,6 +9,7 @@
<title>{{ $title }} | {{ config('app.name') }}</title>
<link rel="stylesheet" href="{{ mix('/plugins/fontawesome/fontawesome.min.css', '/assets/vendor/boilerplate') }}">
<link rel="stylesheet" href="{{ mix('/adminlte.min.css', '/assets/vendor/boilerplate') }}">
<link rel="shortcut icon" href="{{ config('boilerplate.theme.favicon') ?? mix('favicon.svg', '/assets/vendor/boilerplate') }}">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,700;1,400&display=swap" rel="stylesheet">
</head>

View File

@@ -14,13 +14,28 @@
<button type="submit" class="btn btn-primary mb-3">@lang('boilerplate::auth.login.signin')</button>
</div>
{!! Form::close() !!}
<p class="mb-1 text-sm">
<a href="{{ route('boilerplate.password.request') }}">@lang('boilerplate::auth.login.forgotpassword')</a><br>
</p>
@if(config('boilerplate.auth.register'))
<p class="mb-0 text-sm">
<a href="{{ route('boilerplate.register') }}" class="text-center">@lang('boilerplate::auth.login.register')</a>
</p>
@endif
<div class="d-flex justify-content-between align-items-start">
<div>
<p class="mb-1 text-sm">
<a href="{{ route('boilerplate.password.request') }}">@lang('boilerplate::auth.login.forgotpassword')</a><br>
</p>
@if(config('boilerplate.auth.register'))
<p class="mb-0 text-sm">
<a href="{{ route('boilerplate.register') }}" class="text-center">@lang('boilerplate::auth.login.register')</a>
</p>
@endif
</div>
@if(config('boilerplate.locale.switch', false))
<div class="dropdown-wrapper">
<div class="form-group">
<select class="form-control form-control-sm" onchange="if (this.value) window.location.href=this.value">
@foreach(collect(config('boilerplate.locale.languages'))->map(function($e){return $e['label'];})->toArray() as $lang => $label)
<option value="{{ route('boilerplate.lang.switch', $lang) }}" {{ $lang === App::getLocale() ? 'selected' : '' }}>{{ $label }}</option>
@endforeach
</select>
</div>
</div>
@endif
</div>
@endcomponent
@endsection

View File

@@ -1,14 +1,14 @@
<div class="card{{ isset($tabs) ? ($outline ? ' card-outline card-outline-tabs' : ' card-tabs') : ($outline ? ' card-outline' : '') }} card-{{ $color ?? config('boilerplate.theme.card.default_color', 'info') }} bg-{{ $bgColor ?? 'white' }}{{ $collapsed ? ' collapsed-card' : '' }}{{ !empty($class) ? ' '.$class : '' }}"{!! empty($attributes) ? '' : ' '.$attributes !!}>
<div class="card{{ isset($tabs) ? ($outline ? ' card-outline card-outline-tabs' : ' card-tabs') : ($outline ? ' card-outline' : '') }} card-{{ $color ?? config('boilerplate.theme.card.default_color', 'info') }}{{ ($bgColor ?? null) ? ' bg-'.$bgColor : '' }}{{ $collapsed ? ' collapsed-card' : '' }}{{ !empty($class) ? ' '.$class : '' }}"{!! empty($attributes) ? '' : ' '.$attributes !!}>
@if($title ?? false || $header ?? false || $tools ?? false || $maximize || $reduce || $close)
<div class="card-header{{ isset($tabs) ? ($outline ? ' p-0' : ' p-0 pt-1') : '' }} border-bottom-0">
@if($header ?? false)
{{ $header }}
{!! $header !!}
@else
<h3 class="card-title">@lang($title ?? '')</h3>
@if($tools ?? false || $maximize || $reduce || $close)
<div class="card-tools">
@isset($tools)
{{ $tools ?? '' }}
{!! $tools ?? '' !!}
@endisset
@if($maximize)
<button type="button" class="btn btn-tool" data-card-widget="maximize"><i class="fas fa-expand"></i></button>
@@ -26,6 +26,6 @@
@endif
<div class="card-body{{ $title ?? false ? ($outline ? ' pt-0' : '') : '' }}">{{ $slot }}</div>
@isset($footer)
<div class="card-footer">{{ $footer }}</div>
<div class="card-footer">{!! $footer !!}</div>
@endisset
</div>

View File

@@ -4,9 +4,9 @@
The name attribute has not been set
</code>
@else
<div class="form-group">
<div class="form-group{{ isset($groupClass) ? ' '.$groupClass : '' }}"{{ isset($groupId) ? ' id="'.$groupId.'"' : '' }}>
@isset($label)
{{ Form::label($name, __($label)) }}
{!! Form::label($name, __($label)) !!}
@endisset
@if($prepend || $prependText || $append || $appendText)
<div class="input-group">
@@ -21,13 +21,13 @@
</div>
@endif
@if($type === 'password')
{{ Form::password($name, array_merge(['class' => 'form-control'.$errors->first($name,' is-invalid').(isset($class) ? ' '.$class : '')], $attributes)) }}
{!! Form::password($name, array_merge(['class' => 'form-control'.$errors->first($name,' is-invalid').(isset($class) ? ' '.$class : '')], $attributes)) !!}
@elseif($type === 'file')
{{ Form::file($name, array_merge(['class' => 'form-control-file'.$errors->first($name,' is-invalid').(isset($class) ? ' '.$class : '')], $attributes)) }}
{!! Form::file($name, array_merge(['class' => 'form-control-file'.$errors->first($name,' is-invalid').(isset($class) ? ' '.$class : '')], $attributes)) !!}
@elseif($type === 'select')
{{ Form::select($name, $options ?? [], old($name, $value ?? ''), array_merge(['class' => 'form-control'.$errors->first($name,' is-invalid').(isset($class) ? ' '.$class : '')], $attributes)) }}
{!! Form::select($name, $options ?? [], old($name, $value ?? ''), array_merge(['class' => 'form-control'.$errors->first($name,' is-invalid').(isset($class) ? ' '.$class : '')], $attributes)) !!}
@else
{{ Form::{$type ?? 'text'}($name, old($name, $value ?? ''), array_merge(['class' => 'form-control'.$errors->first($name,' is-invalid').(isset($class) ? ' '.$class : '')], $attributes)) }}
{!! Form::{$type ?? 'text'}($name, old($name, $value ?? ''), array_merge(['class' => 'form-control'.$errors->first($name,' is-invalid').(isset($class) ? ' '.$class : '')], $attributes)) !!}
@endif
@if($append || $appendText)
<div class="input-group-append">

View File

@@ -1,18 +1,21 @@
@if(empty($name))
<code>
&lt;x-boilerplate::select2>
The name attribute has not been set
</code>
<code>&lt;x-boilerplate::select2> The name attribute has not been set</code>
@else
<div class="form-group">
@isset($label)
{{ Form::label($name, __($label)) }}
@endisset
<select id="{{ $id }}" name="{{ $name }}" class="form-control{{ $errors->first($name,' is-invalid') }}{{ isset($class) ? ' '.$class : '' }}"{!! !empty($attributes) ? ' '.$attributes : '' !!}>
<select id="{{ $id }}" name="{{ $name }}" class="form-control{{ $errors->first($name,' is-invalid') }}{{ isset($class) ? ' '.$class : '' }}"{!! !empty($attributes) ? ' '.$attributes : '' !!} style="visibility:hidden;height:1rem">
@if(!isset($multiple))
<option></option>
@endif
@if(!empty($options) && is_array($options))
@foreach($options as $k => $v)
<option value="{{ $k }}"{{ collect($selected ?? [])->contains($k) ? ' selected' : '' }}>{{ $v }}</option>
@endforeach
@else
{{ $slot }}
@endisset
</select>
@if($help ?? false)
<small class="form-text text-muted">@lang($help)</small>
@@ -28,10 +31,10 @@
$('#{{ $id }}').select2({
placeholder: '{{ $placeholder ?? '' }}',
allowClear: {{ $allowClear }},
language: "{{ config('boilerplate.app.locale') }}",
language: "{{ App::getLocale() }}",
direction: "@lang('boilerplate::layout.direction')",
minimumInputLength: {{ $minimumInputLength ?? 0 }},
minimumResultsForSearch: {{ $minimumResultsForSearch ?? 0 }},
minimumResultsForSearch: {{ $minimumResultsForSearch ?? 10 }},
width: '100%',
@isset($ajax)
ajax: {

View File

@@ -1,4 +1,7 @@
<textarea id="{{ $id }}"{!! !empty($attributes) ? ' '.$attributes : '' !!}></textarea>
@if(empty($name))
<code>&lt;x-boilerplate::tinymce>The name attribute has not been set</code>
@else
<textarea id="{{ $id }}"{!! !empty($attributes) ? ' '.$attributes : '' !!} style="visibility:hidden">{!! $value ?? $slot ?? '' !!}</textarea>
@if($hasMediaManager)
@include('boilerplate-media-manager::load.tinymce')
@else
@@ -6,4 +9,5 @@
@endif
@push('js')
<script>$(function(){$('#{{ $id }}').tinymce({})});</script>
@endpush
@endpush
@endif

View File

@@ -1,7 +1,7 @@
@extends('boilerplate::layout.index', [
'title' => __('boilerplate::layout.dashboard'),
'subtitle' => 'Plugins demo',
'breadcrumb' => ['Plugins demo']]
'subtitle' => 'Components & plugins demo',
'breadcrumb' => ['Components & plugins demo']]
)
@section('content')

View File

@@ -2,7 +2,7 @@
<div class="container-fluid">
<div class="row mb-2 align-items-end">
<div class="col-sm-6">
<h1 class="m-0 text-dark">
<h1 class="m-0">
{{ $title }}
@if(isset($subtitle))
<small class="font-weight-light ml-1 text-md">{{ $subtitle }}</small>

View File

@@ -1,4 +1,4 @@
<nav class="main-header navbar navbar-expand navbar-{{ config('boilerplate.theme.navbar.bg') }} navbar-{{ config('boilerplate.theme.navbar.type') }} {{ config('boilerplate.theme.navbar.border') ? "" : "border-bottom-0" }}">
<nav class="main-header navbar navbar-expand{{ config('boilerplate.theme.navbar.bg') === 'white' ? '' : ' navbar-'.config('boilerplate.theme.navbar.bg') }} navbar-{{ setting('darkmode', false) && config('boilerplate.theme.darkmode') ? 'dark' : config('boilerplate.theme.navbar.type') }} {{ config('boilerplate.theme.navbar.border') ? "" : "border-bottom-0" }}" data-type="{{ config('boilerplate.theme.navbar.type') }}">
<div class="navbar-left d-flex">
<ul class="nav navbar-nav">
<li class="nav-item">
@@ -8,26 +8,60 @@
</li>
</ul>
@foreach(app('boilerplate.navbar.items')->getItems('left') as $view)
{!! $view !!}
{!! $view !!}
@endforeach
</div>
<div class="navbar-right ml-auto d-flex">
@foreach(app('boilerplate.navbar.items')->getItems('right') as $view)
{!! $view !!}
{!! $view !!}
@endforeach
<ul class="nav navbar-nav">
@if(config('boilerplate.locale.switch', false))
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle px-2" data-toggle="dropdown" href="#" aria-expanded="false">
{{ Config::get('boilerplate.locale.languages.'.App::getLocale().'.label') }}
</a>
<div class="dropdown-menu dropdown-menu-right" style="left: inherit; right: 0px;">
@foreach(collect(config('boilerplate.locale.languages'))->map(function($e){return $e['label'];})->toArray() as $lang => $label)
@if ($lang !== App::getLocale())
<a href="{{ route('boilerplate.lang.switch', $lang) }}" class="dropdown-item">
{{ $label }}
</a>
@endif
@endforeach
</div>
</li>
@endif
@if(config('boilerplate.theme.navbar.user.visible'))
<li class="nav-item">
<a href="{{ route('boilerplate.user.profile') }}" class="nav-link d-flex align-items-center">
<img src="{{ Auth::user()->avatar_url }}" class="avatar-img img-circle bg-gray mr-2 elevation-{{ config('boilerplate.theme.navbar.user.shadow') }}" alt="{{ Auth::user()->name }}" height="32">
{{ Auth::user()->name }}
<a href="{{ route('boilerplate.user.profile') }}" class="nav-link d-flex align-items-center px-2">
<img src="{{ Auth::user()->avatar_url }}" class="avatar-img img-circle bg-gray mr-0 mr-md-2 elevation-{{ config('boilerplate.theme.navbar.user.shadow') }}" alt="{{ Auth::user()->name }}" height="32">
<span class="d-none d-md-block">{{ Auth::user()->name }}</span>
</a>
</li>
@endif
@if(config('boilerplate.theme.darkmode', false))
<li class="nav-item">
<a class="nav-link px-2" data-widget="darkmode" href="#" role="button">
@if(setting('darkmode', false))
<i class="fas fa-fw fa-sun"></i>
@else
<i class="far fa-moon"></i>
@endif
</a>
</li>
@endif
@if(config('boilerplate.theme.fullscreen', false))
<li class="nav-item">
<a class="nav-link px-2" data-widget="fullscreen" href="#" role="button">
<i class="fas fa-fw fa-expand-arrows-alt"></i>
</a>
</li>
@endif
<li class="nav-item">
{!! Form::open(['route' => 'boilerplate.logout', 'method' => 'post', 'id' => 'logout-form']) !!}
<button type="submit" class="btn nav-link d-flex align-items-center logout px-2" data-question="{{ __('boilerplate::layout.logoutconfirm') }}" data-toggle="tooltip" title="{{ __('boilerplate::layout.logout') }}">
<span class="fa fa-power-off hidden-xs pr-1"></span>
<button type="submit" class="btn nav-link d-flex align-items-center logout px-2" data-question="{{ __('boilerplate::layout.logoutconfirm') }}">
<span class="fa fa-fw fa-power-off hidden-xs pr-1"></span>
</button>
{!! Form::close() !!}
</li>

View File

@@ -7,13 +7,15 @@
<meta name="robots" content="noindex, nofollow">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ $title }} | {{ config('app.name') }}</title>
@stack('css')
<link rel="shortcut icon" href="{{ config('boilerplate.theme.favicon') ?? mix('favicon.svg', '/assets/vendor/boilerplate') }}">
@stack('plugin-css')
<link rel="stylesheet" href="{{ mix('/plugins/fontawesome/fontawesome.min.css', '/assets/vendor/boilerplate') }}">
<link rel="stylesheet" href="{{ mix('/adminlte.min.css', '/assets/vendor/boilerplate') }}">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,700;1,400&display=swap" rel="stylesheet">
@stack('css')
</head>
<body class="layout-fixed layout-navbar-fixed sidebar-mini">
<body class="layout-fixed layout-navbar-fixed sidebar-mini{{ setting('darkmode', false) && config('boilerplate.theme.darkmode') ? ' dark-mode accent-light' : '' }}{{ setting('sidebar-collapsed', false) ? ' sidebar-collapse' : '' }}">
<div class="wrapper">
@include('boilerplate::layout.header')
@include('boilerplate::layout.mainsidebar')
@@ -42,24 +44,23 @@
<script>
$.ajaxSetup({headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}'}});
bootbox.setLocale('{{ App::getLocale() }}');
var bpRoutes = {
settings: "{{ route('boilerplate.settings', null, false) }}",
}
var session = {
keepalive: "{{ route('boilerplate.keepalive', null, false) }}",
expire: {{ time() + config('session.lifetime') * 60 }},
lifetime: {{ config('session.lifetime') * 60 }},
id: "{{ session()->getId() }}"
}
</script>
@if(Session::has('growl'))
<script>
$(function() {
@if(is_array(Session::get('growl')))
growl("{!! Session::get('growl')[0] !!}", "{{ Session::get('growl')[1] }}");
@else
growl("{{Session::get('growl')}}");
@endif
});
</script>
@if(is_array(Session::get('growl')))
growl("{!! Session::get('growl')[0] !!}", "{{ Session::get('growl')[1] }}");
@else
growl("{{Session::get('growl')}}");
@endif
@endif
</script>
@stack('js')
</body>
</html>

View File

@@ -1,4 +1,4 @@
<aside class="main-sidebar {{ config('boilerplate.theme.sidebar.border') ? 'border-right' : ''}} sidebar-{{ config('boilerplate.theme.sidebar.type') }}-{{ config('boilerplate.theme.sidebar.links.bg') }} elevation-{{ config('boilerplate.theme.sidebar.shadow') }}">
<aside class="main-sidebar sidebar-{{ config('boilerplate.theme.sidebar.type') }}-{{ config('boilerplate.theme.sidebar.links.bg') }} elevation-{{ config('boilerplate.theme.sidebar.shadow') }}">
<a href="{{ route('boilerplate.dashboard') }}" class="brand-link {{ !empty(config('boilerplate.theme.sidebar.brand.bg')) ? 'bg-'.config('boilerplate.theme.sidebar.brand.bg') : ''}}">
<span class="brand-logo bg-{{ config('boilerplate.theme.sidebar.brand.logo.bg') }} elevation-{{ config('boilerplate.theme.sidebar.brand.logo.shadow') }}">
{!! config('boilerplate.theme.sidebar.brand.logo.icon') !!}

View File

@@ -1,6 +1,7 @@
@once
@push('css')
@push('plugin-css')
<link rel="stylesheet" href="{{ mix('/plugins/codemirror/codemirror.min.css', '/assets/vendor/boilerplate') }}">
<link rel="stylesheet" href="/assets/vendor/boilerplate/plugins/codemirror/theme/{{ $theme ?? 'storm' }}.css">
@endpush
@php
$default = [
@@ -28,13 +29,6 @@
<script src="/assets/vendor/boilerplate/plugins/codemirror/{{ $script }}"></script>
@endforeach
@endif
<script>$.fn.codemirror.defaults.theme='{{ $theme ?? 'storm' }}';</script>
@endpush
@isset($theme)
@push('css')
<link rel="stylesheet" href="/assets/vendor/boilerplate/plugins/codemirror/theme/{{ $theme }}.css">
@endpush
@push('js')
<script>$.fn.codemirror.defaults.theme='{{ $theme }}';</script>
@endpush
@endisset
@endonce

View File

@@ -1,5 +1,5 @@
@once
@push('css')
@push('plugin-css')
<link rel="stylesheet" href="{!! mix('/plugins/datatables/datatables.min.css', '/assets/vendor/boilerplate') !!}">
@endpush
@push('js')

View File

@@ -1,29 +1,25 @@
@once
@push('css')
<link rel="stylesheet" href="{!! mix('/plugins/datepicker/datepicker.min.css', '/assets/vendor/boilerplate') !!}">
@push('plugin-css')
<link rel="stylesheet" href="{!! mix('/plugins/datepicker/datetimepicker.min.css', '/assets/vendor/boilerplate') !!}">
@endpush
@push('js')
@include('boilerplate::load.moment')
<script src="{!! mix('/plugins/datepicker/datepicker.min.js', '/assets/vendor/boilerplate') !!}"></script>
<script src="{!! mix('/plugins/datepicker/datetimepicker.min.js', '/assets/vendor/boilerplate') !!}"></script>
<script>
$.fn.datetimepicker.Constructor.Default = $.extend({}, $.fn.datetimepicker.Constructor.Default, {
locale: "{{ config('boilerplate.app.locale') }}",
locale: "{{ App::getLocale() }}",
icons: $.extend({}, $.fn.datetimepicker.Constructor.Default.icons, {
time: "far fa-clock",
date: "far fa-calendar-alt",
up: "fa fa-chevron-up",
down: "fa fa-chevron-down"
time: 'far fa-clock',
date: 'far fa-calendar',
up: 'fas fa-arrow-up',
down: 'fas fa-arrow-down',
previous: 'fas fa-chevron-left',
next: 'fas fa-chevron-right',
today: 'far fa-calendar-check',
clear: 'fas fa-trash',
close: 'fas fa-times'
})
});
$.fn.daterangepicker.defaultOptions = {
locale: {
"applyLabel": "@lang('boilerplate::daterangepicker.applyLabel')",
"cancelLabel": "@lang('boilerplate::daterangepicker.cancelLabel')",
"fromLabel": "@lang('boilerplate::daterangepicker.fromLabel')",
"toLabel": "@lang('boilerplate::daterangepicker.toLabel')",
"customRangeLabel": "@lang('boilerplate::daterangepicker.customRangeLabel')",
}
};
</script>
@endpush
@endonce

View File

@@ -1,5 +1,5 @@
@once
@push('css')
@push('plugin-css')
<link rel="stylesheet" href="{!! mix('/plugins/fileinput/bootstrap-fileinput.min.css', '/assets/vendor/boilerplate') !!}">
@endpush
@push('js')
@@ -7,8 +7,8 @@
<script src="/assets/vendor/boilerplate/plugins/fileinput/themes/fas/theme.min.js"></script>
<script>$.fn.fileinput.defaults = $.extend({}, $.fn.fileinput.defaults, $.fn.fileinputThemes.fas);</script>
@if(App::getLocale() !== 'en')
<script src="/assets/vendor/boilerplate/plugins/fileinput/locales/{{ config('boilerplate.app.locale') }}.js"></script>
<script>$.fn.fileinput.defaults.language='{{ config('boilerplate.app.locale') }}';</script>
<script src="/assets/vendor/boilerplate/plugins/fileinput/locales/{{ App::getLocale() }}.js"></script>
<script>$.fn.fileinput.defaults.language='{{ App::getLocale() }}';</script>
@endif
@endpush
@endonce

View File

@@ -1,5 +1,5 @@
@once
@push('css')
@push('plugin-css')
<link rel="stylesheet" href="{!! mix('/plugins/fullcalendar/main.min.css', '/assets/vendor/boilerplate') !!}">
@endpush
@push('js')

View File

@@ -1,4 +1,4 @@
@once
<script src="{!! mix('/plugins/moment/moment-with-locales.min.js', '/assets/vendor/boilerplate') !!}"></script>
<script>moment.locale('{{ config('boilerplate.app.locale') }}');</script>
<script>moment.locale('{{ App::getLocale() }}');</script>
@endonce

View File

@@ -1,10 +1,10 @@
@once
@push('css')
@push('plugin-css')
<link rel="stylesheet" href="{!! mix('/plugins/select2/select2.min.css', '/assets/vendor/boilerplate') !!}">
@endpush
@push('js')
<script src="{!! mix('/plugins/select2/select2.full.min.js', '/assets/vendor/boilerplate') !!}"></script>
<script src="{!! mix('/plugins/select2/i18n/'.config('boilerplate.app.locale').'.js', '/assets/vendor/boilerplate') !!}"></script>
<script>$.extend(true,$.fn.select2.defaults,{language:'{{ config('boilerplate.app.locale') }}',direction:'@lang('boilerplate::layout.direction')'});</script>
<script src="{!! mix('/plugins/select2/i18n/'.App::getLocale().'.js', '/assets/vendor/boilerplate') !!}"></script>
<script>$.extend(true,$.fn.select2.defaults,{language:'{{ App::getLocale()}}',direction:'@lang('boilerplate::layout.direction')'});$(document).on('select2:open',(e)=>{let t = $(e.target);if(t && t.length){let id=t[0].id||t[0].name;document.querySelector(`input[aria-controls*='${id}']`).focus();}});</script>
@endpush
@endonce

View File

@@ -3,12 +3,12 @@
<script src="{!! mix('/plugins/tinymce/tinymce.min.js', '/assets/vendor/boilerplate') !!}"></script>
<script>
tinymce.defaultSettings = {
plugins: "autoresize fullscreen codemirror link lists table media image imagetools paste customalign stickytoolbar",
plugins: "autoresize fullscreen codemirror link lists table media image imagetools paste customalign",
toolbar: "undo redo | styleselect | bold italic underline | customalignleft aligncenter customalignright | link media image | bullist numlist | table | code fullscreen",
contextmenu: "link image imagetools table spellchecker bold italic underline",
sticky_toolbar_container: '.tox-editor-header',
toolbar_drawer: "sliding",
sticky_offset: $('nav.main-header').outerHeight(),
toolbar_sticky: true,
toolbar_sticky_offset: $('nav.main-header').outerHeight(),
codemirror: { config: { theme: 'storm' } },
menubar: false,
removed_menuitems: 'newdocument',
@@ -27,9 +27,14 @@
args.content = args.content.replace(/\s(class|style|type|start)=("(.*?)"|(\w*))/gi, ''); // Unwanted attributes
args.content = args.content.replace(/<(p|a|div|span|strike|strong|i|u)[^>]*?>(\s|&nbsp;|<br\/>|\r|\n)*?<\/(p|a|div|span|strike|strong|i|u)>/gi, ''); // Empty tags
},
skin : "boilerplate",
@if(config('boilerplate.app.locale') !== 'en')
language: '{{ config('boilerplate.app.locale') }}'
@if(setting('darkmode', false) && config('boilerplate.theme.darkmode'))
skin : "boilerplate-dark",
content_css: 'boilerplate-dark',
@else
skin : "oxide",
@endif
@if(App::getLocale() !== 'en')
language: '{{ App::getLocale() }}'
@endif
};
</script>

View File

@@ -38,16 +38,12 @@
@foreach($row as $key => $value)
<td class="{{ $key == 'date' ? 'text-left' : 'text-center' }}">
@if ($key == 'date')
<a href="{{ route('boilerplate.logs.show', [$date]) }}">
<span class="badge badge-pill badge-info">
{{ \Carbon\Carbon::createFromFormat('Y-m-d', $value)->isoFormat(__('boilerplate::date.Ymd')) }}
</span>
</a>
{{ \Carbon\Carbon::createFromFormat('Y-m-d', $value)->isoFormat(__('boilerplate::date.Ymd')) }}
@elseif ($value == 0)
<span class="badge badge-pill level-empty">{{ $value }}</span>
<span class="text-muted">.</span>
@else
<a href="{{ route('boilerplate.logs.filter', [$date, $key]) }}">
<span class="badge badge-pill level-{{ $key }}">{{ $value }}</span>
<span class="text-{{ $key }} text-bold">{{ $value }}</span>
</a>
@endif
</td>

View File

@@ -13,7 +13,7 @@
@section('content')
<div class="row">
<div class="col-12 py-2 sticky-toolbar">
<div class="col-12 pb-3">
<a href="{{ route('boilerplate.logs.list') }}" class="btn btn-default">
<span class="far fa-arrow-alt-circle-left text-muted"></span>
</a>
@@ -28,127 +28,79 @@
</span>
</span>
</div>
<div class="col-12">
<div class="col-3">
@component('boilerplate::card', ['title' => __('boilerplate::logs.show.levels'), 'color' => 'info'])
@include('boilerplate::logs._partials.levels')
@endcomponent
@component('boilerplate::card', ['title' => __('boilerplate::logs.show.loginfo'), 'color' => 'warning'])
@include('boilerplate::logs._partials.informations')
@endcomponent
</div>
<div class="col-9">
@component('boilerplate::card', ['title' => ucfirst(__('boilerplate::logs.show.file', ['date' => $date]))])
<div class="row">
<div class="col-md-2">
@include('boilerplate::logs._partials.menu')
</div>
<div class="col-md-10">
<div class="card no-shadow">
<div class="card-header bg-gray font-weight-bold py-1">
{{ __('boilerplate::logs.show.loginfo') }}
</div>
<div class="card-body py-1 px-0">
<div class="table-responsive">
<table class="table no-border table-sm mb-0">
<tbody>
<tr class="border-bottom">
<td class="pl-2">{{ __('boilerplate::logs.show.filepath') }}</td>
<td colspan="7">{{ $log->getPath() }}</td>
</tr>
<tr>
<td class="pl-2">{{ __('boilerplate::logs.show.logentries') }}</td>
<td>
<span class="badge badge-pill badge-secondary">{{ $entries->total() }}</span>
</td>
<td>{{ __('boilerplate::logs.show.size') }}</td>
<td>
<span class="badge badge-pill badge-secondary">{{ $log->size() }}</span>
</td>
<td>{{ __('boilerplate::logs.show.createdat') }}</td>
<td>
<span class="badge badge-pill badge-secondary">
{{ $log->createdAt()->isoFormat(__('boilerplate::date.YmdHis')) }}
</span>
</td>
<td>{{ __('boilerplate::logs.show.updatedat') }}</td>
<td>
<span class="badge badge-pill badge-secondary">
{{ $log->updatedAt()->isoFormat(__('boilerplate::date.YmdHis')) }}
</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
@if ($entries->hasPages())
<div class="d-flex justify-content-between text-sm align-items-center mb-3">
<span class="text-sm text-muted ">
{{ __('boilerplate::logs.show.page', ['current' => $entries->currentPage(), 'last' => $entries->lastPage()]) }}
<div class="table-responsive">
<table id="entries" class="table table-sm">
<thead>
<tr class="text-center">
<th>{{ __('boilerplate::logs.show.env') }}</th>
<th style="width: 120px;">{{ __('boilerplate::logs.show.level') }}</th>
<th style="width: 65px;">{{ __('boilerplate::logs.show.time') }}</th>
<th>{{ __('boilerplate::logs.show.header') }}</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($entries as $key => $entry)
<tr class="{{ $key %2 ? 'even' : 'odd' }}">
<td class="px-2">
<span class="badge badge-pill bg-purple">
{{ $entry->env }}
</span>
{!! $entries->render() !!}
</div>
@endif
<div class="table-responsive">
<table id="entries" class="table table-hover table-sm border-left border-right">
<thead class="bg-gray">
<tr class="text-center">
<th>{{ __('boilerplate::logs.show.env') }}</th>
<th style="width: 120px;">{{ __('boilerplate::logs.show.level') }}</th>
<th style="width: 65px;">{{ __('boilerplate::logs.show.time') }}</th>
<th>{{ __('boilerplate::logs.show.header') }}</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($entries as $key => $entry)
<tr class="{{ $key %2 ? 'even' : 'odd' }}">
<td class="px-2">
<span class="badge badge-pill bg-purple">
{{ $entry->env }}
</span>
</td>
<td class="px-2">
<span class="badge badge-pill level-{{ $entry->level }}">
{!! $entry->level() !!}
</span>
</td>
<td class="px-2">
<span class="badge badge-pill bg-secondary">
{{ $entry->datetime->format('H:i:s') }}
</span>
</td>
<td class="text-sm">
{{ $entry->header }}
</td>
<td class="text-right px-2">
@if ($entry->hasStack())
<a class="btn btn-xs btn-default" role="button" data-toggle="collapse" href="#log-stack-{{ $key }}" aria-expanded="false" aria-controls="log-stack-{{ $key }}">
Stack
</a>
@endif
</td>
</tr>
@if ($entry->hasStack())
<tr>
<td colspan="5" class="stack">
<div class="stack-content collapse" id="log-stack-{{ $key }}">
{!! preg_replace('`#([0-9]*)\s`', "<br /><strong>#$1</strong> ", $entry->stack()) !!}
</div>
</td>
</tr>
@endif
@endforeach
</tbody>
</table>
</div>
@if ($entries->hasPages())
<div class="panel-footer d-flex justify-content-between align-items-center text-sm">
<span class="pull-right small text-muted mtm">
{{ __('boilerplate::logs.show.page', ['current' => $entries->currentPage(), 'last' => $entries->lastPage()]) }}
</td>
<td class="px-2">
<span class="badge badge-pill level-{{ $entry->level }}">
{!! $entry->level() !!}
</span>
{!! $entries->render() !!}
</div>
</td>
<td class="px-2">
<span class="badge badge-pill bg-secondary">
{{ $entry->datetime->format('H:i:s') }}
</span>
</td>
<td class="text-sm">
{{ $entry->header }}
</td>
<td class="text-right px-2">
@if ($entry->hasStack())
<a class="btn btn-xs btn-default" role="button" data-toggle="collapse" href="#log-stack-{{ $key }}" aria-expanded="false" aria-controls="log-stack-{{ $key }}">
Stack
</a>
@endif
</td>
</tr>
@if ($entry->hasStack())
<tr class="log-stack {{ $key %2 ? 'even' : 'odd' }}">
<td colspan="5" class="stack">
<div class="stack-content collapse" id="log-stack-{{ $key }}">
{!! preg_replace('`#([0-9]*)\s`', "<br /><strong>#$1</strong> ", $entry->stack()) !!}
</div>
</td>
</tr>
@endif
</div>
@endforeach
</tbody>
</table>
</div>
@if ($entries->hasPages())
<div class="panel-footer d-flex justify-content-between align-items-center text-sm">
<span class="pull-right small text-muted mtm">
{{ __('boilerplate::logs.show.page', ['current' => $entries->currentPage(), 'last' => $entries->lastPage()]) }}
</span>
{!! $entries->render() !!}
</div>
@endif
@slot('footer')
<div class="text-muted text-right small">
{!! __('boilerplate::logs.vendor') !!}

View File

@@ -1,182 +1,3 @@
@push('css')
<style>
.table>tbody>tr.even>td {
background: #F7F7F7;
}
.table>tbody>tr.even>td:hover {
background: #F0F0F0;
}
.table>tbody>tr>td.stack {
padding: 0;
}
.stack-content {
padding: 0 20px 10px;
background-color: #FFF;
color: #666;
font-family: consolas,sans-serif;
font-size: 11px;
}
.info-box.level {
display: block;
padding: 0;
margin-bottom: 15px;
min-height: 70px;
background: #fff;
width: 100%;
box-shadow: 0 1px 1px rgba(0,0,0,0.1);
border-radius: 2px;
}
.info-box.level .info-box-text,
.info-box.level .info-box-number,
.info-box.level .info-box-icon > i {
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
}
.info-box.level .info-box-text {
display: block;
font-size: 14px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.info-box.level .info-box-content {
padding: 5px 10px;
margin-left: 70px;
}
.info-box.level .info-box-number {
display: block;
font-weight: bold;
font-size: 18px;
}
.info-box.level .info-box-icon {
border-radius: 2px 0 0 2px;
display: block;
float: left;
height: 70px; width: 70px;
text-align: center;
font-size: 40px;
line-height: 70px;
background: rgba(0,0,0,0.2);
}
.info-box.level .progress {
background: rgba(0,0,0,0.2);
margin: 5px -10px 5px -10px;
height: 2px;
}
.info-box.level .progress .progress-bar {
background: #fff;
}
.info-box.level-empty {
opacity: .6;
-webkit-filter: grayscale(1);
-moz-filter: grayscale(1);
-ms-filter: grayscale(1);
filter: grayscale(1);
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
-webkit-transition-property: -webkit-filter, opacity;
-moz-transition-property: -moz-filter, opacity;
-o-transition-property: filter, opacity;
transition-property: -webkit-filter, -moz-filter, -o-filter, filter, opacity;
}
.info-box.level-empty:hover {
opacity: 1;
-webkit-filter: grayscale(0);
-moz-filter: grayscale(0);
-ms-filter: grayscale(0);
filter: grayscale(0);
}
.level {
padding: 2px 6px;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
border-radius: 2px;
font-size: .9em;
font-weight: 600;
}
.badge.level-all,
.badge.level-emergency,
.badge.level-alert,
.badge.level-critical,
.badge.level-error,
.badge.level-warning,
.badge.level-notice,
.badge.level-info,
.badge.level-debug,
.level, .level i,
.info-box.level-all,
.info-box.level-emergency,
.info-box.level-alert,
.info-box.level-critical,
.info-box.level-error,
.info-box.level-warning,
.info-box.level-notice,
.info-box.level-info,
.info-box.level-debug {
color: #FFF;
}
.label-env {
font-size: .85em;
}
.badge.level-all, .level.level-all, .info-box.level-all {
background-color: #8A8A8A;
}
.badge.level-emergency, .level.level-emergency, .info-box.level-emergency {
background-color: #B71C1C;
}
.badge.level-alert, .level.level-alert, .info-box.level-alert {
background-color: #D32F2F;
}
.badge.level-critical, .level.level-critical, .info-box.level-critical {
background-color: #F44336;
}
.badge.level-error, .level.level-error, .info-box.level-error {
background-color: #FF5722;
}
.badge.level-warning, .level.level-warning, .info-box.level-warning {
background-color: #FF9100;
}
.badge.level-notice, .level.level-notice, .info-box.level-notice {
background-color: #4CAF50;
}
.badge.level-info, .level.level-info, .info-box.level-info {
background-color: #1976D2;
}
.badge.level-debug, .level.level-debug, .info-box.level-debug {
background-color: #90CAF9;
}
.badge.level-empty, .level.level-empty {
background-color: #D1D1D1;
}
.badge.label-env, .label.label-env {
background-color: #6A1B9A;
}
</style>
<link rel="stylesheet" href="{{ mix('logviewer.min.css', 'assets/vendor/boilerplate') }}">
@endpush

View File

@@ -1,8 +1,9 @@
<div class="row">
<div class="col-md-6">
@include('boilerplate::plugins.demo.select2')
@include('boilerplate::plugins.demo.datepicker')
@include('boilerplate::plugins.demo.datetimepicker')
@include('boilerplate::plugins.demo.icheck')
@include('boilerplate::plugins.demo.daterangepicker')
@include('boilerplate::plugins.demo.codemirror')
@include('boilerplate::plugins.demo.fileinput')
@include('boilerplate::plugins.demo.tabs')

View File

@@ -1,24 +1,7 @@
@include('boilerplate::load.codemirror', ['theme' => 'storm'])
@push('js')
<script>
$(function () {
$('#code').codemirror();
})
</script>
@endpush
@component('boilerplate::card', ['color' => 'warning', 'title' => 'CodeMirror'])
Usage :
<pre>
&commat;include('boilerplate::load.codemirror', ['theme' => 'storm'])
&commat;push('js')
&lt;script>
var myCode = $('#code').codemirror();
// To get the value : myCode.getValue();
&lt;/script>
&commat;endpush</pre>
<textarea id="code"><h1>CodeMirror demo</h1>
<pre>&lt;x-boilerplate::codemirror name="code">&lt;php echo "My code"; ?>&lt;/x-boilerplate::codemirror></pre>
<x-boilerplate::codemirror name="code"><h1>CodeMirror demo</h1>
<style>
.color {
color: red;
@@ -29,10 +12,11 @@
alert('demo');
});
</script>
</textarea>
</x-boilerplate::codemirror>
@slot('footer')
<div class="small text-muted text-right">
<a href="https://sebastienheyd.github.io/boilerplate/components/codemirror" target="_blank">component</a> /
<a href="https://sebastienheyd.github.io/boilerplate/plugins/codemirror" target="_blank">plugin</a> /
<a href="https://codemirror.net/" target="_blank">CodeMirror</a>
</div>
@endslot

View File

@@ -58,6 +58,7 @@
@slot('footer')
<div class="small text-muted text-right">
<a href="https://sebastienheyd.github.io/boilerplate/plugins/datatables" target="_blank">plugin</a> /
<a href="https://datatables.net/manual/index">datatables</a>
</div>
@endslot

View File

@@ -2,143 +2,50 @@
<div class="row mb-3">
<div class="col-12">
Usage :
<pre>
&lt;div class="icheck-primary d-inline">
&lt;input type="checkbox" id="checkboxPrimary1">
&lt;label for="checkboxPrimary1">&lt;/label>
&lt;/div></pre>
<pre>&lt;x-boilerplate::icheck name="checkbox" label="My checkbox" /></pre>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group clearfix">
<div class="icheck-primary d-inline">
<input type="checkbox" id="checkboxPrimary1" checked>
<label for="checkboxPrimary1">
</label>
</div>
<div class="icheck-primary d-inline">
<input type="checkbox" id="checkboxPrimary2">
<label for="checkboxPrimary2">
</label>
</div>
<div class="icheck-primary d-inline">
<input type="checkbox" id="checkboxPrimary3" disabled>
<label for="checkboxPrimary3">
Primary checkbox
</label>
</div>
</div>
<div class="col-sm-6 d-flex">
<x-boilerplate::icheck name="c1" label="" class="mb-0" checked />
<x-boilerplate::icheck name="c1" label="" class="mb-0" />
<x-boilerplate::icheck name="c1" label="Primary checkbox" class="mb-0" disabled />
</div>
<div class="col-sm-6">
<div class="form-group clearfix">
<div class="icheck-primary d-inline">
<input type="radio" id="radioPrimary1" name="r1" checked>
<label for="radioPrimary1">
</label>
</div>
<div class="icheck-primary d-inline">
<input type="radio" id="radioPrimary2" name="r1">
<label for="radioPrimary2">
</label>
</div>
<div class="icheck-primary d-inline">
<input type="radio" id="radioPrimary3" name="r1" disabled>
<label for="radioPrimary3">
Primary radio
</label>
</div>
</div>
<div class="col-sm-6 d-flex">
<x-boilerplate::icheck name="r1" type="radio" label="" class="mb-0" checked />
<x-boilerplate::icheck name="r1" type="radio" label="" class="mb-0" />
<x-boilerplate::icheck name="r1" type="radio" label="Primary radio" class="mb-0" disabled />
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group clearfix">
<div class="icheck-danger d-inline">
<input type="checkbox" checked id="checkboxDanger1">
<label for="checkboxDanger1">
</label>
</div>
<div class="icheck-danger d-inline">
<input type="checkbox" id="checkboxDanger2">
<label for="checkboxDanger2">
</label>
</div>
<div class="icheck-danger d-inline">
<input type="checkbox" disabled id="checkboxDanger3">
<label for="checkboxDanger3">
Danger checkbox
</label>
</div>
</div>
<div class="col-sm-6 d-flex">
<x-boilerplate::icheck color="danger" name="c2" label="" class="mb-0" checked />
<x-boilerplate::icheck color="danger" name="c2" label="" class="mb-0" />
<x-boilerplate::icheck color="danger" name="c2" label="Danger checkbox" class="mb-0" disabled />
</div>
<div class="col-sm-6">
<div class="form-group clearfix">
<div class="icheck-danger d-inline">
<input type="radio" name="r2" checked id="radioDanger1">
<label for="radioDanger1">
</label>
</div>
<div class="icheck-danger d-inline">
<input type="radio" name="r2" id="radioDanger2">
<label for="radioDanger2">
</label>
</div>
<div class="icheck-danger d-inline">
<input type="radio" name="r2" disabled id="radioDanger3">
<label for="radioDanger3">
Danger radio
</label>
</div>
</div>
<div class="col-sm-6 d-flex">
<x-boilerplate::icheck color="danger" name="r2" type="radio" label="" class="mb-0" checked />
<x-boilerplate::icheck color="danger" name="r2" type="radio" label="" class="mb-0" />
<x-boilerplate::icheck color="danger" name="r2" type="radio" label="Danger radio" class="mb-0" disabled />
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group clearfix">
<div class="icheck-success d-inline">
<input type="checkbox" checked id="checkboxSuccess1">
<label for="checkboxSuccess1">
</label>
</div>
<div class="icheck-success d-inline">
<input type="checkbox" id="checkboxSuccess2">
<label for="checkboxSuccess2">
</label>
</div>
<div class="icheck-success d-inline">
<input type="checkbox" disabled id="checkboxSuccess3">
<label for="checkboxSuccess3">
Success checkbox
</label>
</div>
</div>
<div class="col-sm-6 d-flex">
<x-boilerplate::icheck color="success" name="c3" label="" class="mb-0" checked />
<x-boilerplate::icheck color="success" name="c3" label="" class="mb-0" />
<x-boilerplate::icheck color="success" name="c3" label="Danger checkbox" class="mb-0" disabled />
</div>
<div class="col-sm-6">
<div class="form-group clearfix">
<div class="icheck-success d-inline">
<input type="radio" name="r3" checked id="radioSuccess1">
<label for="radioSuccess1">
</label>
</div>
<div class="icheck-success d-inline">
<input type="radio" name="r3" id="radioSuccess2">
<label for="radioSuccess2">
</label>
</div>
<div class="icheck-success d-inline">
<input type="radio" name="r3" disabled id="radioSuccess3">
<label for="radioSuccess3">
Success radio
</label>
</div>
</div>
<div class="col-sm-6 d-flex">
<x-boilerplate::icheck color="success" name="r3" type="radio" label="" class="mb-0" checked />
<x-boilerplate::icheck color="success" name="r3" type="radio" label="" class="mb-0" />
<x-boilerplate::icheck color="success" name="r3" type="radio" label="Danger radio" class="mb-0" disabled />
</div>
</div>
@slot('footer')
<div class="text-right small text-muted">
<a href="https://bantikyan.github.io/icheck-bootstrap/">iCheck Bootstrap</a>
<a href="https://sebastienheyd.github.io/boilerplate/components/icheck" target="_blank">component</a> /
<a href="https://bantikyan.github.io/icheck-bootstrap/" target="_blank">iCheck</a>
</div>
@endslot
@endcomponent

View File

@@ -1,81 +1,22 @@
@include('boilerplate::load.select2')
@push('js')
<script>
$(function() {
$(".select2").select2();
});
</script>
@endpush
@component('boilerplate::card', ['color' => 'primary', 'title' => 'Select 2'])
@php($options = ['Alabama', 'Alaska', 'Arizona', 'California', 'Delaware', 'Florida', 'Iowa', 'Oregon', 'Minnesota', 'Tennessee', 'Texas'])
@component('boilerplate::card', ['color' => 'primary', 'title' => 'Select2'])
<div class="row">
<div class="col-12">
Usage :
<pre>
&commat;include('boilerplate::load.select2')
&commat;push('js')
&lt;script>
$('.select2').select2();
&lt;/script>
&commat;endpush</pre>
<pre>&lt;x-boilerplate::select2 name="example" label="Example" :options="['Opt 1', 'Opt 2']" /></pre>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Minimal</label>
<select class="form-control select2" style="width: 100%;">
<option selected="selected">Alabama</option>
<option>Alaska</option>
<option>California</option>
<option>Delaware</option>
<option>Tennessee</option>
<option>Texas</option>
<option>Washington</option>
</select>
</div>
<div class="form-group">
<label>Disabled</label>
<select class="form-control select2" disabled="disabled" style="width: 100%;">
<option selected="selected">Alabama</option>
<option>Alaska</option>
<option>California</option>
<option>Delaware</option>
<option>Tennessee</option>
<option>Texas</option>
<option>Washington</option>
</select>
</div>
@component('boilerplate::components.select2', ['label' => 'Minimal', 'name' => 'select2_dminimal', 'selected' => 1, 'options' => $options, 'allow-clear' => 'true', 'minimum-results-for-search' => 5])@endcomponent
</div>
<div class="col-md-6">
<div class="form-group">
<label>Multiple</label>
<select class="form-control select2" multiple="multiple" data-placeholder="Multiple select" style="width: 100%;">
<option>Alabama</option>
<option>Alaska</option>
<option>California</option>
<option selected>Delaware</option>
<option>Tennessee</option>
<option selected>Texas</option>
<option>Washington</option>
</select>
</div>
<div class="form-group">
<label>Disabled Result</label>
<select class="form-control select2" style="width: 100%;">
<option selected="selected">Alabama</option>
<option>Alaska</option>
<option disabled="disabled">California (disabled)</option>
<option>Delaware</option>
<option>Tennessee</option>
<option>Texas</option>
<option>Washington</option>
</select>
</div>
@component('boilerplate::components.select2', ['label' => 'Multiple', 'name' => 'select2_multiple', 'selected' => [1,3], 'options' => $options, 'multiple' => true])@endcomponent
</div>
</div>
@slot('footer')
<div class="small text-muted text-right">
<a href="https://select2.github.io/">select2</a>
<div class="text-right small text-muted">
<a href="https://sebastienheyd.github.io/boilerplate/components/select2" target="_blank">component</a> /
<a href="https://sebastienheyd.github.io/boilerplate/plugins/select2" target="_blank">plugin</a> /
<a href="https://select2.github.io/" target="_blank">select2</a>
</div>
@endslot
@endcomponent

View File

@@ -1,16 +1,16 @@
@component('boilerplate::card', ['color' => 'info', 'title' => 'TinyMCE'])
Usage :
<pre>
&commat;include('boilerplate::load.tinymce')
&commat;push('js')
&lt;script>
$('#tiny').tinymce({});
&lt;/script>
&commat;endpush</pre>
@component('boilerplate::tinymce') @endcomponent
Usage :
<pre>&lt;x-boilerplate::tinymce name="tinymce">
&lt;h2>TinyMCE demo&lt;/h2>&lt;p>Lorem ipsum dolor sit amet.&lt;/p>
&lt;/x-boilerplate::tinymce></pre>
@component('boilerplate::tinymce', ['name' => 'tinymce'])
<h2>TinyMCE demo</h2><p>Lorem ipsum dolor sit amet.</p>
@endcomponent()
@slot('footer')
<div class="text-muted small text-right">
<a href="https://www.tiny.cloud/docs/" target="_blank">tinyMCE</a>
<div class="text-right small text-muted">
<a href="https://sebastienheyd.github.io/boilerplate/components/tinymce" target="_blank">component</a> /
<a href="https://sebastienheyd.github.io/boilerplate/plugins/tinymce" target="_blank">plugin</a> /
<a href="https://www.tiny.cloud/docs/" target="_blank">TinyMCE</a>
</div>
@endslot
@endcomponent

View File

@@ -21,16 +21,47 @@
</span>
</div>
</div>
<div class="row">
<div class="col-md-6">
@component('boilerplate::card', ['color' => 'orange'])
<div class="d-flex flex-column flex-md-row">
<div id="avatar-wrapper">
<img src="{{ $user->avatar_url }}" class="avatar-img" alt="avatar" />
</div>
<div class="mt-3 mt-md-0 pl-md-3">
<span class="info-box-text">
<p class="mb-0"><strong class="h3">{{ $user->name }}</strong></p>
<p class="">{{ $user->getRolesList() }}</p>
</span>
<span class="info-box-more">
<p>
<a href="mailto:{{ $user->email }}" class="btn btn-default">
<span class="far fa-fw fa-envelope"></span> {{ $user->email }}
</a>
</p>
<p class="mb-0 text-muted">
{{ __('boilerplate::users.profile.subscribedsince', [
'date' => $user->created_at->isoFormat(__('boilerplate::date.lFdY')),
'since' => $user->created_at->diffForHumans()]) }}
</p>
</span>
</div>
</div>
@endcomponent
@component('boilerplate::card', ['title' => __('boilerplate::users.informations')])
@if(Auth::user()->id !== $user->id)
@component('boilerplate::select2', ['name' => 'active', 'label' => 'boilerplate::users.status', 'minimum-results-for-search' => '-1'])
<option value="1" @if (old('active', $user->active) == '1') selected="selected" @endif>@lang('boilerplate::users.active')</option>
<option value="0" @if (old('active', $user->active) == '0') selected="selected" @endif>@lang('boilerplate::users.inactive')</option>
@endcomponent
@endif
<div class="row">
<div class="col-md-6">
@if(Auth::user()->id !== $user->id)
@component('boilerplate::select2', ['name' => 'active', 'label' => 'boilerplate::users.status', 'minimum-results-for-search' => '-1'])
<option value="1" @if (old('active', $user->active) == '1') selected="selected" @endif>@lang('boilerplate::users.active')</option>
<option value="0" @if (old('active', $user->active) == '0') selected="selected" @endif>@lang('boilerplate::users.inactive')</option>
@endcomponent
@endif
</div>
<div class="col-md-6">
@component('boilerplate::input', ['name' => 'email', 'label' => 'boilerplate::users.email', 'value' => $user->email])@endcomponent
</div>
</div>
<div class="row">
<div class="col-md-6">
@component('boilerplate::input', ['name' => 'first_name', 'label' => 'boilerplate::users.firstname', 'value' => $user->first_name])@endcomponent
@@ -39,7 +70,7 @@
@component('boilerplate::input', ['name' => 'last_name', 'label' => 'boilerplate::users.lastname', 'value' => $user->last_name])@endcomponent
</div>
</div>
@component('boilerplate::input', ['name' => 'email', 'label' => 'boilerplate::users.email', 'value' => $user->email])@endcomponent
@endcomponent
</div>
<div class="col-md-6">

View File

@@ -154,3 +154,7 @@
});
</script>
@endpush
@push('css')
<style>.img-circle { border:1px solid #CCC }</style>
@endpush