This commit is contained in:
2020-02-12 01:08:35 +00:00
parent 6914b15e58
commit 3d0070ca3b

View File

@@ -44,41 +44,30 @@ CURRENT TODOs
SHELL / NAV / MENUS / LAYOUT
- Best way to handle filters at client
- Client sends filter and sort as json fragment when requesting list, same format as with datafilter
- Example filter and sort:
- "{"data":{"id":1,"concurrencyToken":7169684,"userId":1,"name":"SortByFieldAscendingWorks 1581453714634 1581453715083","public":true,"listKey":"TestWidgetDataList","filter":"[ { "fld": "widgetname", "op": "%-", "value": "SortByFieldAscendingWorks 1581453714634" }]","sort":"[ { "fld": "widgetstartdate", "dir": "+" }]"}}"
- Saved filters are only for the client consumption not the server ever
- User creates saves and selects filters at client with list type above list in ui
- Relative tokens are stored in the filter as tokens, user never needs to set dates for them as they are all relative anyway
-
- If filter selected then it builds the json fragment to send based on the filter currently selected and sends that with the datalist request
- If relative dates are in it then they are rehydrated into utc iso-8601 dates as a *BETWEEN* type filter
- Server validates filter and sort json fragment during query build, if not ok then either attempts to workaround or balks with error (probably balks is the better choice)
- TOOD:
TODO: FILTER AT CLIENT
- Combined sort and filter should be user surfaced with name "List options" (yes there is already a listoptions object but that can be refactored)
- Go to server and rename DataListFilter shit to DataListOptions
- SERVER: DataList fetcher ListOptions no longer uses datafilterid anymore nor does any part of datalist code, instead they accept a single sort and filter json fragment
- SERVER: DataList controller get list route change from GET to POST
- SERVER: DataList controller get list route change from query string properties for listoptions to POST in FORM options (since much bigger)
- SERVER: DATALIST BIZ now must pass json filter sort frag to querybuilders
- INTEGRATION TESTS: Update to work with new method for datafilter
- CLIENT: needs datafilter rehydration code also maybe part of doing the datafilter UI stuff
TODO: FILTER UI
- Show current filter summary or text name of filter at top of filter
- going to need filter name and also a summarized fragment of text showing criteria for reporting so also could purpose that list to show current filter?
- Filter picklist will show name for the current filter and sb at top of filter right up front
- Relative time filters need to be removed from server and replaced with a single BETWEEN filter
- Then they need to be re-implemented at the client where the client will send the between date/times to the server based on the user's chosen relative token
- This fixes a bad design decision to involve the server in time zone shit when in fact the server should never operate in anything but UTC
- Time zones are a client issue and should never be a server issue
- When the filter code and processor is written it should calc the dates based on token and user's local time , then conver to between filter on the fly
- system is written with static filters saved to server so maybe need to turn it around and instead of providing a filterid, provide the filter json instead?
- PickList of filters for dataListKey (DO I have a server route for that?)
- ListOptions editor
- OWN PAGE NOT combined with data table
- Data Table just has the selection for presaved filters
- UI allows to edit both filters and sort order
- FILTERS: needs to take a list of available fields to select from, pick on adds to collection then can set actual OP and VALUE etc stuff on it based on type
- Build from new, rehydrate view from existing, handle bad column names no longer valid
- uses standard filter column definition to feed UI elements, ideally not a composite array that needs transformation
- See custom fields builder as that is similar
- Code as an component element, perhaps made of other components?
- SORT
- In same UI as the filter builder, probably the most commonly accessed of the two so maybe sort order on top and filter below?
- ListOptions builder
- Need method that builds the list options into json fragments to send to server with datalist request
- ListOptions descriptive text builder
- A Way to show a string of text showing what filter options and sort options were chosen so can be output to reports etc
- DataTAble UI
- Pick list of ListOptions for that list type at top also (no options) empty default choice