{"id":41,"date":"2025-06-17T15:37:00","date_gmt":"2025-06-17T13:37:00","guid":{"rendered":"https:\/\/selena.eu\/?page_id=41"},"modified":"2025-06-17T15:37:30","modified_gmt":"2025-06-17T13:37:30","slug":"flex","status":"publish","type":"page","link":"https:\/\/selena.eu\/de\/flex\/","title":{"rendered":"Flex"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"41\" class=\"elementor elementor-41\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-44e99ba e-flex e-con-boxed e-con e-parent\" data-id=\"44e99ba\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f0ddae2 elementor-widget elementor-widget-html\" data-id=\"f0ddae2\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Generator kodu FLEX D 23 -->\r\n<div id=\"generator-container\">\r\n  <h2>Konfigurator oprawy<\/h2>\r\n\r\n  <label for=\"variantSelect\">Wybierz wariant wykonania:<\/label>\r\n  <select id=\"variantSelect\">\r\n    <option value=\"\">-- wybierz --<\/option>\r\n  <\/select>\r\n\r\n  <div id=\"generatedCode\" style=\"margin-top: 1em;\"><\/div>\r\n\r\n  <button id=\"addToList\" style=\"display:none; margin-top: 1em;\">Dodaj do listy<\/button>\r\n\r\n  <h3>Lista wybranych opraw:<\/h3>\r\n  <ul id=\"productList\"><\/ul>\r\n\r\n  <button id=\"downloadPdf\" style=\"display:none;\">Pobierz PDF<\/button>\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\r\n<script>\r\n  const userGroup = window.pg_user_group || \"public\";\r\n\r\n  \/\/ Pobierz nazw\u0119 rodziny z URL (ostatni segment)\r\n  const pathSegments = window.location.pathname.split('\/').filter(Boolean);\r\n  const familyKey = pathSegments[pathSegments.length - 1];\r\n\r\n  const variantSelect = document.getElementById(\"variantSelect\");\r\n  const generatedCodeDiv = document.getElementById(\"generatedCode\");\r\n  const addToListBtn = document.getElementById(\"addToList\");\r\n  const productListUl = document.getElementById(\"productList\");\r\n  const downloadBtn = document.getElementById(\"downloadPdf\");\r\n\r\n  const productList = [];\r\n\r\n  async function loadData() {\r\n    try {\r\n      const res = await fetch('\/wp-content\/uploads\/oprawy.json');\r\n      const data = await res.json();\r\n      if (!data.families[familyKey]) {\r\n        generatedCodeDiv.innerHTML = \"Brak danych dla tej rodziny opraw.\";\r\n        return;\r\n      }\r\n\r\n      const variants = data.families[familyKey].variants;\r\n      for (const label in variants) {\r\n        const opt = document.createElement(\"option\");\r\n        opt.value = label;\r\n        opt.textContent = label;\r\n        variantSelect.appendChild(opt);\r\n      }\r\n\r\n      variantSelect.addEventListener(\"change\", () => {\r\n        const selected = variantSelect.value;\r\n        if (!selected) {\r\n          generatedCodeDiv.textContent = \"\";\r\n          addToListBtn.style.display = \"none\";\r\n          return;\r\n        }\r\n\r\n        const variant = variants[selected];\r\n        const ourCode = data.families[familyKey].prefix + variant.code;\r\n        const partnerCode = variant[userGroup];\r\n\r\n        const output = userGroup !== \"public\" && partnerCode\r\n          ? `Kod zam\u00f3wieniowy (${userGroup.toUpperCase()}): <strong>${partnerCode}<\/strong>`\r\n          : `Nasz numer zam\u00f3wieniowy: <strong>${ourCode}<\/strong>`;\r\n\r\n        generatedCodeDiv.innerHTML = output;\r\n        addToListBtn.style.display = \"inline-block\";\r\n      });\r\n\r\n      addToListBtn.addEventListener(\"click\", () => {\r\n        const selected = variantSelect.value;\r\n        if (!selected) return;\r\n\r\n        const variant = variants[selected];\r\n        const ourCode = data.families[familyKey].prefix + variant.code;\r\n        const partnerCode = variant[userGroup];\r\n        const codeDisplay = userGroup !== \"public\" && partnerCode ? partnerCode : ourCode;\r\n\r\n        productList.push(codeDisplay);\r\n        const li = document.createElement(\"li\");\r\n        li.textContent = codeDisplay;\r\n\r\n        const delBtn = document.createElement(\"button\");\r\n        delBtn.textContent = \"Usu\u0144\";\r\n        delBtn.style.marginLeft = \"10px\";\r\n        delBtn.onclick = () => {\r\n          const idx = productList.indexOf(codeDisplay);\r\n          if (idx > -1) productList.splice(idx, 1);\r\n          li.remove();\r\n          if (productList.length === 0) downloadBtn.style.display = \"none\";\r\n        };\r\n\r\n        li.appendChild(delBtn);\r\n        productListUl.appendChild(li);\r\n        downloadBtn.style.display = \"inline-block\";\r\n      });\r\n\r\n      downloadBtn.addEventListener(\"click\", () => {\r\n        const { jsPDF } = window.jspdf;\r\n        const doc = new jsPDF();\r\n        doc.setFontSize(14);\r\n        doc.text(\"Lista opraw:\", 10, 10);\r\n        productList.forEach((code, idx) => {\r\n          doc.text(`${idx + 1}. ${code}`, 10, 20 + idx * 10);\r\n        });\r\n        doc.save(\"lista-opraw.pdf\");\r\n      });\r\n\r\n    } catch (error) {\r\n      generatedCodeDiv.innerHTML = \"B\u0142\u0105d \u0142adowania danych.\";\r\n    }\r\n  }\r\n\r\n  loadData();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Konfigurator oprawy Wybierz wariant wykonania: &#8212; wybierz &#8212; Dodaj do listy Lista wybranych opraw: Pobierz PDF<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-41","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/selena.eu\/de\/wp-json\/wp\/v2\/pages\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/selena.eu\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/selena.eu\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/selena.eu\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/selena.eu\/de\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":0,"href":"https:\/\/selena.eu\/de\/wp-json\/wp\/v2\/pages\/41\/revisions"}],"wp:attachment":[{"href":"https:\/\/selena.eu\/de\/wp-json\/wp\/v2\/media?parent=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}