Current Path : /data/web/virtuals/51568/virtual/www/menu/ |
Current File : /data/web/virtuals/51568/virtual/www/menu/accounts-detail.php |
<?php if (session_id() == '') { session_start(); } require_once("../class/pdoDB.class.php"); $pdo = new pdoDB(); $id = isset($_REQUEST["id"]) ? $_REQUEST["id"] : 0; require_once("../class/account.class.php"); $account = unserialize($_SESSION["account"]); $jeSupervizor = ($account->overPrava(7)) ? true : false; $dotaz = "SELECT `id`, `name`, `longname`, `enabled` , `email` FROM `accounts` where id = :id"; if ($rec = $pdo->queryOne($dotaz, array(':id' => $id))){ ?> <div class="card rounded-0 shadow mr-2"> <div class="card-header bg-primary text-white h5 rounded-0">Detail uživatele</div> <div class="card-body"> <div class="form-group row align-items-center"> <label for="accname" class="col-sm-4 col-form-label">Přihlašovací jméno</label> <div class="col-sm-8"> <input type="text" class="form-control rounded-0" name="accname" id="accname" placeholder="zadej jednoznačné jméno" value="<?= $rec->name?>" required> </div> </div> <div class="form-group row align-items-center"> <label for="longname" class="col-sm-4 col-form-label">Plné jméno</label> <div class="col-sm-8"> <input type="text" class="form-control rounded-0" name="longname" id="longname" placeholder="jméno příjmení" required value="<?= $rec->longname?>"> </div> </div> <div class="form-group row align-items-center"> <label for="email" class="col-sm-4 col-form-label">Email</label> <div class="col-sm-8"> <input type="text" class="form-control rounded-0" name="email" id="email" placeholder="email" required value="<?= $rec->email?>"> </div> </div> <div class="form-group row align-items-center"> <div class="col-sm-4"> </div> <div class="col-sm-8"> <div class="form-check"> <input class="form-check-input" type="checkbox" name="aktivni" id="aktivni" value="aktivni" <?php echo ($rec->enabled) ? "checked" : "";?>> <label class="form-check-label" for="aktivni">uživatel je aktivní</label> </div> </div> </div> <hr> <div class="form-group row align-items-top ml-2"> <div class="col-sm-6"> <?php $prava = "SELECT ox.id, ox.opravneni, ax.stav from opr_opravneni ox left join opr_accounts ax on ox.id = ax.opravneni_id and ax.account_id = :id ". ((!$jeSupervizor) ? "where ox.id <> 7" : ""). " order by opravneni"; $pocet = 0; $opravneni = $pdo->queryAll($prava, array(':id' => $id)); forEach($opravneni as $pr) { $pocet++; if ($pocet % 2 == 1){ ?> <div> <input class="form-check-input" type="checkbox" name="prava" id="prava<?=$pr->id?>" value="<?=$pr->id?>" <?php echo (trim($pr->stav) == '1') ? "checked" : "";?>> <label class="form-check-label" for="prava<?=$pr->id?>"><?=$pr->opravneni?></label> </div> <?php } } ?> </div> <div class="col-sm-6"> <?php $pocet = 0; $opravneni = $pdo->queryAll($prava, array(':id' => $id)); forEach($opravneni as $pr) { $pocet++; if ($pocet % 2 == 0){ ?> <div> <input class="form-check-input" type="checkbox" name="prava" id="prava<?=$pr->id?>" value="<?=$pr->id?>" <?php echo (trim($pr->stav) == '1') ? "checked" : "";?>> <label class="form-check-label" for="prava<?=$pr->id?>"><?=$pr->opravneni?></label> </div> <?php } }?> </div> </div> </div> <div class="card-footer"> <div class="form-group row align-items-center mb-0"> <div class="d-flex"> <div class="d-flex flex-row"> <button class="btn btn-warning rounded-0 text-nowrap" name="btnNewPass" id="btnNewPass" onclick="accountNewPass(<?=$rec->id?>)">Generuj heslo</button> <div class="pl-2 mr-2"> <small class="text-muted form-text">Vygeneruje odkaz na vytvoření nového <br>hesla a odešle na email uživatele.</small> </div> </div> </div> <div id="infoAlert" class="ml-auto d-none"></div> <div class="ml-auto"> <button class="btn btn-primary rounded-0" name="btnAccSave" id="btnAccSave" onclick="accountSave(<?=$rec->id?>)">Ulož změny</button> </div> </div> <div id="errAlert" class="alert alert-danger d-none rounded-0"></div> </div> </div> </div> <?php }?> <script> function IsEmail(email) { const regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if (!regex.test(email)) { return false; } else { return true; } } function accountSave(id) { $("#infoAlert").addClass("d-none"); let accname = $("#accname").val(), longname = $("#longname").val(), email = $("#email").val(), aktivni = document.getElementById('aktivni').checked, prava = document.getElementsByName("prava"), pravastav = [], errAlert = []; prava.forEach((val) => pravastav.push({ 'id': val.value, 'stav': val.checked })); if (accname.length < 1) { errAlert.push("Přihlašovací jméno je povinné."); } if (longname.length < 1) { errAlert.push("Plné jméno je povinné."); } if ((aktivni) && (!IsEmail(email))) { errAlert.push("S emailem není něco v pořádku."); } if (errAlert.length > 0) { /* let msg = ''; errAlert.forEach(x => msg += `<li>${x}</li>`) $("#errAlert").html(msg).removeClass("d-none");*/ let htx = `<div class="alert alert-danger mb-0 rounded-0 alert-dismissible fade show" role="alert" style="padding-bottom: 6px; padding-top: 6px;"> Něco je špatně. <button type="button" class="close" data-dismiss="alert" aria-label="Close" style="padding-bottom: 6px; padding-top: 6px;"> <span aria-hidden="true">×</span> </button> </div> `; $("#infoAlert").html(htx).removeClass('d-none'); } else { $.ajax({ url: "menu/accounts-detail-save.php", type: 'POST', dataType: 'HTML', data: { 'id': id, 'name': accname, 'longname': longname, 'email': email, 'enabled': aktivni, 'prava': JSON.stringify(pravastav), 'akce': 'e', }, success: function (result) { $.ajax({ url: "menu/accounts-seznam.php", type: 'POST', dataType: 'HTML', data: {}, success: function (result) { $("#accountsSeznam").html(result); let htx = `<div class="alert alert-success mb-0 rounded-0 alert-dismissible fade show" role="alert" style="padding-bottom: 6px; padding-top: 6px;"> Uloženo. <button type="button" class="close" data-dismiss="alert" aria-label="Close" style="padding-bottom: 6px; padding-top: 6px;"> <span aria-hidden="true">×</span> </button> </div> `; $("#infoAlert").html(htx).removeClass('d-none'); } }); } }); } } function accountNewPass(id) { $.ajax({ url: "menu/accounts-newpass-send.php", type: 'POST', dataType: 'HTML', data: { 'id': id, }, success: function (result) { let htx = `<div class="alert alert-success mb-0 rounded-0 alert-dismissible fade show" role="alert" style="padding-bottom: 6px; padding-top: 6px;"> Odesláno. <button type="button" class="close" data-dismiss="alert" aria-label="Close" style="padding-bottom: 6px; padding-top: 6px;"> <span aria-hidden="true">×</span> </button> </div> `; $("#infoAlert").html(htx).removeClass('d-none'); } }); } </script>