/** @test */ public function it_adds_myself_to_current_modelitem_on_create() { $modelItem = Mockery::mock('SleepingOwl\\Admin\\Models\\ModelItem'); $modelItem->shouldReceive('addFilter')->once(); ModelItem::$current = $modelItem; $filter = new Filter('field'); }
/** * Render column cell * * @param $instance * @param int $totalCount * @param string $content * @return string */ public function render($instance, $totalCount, $content = null) { if (is_null($content)) { $content = $this->valueFromInstance($instance, $this->name); } $content = $this->renderAppends($instance, $totalCount, $content); $reflect = new \ReflectionClass($instance); return (string) view('admin::_partials/columns/column')->with('value', $this->getValue($instance, $this->name))->with('content', $content)->with('editable', (bool) $this->inlineEdit)->with('modelAlias', $this->modelItem->getAlias())->with('attributes', $instance->getAttributes())->with('name', $this->name); }
/** * @param $modelName * @param $id * @return Redirect */ public function destroy($modelName, $id) { $instance = $this->modelRepository->getInstance($id); if (!$this->modelItem->isDeletable($instance)) { return $this->redirectToTable(); } try { $this->modelRepository->destroy($id); } catch (QueryException $e) { return $this->redirectToTable()->withMessage(Lang::get('admin::lang.table.delete-error')); } return $this->redirectToTable(); }
/** * @param $name * @param WithJoinEloquentBuilder $query * @return bool */ protected function inWith($name, WithJoinEloquentBuilder $query) { $eagerLoads = $this->modelItem->getWith(); foreach ($eagerLoads as $with) { if (strpos($name, $with) !== 0) { continue; } $relation = $this->instance->{$with}(); if ($query->isRelationSupported($relation)) { return true; } } return false; }
/** @test */ public function it_render_table_attributes() { $this->admin->htmlBuilder->shouldReceive('attributes')->with([])->once()->andReturn('table-attributes'); $this->admin->htmlBuilder->shouldReceive('attributes')->with(['data-ordering' => 'false'])->once()->andReturn('table-attributes-with-ordering'); $modelItem = new ModelItem('\\Foo\\Bar\\Model'); $attr = $modelItem->renderTableAttributes(); $this->assertEquals('table-attributes', $attr); $modelItem = new ModelItem('\\ModelItemTestClass'); $attr = $modelItem->renderTableAttributes(); $this->assertEquals('table-attributes-with-ordering', $attr); }