This commit is contained in:
2020-01-13 23:22:57 +00:00
parent d228fedf5d
commit ac536b3434
5 changed files with 169 additions and 69 deletions

View File

@@ -3,7 +3,7 @@ MAIN GRID SPECS
OVERVIEW
Main grids show all the stuff people have entered in Raven and are used for selection to edit/ view, filter and sort for reporting and mass operations.
Proposed system is a hybrid grid system that has two modes to take into account the width of the display device:
- Xtra Small (XS ) < 600 pixels wide (my phone is 393px)
- MINI mode (XS ) < 600 pixels wide (my Pixel 3a phone is 393px)
- In this mode only one column shows and it's formatted according to the Display Format Template
- DisplayFormatTemplate is specd in the core-display-format-template-system.txt doc
- So the user chooses which columns to show in a small factor themselves, default is name only or equivalent
@@ -17,19 +17,18 @@ REQUIREMENTS
Client
- Client needs to tell the server which form of list is required, i.e. it's client window size when fetching a list
- HYBRID BIMODAL: XS or LARGE (for now but consider maybe a medium down the road in planning)
- in XS mode
- the client sends "viewport=xs" to the client with the grid data request
- HYBRID BIMODAL: MINI or default which is large (for now but consider maybe a medium down the road in planning)
- in MINI mode
- the client sends "mini=true" to the client with the grid data request
- Client receives two field list back (id and display field), displays the single field
- in large mode
- the client sends no viewport= parameter as it's optional and understood to be full size
- the client sends no mini= parameter as it's optional and understood to be full size
- the list comes back as an object with not only the actual columns but also a separate property listing the set of columns in order to be displayed
- Also their data type
- Also need what type of object if openable with an url
- Client expects an arbitrary set of columns in an arbitrary order defined by server so doesn't have a pre-ordained set of things.
- HMMM... Maybe I only need a single list object that adapts to the data being sent back!!!!!
- The client needs to be able to handle more columns than fit horizontally
- The client needs to not wrap any column vertically but ellipse.. it instead
- Client expects an arbitrary set of columns in an arbitrary order defined by server so doesn't have a pre-ordained set of things.
- The client needs to be able to handle more columns than fit horizontally
- The client needs to not wrap any column vertically but ellipse.. it instead
- Client accepts a list of fields and types etc and generates the grid and populates the data dynamically
- This means that I can make a general purpose Vue grid component, plunk it down on a form and then wrap it with what is unique about that form