feat: implement module generator with dynamic datagrid components and schema migration support

This commit is contained in:
Ümit Tunç
2026-04-28 23:55:39 +03:00
parent 74901dc3c6
commit 90d0a2a041
6 changed files with 274 additions and 107 deletions
@@ -0,0 +1,19 @@
{
dataField: "{{($column['name'])}}",
<?php
$captionName = isset($column['relation']['caption']) ? $column['relation']['caption'] : $column['name'];
$validationType = $column['relation']['validationType'] ?? 'custom';
?>
caption: "{{e2($captionName)}}",
dataType: "boolean",
validationRules: [{
type : '{{$validationType}}',
validationCallback: validationCallback_{{$column['name']}},
}],
setCellValue(rowData, value, data, options) {
@include("components.table.datagrid.js.init-cell-value")
rowData.{{$column['name']}} = value;
},
},
@@ -13,9 +13,10 @@
lookup: {
dataSource : [
<?php foreach($column['relation']['datas'] AS $data) {
$key = $column['relation']['value'];
$key = $column['relation']['value'] ?? 'id';
$val = is_array($data) ? ($data[$key] ?? '') : ($data->$key ?? '');
?>
'{{$data->$key}}',
'{{$val}}',
<?php
} ?>
]
@@ -0,0 +1,8 @@
{
caption: "{{$column['label'] ?? '---'}}",
width: 20,
allowEditing: false,
allowFiltering: false,
allowSorting: false,
cssClass: "column-separator"
},
@@ -9,7 +9,8 @@
if(isset($matches[1])) {
foreach($matches[1] AS $match) {
$patternString = str_replace("{" . $match . "}", $data->$match, $patternString);
$value = is_array($data) ? ($data[$match] ?? '') : ($data->$match ?? '');
$patternString = str_replace("{" . $match . "}", $value, $patternString);
}
}
$multipleChoiceData[] = $patternString;