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']); // 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" ( CREATE TABLE "users" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"member_id" integer NULL,
"username" text NOT NULL, "username" text NOT NULL,
"password" text NOT NULL, "password" text NOT NULL,
"name" 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"); 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');?>