From 3d0070ca3b2d6022dac4152b9bb01d7265484662 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 12 Feb 2020 01:08:35 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 55 ++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 33 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index a735ee27..adeebb92 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -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 +