Browse Source

Added product addition notifier after added to cart

pull/5/head
Nafies Luthfi 9 years ago
parent
commit
ff9f0b38fa
  1. 2
      app/Cart/TransactionDraft.php
  2. 8
      app/Http/Controllers/CartController.php
  3. 7
      resources/lang/id/cart.php
  4. 4
      resources/views/cart/index.blade.php
  5. 3
      resources/views/cart/partials/draft-item-list.blade.php
  6. 6
      resources/views/cart/partials/product-search-box.blade.php
  7. 5
      resources/views/cart/partials/product-search-result-box.blade.php
  8. 10
      tests/Feature/TransactionEntryTest.php

2
app/Cart/TransactionDraft.php

@ -33,7 +33,7 @@ abstract class TransactionDraft
public function items()
{
return collect($this->items);
return collect($this->items)->sortBy('name');
}
public function addItem(Item $item)

8
app/Http/Controllers/CartController.php

@ -62,8 +62,14 @@ class CartController extends Controller
$item = new Item($product, $request->qty);
$this->cart->addItemToDraft($draftKey, $item);
if ($request->has('query'));
flash(trans('cart.item_added', [
'product_name' => $product->name . ' (' . $product->unit->name . ')',
'qty' => $request->qty,
]));
if ($request->has('query')) {
return redirect()->route('cart.show', [$draftKey, 'query' => $request->get('query')]);
}
return back();
}

7
resources/lang/id/cart.php

@ -2,6 +2,9 @@
return [
// Labels
'product_search' => 'Cari Produk',
'list' => 'Transaksi',
'product_search' => 'Cari Produk',
'list' => 'Transaksi',
'item_added' => 'Produk <strong>:product_name</strong> telah ditambahkan <strong>:qty item</strong>',
'min_search_query' => 'Min. 3 huruf...',
'search_box_cleanup' => 'Bersihkan Pencarian',
];

4
resources/views/cart/index.blade.php

@ -27,6 +27,7 @@
@endif
@endsection
@if ($draft)
@section('script')
<script>
(function() {
@ -58,4 +59,5 @@
});
})();
</script>
@endsection
@endsection
@endif

3
resources/views/cart/partials/draft-item-list.blade.php

@ -19,9 +19,10 @@
</tr>
</thead>
<tbody>
<?php $no = 1 ?>
@forelse($draft->items() as $key => $item)
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $no }} <?php $no++ ?></td>
<td>
{{ $item->name }} <br>
<small class="text-primary">({{ $item->unit }})</small>

6
resources/views/cart/partials/product-search-box.blade.php

@ -2,9 +2,11 @@
<div class="panel-heading">
<form method="get" action="{{ route('cart.show', $draft->draftKey) }}">
<label for="query">{{ trans('cart.product_search') }}</label>
<input type="text" id="query" name="query" value="{{ request('query') }}">
<input type="text" id="query" name="query" value="{{ request('query') }}" placeholder="{{ trans('cart.min_search_query') }}">
<input type="submit" value="{{ trans('cart.product_search') }}" class="btn btn-sm">
{{ link_to_route('cart.show', 'Bersihkan Pencarian', [$draft->draftKey], ['class' => 'btn btn-sm']) }}
@if ($queriedProducts)
{{ link_to_route('cart.show', trans('cart.search_box_cleanup'), [$draft->draftKey], ['class' => 'btn btn-sm']) }}
@endif
</form>
</div>
<div id="product-search-result-box">

5
resources/views/cart/partials/product-search-result-box.blade.php

@ -21,6 +21,11 @@
<input type="number" id="qty-{{ $product->id }}" style="width:50px" name="qty" value="1" min="1">
<input type="submit" id="add-product-{{ $product->id }}" value="Tambah">
</form>
@if ($loop->last)
{{ link_to_route('cart.show', trans('cart.search_box_cleanup'), [$draftKey], [
'class' => 'btn btn-sm btn-default pull-right'
]) }}
@endif
</td>
</tr>
@empty

10
tests/Feature/TransactionEntryTest.php

@ -90,8 +90,18 @@ class TransactionEntryTest extends BrowserKitTestCase
$this->type(2, 'qty');
$this->press('add-product-'.$product1->id);
$this->see(trans('cart.item_added', [
'product_name' => $product1->name . ' (' . $product1->unit->name . ')',
'qty' => 2
]));
$this->type(3, 'qty');
$this->press('add-product-'.$product2->id);
$this->see(trans('cart.item_added', [
'product_name' => $product2->name . ' (' . $product2->unit->name . ')',
'qty' => 3
]));
$this->seePageIs(route('cart.show', [$draft->draftKey, 'query' => 'testing']));
$this->assertTrue($cart->draftHasItem($draft, $product1));
$this->assertTrue($cart->draftHasItem($draft, $product2));

Loading…
Cancel
Save