From time to time, I may indicate I am working on a particular fix or planned feature
The formal TODO list
In no particular order...
- Mention demo search_1 and 2 in manual
- Explain how sendEmailOnSave works
- Find the email config in .xml and insert into install base file (not demo)
- Looks like the search text doesn't validate... does this matter?
- Copy the new duplicate settings in Meeting across to existing .xml
- Explain how reports can be easily filtered by column by setting up views, or making copies of config files and restricting columns
- Search should be by user so they only ever get their own results
- Validation messages need to be translated
- Check ERD for which tables are not linked properly and link them
- Utilise Jump to Id as an example (available on Custom Reports)
- Index file and url tables
- Test user-designed validation type / make sure sentence_pattern actually works
- The value of xsl in goButton (js) is hard-coded to pabulumba
- Create a clean install file with no db records
- Test SendemailonSave
- Refactor the source code; make clean without debug lines
- Cannot duplicate a demonstration record with no data.
- Used by government and quasi-government organisations
- Offer manual as a single HTML page, or a document
- Putting the config into the db, then into memory
- Explanations of settings, search screen
- Clean out the ajax folder
- Rewrite all javascript code using event handlers
- Auto check main,reports,maintenance,help & menu.xml
- Write some custom reports
- Note in manual about needing to put http:// in front of all absolute urls - is this now even true?
- SAVE should not be clickable before New is clicked
- Textarea with history placed after a text area is aligned differently to after a checkbox
- Make Save button disabled when record id = new or 0
- Move point of messages being obtained closer to the top of the file so it can translate No logins
- When calling a function such as validate that doesn't change the values, use a ref rather than a copy
- If the XML is invalid, throw a nice error page - any time a user=generated error might occur
- There must be a bajillion places where a reference to an XML element name could be assigned to a vble, eg name, or type etc
- Note that a rule will assume the form, and the logged-in user's role
- Automatically populate the Rule Form name and Select element name fields
- The tree new, on failure of validation, doesn't retain value, prob because it only allows the please select line
- Describe how previewColumns work (select id,x from form~select criterai~order criteria)
- Describe how grid selects won't show more than 150 records (search for `limit 150')
- Describe how URL (like file) functionality works in manual
- Put rules into manual, and settings, and trees, useRules @ form level
- Deleting an item from Rule says The requested ID does not exist :-( Needs to delete from grid first??? Foreign key ref
- Filtering by different clients needs to go into the manual.
- Not allowing DROP for the db options.
- If setting not show deleted records, then the deprecated record is skipped; difficult for navigation however, although SQL should pick that up
- First time I tried to set a rule, it's not working - the form is not being inserted into rule/formName either
- Consider (for rule.xml), where a field is required, using another type of source where a list is obtained either from the xml files themselves, or from a text file
- There should be something which validates the references to form name and element name in a rule.
- If a rule takes effect, should that indicate that a field has become R/Only for example?
- Is there a datetime field type? Ensure that date field use the datetime type rather than varchar (true?)
- Put all the rules into install_pab
- Make the reason for a rule visible when it comes into effect. Make that an option on the form (page?) rather than a general setting.
- Check that DISPLAY_IMAGES actually works
- Look for the code which simulates web content management (I've lost it!)
- How about having an order column on all reference tables
- Put the rule about only one repeating SQL condition into validations
- Check that validating SQL starts with a SELECT, and that updating starts with an UPDATE
- Show number of chars allowed in an input box/text area somewhere near the field
- Is the macro CURRENT_VALUE of any use in Rules?
- Example of special reports?
- Where there are SQL statements in a loop, put values into a temp table, and run UPDATE instead.
- Put the new settings for form (duplicate stuff) into the manual.
- pabulumba is hard-coded in the switch to come back from printed reports TODO 2498
- Need a better error message when the database.php file is completely stuffed; it starts to show the query down to ERR043
- Update doco now that includes.php is no more
- Put Calendar into the manual
- Aggregate stuff into the user manual
- Grid stuff into the user manual
- Revisit deleting records, particularly grid records
- Find out how checkboxes work on the basis of the value, 1 or 0 - checked not wokring???
The Nice-To-Have list
In no particular order...
- Page limits for datagrid output
- Replace preg_replace with str_replace where doable
- Floating controls for navigation which can be put anywhere on the page (via a setting?)
- Paging of output records using sql satement using LIMIT 31,30 etc.
- Single SQL statement to obtain grid values for form values, not just grid
- Sort order in grids
- Perhaps a "Delete hint" which would suggest to the user which record(s) need to be deleted before the one open can be deleted
- A listing of all the relationships between tables which is dynamically created to identify which records need to be deleted in order. This could use (getting the familiar field names):
- select referenced_table_name, table_name, referenced_column_name from key_column_usage where table_schema = 'spatialrs_test' and referenced_table_name is not null order by referenced_table_name, table_name;
- Put the calendar into a div on every page which has a date field to save load time
- Ability to use JS to display/hide the next x elements on the basis of a selection
- Add to standard reports and custom reports a comma separated list of custom reports which runs sequentially.
- Everywhere there is more than one reference to an element in a set, get value once and put into a vble.
- Reference tables could do with a sort order (so appear in logical order in dropdowns, such as Status)
- The user role can be an array; at the moment it is restricted to one entry
- Import a CSV file, and automatically create the records
- Search should sort the results by most likely at the top
- Turn individual elements such as checkboxes into classes so they can be slotted into reports
- History for the last table/id accessed, option to go straight there
- Options for error msg type (popup vs document.write)
- Currently no navigation back to reports in the LH div
- Replace all the select calls with hidden fields for the "current" values
- Keep Select field data in memory to speed up queries
- Turn dummy into a System table / Get rid of dummy table, which will not be needed when $form use becomes conditional
- Consolidate switch and menu item code coz they are the same: only difference in the rendering xsl
- Allow for setting of magic_gpc_quotes at server
- Navigating away from an unsaved entry prompts a JS popup to save
- Record locking, set lock, but allow override as an option
- There is some doubling up on selectCriteria for changing a password - search for `Display query`
- When saving a new record, there is no need to use all the update stuff in "update" - maybe this should have an action all of its own. This would avoid an unnecessary call to NavIds.
- Investigate ways for verifying that the JS filtering is working, so that incorrectly matched entries are not going through into the db - check in php code somehow
- New link next to dropdowns for people authorised in maintenance to add a new entry (popup window)
- Must also refresh the screen, but not validate - this leads to issues
- Check for 'r' in body of form; do not allow 'New' if they exist
- Amalgamate bulkSelectCheckbox and regular checkbox so label span doesn't interrupt
- Replace the Preview code with something that dynamically works it all out
- `Deleted' column should be NOT NULL and DEFAULT 0 so it's auto on INSERT
- Search must store field against a user name, rather than find the wrong record if someone is slow
- All filterByUser needs to have `distinct' in the lookup select
- There is an issue using `file' in a table with zero records
- Require an individual setting against each user for showing/hiding nav history / previews
- Check that permissions in grid are the same as on the form
- filterbyuser criteria is now working for Show all results - decide whether to use `name' or `source' as the `name'_user source of filter
- In createSQL ignore any deleted columns, and guarantee they are NOT NULL
- GenerateSQL uses the wrong table name when a view is referred to - it should store to the name - think about this!
- Note that the grid stuff on update is obtained twice; not efficient
- The email should be able to work from the contents of select lists as well as DDL, as well as text fields
- Option to make calendar default to existing date field content, or current date
- If there is more than one Calendar on a page, reuse the data, rather than repeat it
- Setting to show only n/hist since logon, or use max setting.
- Don't need to put the target in each time in the preview and hitory - stick it in the parent div
- Write a document that explains how the navigation works
- Check for possible SQL injection attack by using PDO or mysqli
- Get the highlighting working correctly in reports that use the grids
- Remove any xslt which invokes `//' - too slow
- Incorporate 'message' into pab?
- Instant message logged in users
- Broadcast message page
- Need the ability to insert hypertext maybe, although it can always be done with xsl - although not so conveniently
- Ensure not opening too many links to db with ajax calls
- Ability to change the colour of the message lines
- Test prevValues a little more, when coming from a custom report dispolay. Is this necessary, because the switch never writes it.
- Perhaps allow option for SQL rules to run for all roles, not just the current one
- If a date is given as a unique value, it displays as the db format, not the display format.
- Perhaps I could use javascript to populate the contents of the DDL to save sending all the options through for all DDL fields.
- I could also use js to make one date_data_field and then copy that to all new date fields to save the proliferation of data data.
- In reports, show columns using a list e.g.
- Force deletion of records by first removing all related information, then deleting the record, not just marking it as deleted; setting?
- Make nav buttons float on the page, or choose between top and bottom
- Make a new report which just runs the SQL if there are no validation errors
- File and URL should record HOW MANY there are, rather than just 1 - is this possible?
- Meaningful names for debug messages labels
- Highlight fields with errors (border?)
- Put debugMessages into the reports, and dynamically take out the GO button if the nominated table in a custom report does not exist
- Confirm sending email / test Users
- Check out the GRANT syntax to stop someone using custom reports to drop tables or columns
- Limit the number of results in reports
- Why is the td value in St reports got a style? Surely the row will do?
- On creation of text fields, should their default be ''?