Дата публикации: 05.08.2024 в 10:11

Релиз MoonShine v2.20.0 “Desert Rose”

Danil ShutskyDanil Shutsky
0 комментария

Всех приветствую!

Вышел релиз 2.20.0 “Desert Rose”. 🌙 Расскажу какие нововведения произошли.

Выбор отображаемых полей таблицы

Теперь вы сможете включить режим таблицы при котором на лету будете менять набор отображаемых колонок, выбор будет сохранятся

Чтобы начать пользоваться, достаточно включить режим в ресурсе

protected bool $columnSelection = true;

Или через TableBuilder

TableBuilder::make()->columnSelection('unique-id')

Если вам необходимо исключить поля из выбора, то воспользуйтесь методом columnSelection

Text::make('Name')->columnSelection(false)

Подробности в PR

Режим creatable для BelongsTo

У нас уже был такой режим для BelongsToMany, чтобы сразу добавлять нужные записи для последующего выбора, теперь этот режим присутсвует и для поля BelongsTo

BelongsTo::make()->creatable()

Подробности в PR

Атрибуты для Menu

Теперь вы сможете добавлять свои атрибуты для групп и элементов меню, как на li тег (customAttributes), так и на a тег (linkAttributes)

MenuGroup::make(static fn () => __('moonshine::ui.resource.system'), [
    MenuItem::make(
        static fn () => __('moonshine::ui.resource.admins_title'),
        new MoonShineUserResource()
    )->linkAttributes(['class' => 'group-a-custom-class']),
    MenuItem::make(
        static fn () => __('moonshine::ui.resource.role_title'),
        new MoonShineUserRoleResource()
    )->customAttributes(['class' => 'group-li-custom-class']),
])->customAttributes(['class' => 'group-li-custom-class'])->linkAttributes(['class' => 'group-button-custom-class'])

Подробности в PR

Изменение view для MenuItem/MenuGroup

Вы можете быстро заменить view элемента меню и отобразить его по своему через метод customView

MenuItem::make('Custom', '/')->customView('admin.custom-menu-item'),

Подробности в PR

Markdown изменение конфигурации

Благодря @DissNik поле Markdown стало удобно конфигурировать.

Пример изменения набора элементов toolbar

Markdown::make('Description')
    ->toolbar('toolbar',  ['bold', 'italic', 'strikethrough', 'code', 'quote', 'horizontal-rule'])

Также с помощью метода addOption можно изменить и другие параметры конфигурации

addOption(string $name, string|int|float|bool|array $value)

подробности кастомизации можно найти в пакете easyMde.

Также можно изменить конфигурацию глобально для всех Markdown полей

namespace App\Providers;

use MoonShine\Fields\Markdown;
use MoonShine\Providers\MoonShineApplicationServiceProvider;

class MoonShineServiceProvider extends MoonShineApplicationServiceProvider
{
    public function boot(): void
    {
        parent::boot();

        Markdown::setDefaultOption('toolbar',  ['bold', 'italic', 'strikethrough', 'code', 'quote']);
    }
}        

Подробности в PR

Inline отображение поля

Благодря @DissNik можно изменить отображение полей в строку

Text::make('Text')->horizontal()

Подробности в PR

LineBreak в StackFields и Td

Благодря @AkostDev LineBreak компонент не будет выводиться у первого элемента, тем самым визуально компонент будет выглядеть более эстетично

Подробности в PR

Рубрика BugBusters 🐛

  • MobileBar скрывается если есть TopBar от @DissNik in PR
  • Проблема лишнего запроса при пустом значение поиска от @forest-lynx in PR
  • Поле DateRange в режиме withTime строит запрос без ошибки во время фильтрации от @dev-lnk in PR
  • Экранирование Textarea полей при выводе в MoonShine от @lee-to in PR

https://github.com/moonshine-software/moonshine/compare/2.19.1...2.20.0

ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай