work on create calendar

This commit is contained in:
2022-05-13 13:49:24 +02:00
parent 7859439f0b
commit 4be3efc619
10 changed files with 128 additions and 44 deletions

View File

@@ -43,6 +43,9 @@ class EntityToJsonTransformer implements DataTransformerInterface
public function reverseTransform($value)
{
dump($value);
dump($this->type);
dump($this->multiple);
$denormalized = json_decode($value, true);
if ($this->multiple) {

View File

@@ -13,6 +13,7 @@ namespace Chill\MainBundle\Repository;
use Chill\MainBundle\Entity\Location;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query\ResultSetMappingBuilder;
use Doctrine\Persistence\ManagerRegistry;
/**
@@ -37,4 +38,18 @@ class LocationRepository extends ServiceEntityRepository
{
return $this->findBy(['active' => true, 'availableForUsers' => true]);
}
/**
* fetch location by name
*
* @return array|Location[]
*/
public function findByName(string $name, string $lang): array
{
$rsm = new ResultSetMappingBuilder($this->getEntityManager());
$rsm->addRootEntityFromClassMetadata(Location::class);
$sql = "SELECT "
}
}

View File

@@ -6,6 +6,7 @@ import { appMessages } from 'ChillMainAssets/vuejs/PickEntity/i18n';
const i18n = _createI18n(appMessages);
let appsOnPage = new Map();
let appsPerInput = new Map();
function loadDynamicPicker(element) {
@@ -23,6 +24,8 @@ function loadDynamicPicker(element) {
null : [ JSON.parse(input.value) ]
)
;
console.log('picked at startup', picked);
console.log('input', input);
if (!isMultiple) {
if (input.value === '[]'){
@@ -78,13 +81,14 @@ function loadDynamicPicker(element) {
.mount(el);
appsOnPage.set(uniqId, app);
appsPerInput.set(input.name, app);
});
}
document.addEventListener('show-hide-show', function(e) {
loadDynamicPicker(e.detail.container)
})
});
document.addEventListener('show-hide-hide', function(e) {
console.log('hiding event caught')
@@ -95,7 +99,23 @@ document.addEventListener('show-hide-hide', function(e) {
appsOnPage.delete(uniqId);
}
})
})
});
document.addEventListener('pick-entity-type', function (e) {
console.log('pick entity event', e);
if (!appsPerInput.has(e.detail.name)) {
console.error('no app with this name');
return;
}
const app = appsPerInput.get(e.detail.name);
if (e.detail.action === 'add') {
app.addNewEntity(e.detail.entity);
} else if (e.detail.action === 'remove') {
app.removeEntity(e.detail.entity);
} else {
console.error('action not supported: '+e.detail.action);
}
});
document.addEventListener('DOMContentLoaded', function(e) {
loadDynamicPicker(document)

View File

@@ -231,6 +231,6 @@
{% endblock %}
{% block pick_entity_dynamic_widget %}
<input type="hidden" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %} data-input-uniqid="{{ form.vars['uniqid'] }}"/>
<input type="hidden" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value|escape('html_attr') }}" {% endif %} data-input-uniqid="{{ form.vars['uniqid'] }}"/>
<div data-module="pick-dynamic" data-types="{{ form.vars['types']|json_encode }}" data-multiple="{{ form.vars['multiple'] }}" data-uniqid="{{ form.vars['uniqid'] }}"></div>
{% endblock %}