.. _react.0.1.0:

============================
0.1.0  an editable lino site
============================

Goal of 0.1.0 is to have a fairly usable lino front-end. Which allows for CRUD actions.

This includes:

Simple actions
    Should be able to run simple actions such as workflow state changes and deleting rows

Parm Actions, Inserting actions and Window actions
    Should be able to run complex actions which require params

Param value filtering
    Grid views should include a param values panel which allows complex filtering

Editable grids
    Grids must also have a method to allow for editable cells.

Edit mode for Detail view
    Detail view needs a button / toggleable for editing the row

"Are you sure you wish to lave this page" confermation
    Detail view needs a safety feature which stops users from loosing imputed data.

Dialogs
    Yes / No confirmation  as well as param dialogs
    Requires the dialog which will continue a thread on the server,
    This is used in delete actions

Toggleable columns for Grid
    This will require adding a toolbar / header to the grid and a multi-select element.
    There should be a state.array which is bool values for each of the columns, generated from site-data on componentMount.

Action Toolbar
    An action toolbar component for detail + grid which will run the selected action on the selected row(s).

Editable Components for all major fields
    includes FK fields, combo, date / time, char, & rich-text

Load masks
    Some form of loading indicator for the site.
    It's disturbing when the site just hangs as you log-in or load a page.

Error handling
    Should display error messages from the server to the user using toasts / growls.



Roadmap
=======

The basic order of completion ought to be:

#. Action Toolbar
   Working in grid, show error messages, send ajax, eval responses, are disabled correctly when no rows are selected.
#. Edit Button for detail
   Working
#. Simple Actions
   Working with refresh
#. FK chooser elem
   Working choices lookup and data update
   !! Needs better BLANK selection !!
#. Choice list elem
   Working
#. Dialog system
   Dialogs open with correct elems, along with editable data, however no ajax hooks installed yet.
#. save Ajax
   Working,
#. Dialog ajax
   dialog action works, including sign-in
   !! Needs some sort of visual feedback that it's success and loading !!
#. yes / no dialogs
   Working, but not perfect for on record delete.
#. Param values 
   Fully working in grid view, but not in detail view's quick-filter.
   There's some design issues with including the PV values in the detail view, if the detail view is a separate view,
   in a stateless app.
#. Date + Date time + Time choosers
   Working
#. Sending grid data with as_pdf actions
#. Editable Grid
#. Grid optimizations

ParamValues
-----------
If pvs' are not sent to the server with a grid data request, the default pv's are applied. As such they do 'work'
currently and there is no need to store them in the state until there is an interface to modify them.

* Grid

  * Correct Column Widths
  * Modifiable columns widths
  * Hide Toggleable columns
  * parm values filter window
  * modifiable rows per page.
  * small pager for slave-grid
  * have pagination page part of url ?

* Editing
* Dialogs
  * with params
  * yes / no dialog
* param window

* TopBar

  * Add global search input


Minor debugs / optimizations
----------------------------

* Have name ref for field elems only in field_options
* Improve design of grid toolbar for action buttons + other tools
* Improve design of Detail toolbar for nav buttons, action buttons and more.
