Your IP : 18.219.91.251


Current Path : /data/web/virtuals/51568/virtual/www/menu/
Upload File :
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">&times;</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">&times;</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">&times;</span>
            </button>
          </div> `;
                $("#infoAlert").html(htx).removeClass('d-none');
            }
        });
    }
</script>