<?php Admin::model('App\\Marker')->title('Маркеры')->display(function () { $display = AdminDisplay::datatables(); $display->with('markerGroups'); $display->filters([]); $display->columns([Column::string('name')->label('Имя'), Column::lists('markerGroups.name')->label('Входит в группы'), Column::image('ico')->label('Иконка')]); return $display; })->create(function () { $form = AdminForm::form(); $form->items([FormItem::columns()->columns([[FormItem::text('name', 'Имя'), FormItem::image('ico', 'Иконка'), FormItem::checkbox('showadd', 'Показывать в форме добавления рецепта')->defaultValue(0), FormItem::text('sortorder', 'Порядок сортировки')], [FormItem::text('metakey', 'Meta Keywords'), FormItem::text('metadesk', 'Meta Description'), FormItem::text('slug', 'Slug (если пустое, генерируется реалтайм из имени)'), FormItem::text('title', 'Title')]])]); return $form; })->edit(function () { $form = AdminForm::form(); $form->items([FormItem::columns()->columns([[FormItem::text('name', 'Имя'), FormItem::image('ico', 'Иконка'), FormItem::checkbox('showadd', 'Показывать в форме добавления рецепта'), FormItem::text('sortorder', 'Порядок сортировки')], [FormItem::text('metakey', 'Meta Keywords'), FormItem::text('metadesk', 'Meta Description'), FormItem::text('slug', 'Slug (если пустое, генерируется реалтайм из имени)'), FormItem::text('title', 'Title')]])]); return $form; });
return ''; }), Column::custom()->label('Текст')->callback(function ($instance) { return str_limit($instance->text, 180); }), Column::count('attachments')->label('Вложений'), Column::datetime('date')->label('Создан')->format('d.m.Y в H:i'), Column::datetime('created_at')->label('Импортирован')->format('d.m.Y в H:i')]); $mainDisplay->actions([Column::action('post_import')->value('Импортировать последние 10 записей')->icon('fa-share')->callback(function ($collection) { \App\Imports\Post::import(0, 10); }), Column::action('post_trashed')->value('Удалить записи')->icon('fa-times')->callback(function (\Illuminate\Database\Eloquent\Collection $collections) { if ($collections) { /** @var \App\Post $collection */ foreach ($collections as $collection) { $collection->delete(); } } })]); $mainDisplay->order([3, 'desc']); $secondaryDisplay = AdminDisplay::datatables(); $secondaryDisplay->apply(function ($query) { $query->onlyTrashed(); }); $secondaryDisplay->columns([Column::checkbox(), Column::string('id'), Column::custom()->label('Картинка')->callback(function ($instance) { $attachment = $instance->attachments()->first(); if (!is_null($attachment)) { if ($attachment->type === 'album') { $attachment = $attachment->childs()->first(); } return "<img class='thumbnail' width='80px' src='{$attachment->srcs['image_small']}'>"; } return ''; }), Column::custom()->label('Текст')->callback(function ($instance) { return str_limit($instance->text, 180); }), Column::datetime('date')->label('Создан')->format('d.m.Y в H:i'), Column::datetime('created_at')->label('Импортирован')->format('d.m.Y в H:i'), Column::datetime('deleted_at')->label('Удален')->format('d.m.Y в H:i')]);