Files
app/dist/assets/AttendanceLocation-CgiSeTVU.js
Simon f7466f0667 fix: mobilni responzivita tabulek AuditLog a Users
- admin-table-wrapper -> admin-table-responsive (konzistentni s Projects)
- pridany admin-card-body wrapper (padding 18px/12px)
- nova CSS trida admin-form-row-5 pro 5-sloupcove filtry s breakpointy
- odstranen ::after gradient overlay z admin-table-wrapper
- odstraneny inline styly (whiteSpace, gridTemplateColumns)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 10:59:14 +01:00

2 lines
6.3 KiB
JavaScript

import{j as a,m as b}from"./vendor-animation-0s3FMHwK.js";import{g as z,h as F,r as c,L as M}from"./vendor-react-BVs3cwbi.js";import{a as D,u as E,c as R}from"./index-DR4BORa4.js";import{F as O}from"./Forbidden-D25jV3Oq.js";import{b as T,f as x}from"./attendanceHelpers-D6sLEw0q.js";import"./vendor-utils-Dyr8OjFr.js";const C="/api/admin";function Y(){const m=D(),{hasPermission:w}=E(),p=z(),{id:j}=F(),[h,k]=c.useState(!0),[e,$]=c.useState(null),u=c.useRef(null),l=c.useRef(null);c.useEffect(()=>{(async()=>{try{const v=await(await R(`${C}/attendance.php?action=location&id=${j}`,{})).json();v.success?$(v.data.record):(m.error("Záznam nebyl nalezen"),p("/attendance/admin"))}catch{m.error("Nepodařilo se načíst data"),p("/attendance/admin")}finally{k(!1)}})()},[j,m,p]),c.useEffect(()=>{if(!e||h)return;const r=e.arrival_lat&&e.arrival_lng,i=e.departure_lat&&e.departure_lng;if(!(r||i)||!u.current)return;const P=async()=>{if(window.L){N();return}const s=document.createElement("link");s.rel="stylesheet",s.href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css",document.head.appendChild(s);const n=document.createElement("script");n.src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js",n.onload=N,document.body.appendChild(n)},N=()=>{l.current&&l.current.remove();const s=window.L,n=s.map(u.current);l.current=n,s.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:"© OpenStreetMap contributors"}).addTo(n);const d=[],g=[];r&&g.push({lat:parseFloat(e.arrival_lat),lng:parseFloat(e.arrival_lng),type:"arrival",label:"Příchod",time:x(e.arrival_time),accuracy:e.arrival_accuracy||0}),i&&g.push({lat:parseFloat(e.departure_lat),lng:parseFloat(e.departure_lng),type:"departure",label:"Odchod",time:x(e.departure_time),accuracy:e.departure_accuracy||0}),g.forEach(t=>{const y=t.type==="arrival"?"#22c55e":"#ef4444";s.circleMarker([t.lat,t.lng],{radius:10,fillColor:y,color:"#fff",weight:2,opacity:1,fillOpacity:.8}).addTo(n).bindPopup(`<strong>${t.label}</strong><br>${t.time}<br>Přesnost: ${Math.round(t.accuracy)}m`),t.accuracy>0&&s.circle([t.lat,t.lng],{radius:t.accuracy,fillColor:y,color:y,weight:1,opacity:.3,fillOpacity:.1}).addTo(n),d.push([t.lat,t.lng])}),d.length===1?n.setView(d[0],16):d.length>1&&n.fitBounds(d,{padding:[50,50]})};return P(),()=>{l.current&&(l.current.remove(),l.current=null)}},[e,h]);const _=r=>{if(!r)return"—";const i=new Date(r);return`${i.getDate()}.${i.getMonth()+1}.${i.getFullYear()} ${x(r)}`};if(!w("attendance.admin"))return a.jsx(O,{});if(h)return a.jsxs("div",{className:"admin-skeleton",style:{padding:0,gap:"1.5rem"},children:[a.jsx("div",{className:"admin-skeleton-row",style:{justifyContent:"space-between"},children:a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem"},children:[a.jsx("div",{className:"admin-skeleton-line",style:{width:"32px",height:"32px",borderRadius:"8px"}}),a.jsx("div",{className:"admin-skeleton-line h-8",style:{width:"200px"}})]})}),a.jsx("div",{className:"admin-card",children:a.jsx("div",{className:"admin-skeleton-line",style:{width:"100%",height:"300px",borderRadius:"8px"}})}),a.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.25rem"},children:[0,1].map(r=>a.jsx("div",{className:"admin-card",children:a.jsxs("div",{className:"admin-skeleton",style:{gap:"1rem"},children:[a.jsx("div",{className:"admin-skeleton-line h-8",style:{width:"50%"}}),a.jsx("div",{className:"admin-skeleton-line w-full"}),a.jsx("div",{className:"admin-skeleton-line w-3/4"})]})},r))})]});if(!e)return null;const f=e.arrival_lat&&e.arrival_lng,o=e.departure_lat&&e.departure_lng,L=f||o,A=e.shift_date.substring(0,7);return a.jsxs("div",{children:[a.jsxs(b.div,{className:"admin-page-header",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4},children:[a.jsx("div",{children:a.jsx("h1",{className:"admin-page-title",children:"Poloha záznamu"})}),a.jsx("div",{className:"admin-page-actions",children:a.jsx(M,{to:`/attendance/admin?month=${A}`,className:"admin-btn admin-btn-secondary",children:"← Zpět na správu"})})]}),a.jsxs(b.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.1},children:[a.jsx("div",{className:"admin-card-header",children:a.jsxs("h2",{className:"admin-card-title",children:[e.user_name," — ",T(e.shift_date)]})}),a.jsxs("div",{className:"admin-card-body",children:[L&&a.jsx("div",{ref:u,className:"attendance-location-map"}),a.jsxs("div",{className:"attendance-location-grid",children:[a.jsxs("div",{className:`attendance-location-card ${f?"":"empty"}`,children:[a.jsx("h3",{className:"attendance-location-title",children:"Příchod"}),a.jsx("div",{className:"attendance-location-time",children:e.arrival_time?_(e.arrival_time):"—"}),f?a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"attendance-location-address",children:e.arrival_address||a.jsx("em",{children:"Adresa nezjištěna"})}),a.jsxs("div",{className:"attendance-location-coords",children:["GPS: ",e.arrival_lat,", ",e.arrival_lng,e.arrival_accuracy&&` (přesnost: ${Math.round(e.arrival_accuracy)}m)`]}),a.jsx("a",{href:`https://www.google.com/maps?q=${e.arrival_lat},${e.arrival_lng}`,target:"_blank",rel:"noopener noreferrer",className:"admin-btn admin-btn-secondary admin-btn-sm",style:{marginTop:"0.5rem"},children:"Otevřít v Google Maps"})]}):a.jsx("div",{className:"attendance-location-address",children:a.jsx("em",{children:"Poloha nebyla zaznamenána"})})]}),(o||e.departure_time)&&a.jsxs("div",{className:`attendance-location-card ${o?"":"empty"}`,children:[a.jsx("h3",{className:"attendance-location-title",children:"Odchod"}),a.jsx("div",{className:"attendance-location-time",children:e.departure_time?_(e.departure_time):"—"}),o?a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"attendance-location-address",children:e.departure_address||a.jsx("em",{children:"Adresa nezjištěna"})}),a.jsxs("div",{className:"attendance-location-coords",children:["GPS: ",e.departure_lat,", ",e.departure_lng,e.departure_accuracy&&` (přesnost: ${Math.round(e.departure_accuracy)}m)`]}),a.jsx("a",{href:`https://www.google.com/maps?q=${e.departure_lat},${e.departure_lng}`,target:"_blank",rel:"noopener noreferrer",className:"admin-btn admin-btn-secondary admin-btn-sm",style:{marginTop:"0.5rem"},children:"Otevřít v Google Maps"})]}):a.jsx("div",{className:"attendance-location-address",children:a.jsx("em",{children:"Poloha nebyla zaznamenána"})})]})]})]})]})]})}export{Y as default};