chg: [genericElements] Perform ajax call when filtering with context

pull/37/head
mokaddem 2020-12-10 15:37:39 +01:00
parent 79e34052c8
commit 3d647680a0
5 changed files with 24 additions and 19 deletions

View File

@ -82,7 +82,7 @@
function submitForm(api, url) {
return api.fetchAndPostForm(url, {})
.then(() => {
reloadElement('/meta-templates', $('#table-container-<?= $tableRandomValue ?>'), $('#table-container-<?= $tableRandomValue ?> table.table'))
UI.reload('/meta-templates', $('#table-container-<?= $tableRandomValue ?>'), $('#table-container-<?= $tableRandomValue ?> table.table'))
})
}
}())

View File

@ -1,12 +1,10 @@
<?php
if (!isset($data['requirement']) || $data['requirement']) {
$onClickActive = false;
if (!empty($data['popover_url'])) {
$onClick = sprintf(
'onClick="populateAndLoadModal(%s)"',
sprintf("'%s'", h($data['popover_url']))
);
$onClickActive = true;
}
if (empty($onClick)) {
if (!empty($data['onClick']) || empty($data['url'])) {
@ -30,7 +28,6 @@
$onClickParams
) : '')
);
$onClickActive = true;
} else if(!empty($data['url'])) {
$onClick = sprintf(
'onClick = "%s"',
@ -52,7 +49,7 @@
echo sprintf(
'<button class="btn btn-sm %s %s" %s href="%s" %s %s %s %s %s>%s%s%s</button>',
empty($data['class']) ? '' : h($data['class']),
$onClickActive ? 'btn-primary' : (empty($data['active']) ? 'btn-light' : 'btn-secondary'), // Change the default class for highlighted/active toggles here
!$data['isFilter'] ? 'btn-primary' : (empty($data['active']) ? 'btn-light' : 'btn-secondary'), // Change the default class for highlighted/active toggles here
empty($data['id']) ? '' : 'id="' . h($data['id']) . '"',
empty($data['url']) ? '#' : h($data['url']), // prevent default is passed if the url is not set
empty($onClick) ? '' : $onClick, // pass $data['onClick'] for the function name to call and $data['onClickParams'] for the parameter list

View File

@ -11,7 +11,13 @@
unset($currentQuery['page'], $currentQuery['limit'], $currentQuery['sort']);
$contextArray[] = [
'active' => $currentQuery == $filteringContext['filterCondition'],
'url' => $this->Url->build($urlParams),
'isFilter' => true,
'onClick' => 'UI.reload',
'onClickParams' => [
$this->Url->build($urlParams),
"#table-container-${tableRandomValue}",
"#table-container-${tableRandomValue} table.table",
],
'text' => $filteringContext['label'],
];
}

View File

@ -13,6 +13,20 @@ class UIFactory {
theModal.show()
return theModal
}
reload (url, $container, $statusNode=null) {
$container = $($container)
$statusNode = $($statusNode)
if (!$statusNode) {
$statusNode = $container
}
const tmpApi = new AJAXApi({
statusNode: $statusNode[0],
})
tmpApi.fetchURL(url).then((data) => {
$container.html(data)
})
}
}
class Toaster {

View File

@ -42,16 +42,4 @@ var AjaxApi, UI
$(document).ready(() => {
AjaxApi = new AJAXApi()
UI = new UIFactory()
})
function reloadElement(url, $container, $statusNode=null) {
if (!$statusNode) {
$statusNode = $container
}
tmpApi = new AJAXApi({
statusNode: $statusNode[0],
})
tmpApi.fetchURL(url).then((data) => {
$container.html(data)
})
}
})