Initial import

This commit is contained in:
Admin Nasledstvo
2026-05-01 20:52:04 +03:00
commit ac168868ee
10028 changed files with 2337954 additions and 0 deletions
@@ -0,0 +1,201 @@
<?php
use app\models\Events;
use app\models\PriceObject;
use app\widgets\services\Includes;
/**
* @var Events $model
* @var PriceObject $object
*/
?>
<div class="inner-content p10">
<?php if (empty($model->id)): ?>
<p style="color: darkorange; font-weight: bold">* Формата ще бъде активна след попълването на "Основни
данни"</p>
<?php endif; ?>
<form autocomplete="off" class="<?= empty($model->id) ? 'disabled' : '' ?>">
<div class="row" style="width: 250px">
<label class="require">Време за дневно посещение</label>
<input data-min-h="7" data-max-h="20" type="hidden" name="daily_open_time" id="daily_open_time"
value="<?= $model->daily_open_time ?>">
</div>
<div class="row c4 top15">
<label class="require">Максимален брой посетители за деня</label>
<input data-format="integer" name="max_visitors" style="width: 60px" value="<?= $model->max_visitors ?>">
</div>
<div class="row top15">
<label>Цени</label>
</div>
<div class="top-page-panel c9">
<div class="row c5">
<div onclick="addPrice(this)" data-id="<?= $model->id ?>"
class="btn-ib btn-default">
<i class="la la-plus-circle"></i> Добавяне на цена
</div>
<div id="bDelete" data-model="app\models\PriceObject" onclick="checkDelete(this)"
class="btn-ib btn-default ct disabled">
<i class="la la-trash-o"></i> Изтриване на цена <span id="delCount">(0)</span>
</div>
</div>
<div class="top15">
<table class="cms-table">
<thead>
<tr>
<th class="text-right c1">
<input id="checkAll" onclick="checkAllPositions(this)" title="Избери всички"
class="delete-checkbox <?= sizeof($model->price_objects) == 0 ? 'hide' : '' ?>" type="checkbox">
No
</th>
<th>Текст [bg]</th>
<th>Текст [en]</th>
<th style="width: 100px">Цена</th>
</tr>
</thead>
<tbody id="price_list">
<?php foreach ($model->price_objects as $i => $object): ?>
<tr>
<td class="text-right">
<input onclick="checkSingle(this)"
data-del="<?= $object->id ?>"
class="delete-checkbox"
type="checkbox"
style="top: calc(50% - 10px)">
<span><?= $i + 1 ?></span></td>
<td><input name="price_object[id_<?= $object->id ?>][text_bg]" value="<?= $object->text_bg ?>" type="text"></td>
<td><input name="price_object[id_<?= $object->id ?>][text_en]" value="<?= $object->text_en ?>" type="text"></td>
<td><input name="price_object[id_<?= $object->id ?>][price]" value="<?= $object->price ?>" type="text"
data-format="money"></td>
</tr>
<?php endforeach; ?>
</tbody>
<tr id="empty_row" class="<?= (sizeof($model->price_objects) > 0 ? 'hide' : '') ?>">
<td colspan="4" class="ct"
style="font-size: 14px; padding: 15px; color: var(--base-background-dark); pointer-events: none">
Няма добавени цени
</td>
</tr>
</table>
</div>
</div>
<div class="row c9 top15 flex">
<?= Includes::formButtons('website/events') ?>
</div>
</form>
</div>
<script>
const checkAll = one('#checkAll');
function addPrice(e) {
const price_list = one('#price_list');
const row = document.createElement('tr');
const count = all('#price_list tr').length
one('#empty_row').addClass('hide')
row.innerHTML = `
<td class="text-right">
<input onclick="checkSingle(this)"
data-del
class="delete-checkbox"
type="checkbox"
style="top: calc(50% - 10px)">
<span>${count + 1}</span></td>
<td><input name="price_object[c_${count + 1}][text_bg]" type="text"></td>
<td><input name="price_object[c_${count + 1}][text_en]" type="text"></td>
<td><input name="price_object[c_${count + 1}][price]" type="text" data-format="money"></td>
`;
price_list.appendChild(row);
dataFormat();
checkAll.removeClass('hide')
}
timeRange('#daily_open_time');
let sl = [];
function checkAllPositions(el) {
sl = [];
all('td [data-del]').forEach(e => {
e.checked = el.checked === true;
if (el.checked) {
sl.push(e.dataset.del);
e.parentNode.parentNode.addClass('checked');
} else {
e.parentNode.parentNode.removeClass('checked');
}
})
updateActionButtons();
}
function checkSingle(e) {
if (e.checked) {
sl.push(e.dataset.del);
console.log(sl)
e.parentNode.parentNode.addClass('checked');
} else {
one('#checkAll').checked = false;
e.parentNode.parentNode.removeClass('checked');
const f = sl.indexOf(e.dataset.del);
sl.splice(f, 1);
}
updateActionButtons(e.dataset.del);
}
function updateActionButtons() {
const bDelete = one('#bDelete');
const delCount = one('#delCount');
const c = sl.length;
if (delCount)
delCount.innerText = '(' + c + ')';
if (c > 0) {
if (bDelete)
bDelete.removeClass('disabled');
} else {
if (bDelete)
bDelete.addClass('disabled');
}
}
function checkDelete(e) {
const msg = 'Сигурни ли сте, че искате да изтриете ' + (sl.length > 1 ? 'тези ' + sl.length + ' записа?' : 'този запис?');
modal.confirm(msg, () => {
if(all('[data-del]').length === 0) {
const checkAll = one('#checkAll')
checkAll.checked = false;
checkAll.addClass('hide')
one('#empty_row').removeClass('hide')
}
all('[data-del]').forEach(e => {
if (e.checked)
e.parentNode.parentNode.remove();
});
all('[data-del]').forEach((e, i) => {
const number = e.parentNode.querySelector('span');
number.innerText = (i + 1).toString();
})
const ids = [];
sl.forEach(value => {
if(value) {
ids.push(value);
}
});
sl = [];
updateActionButtons();
if(ids.length > 0) {
request({
url: window.location.href.split('?')[0] + '?o=d',
post: {
ids: JSON.stringify(ids),
model: e.dataset.model
},
done: e => {
window.location.reload()
}
})
}
});
}
</script>