templates/wyszukiwarka-domen.html.twig line 1

Open in your IDE?
  1. {% extends 'rama-full-width.html.twig' %}
  2. {% block TITLE %}InforPol NET: Wyszukiwarka domen{% endblock %}
  3. {% block BREADCRUMB %}
  4.     <li class="breadcrumb-item active" aria-current="page"><a href='{{ path("domain-search") }}'>Wyszukiwarka domen</a></li>
  5. {% endblock %}
  6. {% block WORK_AREA %}
  7.     <div class="container-fluid">
  8.         <div class="row">
  9.             {% for GRUPA in domeny %}
  10.                 <div class='col-md-6'>
  11.                     <div class="card">
  12.                         <div class="card-header bg-success text-white fw-bold">
  13.                             {{ GRUPA.nazwa }}
  14.                         </div>
  15.                         <div class="card-body">
  16.                             <table class='table table-condensed table-striped'>
  17.                                 {% for D in GRUPA.pierwsze %}
  18.                                     <tr>
  19.                                         <td data-domain="{{ D.nazwa }}">{{ D.nazwa }}</td>
  20.                                         <td data-domain="{{ D.nazwa }}" class="text-end">{{ D.brutto|number_format(2, ",", " ") }} PLN</td>
  21.                                         <td data-domain="{{ D.nazwa }}" class="td-status text-end">
  22.                                             <div class="spinner-border spinner-border-sm text-danger" role="status"></div>
  23.                                         </td>
  24.                                     </tr>
  25.                                 {% endfor %}
  26.                                 {% for D in GRUPA.drugie %}
  27.                                     <tr class="extended-domain d-none" data-group="{{ GRUPA.nazwa }}">
  28.                                         <td data-domain="{{ D.nazwa }}">{{ D.nazwa }}</td>
  29.                                         <td data-domain="{{ D.nazwa }}" class="text-end">{{ D.brutto|number_format(2, ",", " ") }} PLN</td>
  30.                                         <td data-domain="{{ D.nazwa }}" class="td-status text-end">
  31.                                             <div class="spinner-border spinner-border-sm text-danger" role="status"></div>
  32.                                         </td>
  33.                                     </tr>
  34.                                 {% endfor %}
  35.                             </table>
  36.                         </div>
  37.                         {% if GRUPA.drugie|length > 0 %}
  38.                             <div class="card-footer text-end bg-success text-white">
  39.                                 <button class='btn btn-warning btnColapseExpand' data-group='{{ GRUPA.nazwa }}' onclick="expandColapseGroup (this);">pokaż więcej...</button>
  40.                             </div>
  41.                         {% endif %}
  42.                     </div>   
  43.                     <br/>
  44.                 </div>
  45.             {% endfor %}
  46.         </div>
  47.     </div>
  48. {% endblock %}
  49. {% block SCRIPTS %}
  50.     <script>
  51.         var ERROR_COUNTER = 0;
  52.         var DOMENY = [
  53.         {% for GRUPA in domeny %}
  54.             {% for D in GRUPA.pierwsze %}
  55.                 {
  56.                 "nazwa": "{{ D.nazwa }}",
  57.                         "brutto":{{ D.brutto }},
  58.                         "netto":{{ D.netto }},
  59.                         "status": ""
  60.                 },
  61.             {% endfor %}    
  62.         {% endfor %}
  63.         {% for GRUPA in domeny %}
  64.             {% for D in GRUPA.drugie %}
  65.                 {
  66.                 "nazwa": "{{ D.nazwa }}",
  67.                         "brutto":{{ D.brutto }},
  68.                         "netto":{{ D.netto }},
  69.                         "status": ""
  70.                 },
  71.             {% endfor %}    
  72.         {% endfor %}
  73.             ];
  74.             function checkDomains (START_INDEX) {
  75.             var PARTIA = [];
  76.             var END_INDEX = START_INDEX + 50;
  77.             if (END_INDEX >= DOMENY.length) {
  78.             END_INDEX = DOMENY.length - 1;
  79.             }
  80.             for (var N = START_INDEX; N <= END_INDEX; N++) {
  81.             PARTIA [PARTIA.length] = DOMENY [N];
  82.             }
  83.             $.ajax ({
  84.             type: "POST",
  85.                     url: "{{ path('domains-check-portions') }}",
  86.                     data: {
  87.                     domains: PARTIA
  88.                     },
  89.                     error: function (ans) {
  90.                     ERROR_COUNTER++;
  91.                     if (ERROR_COUNTER < 3) {
  92.                     checkDomains (START_INDEX);
  93.                     } else {
  94.                     alert ("Wystąpił błąd. Nie udalo się określić dostępności wszystkich domen. Proszę spróbować później.");
  95.                     }
  96.                     },
  97.                     success: function (ans) {
  98.                     ERROR_COUNTER = 0;
  99.                     if (ans.status) {
  100.                     for (var N2 in ans.domains) {
  101.                     switch (ans.domains [N2].status) {
  102.                     case "available":
  103.                             if (ans.domains [N2].cart) {
  104.                     $(".td-status[data-domain='" + ans.domains [N2].nazwa + "']").html ("<button class='btn-sm btn btn-warning btn-action' data-action='REMOVE' onclick='cartAction (\"" + ans.domains [N2].nazwa + "\", " + ans.domains [N2].netto + ", " + ans.domains [N2].brutto + ");' data-domain='" + ans.domains [N2].nazwa + "'><span class='bi-trash'></span> Usuń z koszyka</button>");
  105.                     } else {
  106.                     $(".td-status[data-domain='" + ans.domains [N2].nazwa + "']").html ("<button class='btn-sm btn btn-success btn-action' data-action='ADD' onclick='cartAction (\"" + ans.domains [N2].nazwa + "\", " + ans.domains [N2].netto + ", " + ans.domains [N2].brutto + ");' data-domain='" + ans.domains [N2].nazwa + "'><span class='bi-cart'></span> Dodaj do koszyka</button>");
  107.                     }
  108.                     break;
  109.                     case "taken":
  110.                             $(".td-status[data-domain='" + ans.domains [N2].nazwa + "']").html ("<button class='btn-sm btn btn-danger btn-action' data-domain='" + ans.domains [N2].nazwa + "'><span class='bi-slash-circle'></span> Zajęta</button>");
  111.                     break;
  112.                     case "unknown":
  113.                             $(".td-status[data-domain='" + ans.domains [N2].nazwa + "']").html ("<button class='btn-sm btn btn-secondary btn-action' data-domain='" + ans.domains [N2].nazwa + "'><span class='bi-question-circle'></span> Stan niedostępny</button>");
  114.                     break;
  115.                     default:
  116.                             $(".td-status[data-domain='" + ans.domains [N2].nazwa + "']").html (ans.domains [N2].status);
  117.                     break;
  118.                     }
  119.                     }
  120.                     if (END_INDEX < (DOMENY.length - 1)) {
  121.                     checkDomains (END_INDEX + 1);
  122.                     } else {
  123.                     AJAX_OBJ = null;
  124.                     console.log ("Koniec sprawdzania");
  125.                     }
  126.                     } else {
  127.                     alert (ans.message);
  128.                     }
  129.                     console.log (ans);
  130.                     }
  131.             });
  132.             }
  133.             function price(F) {
  134.             if (F == 0)
  135.                     return "0,00";
  136.             F *= 100;
  137.             F = parseInt(F);
  138.             F += "";
  139.             return F.substr(0, F.length - 2) + "," + F.substr(F.length - 2);
  140.             }
  141.             function cartAction (domainName, N, B) {
  142.             if ($(".btn-action[data-domain='" + domainName + "']").attr ("data-action") == "ADD") {
  143.             addToCart (domainName, N, B);
  144.             } else {
  145.             removeFromCart (domainName);
  146.             }
  147.             }
  148.             function addToCart (domainName, nettoPrice, bruttoPrice) {
  149.             $(".btn-action[data-domain='" + domainName + "']").attr ("disabled", true).prepend ("<div class='spinner-border spinner-border-sm text-danger' role='status'></div>");
  150.             $.ajax ({
  151.             type: "POST",
  152.                     url: "{{ path ("koszyk-add-domain-2-registartion") }}",
  153.                     data: {
  154.                     domain: domainName,
  155.                             netto: nettoPrice,
  156.                             brutto: bruttoPrice
  157.                     },
  158.                     success: function (ans) {
  159.                     if (ans.status) {
  160.                     $("#cart-small-counter").html (ans.count);
  161.                     if (ans.count == 0) {
  162.                     $("#cart-button").on ("click", function () { alert ("PUSTY KOSZYK"); }).css ("cursor", "default");
  163.                     } else {
  164.                     $("#cart-button").on ("click", function () { document.location.href = "{{ path("cart") }}" }).css ("cursor", "pointer");
  165.                     }
  166.                     $(".btn-action[data-domain='" + domainName + "']").removeAttr ("disabled").html ("<span class='bi-trash'></span> Usuń z koszyka").removeClass ("btn-success").addClass ("btn-warning").attr ("data-action", "REMOVE");
  167.                     } else {
  168.                     alert ("Nie udalo się dołozyć do koszyka :(");
  169.                     }
  170.                     console.log (ans);
  171.                     }
  172.             })
  173.             }
  174.             function removeFromCart (domainName) {
  175.             $(".btn-action[data-domain='" + domainName + "']").attr ("disabled", true).prepend ("<div class='spinner-border spinner-border-sm text-danger' role='status'></div>");
  176.             $.ajax ({
  177.             type: "POST",
  178.                     url: "{{ path ("koszyk-remove-domain-2-registartion") }}",
  179.                     data: {
  180.                     domain: domainName
  181.                     },
  182.                     success: function (ans) {
  183.                     if (ans.status) {
  184.                     $("#cart-small-counter").html (ans.count);
  185.                     if (ans.count == 0) {
  186.                     $("#cart-button").on ("click", function () { alert ("PUSTY KOSZYK"); }).css ("cursor", "default");
  187.                     } else {
  188.                     $("#cart-button").on ("click", function () { document.location.href = "{{ path("cart") }}" }).css ("cursor", "pointer");
  189.                     }
  190.                     $(".btn-action[data-domain='" + domainName + "']").removeAttr ("disabled").html ("<span class='bi-cart'></span> Dodaj do koszyka").removeClass ("btn-warning").addClass ("btn-success").attr ("data-action", "ADD");
  191.                     } else {
  192.                     alert ("Nie udalo się usunąć z koszyka :(");
  193.                     }
  194.                     console.log (ans);
  195.                     }
  196.             })
  197.             }
  198.             function expandColapseGroup (button) {
  199.             if (button.innerText == "pokaż więcej...") {
  200.             button.innerText = "ukryj więcej...";
  201.             $(".extended-domain[data-group='" + $(button).attr ("data-group") + "']").removeClass ("d-none");
  202.             } else {
  203.             button.innerText = "pokaż więcej...";
  204.             $(".extended-domain[data-group='" + $(button).attr ("data-group") + "']").addClass ("d-none");
  205.             }
  206.             }
  207.         {% if domena != "" %}
  208.             $(function () {
  209.             setTimeout (checkDomains (0), 100);
  210.             });
  211.         {% endif %}
  212.     </script>
  213. {% endblock %}