Your IP : 18.190.207.235


Current Path : /data/web/virtuals/51568/virtual/www/knihovna/menu/
Upload File :
Current File : /data/web/virtuals/51568/virtual/www/knihovna/menu/menu-detail.php

<?php  
if (file_exists("funkce/DbConnect.php")){
  require("funkce/DbConnect.php");
}
if (file_exists("../funkce/DbConnect.php")){
  require("../funkce/DbConnect.php");
}

   if (IsSet($_REQUEST["id"])) {
     $id = $_REQUEST["id"];
     $prikaz = "SELECT id, parentid, menu, anchor, poradi FROM kn_menu WHERE id= $id";
   } else {
     $prikaz = "SELECT id, parentid, menu, anchor, poradi FROM kn_menu WHERE (poradi) IN  
       (select min(poradi) from kn_menu where parentid = 0) 
       and parentid = 0";
   }  
   
  if ($result = mysqli_query($conn, $prikaz)){
  if ($radek = mysqli_fetch_object($result)) {
  $id = (IsSet($radek->id)) ? $radek->id : 0;
  $menu = (IsSet($radek->menu)) ? $radek->menu : "";
  $anchor = (IsSet($radek->anchor)) ? $radek->anchor : "";
  $parentid = (IsSet($radek->parentid)) ? $radek->parentid : 0;   
  $poradi = (IsSet($radek->poradi)) ? $radek->poradi : 0;  
?>

<div id="karta<?=$id;?>" class="card">
    <div class="card-header">Položka menu: <span class="font-weight-bold">id = <?=$id?></span></div>
    <div class="card-body">


            <div class="form-group row ">
                <label for="menuF" class="col-sm-2 col-form-label">Text v menu</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" name="menuF" id="menuF"  
                           value="<?=$menu?>"
                        placeholder="napiš text, který se bude zobrazovat v menu" required>
                </div>
            </div>

            <div class="form-group row ">
                <label for="odkazF" class="col-sm-2 col-form-label">Odkaz</label>
                <div class="col-sm-10">
                    <input type="text" class="form-control" name="odkazF" id="odkazF"
                      value="<?=$anchor?>"
                        placeholder="zadej odkaz na soubor, který se volbou menu vyvolá">
                    <small class="text-muted form-text">jestliže bude mít tato položka potomky, odkaz neuváděj</small>
                </div>
            </div>

            <div class="form-group row ">
                <label class="col-sm-2 col-form-label"></label>
                <div class="col-sm-10">
                    <div class="form-row align-items-center">
                        <div class="col-md-6 mb-3">
                            <label for="poradiF">Pořadí</label>
                            <input type="number" class="form-control" name="poradiF" id="poradiF"
                                value="<?=$poradi?>"
                                placeholder="pořadí mezi položkami stejné úrovně" required>
                            <small class="text-muted form-text">lze např. zadávat 10, 20, 35, ...</small>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label for="rodicF">ID rodiče</label>
                            <input type="number" class="form-control" name="rodicF" id="rodicF"
                                value="<?=$parentid?>"
                                placeholder="zadej ID rodiče">
                            <small class="text-muted form-text">touto hodnotou nastavíš/změníš pozici položky v
                                menu</small>
                        </div>
                    </div>
                </div>
            </div>
            <!-- DELETE CONFIRM -->
            <div id="deleteConfirm" class="alert alert-warning d-none">
                 <h5>Chystáš se smazat položku menu. Chceš pokračovat?</h5>
                 <div class="row">
                 <div class="col-8"></div>
                      <div class="col-2 text-right"><button class="btn btn-danger" name="btnConfirmDelete"
                        id="btnConfirmDelete" onclick="deleteChild(<?=$id?>)"><i class="far fa-trash-alt"></i> Smazat</button></div>
                      <div class="col-2 text-right"><button class="btn btn-success" name="btnCancelDelete" 
                      id="btnCancelDelete"><i class="fas fa-undo"></i> Storno</button></div>
                 </div>
            </div>
            <!-- TLACITKA STANDARD -->
            <div id="btnRowStd" class="form-group row ">
                <div class="col-3 text-left">
                    <button class="btn btn-outline-danger" name="btnDelete"
                        id="btnDelete"><i class="far fa-trash-alt"></i> Smazat</button>
                </div>
                <div class="col-9 text-right">
                    <button class="btn btn-outline-primary mr-3" name="btnNewChild" onclick="addNewChild(<?=$id?>)"
                         id="btnNewChild"><i class="far fa-file"></i> Nová položka menu</button>
                    <button class="btn btn-primary" name="btnSave" id="btnSave" onclick="saveChanges(<?=$id?>)"><i class="far fa-save"></i> Uložit změny</button>
                </div>
            </div>   
    </div>
</div>

<? }   
} 
?>

<script>
  $(document).ready(function() {
    
    $("#btnDelete").on("click", function(){
       $("#deleteConfirm").removeClass("d-none");
       $("#btnRowStd").addClass("d-none");
       
    });
    
    $("#btnCancelDelete").on("click", function(){
       $("#deleteConfirm").addClass("d-none");
       $("#btnRowStd").removeClass("d-none");       
    });
    
});

  function deleteChild(id){         
      $.ajax({
          url: "menu/menu-edit-delete.php",
          type: 'POST',
          dataType: 'HTML',
          data: {
              'id': id                
          },
          success: function (result) {
          console.log(result);
              $.ajax({
                  url: "menu/menu-zobraz.php",
                  type: 'POST',
                  dataType: 'HTML',
                  data: {               
                  },
                  success: function (result) {
                      $("#deleteConfirm").addClass("d-none");
                      $("#btnRowStd").removeClass("d-none");   
                      $('#menuZobraz').html(result);
                  }
              })  
          }
      })
  }
  function addNewChild(idParent){ 
    $("#addingChild").attr('new-value', 1);      
    $.ajax({
        url: "menu/menu-edit-new.php",
        type: 'POST',
        dataType: 'HTML',
        data: {
            'idParent': idParent                
        },
        success: function (result) {
           $('#menuDetail').html(result); 
        }
    })               
  }  
  
  function saveChanges(id){
 let parentid = $("#rodicF").val(),
     menu = $("#menuF").val(),
     odkazF = $("#odkazF").val();
     poradi = $("#poradiF").val(),
     chyba = false,
     errMsg = "";
     menu = menu.trim();
     if (odkazF > '') {odkazF = odkazF.trim();}
     $("#err").addClass("d-none");
     if (menu === "") {
       chyba = true;
       errMsg = "Položka menu musí obsahovat text!";
     }
     if (poradi<1) {
       if (chyba) { errMsg += "<br>" + "Pořadí mělo být kladné číslo."}
       else {
         errMsg = "Pořadí mělo být kladné číslo.";
         chyba = true;
       }
     }
     if (chyba){
         $("#err").removeClass("d-none");
         $("#err").html(errMsg);
     } else {
        $.ajax({
            url: "menu/menu-edit-update-insert.php",
            type: 'POST',
            dataType: 'HTML',
            data: {
                'akce': 'e', 
                'id': id, 
                'idParent': parentid,
                'menu': menu,
                'anchor': odkazF,
                'poradi': poradi               
            },
            success: function (result) {                
                $.ajax({
                    url: "menu/menu-zobraz.php",
                    type: 'POST',
                    dataType: 'HTML',
                    data: {              
                    },
                    success: function (result) {
                       $('#menuZobraz').html(result);
                       menuRowClick(id);
                    }
                })               
            }
        })
     }
        
  } 
</script>