I have a custom table with potentially 1000's of rows. I have created a custom data source which works but I need a List Editor that can handle large amounts of data.
It needs to be a multi-select (table?) but ideally with sorting, searching, paging.
I assume I need to custom build this, so any pointers would be most welcome!
As you've probably experienced, Data List isn't quite suited for larger datasets, (e.g. hundreds and thousands), because it loads in all of the items, AngularJS + browser starts to struggle in rendering/filtering them.
Not sure if you watched my recent session at the Umbraco Community Day last week? (or was even aware of it?) I highlight this issue and explore workarounds and alternative solutions.
The above page says "The only requirement is that the AngularJS controller (for the view) will be passed the data source items" which I assume, by default, would be everything that my custom data source returns which could be the full 1000's of records?
Would it work if the custom data source returned the first "page" (say 10 items) and then the custom list editor dealt with paging, searching, getting the rest?
That's correct, Data List will gather a complete list of all the items and pass them to the list-editor UI. It's not using any client-side AJAX/fetch to gather the day, it's all done on the initial payload.
If you were do make your own custom list-editor UI, you're actually not that fa away from having a bespoke property-editor. e.g. an AngularJS view + controller that could call a WebAPI endpoint to get the paginated/searched data.
"e.g. an AngularJS view + controller that could call a WebAPI endpoint to get the paginated/searched data."
I already have that for an admin console view of the data. I'll take a look at the Data Picker source and see what I can concoct!!
You said "Data List will gather a complete list of all the items [...] it's all done on the initial payload".
I'm using a DataList editor (SQL+Item Picker) on Umbraco 8 and i was wondering if there's a way to manually update the whole list of the items.
In my scenario our customer is able to insert from backoffice a new record on a custom SQL table and, on the same page and tab, he should be able to pick the newly added item with contentment.
Is it possible or I must make the customer change node/refresh before picking the new item?
That's correct - Data List is loading in the items on the initial content payload and the page would need to be reloaded for any new items to be shown. (There's nothing reactive going on with the list-editors).
Your question here is off-topic to the original thread (this was about the Data List editor, not the actual implementation of the Examine data-source for the Data Picker editor).
Data List for large dataset
I have a custom table with potentially 1000's of rows. I have created a custom data source which works but I need a List Editor that can handle large amounts of data.
It needs to be a multi-select (table?) but ideally with sorting, searching, paging.
I assume I need to custom build this, so any pointers would be most welcome!
Hi Gordon,
As you've probably experienced, Data List isn't quite suited for larger datasets, (e.g. hundreds and thousands), because it loads in all of the items, AngularJS + browser starts to struggle in rendering/filtering them.
Not sure if you watched my recent session at the Umbraco Community Day last week? (or was even aware of it?) I highlight this issue and explore workarounds and alternative solutions.
Here's the YouTube link: https://youtu.be/HcwH_Fu-PQ0?t=7346
TL;DW, I have a work-in-progress of an editor called "Data Picker" (yup, no marketing brand names here!)
The code/pull-request is on my GitHub repo: https://github.com/leekelleher/umbraco-contentment/pull/297
It's not fully battle tested yet. I'm wanting it in the next release, but no firm date for that yet.
You're welcome to give it a try - if you're happy compiling Contentment from source code - otherwise it'll hopefully be out soon.
Cheers,
- Lee
Hi Lee,
yes I did (kind of) see your Community Day session - I do need to revisit it though as I was also working at the same time :-)
I'll check the video again and also look at / consider the new "Data Picker".
Hi Lee,
would creating my own custom list editor be a possible option?
https://github.com/leekelleher/umbraco-contentment/blob/develop/docs/editors/data-list.md#extending-with-your-own-custom-list-editor
The above page says "The only requirement is that the AngularJS controller (for the view) will be passed the data source items" which I assume, by default, would be everything that my custom data source returns which could be the full 1000's of records?
Would it work if the custom data source returned the first "page" (say 10 items) and then the custom list editor dealt with paging, searching, getting the rest?
Hi Gordon,
That's correct, Data List will gather a complete list of all the items and pass them to the list-editor UI. It's not using any client-side AJAX/fetch to gather the day, it's all done on the initial payload.
If you were do make your own custom list-editor UI, you're actually not that fa away from having a bespoke property-editor. e.g. an AngularJS view + controller that could call a WebAPI endpoint to get the paginated/searched data.
Please do feel free to borrow what you need from the upcoming Data Picker source-code. https://github.com/leekelleher/umbraco-contentment/tree/1b7eb30abd814a79ef8579cea4939b6bdb7d1076/src/Umbraco.Community.Contentment/DataEditors/DataPicker
Cheers,
- Lee
"e.g. an AngularJS view + controller that could call a WebAPI endpoint to get the paginated/searched data." I already have that for an admin console view of the data. I'll take a look at the Data Picker source and see what I can concoct!!
Hi, wrong topic but I saw something useful.
You said "Data List will gather a complete list of all the items [...] it's all done on the initial payload".
I'm using a DataList editor (SQL+Item Picker) on Umbraco 8 and i was wondering if there's a way to manually update the whole list of the items.
In my scenario our customer is able to insert from backoffice a new record on a custom SQL table and, on the same page and tab, he should be able to pick the newly added item with contentment.
Is it possible or I must make the customer change node/refresh before picking the new item?
Thanks a lot S
Hi Stefano,
That's correct - Data List is loading in the items on the initial content payload and the page would need to be reloaded for any new items to be shown. (There's nothing reactive going on with the list-editors).
Cheers,
- Lee
Hi Lee,
I am using this package and seems it's fetching only Top 500 records. Is there anyway by which we can increase the size of the records.
Hi yashasvi,
Your question here is off-topic to the original thread (this was about the Data List editor, not the actual implementation of the Examine data-source for the Data Picker editor).
I have replied on GitHub to your same question. For anyone else following along on here, there's a known issue with the Examine data-source for Data Picker, and there's an open issue asking for a community contribution for help to fix it.
Cheers,
- Lee
is working on a reply...