datagrid icon indicating copy to clipboard operation
datagrid copied to clipboard

Initialize datagrids when whole datagrid is loaded in snippet

Open dakorpar opened this issue 4 months ago • 9 comments

When using datagrid-full.js from cdn what's easiest way to init datagrid when it's loaded through naja? When opening page like full refresh evertything works fine, quick edits and everything, but when it's loaded through ajax looks like js is not initialized... How can I init datagrid through naja.addEventListener?

dakorpar avatar Nov 10 '25 09:11 dakorpar

Try to call createFullDatagrids

👀 See https://github.com/contributte/datagrid/blob/master/assets/datagrid.ts#L211

radimvaculik avatar Nov 23 '25 07:11 radimvaculik

Tried that, but it's not available in full datagrid js... Only way to do this is to do custom build... @radimvaculik

dakorpar avatar Nov 25 '25 07:11 dakorpar

Well, I think you need to switch to a custom build.

radimvaculik avatar Nov 25 '25 07:11 radimvaculik

@dakorpar Could you test this version, please?

datagrid-full.js

radimvaculik avatar Nov 25 '25 08:11 radimvaculik

I already switched, but this should be available in datagrid-full.js IMHO... I'll test when on project-...

dakorpar avatar Nov 26 '25 11:11 dakorpar

@dakorpar Could you draft a PR?

radimvaculik avatar Dec 09 '25 12:12 radimvaculik

@dakorpar Could you test this version, please?

datagrid-full.js

Looks like it works with this one...

dakorpar avatar Dec 09 '25 17:12 dakorpar

@dakorpar What are the changes?

radimvaculik avatar Dec 10 '25 12:12 radimvaculik

@dakorpar What are the changes?

I just tried with your datagrid-full.js and added this:


<script n:syntax="off">
    class NajaDatagridExtension{

        initialize(naja) {
            naja.addEventListener('complete', (params) => {
                createDatagrids(new NajaAjax(naja), {
                    datagrid: {
                        plugins: [
                            new AutosubmitPlugin(),
                            new CheckboxPlugin(),
                            new ConfirmPlugin(),
                            new InlinePlugin(),
                            new ItemDetailPlugin(),
                            new EditablePlugin(),
                            new NetteFormsPlugin(netteForms),
                            new SortablePlugin(new SortableJS()),
                            new DatepickerPlugin(new VanillaDatepicker({ buttonClass: 'btn', language: 'cs' })),
                            new SelectpickerPlugin(new TomSelect(Select)),
                            new TreeViewPlugin(),
                        ],
                    },
                });
            });
        }
    }
    naja.registerExtension(new NajaDatagridExtension());
</script>

That was just to try it out, but I already switched to custom build...

TBH I think this should just be included in datagrid-full.js...

dakorpar avatar Dec 11 '25 18:12 dakorpar