| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- namespace Dcat\Admin\Models\Repositories;
- use Dcat\Admin\Admin;
- use Dcat\Admin\Extension as AbstractExtension;
- use Dcat\Admin\Form;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Repositories\Repository;
- use Dcat\Admin\Show;
- use Dcat\Admin\Support\Composer;
- class Extension extends Repository
- {
- public function get(Grid\Model $model)
- {
- $data = [];
- foreach (Admin::getExtensions() as $class) {
- $data[] = $this->each($class::make());
- }
- return $data;
- }
- /**
- * @param AbstractExtension $extension
- *
- * @return array
- */
- protected function each(AbstractExtension $extension)
- {
- $property = Composer::parse($extension->composerJson());
- $config = (array) config('admin-extensions.'.$extension->getName());
- return [
- 'id' => $extension::NAME,
- 'alias' => $extension->getName(),
- 'name' => $property->name,
- 'version' => Composer::getVersion($property->name),
- 'description' => $property->description,
- 'authors' => $property->authors,
- 'require' => $property->require,
- 'require_dev' => $property->require_dev,
- 'homepage' => $property->homepage,
- 'enable' => $extension::enabled(),
- 'config' => (array) $extension->config(),
- 'imported' => $config['imported'] ?? false,
- 'imported_at' => $config['imported_at'] ?? null,
- ];
- }
- public function edit(Form $form): array
- {
- return [];
- }
- public function update(Form $form)
- {
- $id = $form->builder()->getResourceId();
- $extension = Admin::getExtensions()[$id] ?? null;
- if (!$extension) {
- return false;
- }
- $attributes = $form->getUpdates();
- $enable = (bool) ($attributes['enable'] ?? false);
- Admin::enableExtenstion($extension, $enable);
- return true;
- }
- /**
- * Get data before update.
- *
- * @param Form $form
- *
- * @return array
- */
- public function getDataWhenUpdating(Form $form): array
- {
- return [];
- }
- public function detail(Show $show): array
- {
- return [];
- }
- public function destroy(Form $form, array $deletingData)
- {
- }
- public function store(Form $form)
- {
- }
- public function getDataWhenDeleting(Form $form): array
- {
- return [];
- }
- }
|