{% extends 'rama-full-width.html.twig' %}
{% block TITLE %}InforPol NET: Wyszukiwarka domen{% endblock %}
{% block BREADCRUMB %}
<li class="breadcrumb-item active" aria-current="page"><a href='{{ path("domain-search") }}'>Wyszukiwarka domen</a></li>
{% endblock %}
{% block WORK_AREA %}
<div class="container-fluid">
<div class="row">
{% for GRUPA in domeny %}
<div class='col-md-6'>
<div class="card">
<div class="card-header bg-success text-white fw-bold">
{{ GRUPA.nazwa }}
</div>
<div class="card-body">
<table class='table table-condensed table-striped'>
{% for D in GRUPA.pierwsze %}
<tr>
<td data-domain="{{ D.nazwa }}">{{ D.nazwa }}</td>
<td data-domain="{{ D.nazwa }}" class="text-end">{{ D.brutto|number_format(2, ",", " ") }} PLN</td>
<td data-domain="{{ D.nazwa }}" class="td-status text-end">
<div class="spinner-border spinner-border-sm text-danger" role="status"></div>
</td>
</tr>
{% endfor %}
{% for D in GRUPA.drugie %}
<tr class="extended-domain d-none" data-group="{{ GRUPA.nazwa }}">
<td data-domain="{{ D.nazwa }}">{{ D.nazwa }}</td>
<td data-domain="{{ D.nazwa }}" class="text-end">{{ D.brutto|number_format(2, ",", " ") }} PLN</td>
<td data-domain="{{ D.nazwa }}" class="td-status text-end">
<div class="spinner-border spinner-border-sm text-danger" role="status"></div>
</td>
</tr>
{% endfor %}
</table>
</div>
{% if GRUPA.drugie|length > 0 %}
<div class="card-footer text-end bg-success text-white">
<button class='btn btn-warning btnColapseExpand' data-group='{{ GRUPA.nazwa }}' onclick="expandColapseGroup (this);">pokaż więcej...</button>
</div>
{% endif %}
</div>
<br/>
</div>
{% endfor %}
</div>
</div>
{% endblock %}
{% block SCRIPTS %}
<script>
var ERROR_COUNTER = 0;
var DOMENY = [
{% for GRUPA in domeny %}
{% for D in GRUPA.pierwsze %}
{
"nazwa": "{{ D.nazwa }}",
"brutto":{{ D.brutto }},
"netto":{{ D.netto }},
"status": ""
},
{% endfor %}
{% endfor %}
{% for GRUPA in domeny %}
{% for D in GRUPA.drugie %}
{
"nazwa": "{{ D.nazwa }}",
"brutto":{{ D.brutto }},
"netto":{{ D.netto }},
"status": ""
},
{% endfor %}
{% endfor %}
];
function checkDomains (START_INDEX) {
var PARTIA = [];
var END_INDEX = START_INDEX + 50;
if (END_INDEX >= DOMENY.length) {
END_INDEX = DOMENY.length - 1;
}
for (var N = START_INDEX; N <= END_INDEX; N++) {
PARTIA [PARTIA.length] = DOMENY [N];
}
$.ajax ({
type: "POST",
url: "{{ path('domains-check-portions') }}",
data: {
domains: PARTIA
},
error: function (ans) {
ERROR_COUNTER++;
if (ERROR_COUNTER < 3) {
checkDomains (START_INDEX);
} else {
alert ("Wystąpił błąd. Nie udalo się określić dostępności wszystkich domen. Proszę spróbować później.");
}
},
success: function (ans) {
ERROR_COUNTER = 0;
if (ans.status) {
for (var N2 in ans.domains) {
switch (ans.domains [N2].status) {
case "available":
if (ans.domains [N2].cart) {
$(".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>");
} else {
$(".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>");
}
break;
case "taken":
$(".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>");
break;
case "unknown":
$(".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>");
break;
default:
$(".td-status[data-domain='" + ans.domains [N2].nazwa + "']").html (ans.domains [N2].status);
break;
}
}
if (END_INDEX < (DOMENY.length - 1)) {
checkDomains (END_INDEX + 1);
} else {
AJAX_OBJ = null;
console.log ("Koniec sprawdzania");
}
} else {
alert (ans.message);
}
console.log (ans);
}
});
}
function price(F) {
if (F == 0)
return "0,00";
F *= 100;
F = parseInt(F);
F += "";
return F.substr(0, F.length - 2) + "," + F.substr(F.length - 2);
}
function cartAction (domainName, N, B) {
if ($(".btn-action[data-domain='" + domainName + "']").attr ("data-action") == "ADD") {
addToCart (domainName, N, B);
} else {
removeFromCart (domainName);
}
}
function addToCart (domainName, nettoPrice, bruttoPrice) {
$(".btn-action[data-domain='" + domainName + "']").attr ("disabled", true).prepend ("<div class='spinner-border spinner-border-sm text-danger' role='status'></div>");
$.ajax ({
type: "POST",
url: "{{ path ("koszyk-add-domain-2-registartion") }}",
data: {
domain: domainName,
netto: nettoPrice,
brutto: bruttoPrice
},
success: function (ans) {
if (ans.status) {
$("#cart-small-counter").html (ans.count);
if (ans.count == 0) {
$("#cart-button").on ("click", function () { alert ("PUSTY KOSZYK"); }).css ("cursor", "default");
} else {
$("#cart-button").on ("click", function () { document.location.href = "{{ path("cart") }}" }).css ("cursor", "pointer");
}
$(".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");
} else {
alert ("Nie udalo się dołozyć do koszyka :(");
}
console.log (ans);
}
})
}
function removeFromCart (domainName) {
$(".btn-action[data-domain='" + domainName + "']").attr ("disabled", true).prepend ("<div class='spinner-border spinner-border-sm text-danger' role='status'></div>");
$.ajax ({
type: "POST",
url: "{{ path ("koszyk-remove-domain-2-registartion") }}",
data: {
domain: domainName
},
success: function (ans) {
if (ans.status) {
$("#cart-small-counter").html (ans.count);
if (ans.count == 0) {
$("#cart-button").on ("click", function () { alert ("PUSTY KOSZYK"); }).css ("cursor", "default");
} else {
$("#cart-button").on ("click", function () { document.location.href = "{{ path("cart") }}" }).css ("cursor", "pointer");
}
$(".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");
} else {
alert ("Nie udalo się usunąć z koszyka :(");
}
console.log (ans);
}
})
}
function expandColapseGroup (button) {
if (button.innerText == "pokaż więcej...") {
button.innerText = "ukryj więcej...";
$(".extended-domain[data-group='" + $(button).attr ("data-group") + "']").removeClass ("d-none");
} else {
button.innerText = "pokaż więcej...";
$(".extended-domain[data-group='" + $(button).attr ("data-group") + "']").addClass ("d-none");
}
}
{% if domena != "" %}
$(function () {
setTimeout (checkDomains (0), 100);
});
{% endif %}
</script>
{% endblock %}