57 lines
1.5 KiB
PHP
57 lines
1.5 KiB
PHP
<?php
|
|
namespace nur\v\bs3\vc;
|
|
|
|
use nur\A;
|
|
use nur\b\params\Tparametrable;
|
|
use nur\data\types\Metadata;
|
|
use nur\v\js;
|
|
|
|
class CDatatable extends CTable {
|
|
use Tparametrable;
|
|
|
|
const CSS = [
|
|
"nur-v-bs3/datatables/datatables.css",
|
|
"nur-v-bs3/datatables.css",
|
|
];
|
|
const JS = "nur-v-bs3/datatables/datatables.js";
|
|
|
|
const PARAMETRABLE_PARAMS_SCHEMA = [
|
|
"dtclass" => ["string", "datatable", "classe des tables mises en forme par Datatable"],
|
|
"dtconfig" => ["?array", ["order" => []], "configuration de l'objet"],
|
|
"dtauto" => ["?bool", "configurer la table pour que sa taille soit automatique"],
|
|
];
|
|
|
|
protected $ppDtclass;
|
|
|
|
protected $ppDtconfig;
|
|
|
|
protected $ppDtauto;
|
|
|
|
protected function afterSetParametrableParams(array $modifiedKeys, ?Metadata $md=null): void {
|
|
parent::afterSetParametrableParams($modifiedKeys, $md);
|
|
if (self::was_parametrable_param_modified($modifiedKeys, "dtauto")) {
|
|
A::merge($this->ppDtconfig, [
|
|
"dom" => "<'row dtcontrols'<'col-sm-12 dt-autodiv'lfi>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 dt-autodiv'p>>",
|
|
"bAutoWidth" => false,
|
|
]);
|
|
A::append($this->ppTableClass, "table-auto");
|
|
}
|
|
}
|
|
|
|
protected function getTableClass(): array {
|
|
return [$this->ppTableClass, $this->ppDtclass];
|
|
}
|
|
|
|
const HAVE_JQUERY = true;
|
|
|
|
function printJquery(): void {
|
|
?>
|
|
<script type="text/javascript">
|
|
jQuery.noConflict()(function($) {
|
|
$(<?=js::qclass($this->ppDtclass)?>).DataTable(<?=js::qo($this->ppDtconfig)?>);
|
|
});
|
|
</script>
|
|
<?php
|
|
}
|
|
}
|