Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
0 / 0 |
CRAP | |
100.00% |
0 / 0 |
| VariantController | |
100.00% |
1 / 1 |
|
100.00% |
7 / 7 |
9 | |
100.00% |
0 / 0 |
| index | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| create | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| store | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| show | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| edit | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| update | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| destroy | |
100.00% |
1 / 1 |
3 | |
100.00% |
0 / 0 |
|||
| <?php | |
| namespace Mtc\Shop\Http\Controllers\Admin; | |
| use App\Http\Controllers\Controller; | |
| use App\Http\Requests; | |
| use Illuminate\Http\Request; | |
| use Mtc\Core\Admin\Builder; | |
| use Mtc\Core\Admin\ItemBuilder; | |
| use Mtc\Core\Admin\Node; | |
| use Mtc\Shop\Http\Requests\Admin\StoreVariant; | |
| use Mtc\Shop\Product; | |
| use Mtc\Shop\Variant; | |
| class VariantController extends Controller | |
| { | |
| /** | |
| * Display a listing of the resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function index(Product $product) | |
| { | |
| return (new ItemBuilder('product', $product, $product->node)) | |
| ->tab('variants.index', 'shop::admin.variants.index', [ | |
| 'variants' => Variant::whereProductId($product->id)->paginate(), | |
| 'buttons' => [ | |
| [ | |
| 'label' => 'Add Variant', | |
| 'href' => route('variants.create', $product), | |
| 'class' => 'btn btn-primary', | |
| ] | |
| ] | |
| ]); | |
| } | |
| /** | |
| * Show the form for creating a new resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function create(Product $product) | |
| { | |
| return (new ItemBuilder('variants', new Variant(['product_id' => $product->id]), new Node)) | |
| ->routeParams([$product->id]) | |
| ->view('shop::admin.variants.form'); | |
| } | |
| /** | |
| * Store a newly created resource in storage. | |
| * | |
| * @param \Illuminate\Http\Request $request | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function store(StoreVariant $request, Product $product, Variant $variant, Node $node) | |
| { | |
| $variant->product_id = $product->id; | |
| $variant->fill($request->input('variant', []))->save(); | |
| $node->fill($request->input('node', [])); | |
| $variant->node()->save($node); | |
| return redirect(route('variants.index', $product)); | |
| } | |
| /** | |
| * Display the specified resource. | |
| * | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function show($id) | |
| { | |
| // | |
| } | |
| /** | |
| * Show the form for editing the specified resource. | |
| * | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function edit(Product $product, Variant $variant) | |
| { | |
| return (new ItemBuilder('variants', $variant, $variant->node)) | |
| ->routeParams([$product->id]) | |
| ->view('shop::admin.variants.form'); | |
| } | |
| /** | |
| * Update the specified resource in storage. | |
| * | |
| * @param \Illuminate\Http\Request $request | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function update(StoreVariant $request, Product $product, Variant $variant) | |
| { | |
| $variant->fill($request->input('variant', []))->save(); | |
| $variant->node->fill($request->input('node', [])); | |
| $variant->node->save(); | |
| $product->fill($request->input('item', [])); | |
| $product->node->fill($request->input('node', []))->save(); | |
| $product->save(); | |
| return redirect(route('variants.index', $product)); | |
| } | |
| /** | |
| * Remove the specified resource from storage. | |
| * | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function destroy(Request $request, Product $product, Variant $variant) | |
| { | |
| if ($variant->node) { | |
| $variant->node->delete(); | |
| } | |
| $variant->delete(); | |
| if ($request->ajax()) { | |
| return response('success', 200); | |
| } | |
| $request->session()->flash('success', "{$variant->title} has been deleted."); | |
| return redirect()->back(); | |
| } | |
| } |