Pridavani obsluhy.

This commit is contained in:
severak 2020-03-10 16:24:21 +01:00
parent 4b0ab4f105
commit 5cdfa702ca
3 changed files with 85 additions and 1 deletions

60
app.php
View File

@ -590,3 +590,63 @@ route('POST', '/bar/buy/', function ($req){
// }
// return render('form', ['form'=>$form, 'title'=>'Sklad']);
//});
// OBSLUHA
route('GET', '/obsluha/', function ($req){
if (!user()) return redirect('/login/');
/** @var severak\database\rows $rows */
$rows = di('rows');
$items = $rows->page('users', [], ['name'=>'asc', 'is_active'=>'desc']);
return render('users', ['users'=>$items]);
});
route('', '/obsluha/pridat/', function ($req){
if (!user()) return redirect('/login/');
$user = user();
/** @var Psr\Http\Message\ServerRequestInterface $req */
/** @var severak\database\rows $rows */
$rows = di('rows');
$form = new form(['method'=>'post']);
$form->field('username', ['label'=>'Uživatelské jméno']);
$form->field('password', ['required'=>true, 'type'=>'password', 'label'=>'Heslo']);
$form->field('password_again', ['required'=>true, 'type'=>'password', 'label'=>'Heslo znovu']);
$form->field('name', ['required'=>true, 'type'=>'text', 'label'=>'Jméno']);
$form->field('card_id', ['type'=>'number', 'label'=>'Číslo členské karty', 'id'=>'qrcode']);
$form->field('_sbt', ['label'=>'Přidat', 'type'=>'submit']);
$form->rule('password_again', function ($v, $o){
return $v==$o['password'];
}, 'Hesla se neshodují!');
if ($req->getMethod()=='POST' && $form->fill($req->getParsedBody()) && $form->validate()) {
$duplicateUser = $rows->one('users', ['username'=>$form->values['username'] ]);
if ($duplicateUser) {
$form->error('username', 'Uživatel tohoto jména již v systému je.');
}
$memberId = null;
if ($form->values['card_id']) {
$card = $rows->one('cards', ['id'=>$form->values['card_id'], 'is_active'=>1]);
$memberId = $card['member_id'];
}
if ($form->isValid) {
$rows->insert('users', [
'username' => $form->values['username'],
'name' => $form->values['name'],
'password' => password_hash($form->values['password'], PASSWORD_DEFAULT),
'member_id'=> $memberId
]);
flash('Uživatel přidán.', 'success');
return redirect('/');
}
}
return render('form', ['form'=>$form, 'title'=>'Přidat obsluhu']);
});

View File

@ -48,10 +48,13 @@ CREATE TABLE "members" (
CREATE TABLE "users" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"member_id" integer NULL,
"username" text NOT NULL,
"password" text NOT NULL,
"name" text NOT NULL,
"note" text NOT NULL
"note" text DEFAULT NULL,
"is_active" integer NOT NULL DEFAULT '1',
"is_superuser" integer NOT NULL DEFAULT '0'
);
CREATE UNIQUE INDEX "users_usename" ON "users" ("username");

21
tpl/users.php Normal file
View File

@ -0,0 +1,21 @@
<?=render('_header', ['title'=>'Obsluha']);?>
<h1>Obsluha</small></h1>
<?php if (count($users)) { ?>
<table class="table">
<tr><th>jméno</th><th></th></tr>
<?php foreach ($users as $item) { ?>
<tr>
<td><?=$item['name']; ?><br><small><?=$item['note']; ?></small></td>
<td><a href="/obsluha/upravit/<?=$item['id']; ?>/" class=""><span class="icon"><i class="fas fa-edit"></i></span></a> </td>
</tr>
<?php } ?>
</table>
<?php } else {
echo '<p>(nenalezeny žádné položky)</p><br>';
} ?>
<a href="/obsluha/pridat/" class="button is-primary">Přidat obsluhu</a>
<?=render('_footer');?>