{"id":1608,"date":"2026-05-08T14:17:04","date_gmt":"2026-05-08T12:17:04","guid":{"rendered":"https:\/\/www.lipoveccarpclassic.eu\/?page_id=1608"},"modified":"2026-05-08T15:03:05","modified_gmt":"2026-05-08T13:03:05","slug":"nahlasit-ulovok","status":"publish","type":"page","link":"https:\/\/www.lipoveccarpclassic.sk\/index.php\/nahlasit-ulovok\/","title":{"rendered":"Nahl\u00e1si\u0165 \u00falovok"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1608\" class=\"elementor elementor-1608\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3fe815c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3fe815c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-655dcf7\" data-id=\"655dcf7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5d41d7e elementor-widget elementor-widget-html\" data-id=\"5d41d7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"rybarsky-form\" style=\"max-width: 450px; margin: 20px auto; padding: 25px; background: #ffffff; border: 15px 1px solid #2e7d32; border-radius: 15px; font-family: sans-serif; box-shadow: 0 10px 25px rgba(0,0,0,0.1);\">\n  <h2 style=\"text-align:center; color: #2e7d32; margin-top:0;\">Z\u00e1pis \u00falovku<\/h2>\n  \n  <div style=\"margin-bottom: 15px;\">\n    <label style=\"display:block; margin-bottom: 5px; font-weight: bold;\">T\u00edm:<\/label>\n    <select id=\"team_select\" style=\"width:100%; padding:12px; border:1px solid #ccc; border-radius:8px; font-size:16px;\">\n      <option value=\"\">Na\u010d\u00edtavam zoznam t\u00edmov...<\/option>\n    <\/select>\n  <\/div>\n\n  <div style=\"margin-bottom: 15px;\">\n    <label style=\"display:block; margin-bottom: 5px; font-weight: bold;\">V\u00e1ha ryby (kg):<\/label>\n    <input type=\"number\" id=\"weight_input\" step=\"0.01\" placeholder=\"napr. 15.40\" style=\"width:100%; padding:12px; border:1px solid #ccc; border-radius:8px; font-size:16px;\">\n  <\/div>\n\n  <div style=\"margin-bottom: 20px;\">\n    <label style=\"display:block; margin-bottom: 5px; font-weight: bold;\">Fotka \u00falovku:<\/label>\n    <input type=\"file\" id=\"photo_input\" accept=\"image\/*\" capture=\"environment\" style=\"width:100%; padding:10px; border:1px solid #ccc; border-radius:8px; background: #fdfdfd;\">\n  <\/div>\n\n  <button onclick=\"uploadCatch()\" id=\"submit_btn\" style=\"width:100%; padding:15px; background: #2e7d32; color:white; border:none; border-radius:8px; font-size:18px; font-weight:bold; cursor:pointer;\">\n    ZAZNAMENA\u0164 \u00daLOVOK\n  <\/button>\n  \n  <p id=\"status_msg\" style=\"text-align:center; margin-top:15px; font-weight:bold;\"><\/p>\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@supabase\/supabase-js\"><\/script>\n<script>\n  const URL = 'https:\/\/zalssdlcpokmmlshggtl.supabase.co';\n  const KEY = 'sb_publishable_G8COY3nzRn97jxRp1QoUpQ_IbE7QOZL';\n  const _supabase = supabase.createClient(URL, KEY);\n\n  \/\/ NA\u010c\u00cdTANIE T\u00cdMOV - teraz z tabu\u013eky 'team'\n  async function loadTeams() {\n    console.log(\"Na\u010d\u00edtavam t\u00edmy z tabu\u013eky team...\");\n    const { data, error } = await _supabase\n      .from('team') \n      .select('id, name')\n      .order('name');\n\n    const select = document.getElementById('team_select');\n\n    if (error) {\n      console.error(\"Chyba pri na\u010d\u00edtan\u00ed t\u00edmov:\", error);\n      select.innerHTML = '<option>Chyba pripojenia<\/option>';\n      return;\n    }\n\n    if (data && data.length > 0) {\n      select.innerHTML = '<option value=\"\">-- Vyber t\u00edm --<\/option>';\n      data.forEach(t => {\n        select.innerHTML += `<option value=\"${t.id}\">${t.name}<\/option>`;\n      });\n    } else {\n      select.innerHTML = '<option>V tabu\u013eke team nie s\u00fa d\u00e1ta<\/option>';\n    }\n  }\n\n  \/\/ ODOSLANIE \u00daLOVKU\n  async function uploadCatch() {\n    const teamId = document.getElementById('team_select').value;\n    const weight = document.getElementById('weight_input').value;\n    const file = document.getElementById('photo_input').files[0];\n    const btn = document.getElementById('submit_btn');\n    const msg = document.getElementById('status_msg');\n\n    if (!teamId || !weight) {\n      alert(\"Mus\u00ed\u0161 vybra\u0165 t\u00edm a zada\u0165 v\u00e1hu!\");\n      return;\n    }\n\n    btn.disabled = true;\n    msg.innerText = \"\u23f3 Odosielam \u00falovok...\";\n    msg.style.color = \"blue\";\n\n    let photoUrl = null;\n\n    try {\n      \/\/ 1. Nahranie fotky do Storage bucketu 'ryby'\n      if (file) {\n        const fileName = `${Date.now()}_${file.name}`;\n        const { data: stData, error: stError } = await _supabase.storage\n          .from('ryby')\n          .upload(fileName, file);\n\n        if (stError) throw stError;\n        \n        const { data: { publicUrl } } = _supabase.storage.from('ryby').getPublicUrl(fileName);\n        photoUrl = publicUrl;\n      }\n\n      \/\/ 2. Z\u00e1pis do tabu\u013eky catches\n      const { error: dbError } = await _supabase.from('catches').insert([\n        { \n          team_id: parseInt(teamId), \n          weight: parseFloat(weight), \n          photo_url: photoUrl \n        }\n      ]);\n\n      if (dbError) throw dbError;\n\n      msg.innerText = \"\u2705 \u00daspe\u0161ne ulo\u017een\u00e9!\";\n      msg.style.color = \"green\";\n      document.getElementById('weight_input').value = \"\";\n      document.getElementById('photo_input').value = \"\";\n\n    } catch (err) {\n      console.error(\"Chyba:\", err);\n      msg.innerText = \"\u274c Chyba: \" + err.message;\n      msg.style.color = \"red\";\n    } finally {\n      btn.disabled = false;\n    }\n  }\n\n  loadTeams();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Z\u00e1pis \u00falovku T\u00edm: Na\u010d\u00edtavam zoznam t\u00edmov&#8230; V\u00e1ha ryby (kg): Fotka \u00falovku: ZAZNAMENA\u0164 \u00daLOVOK<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1608","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.lipoveccarpclassic.sk\/index.php\/wp-json\/wp\/v2\/pages\/1608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lipoveccarpclassic.sk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lipoveccarpclassic.sk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lipoveccarpclassic.sk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lipoveccarpclassic.sk\/index.php\/wp-json\/wp\/v2\/comments?post=1608"}],"version-history":[{"count":28,"href":"https:\/\/www.lipoveccarpclassic.sk\/index.php\/wp-json\/wp\/v2\/pages\/1608\/revisions"}],"predecessor-version":[{"id":1638,"href":"https:\/\/www.lipoveccarpclassic.sk\/index.php\/wp-json\/wp\/v2\/pages\/1608\/revisions\/1638"}],"wp:attachment":[{"href":"https:\/\/www.lipoveccarpclassic.sk\/index.php\/wp-json\/wp\/v2\/media?parent=1608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}