Editace nabidek.

This commit is contained in:
severak 2020-02-04 14:03:43 +01:00
parent 2051cadbd6
commit 7e1574cc6a
2 changed files with 46 additions and 8 deletions

49
app.php
View File

@ -60,6 +60,7 @@ route('', '/heslo/', function (){
// NABÍDKA
route('GET', '/nabidka/', function ($req){
if (!user()) return redirect('/login/');
/** @var severak\database\rows $rows */
$rows = di('rows');
$items = $rows->page('items', [], ['ord'=>'asc']);
@ -67,11 +68,7 @@ route('GET', '/nabidka/', function ($req){
return render('items', ['items'=>$items]);
});
route('', '/nabidka/pridat/', function ($req){
/** @var Psr\Http\Message\ServerRequestInterface $req */
/** @var severak\database\rows $rows */
$rows = di('rows');
$singletons['nabidka_form'] = function (){
$form = new severak\forms\form(['method'=>'POST']);
$form->field('name', ['required'=>true, 'label'=>'Název']);
$form->field('price', ['type'=>'number', 'label'=>'Cena']);
@ -83,6 +80,17 @@ route('', '/nabidka/pridat/', function ($req){
return $f > 0 || $f < 0;
}, 'Cena nemůže být nulová.');
return $form;
};
route('', '/nabidka/pridat/', function ($req){
if (!user()) return redirect('/login/');
/** @var Psr\Http\Message\ServerRequestInterface $req */
/** @var severak\database\rows $rows */
$rows = di('rows');
/** @var severak\forms\form $form */
$form = di('nabidka_form');
if ($req->getMethod()=='POST') {
$form->fill($req->getParsedBody());
if ($form->validate()) {
@ -99,8 +107,37 @@ route('', '/nabidka/pridat/', function ($req){
return render('form', ['form'=>$form, 'title'=>'Přidat položku']);
});
route('', '/nabidka/upravit/{id}/', function ($req, $params){
if (!user()) return redirect('/login/');
/** @var Psr\Http\Message\ServerRequestInterface $req */
/** @var severak\database\rows $rows */
$rows = di('rows');
/** @var severak\forms\form $form */
$form = di('nabidka_form');
$item = $rows->one('items', $params['id']);
if (!$item) return notFound();
$form->fill($item);
if ($req->getMethod()=='POST') {
$form->fill($req->getParsedBody());
if ($form->validate()) {
$rows->update('items', [
'name'=>$form->values['name'],
'price'=>$form->values['price'],
'note'=>$form->values['note'],
'ord'=>$form->values['ord'],
], $params['id']);
return redirect('/nabidka/');
}
}
return render('form', ['form'=>$form, 'title'=>'Upravit položku']);
});
// TODO - tohle nechceme přes GET
route('', '/nabidka/smazat/{id}', function ($req, $params){
route('', '/nabidka/smazat/{id}/', function ($req, $params){
if (!user()) return redirect('/login/');
/** @var severak\database\rows $rows */
$rows = di('rows');
$rows->delete('items', (int) $params['id']);

View File

@ -4,13 +4,14 @@
<?php if (count($items)) { ?>
<table class="table">
<tr><th>název</th><th>cena</th><th>pozn.</th><th></th></tr>
<tr><th>název</th><th>cena</th><th>pozn.</th><th></th><th></th></tr>
<?php foreach ($items as $item) { ?>
<tr>
<td><?=$item['name']; ?></td>
<td><?=$item['price']; ?>,-</td>
<td><?=$item['note']; ?></td>
<td><a href="/nabidka/smazat/<?=$item['id']; ?>" class="button is-danger" onclick="return confirm('Opravdu chcete položku smazat?')">smazat</a> </td>
<td><a href="/nabidka/upravit/<?=$item['id']; ?>/" class=""><span class="icon"><i class="fas fa-edit"></i></span></a> </td>
<td><a href="/nabidka/smazat/<?=$item['id']; ?>/" class="delete" onclick="return confirm('Opravdu chcete položku smazat?')">smazat</a> </td>
</tr>
<?php } ?>
</table>