phpMyEdit TODO list
-------------------

* change SQL table aliases from "TableN" to "phpMyEdit_table_alias_N" or
  something similar
  - done with "PMEtableN" and "PMEjoinN" for lookup tables
* filter should be allowed only if $opts['options'] contains 'F'
- multi-part date handling
  - finish converting date handling to internal date handling functions
  - abstract date field gathering to get rid of _many_ redundant lines of code
  - there was some kludged fix for dateformat'ting where '%'s are removed
  - better support for more date format macros
  - better documentation for valid date format macros
- aggregates - firstly make specification and than implement such feature(s)
- data validation: expand JS field validation to match JS regexes
- data validation: create PHP field validation to match PHP regexes

* do_add_record() triggers - change $vals_ori to $vals and $vals to $vals_quoted
  - $vals_ori changed to $values
* do_add_record() triggers - make $vals available also in "before" trigger

- template based control of add/change/copy/view/delete record page; maybe also
  control of list page
* add ['display']['form'] parameter to control HTML <FORM> and </FORM> tag;
  policy for this: if missing => display form, if not and true => display form,
  if not missing and false => do not display form

* array compatible "sort_field" option to have possibility of default sorting
  according to more than one table column
* fix sorting problem when using table lookup with divs (separator)
* if picture/text links enabled, use texts for filter/search/hide buttons
* create URL links also in record view/delete

- fix this: `filters' option works fine, but when there is column with the same
  name in main table and also in join table, it must be prefixed by table alias
  (TableX.); prefixation with table name of course does not work; maybe note
  should be added into this option to use aliases, because this is difficult to
  fix without CPU expensive SQL parser
* add original variables which will persist whole session support
  - implemented via ['cgi']['persist']
* reimplement actionStyle to have possibility spefify where you want navigation
  buttons (up, down or both) and/or image/text action links
* implement repeating save in change operation (after repeating save is change
  record displayed again instead of table listing)
  - "Apply" function works fine
* extend patch from Shaun Johnston and add divs['-1'] to implement prefix and
  divs[$n + 1] to implement postfix


* what is difference between default_sort_columns and sort_field
  - not important now, default_sort_columns remove and sort_field brings amount
    of usable features, check doc/ChangeLog file for more information
* after save of records, fields are incorrectly displayed (in example
  Description field in Authors is showed)
  - nasty bug created in 4.x, fixed and works fine
* URLtarget to specify URL target

* links and buttons - booth used for records manipulating is not good
  idea?
  - good idea, implemented, use `navigation' option key for this
* when using images or links instead of buttons, change and delete links
  are constructed with English words (not national):
	http://example.com/authors.php?sfn=0&fl=0&fm=0&operation=Change&rec=1
	http://example.com/authors.php?sfn=0&fl=0&fm=0&operation=Delete&rec=1
  Than it is impossible to change or delete record via links. Other
  functions such as view and copy works well.
  - fixed, works fine

* images should be transparent, and not GIFs but PNGs
+ path prefix specification to graphic image styles
+ default sort columns are cool, but is there a way to specify
  descending ordering? In this case empty strings goes first and
  I want them at the end of list

* value of 0 in number of records to display on the screen will cause
  "Division by zero" error; so this should have the same functionality
  as -1 (display all records)
  - fixed

* according to language uand settings use htmlentities()
  or htmlspecialchars()
  - problematic htmlentities() is not used anymore

+ abbility to take more than one column from external table when using
  optional description field;
  Example:
  I have a table of authors with surname and firstname fields.
  I have also table of articles with author_id field.
  I want during adding new article to select from authors, but not only
  by surname, but by both, surname and firstname.
  Posible solutions:
  1. specify one field '@concat(surname, ', ', firstname)
  2. specify by array
  Although this seems to be difficult to implement.

+ ability to resize set of values from external table about value 'not set'
  Example:
  I have table of organizations.
  I have table of users with organization_id field.
  Every user may be in organization, but he/she mustn't.
  So I wanted to select from organization table names or select nothing and
  than organization_id will be 0.
  - implemented via ['values2']

+ security hole with View (remove View ability and use operation=View, it will
  also give you a view ability)
  - should be checked
+ the same with Change (after saving, records will be surprisingly added)
  - should be fixed

* allow to set CSS's clases for <td> (odd and even), <th>, <table>, <a>, etc
- multiple primary key support
- M:N joins support and similary sets support 
+ allow to select any combination of description columns when makes join; eval()
  should be used for this purpose to allow also some simple data transforming
  - implemented via ['description']['columns'] and ['description']['divs']
    but should be re-thought and changed
* $inc sets to 0 means unlimited

* implementation of view action - requires change of $labels, but it is
  neccessary
* column ability to be showed and read-only in add/edit screen
  (example of use: description column of property/config table)
+ fix page number after search (that means: I'm on page 4/50, I search for
  some records and result is a few in example 5 records, all of these 5 records
  are able to fill 1 page, but I will be after search on page 4/1 - that's
  really strange)
  - need testing
* fast moving between list pages (pulldown menu with page numbers)
+ $where variable in options to specify where clausule for working only
  with subset of data
  - to have ability of setting up particular filter anc do not need to enter
    filtering value in add or other forms
- data removing protection - delete will only mark record as deleted
  - hint: can be handled in triggers, however no one have this tested yet

