This commit is contained in:
2020-03-11 22:37:25 +00:00
parent 4c74fcb2a0
commit a1f27ad7e6

View File

@@ -53,14 +53,47 @@ PICKLISTS:
AUTOCOMPLETE
TODO FROM PLANS:
- templateable selects and display format for each major object type
CLIENT UI
- CONTROL:
- Use tagpicker as basis, already implements most of this
- Uses route at server that is dedicated to all picklists, accepts a type and search phrase returns results
- Must be a custom control even if it's just a wrapper around a regular autocomplete for future proofing
- Accepts a AyaType and handles all the rest automatically by knowing how to query the server?
- TEMPLATE templateable selects and display format for each major object type
- similar to datalistview editor but without filtering ability
- only one template per picklist type with option to default back to default
- Sane default with enough stuff to make it likely they won't bother to change it unless they need to
- SERVER
- route that accepts type and search phrase, returns results
- Uses template to determine which fields to query and include in return results
- Returns simple name / id pairs list easily bound to control
- Caches the templates and updates on change the cache
- AyaPickList is DataList equivalent
- Only need one object to contain default templates for all datalists since there is a finite amount
- make an sub area just like datalist for picklists to contain that stuff
- PickListView is the name of the template objects
- Similar to DataListView but static, one for each type of object only
- has default view if not overriden that is generally good enough for anyone
- PickList Controller ROUTES
- GetList(AyaType, query)
- Uses cached view (fetches into cache if not fetched to keep cache small)
- Use best practice caching for this so can extend to other things that need caching like BizRoles
- Based on cached view constructs a query with relevant columns only and containing search query in each column
- Also handles tags properly
- PutView(AyaType, viewJson)
- Update a view to use a new default
- updates cache when it updates db as well
- ResetView(AyaType)
- for ui, resets the view back to it's default
- GetView(AyaType)
- for ui picklistvieweditor to populate ui with current template (or default if not edited)
- GetViewList()
- for ui picklistview editor to switch lists
- autocomplete / search involves all displayed template columns
- support Search *IN* over all joined tables in list
- Must be a custom control even if it's just a wrapper around a regular autocomplete for future proofing
- TAGS support
- Brainwave: include tags as an optional column they can include in template, so if it's far to the right won't intrude on view but can still search for tags right in the text you type!!
- this is a simple solution to tags issue