papuapost / yazaar

Automatically exported from code.google.com/p/yazaar

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FLEV widget

GoogleCodeExporter opened this issue · comments

The most common workflow in any business application (including the
PhoneBook)is Finder / Lister / Editor / Viewer or "FLEV". 

Finder - Columnset in vertical layout as a form with multifield
dataentry and submit. Submit does not modify state. (Matching entries
are presented through a Lister.) Some fields may be selectors with
change events that update other selectors. Other fields may be
calendars or sliders.

Lister - Columnset in horizontal layout as a grid with double-click
single field editing. Command events to edit, view, delete, or add may
be associated with selected row. Paging through rows is supported.

Editor - Columnset in vertical layout as a read-only panel. Command
events may be available, such as save, save and add another, delete,
or cancel.

Viewer - Columnset in vertical layout as a read-only panel. Command
events may be available, such as edit, copy, delete, print, add, or
cancel.

A FLEV widget would allow us to define a columnset and datasource once and
use it to generate all four presentations. 

Original issue reported on code.google.com by ted.husted on 4 Apr 2007 at 11:44

The work in progress was adopted from the Anvil project. 

* http://code.google.com/p/anvil/issues/detail?id=22

Here's where we stand: 

NOW DONE
x Wrap in TabView 
x Setup event-based workflow logic or controller
x Confirm before exiting edited form 

TODO 
* Reconfigure for yazaar
* Try as PhoneBook 3

* Find/Filter tab (see dpu)
* View tab 
* Change input control to match columnEditor type

* Selenium tests
* Encapsulate as single object 

* What DOM Events do we need?
* Do the custom events make sense? 

* Try with nested column headers
* Can the label/input/value loops be a method that invokes a call back method
* Progressively enhance an existing form from markup (if that makes sense)
* For YUI 2.2.1, change populateForm to use rs.getRecord(0);

* (Log events for bulk updates, perhaps after reconnecting?)
* (Batch or bulk edit selected rows?)

Original comment by ted.husted on 4 Apr 2007 at 11:45

  • Added labels: Type-Enhancement
  • Removed labels: Type-Defect
NOW DONE

x Reconfigure for yazaar
x Move to yazaar
x Validate data entry


TODO 

* Add a new entry
* Find/Filter tab (see dpu)
* View tab 
* Change input control to match columnEditor type

* Selenium tests
* Encapsulate as single object 
* Try as PhoneBook 3

* What DOM Events do we need?
* Do the custom events make sense? 

* Try with nested column headers
* Can the label/input/value loops be a method that invokes a call back method
* Progressively enhance an existing form from markup (if that makes sense)
* For YUI 2.2.1, change populateForm to use rs.getRecord(0);

* (Log events for bulk updates, perhaps after reconnecting?)
* (Batch or bulk edit selected rows?)

Original comment by ted.husted on 6 Apr 2007 at 1:15

NOW DONE

x Find/Filter tab (see dpu)
x What DOM Events do we need?
x Do the custom events make sense? 

TODO 

* Resolve IE issue with TabView Focus
  * On row select - Can't move focus to the control because it is invisible, not
enabled, or of a type that does not accept the focus.
(http://127.0.0.1:8001/trunk/examples/dataform/tutorial-tabview.html, line 1093)
* Resolve 2.2.2 ""
  * On edit - this._paginator has no properties
* For YUI 2.2.2, change populateForm to use rs.getRecord(0);

* Add a new entry
* View tab 
* Change input control to match columnEditor type

* Selenium tests
* Encapsulate as single object 

* Try as PhoneBook 3

* Try with nested column headers
* Can the label/input/value loops be a method that invokes a call back method
* Progressively enhance an existing form from markup (if that makes sense)

* (Log events for bulk updates, perhaps after reconnecting?)
* (Batch or bulk edit selected rows?)

* When using keyb, (enter) on table should select row. 

Original comment by ted.husted on 19 Apr 2007 at 3:25

NOW DONE

x Resolve IE issue with TabView Focus
  x On row select - Can't move focus to the control because it is invisible, not
enabled, or of a type that does not accept the focus.
(http://127.0.0.1:8001/trunk/examples/dataform/tutorial-tabview.html, line 1093)
x Resolve 2.2.2 ""
  x On edit - this._paginator has no properties
x Find by autocomplete 
x When using keyb, (enter) on table should select row. 
x Encapsulate as single object - Refactor composite widget setup to a reusable 
"flev"
base object
x Integrate with example application - Try as PhoneBook 3
x Test with multiple applications and multiple usages in the same application 
x Handle empty recordsets


TODO 

* Edit listener to update persistence layer 
* Add a new entry
* Find/Filter tab with Query by Example

* Change input control to match columnEditor type
* Add drop down columnEditor 
* Server-side pagination

* View tab 
* Log more events
* Selenium tests

* Try with nested column headers
* Can the label/input/value loops be a method that invokes a call back method
* Progressively enhance an existing form from markup (if that makes sense)

* (Log events for bulk updates, perhaps after reconnecting?)
* (Batch or bulk edit selected rows?)

* For YUI 2.2.4, change dataform.populateForm to use [1]

Original comment by ted.husted on 25 Apr 2007 at 6:39

The draft version is deployed as the PhoneBook Example application. 

* http://www.geocities.com/planetyazaar/examples/phonebook/Home.html

Original comment by ted.husted on 28 Apr 2007 at 1:49

Original comment by ted.husted on 3 May 2007 at 11:44

  • Changed state: Started
NOW DONE

x Add JS docs to FlevBase
x Add PhoneBook Use Case to Yazaar, update application and use case to agree.
x Reset data (to clear prompt) if change from editing tag without saving
x Add overlay to address IE bleed-thru
x Find tab with Autocomplete widget (local application)

FLEV TODO 

* FIXME: pressing (enter) on validation alert falls through and replays alert

* Change "Loading" message to match the document title once RPC returns, and to
display any RPC errors.
* Edit listener to update persistence layer 
* Log listener to report custom events

* Basic Find tab to display QBE form (DataFind widget).
* Basic View tab (text instead of input fields) as DataView widget. (Rename 
DataForm
as DataEdit?)
* Activate view tab on List select (instead of Edit). Add Edit button.
* Activate Edit tab on Edit button select or Edit tab select. 
* Disable List/View/Edit tabs until Find executed (no recordset retrieved until)

* (Refresh) (View) (Edit) (Add) (Delete) buttons for list tab
* Confirmation step to (Save) and add (Save and Add Another) 
* Inline editing on double click; right-click to delete

* Initial letter filter with autocomplete feature for selected column. 

* Optionally extend View tab with nested view of child entries

* Add drop-down and checkbox columnEditors
* Change input control to match columnEditor type

* Server-side pagination

* More Selenium tests?
* Log more events? (use Logger with Selenium?)

* Use config object to override default element names. 
* Try flevbase "prototype" style. Use "constants" for new types. 

* Try with nested column headers
* Can the label/input/value loops be a method that invokes a call back method
* Progressively enhance an existing form from markup (if that makes sense)

* Batch or bulk edit selected rows?
* Log events for bulk updates, perhaps after reconnecting?
* Do something on <esc> in DataForm?

* For YUI 2.2.4, change dataform.populateForm to use [1]
* in DataForm.Reset: reset subclass fields only?

Original comment by ted.husted on 22 May 2007 at 8:59

NOW DONE

x Edit listener to update persistence layer 
x Change input control to match columnEditor type  
  x Select control
  - checkbox control (half-done)
x Populate select control from another source 



FLEV TODO 

* Finish checkbox logic
* Move to key/text format
  * Defaults? (Change name of control to * + "key"?) 

* Change server-side mthods to return a recordSEt and an "oSession"
  ** FLEV load method includes oSession in oConfig 
  ** server-side method returns select list 

* Try to alias oSession to my.oSession

* FIXME: pressing (enter) on validation alert falls through and replays alert

* Change "Loading" message to match the document title once RPC returns, and to
display any RPC errors.

* Log listener to report custom events

* Basic Find tab to display QBE form (DataFind widget).
* Basic View tab (text instead of input fields) as DataView widget. (Rename 
DataForm
as DataEdit?)
* Activate view tab on List select (instead of Edit). Add Edit button.
* Activate Edit tab on Edit button select or Edit tab select. 
* Disable List/View/Edit tabs until Find executed (no recordset retrieved until)

* (Refresh) (View) (Edit) (Add) (Delete) buttons for list tab
* Confirmation step to (Save) and add (Save and Add Another) 
* Inline editing on double click; right-click to delete

* Initial letter filter with autocomplete feature for selected column. 

* Optionally extend View tab with nested view of child entries

* Server-side pagination

* More Selenium tests?
* Log more events? (use Logger with Selenium?)

* Use config object to override default element names. 
* Try flevbase "prototype" style. Use "constants" for new types. 

* Try with nested column headers
* Can the label/input/value loops be a method that invokes a call back method
* Progressively enhance an existing form from markup (if that makes sense)

* Batch or bulk edit selected rows?
* Log events for bulk updates, perhaps after reconnecting?
* Do something on <esc> in DataForm?

* For YUI 2.2.4, change dataform.populateForm to use [1]
* in DataForm.Reset: reset subclass fields only?

Original comment by ted.husted on 27 May 2007 at 10:41

NOW DONE

 x Try flevbase "prototype" style. Use "constants" for new types. 
 x Internally, rename DataForm as DataEdit, DataTable as DataList.
 x Finish checkbox logic
 x Update examples
 x Update business facade logic 
 x Update business logic to lookup select option key based on text. 
 x Change business logic to return multiple recordsets in an IDictionary "context". 
 x Save selectOptions provided by callback to DataForm "oSession" (via oFormConfig)
 x Present RPC error messages in Menu status area.
 x Clear "Loading" message once RPC returns and after errors.
 x FIXME: pressing (enter) on validation alert falls through and replays alert
(stopped happening)
 x Activate List on Find select
 x Basic View tab (disable input controls, change buttons)
 x Activate view tab on List select (instead of Edit). Add Edit button.
 x Activate Edit tab on Edit button select or Edit tab select. 

FLEV TODO 

 * Set defaults to form for insert.
 * Consumate delete. 

 * Basic Find tab to display QBE form (DataFind widget).
 * Disable List/View/Edit tabs until Find executed (no recordset retrieved until)

 * (Refresh) (View) (Edit) (Add) (Delete) buttons for list tab
 * Confirmation step to (Save) and add (Save and Add Another) 

 * Initial letter filter with autocomplete feature for selected column. 
 * Server-side pagination

 * Optionally extend View tab with nested view of child entries

 * More Selenium tests?
 * Log listener to report custom events
 * Log more events? (use Logger with Selenium?)

 * Use config object to override default element names. 

 * Try with nested column headers
 * Can the label/input/value loops be a method that invokes a call back method
 * Progressively enhance an existing form from markup (if that makes sense)

 * Batch or bulk edit selected rows?
 * Log events for bulk updates, perhaps after reconnecting?
 * Do something on <esc> in DataForm?

 * For YUI 2.2.4, change dataform.populateForm to use [1]
 * in DataForm.Reset: reset subclass fields only?

 * FIXME: DataForm side-by-side example isn't reflecting form changes in list. 
 * Update examples to match latest coding conventions

 * Inline editing on double click; right-click to delete
 * Try to alias oSession to my.oSession

Original comment by ted.husted on 30 May 2007 at 1:52

FLEV TODO 

LIST
 * (Refresh) (View) (Edit) (Add) (Delete) buttons for list tab
 * Confirmation step to (Save) and add (Save and Add Another) 

VIEW 
 * Optionally extend View tab with nested view of child entries
 * Clarify the meaning of "no View" mode

FIND
 * Basic Find tab to display QBE form (DataFind widget).
 * Disable List/View/Edit tabs until Find executed (no recordset retrieved until)
 * Initial letter filter with autocomplete feature for selected column. 

EDIT/DATAFORM
 * Popup calendar for Date type
 * Server-side pagination
 * For YUI 2.3.0, change dataform.populateForm to use [1]
 * Use current page position for insert position
 * Restore the current sort after insert (do we even want to?)
 * Try with nested column headers
 * Can the label/input/value loops be a method that invokes a call back method
 * Progressively enhance an existing form from markup (if that makes sense)
 * Batch or bulk edit selected rows?
 * Log events for bulk updates, perhaps after reconnecting?
 * in copyRecord, isRecordChanged, and reset, should we affect subclass fields only?
 * Do something on <esc> when editing?
 * Try to alias oSession to my.oSession
 * deleteRecord, calling the RecordSet method didn't seem to work (?!)

INIT
 * Use config object to override default element names. 
 * More Selenium tests?
 * Log listener to report custom events
 * Log more events? (use Logger with Selenium?)

EXAMPLE FIXMES
 * Tabview - (enter) on select form is focussed on cancel 
 * Side-by-Side - Edit panel changes not reflected in list
 * Update examples to match latest coding conventions

FACILITY FIXMES (intranet application) 
   * Insert: first click on submit seems to do nothing. Second click reports that
"update suceeded". 
   ** Try insert without the nested call to update
   * Insert: Need to return primary key to RecordSet after insert (or refresh entire
set) 
   ** Return IDictionaries so that we can include other data as needed, and include
message as standard entry in dictionary. (Except failures, which can remain the 
same.) 
   * Right now, the facility query returns three entries, since each department has
it's own contact. We might want to change that so there is one entry with three
virtual contact columns, one for each department. (And sort it all out behind 
the
facade.)


Original comment by ted.husted on 1 Jun 2007 at 3:36

NOW DONE

 x Enable delete and insert workflows, from context menu or view panel
 x Extend delete/insert/update methods to conform remote database. 
 x Insert: first click on submit seems to do nothing. Second click reports that
"update suceeded". 
 x Insert: Need to return primary key to RecordSet after insert (or refresh entire set) 
 x (View) (Edit) (Add) (Delete) buttons for list tab

FIXME

 * Back corrupts screen (History manager?)

LIST

 * Confirmation step to (Save) and add (Save and Add Another) 
 * (Refresh) (View) buttons
 * Default to single-click select, but no tab switch
 * Add double-click handler for editing

VIEW 

 * Optionally extend View tab with nested view of child entries
 * Clarify the meaning of "no View" mode (<4 tabs)

FIND

 * Basic Find tab to display QBE form (DataFind widget).
 * Disable List/View/Edit tabs until Find executed (no recordset retrieved until)
 * Initial letter filter with autocomplete feature for selected column. 
 * Reset/Clear button for autocomplete 

EDIT/DATAFORM

 * Edit/Add 
   ** Focus first field
   ** Support "bubbling up" edit prompt 
 * Popup calendar for Date type
 * Server-side pagination
 * For YUI 2.3.0, change dataform.populateForm to use [1]
 * Use current page position for insert position
 * Restore the current sort after insert (do we even want to?)
 * Try with nested column headers
 * Can the label/input/value loops be a method that invokes a call back method
 * Progressively enhance an existing form from markup (if that makes sense)
 * Batch or bulk edit selected rows?
 * Log events for bulk updates, perhaps after reconnecting?
 * in copyRecord, isRecordChanged, and reset, should we affect subclass fields only?
 * Do something on <esc> when editing?
 * Try to alias oSession to my.oSession
 * deleteRecord, calling the RecordSet method didn't seem to work (?!)
 * Under FF (!IE), the (enter) on validation falls thru and repeats submit.

INIT

 * Use config object to override default element names. 
 * More Selenium tests?
 * Log listener to report custom events
 * Log more events? (use Logger with Selenium?)

EXAMPLE FIXMES

 * Tabview - (enter) on select form is focussed on cancel 
 * Side-by-Side - Edit panel changes not reflected in list
 * Update examples to match latest coding conventions

VALIDATION FIXMES 

 * If a custom message is omitted, the generic validation message cites "items in
red" and does not specify errors. 

WNP APPLICATION 

(intranet application utilizing FLEV. This is mainly so Ted doesn't have to 
keep two
lists!) 

WNP FIXME 

 * LIST
   ** Page selector overlays table title
   ** Page selector is hard/impossible to select
   ** Contacts example doesn't have this problem

 * Facility/Edit 
   ** Add Staff field
   ** major/pretreatment checkboxes

 * County/Find 
   ** Add ECLS Office

WNP TODO 

 * Facilities/LIst 
   ** List of pending permits as child window 
   ** Right now, the facility query returns three entries, since each department has
it's own contact. We might want to change that so there is one entry with three
virtual contact columns, one for each department. (And sort it all out behind 
the
facade.)

 * Staff
   ** Add deq_role, deq_unit, active, page_size, project (WNP:0, WNE:1), 
   *** representative, engineer, legal, clerical, env spec, manager, compliance
  *** IND, WPC, MUN, LEG, ECLS 

Original comment by ted.husted on 5 Jun 2007 at 4:41

NOW DONE

(WNP intranet application utilizing FLEV. This is mainly so Ted doesn't have to 
keep
two lists!)

 x Change facility list to use the "wnp" version that returns a "distinct" list
 x Added FLEV widgets for Steps types, Permit Types, Stage, and Status.
 x Extended Staff with Page Size, Active, Role, and Unit columns


WNP TODO 

 * Events, Issues, Staff, Stages, Status: inject project_id

 * Event: Add "stage name" and "next step" select boxes.

 * Refine and refactor FLEV setups to eliminate redundant code.
   ** FLEV L: (Refresh) (View) buttons
   ** FLEV L: Default to single-click select without tab switch 
   ** FLEV F,E: Focus first data-entry field

 * Steps/Applications

 * Facilities/LIst 
   ** List of pending permits as child window 

WNP FIXME (minor)

 * HOME - Link to tabs from site map? Use a different navigational model?

 * LIST
   ** Page selector overlays table title
      *** Contacts example doesn't have this problem
      *** Page selector is hard/impossible to select

 * MODEL - should we have project_id in issue, facility_issue, and issue_event, or
just issue?

FLEV FIXME

 * Back corrupts screen (History manager?)

LIST

 * Confirmation step to (Save) and add (Save and Add Another) 
 * Add double-click handler for editing

VIEW 

 * Optionally extend View tab with nested view of child entries
 * Clarify the meaning of "no View" mode (<4 tabs)

FIND

 * Focus focus the input field on load and on change.


 * Basic Find tab to display QBE form (DataFind widget).
 * Disable List/View/Edit tabs until Find executed (no recordset retrieved until)
 * Initial letter filter with autocomplete feature for selected column. 
 * Reset/Clear button for autocomplete 


EDIT/DATAFORM

 * Edit/Add 
   ** Focus first field
   ** Support "bubbling up" edit prompt 

 * Popup calendar for Date type
 * Slider for number type

 * Server-side pagination
 * For YUI 2.3.0, change dataform.populateForm to use [1]

 * Use current page position for insert position
 * Restore the current sort after insert (do we even want to?)

 * Add "formKey: field" to columnSet to indicates database system key.
 * In event, recite fields changes in JSon. {county_name:"Stephens", sic_code:1234,
county_key:"1234-4567"}

 * Try with nested column headers
 * Can the label/input/value loops be a method that invokes a call back method
 * Progressively enhance an existing form from markup (if that makes sense)

 * Batch update or bulk edit selected rows?
 * Log events for bulk updates, perhaps after reconnecting?
 * in copyRecord, isRecordChanged, and reset, should we affect subclass fields only?
 * Do something on <esc> when editing?

 * Try to alias oSession to my.oSession

 * deleteRecord, calling the RecordSet method didn't seem to work (?!)

 * Under FF (!IE), the (enter) on validation falls thru and repeats submit.

INIT

 * Use config object to override default element names. 
 * More Selenium tests?
 * Log listener to report custom events
 * Log more events? (use Logger with Selenium?)

EXAMPLE FIXMES

 * Tabview - (enter) on select form is focussed on cancel 
 * Side-by-Side - Edit panel changes not reflected in list
 * Update examples to match latest coding conventions

VALIDATION FIXMES 

 * If a custom message is ommitted, the generic validation message cites "items in
red" and does not specify errors. 

Original comment by ted.husted on 7 Jun 2007 at 2:23

NOW DONE

(WNP intranet application utilizing FLEV. This is mainly so Ted doesn't have to 
keep
two lists!)

 x Change facility list to use the "wnp" version that returns a "distinct" list
 x Added FLEV widgets for Steps types, Permit Types, Stage, and Status.
 x Extended Staff with Page Size, Active, Role, and Unit columns
 x Events, Issues, Staff, Stages, Status: inject project_id
 x Event: Add "stage name" and "next step" select boxes.
 x Confirm update and insert. 
 x Rename internal App static class and App* classes to MY and My*, for consistency
with UI
 x onSaveReturn: Doesn't update list with backchannel changes (just view/edit)
 x Refine and refactor FLEV setups to eliminate redundant code.
 x FLEV L: Default to single-click select without tab switch 
   ** FLEV L: (Refresh) (View) buttons
 x ** FLEV E: Specify textbox cols
 x Support text/value as select options so that a key can be returned for a selected
option. 
 x After insert, the first edit creates "ghost" record in table, but second and later
edits do not.


WNP TODO

 * Try as multipage application with shared Menu widget.

 * Steps/Applications

 * Facilities/LIst 
   ** List of pending permits as child window 

 * HOME - Link to tabs from site map? Use a different navigational model?

 * LIST
   ** Page selector overlays table title
      *** Contacts example doesn't have this problem
      *** Page selector is hard/impossible to select

 * MODEL - should we have project_id in issue, facility_issue, and issue_event, or
just issue?.

   ** FLEV F,E: Focus first data-entry field
   ** FLEV v,E: Next button to scroll through list


WNP/FLEV FIXME 

* DataService.onInsert - Hacking project ID for now.

FLEV FIXME

* Back corrupts screen (History manager?)

LIST

 * Confirmation step to (Save) and add (Save and Add Another) 
 * Add double-click handler for editing
 * If more than two pages

VIEW 

 * Optionally extend View tab with nested view of child entries

FIND

 * Focus the input field on load and on change.

 * Basic Find tab to display QBE form (DataFind widget).
 * Disable List/View/Edit tabs until Find executed (no recordset retrieved until)
 * Initial letter filter with autocomplete feature for selected column. 
 * Reset/Clear button for autocomplete 


EDIT/DATAFORM

 * Edit/Add 
   ** Focus first field
   ** Support "bubbling up" edit prompt 

 * Popup calendar for Date type
 * Slider for number type

 * Server-side pagination
 * For YUI 2.3.0, change dataform.populateForm to use [1]

 * Use current page position for insert position
 * Restore the current sort after insert (do we even want to?)

 * Add "formKey: field" to columnSet to indicate database system key, to support
query automation.
 * In event, recite fields changes in JSon. {county_name:"Stephens", sic_code:1234,
county_key:"1234-4567"}

 * Try with nested column headers
 * Can the label/input/value loops be a method that invokes a call back method
 * Progressively enhance an existing form from markup (if that makes sense)

 * Batch update or bulk edit selected rows?
 * Log events for bulk updates, perhaps after reconnecting?
 * in copyRecord, isRecordChanged, and reset, should we affect subclass fields only?
 * Do something on <esc> when editing?

 * Try to alias oSession to my.oSession

 * deleteRecord, calling the RecordSet method didn't seem to work (?!)

 * Under FF (!IE), the (enter) on validation falls thru and repeats submit.

INIT

 * Use config object to override default element names. 
 * More Selenium tests?
 * Log listener to report custom events
 * Log more events? (use Logger with Selenium?)

EXAMPLE FIXMES

 * Tabview - (enter) on select form is focussed on cancel 
 * Side-by-Side - Edit panel changes not reflected in list
 * Update examples to match latest coding conventions

VALIDATION FIXMES 

 * If a custom message is ommitted, the generic validation message cites "items in
red" and does not specify errors. 

EDIT/INSERT

 * What do do if insert fails. 

WNP FIXME (later)

 * Record not selected after Insert or Delete, which causes other anonomalies
(view/edit fields not cleared)
 * If table is empty, edit displays but does not insert ("This._oRecord.yuiRecordId
is nullor note an object). 

Original comment by ted.husted on 19 Jun 2007 at 4:05

NOW DONE

(WNP intranet application utilizing FLEV. This is mainly so Ted doesn't have to 
keep
two lists!)

 x Setup CSS stylesheet (failed). Enable full-screen for iframes (succeeded).
 x Add Anvil message template to each page so can be used outside of menu. 
 x Cut in Ticket and Step pages (FLEV widgets). 
 x Add Events/Applications (Steps/Tickets)
 x Split Menu into Menu and Type-Menu.
 x Reverse TabS
 x View, Edit, Add, Delete, Refresh, Cancel
 x Restore autoselect from list, just not autotab
 x Include facility name
 x Change "steps" to "matching events"
 x EVent Name, Staff Name (MyEntry)
 x (Inception Date, Facility Name, Permit Type, Permit ID, Renewal, Prior, Permit
Status, Permit Engineer
 x Lists for Facility Name, Permit Engineer, Permit Type, Permit Status 
 x Shorten Inception date , permit id
 x Lists for Facility Name, Issue Type, Event Type, Staff Name
 x Shorten Complete Data, Due Date
 x Move Staff Name
 x Drop down for Facility, Issue Type
 x Select project on ticket key list 
 x Display-only (calculated) fields
 x Return to current list page after edit

WNP TODO

 * DATABASE CHANGES 

   * facility
     * ADD MFL ID, tier, 39203
     * ? Do facility and permit both have tier

   * facility_issue
     * ADD effective_date, expiration_date, prior_id, staff_key

   * issue_event 
     * Change project_id default to "1" (for WNE)
       * ALTER TABLE `wqd2-test`.`issue_event` MODIFY COLUMN `project_id` TINYINT(3)
UNSIGNED NOT NULL DEFAULT 1;
     * Update prexisting records to project_id=1
       * UPDATE issue_event SET project_id=1;

    * ? Are Inactive, Last Submitted, Last Event calculated fields

----       


 * FIND
   * Basic Find tab to display QBE form (DataFind widget).
   * Intelligent default search (todo for person?)

 * Facilities/View
   ** Auto select permits and steps, vice-versa

 * EDIT
   * Calendar for Date fields 
   ? Autocomplete in lieu of select
   * If select optional item, can't select no item
   * FLEV F,E: RESET clears select box
   * FLEV F,E: Focus first data-entry field

 * VIEW
   * FLEV v,E: Next button to scroll through list 

 * LIST
   * Date-wise sorting
   * Context menu for DataMenu buttons 

 * HOME - Link to tabs from site map? Use a different navigational model?


FLEV FIXME
* LIST 
  * FF iframes break if size not specified
  * For very large sets, why do we get an iframe scroller
  * Paginator breaks for small result sets.
   * Page selector overlays table title
      * Contacts example doesn't have this problem
      * Page selector is hard to select
      * For long list, iframe enables scrollbars

* Back corrupts screen (History manager?)

WNP/FLEV FIXME 
 * Try LEFT OUTER JOIN with stages

FLEV TODO

LIST
 * Confirmation step to (Save) and add (Save and Add Another) 
 * Add double-click handler for editing

FIND
 * Initial letter filter with autocomplete feature for selected column. 
 * Reset/Clear button for autocomplete 

EDIT/DATAFORM
 * Slider for number type

LIST
 * Server-side pagination
 * Use current page position for insert position
 * Restore the current sort after insert (do we even want to?)

EDIT
 * For YUI 2.3.0, change dataform.populateForm to use [1]

SYSTEM
 * Add "formKey: field" to columnSet to indicate database system key, to support
query automation.
 * In event, recite fields changes in JSon. {county_name:"Stephens", sic_code:1234,
county_key:"1234-4567"}
 * Return updated record (and enable gradual changes so two workers can change
different fields)

 * Try with nested column headers
 * Can the label/input/value loops be a method that invokes a call back method
 * Progressively enhance an existing form from markup (if that makes sense)

 * Batch update or bulk edit selected rows?
 * Log events for bulk updates, perhaps after reconnecting?
 * in copyRecord, isRecordChanged, and reset, should we affect subclass fields only?
 * Do something on <esc> when editing?

 * Try to alias oSession to my.oSession

 * deleteRecord, calling the RecordSet method didn't seem to work (?!)

 * Under FF (!IE), the (enter) on validation falls thru and repeats submit.

INIT
 * Use config object to override default element names. 
 * More Selenium tests?
 * Log listener to report custom events
 * Log more events? (use Logger with Selenium?)

EXAMPLE FIXMES
 * Tabview - (enter) on select form is focussed on cancel 
 * Side-by-Side - Edit panel changes not reflected in list
 * Update examples to match latest coding conventions

VALIDATION FIXMES 
 * If a custom message is ommitted, the generic validation message cites "items in
red" and does not specify errors. 

EDIT/INSERT
 * What do do if insert fails. 

ANVIL 
 * Can message areas be inserted into top?
 * Do we need MyEntry with YUI?

----

Original comment by ted.husted on 23 Jun 2007 at 7:34