Proposed rdbGUI Improvements

GMT support
Insert and update don't make it easy to get timestamps correctly entered in GMT. Both enter_time and update_time should be handled entirely by rdbGUI. vstart, vend, input_start and input_end have to be entered by the user. prod_start and prod_end are currently input, if at all, by the user, but should someday be handled by rdbGUI. For user-entered times, would be nice to add a widget to the data/time dialogue to recast local times or times in other specific time zones to GMT.
File browser
It's awkward having to type in file paths. The data_ident column is already identified in the xml description as having a value which is supposed to be a file. In this case, rdbGUI could let the user browse the file system, as is already done for the Open DB Schema dialog. However it would have to be smarter for this application since, to be useful, it has to be able to translate environment variables for some purposes but keep them around untranslated when the value actually gets written in an insert or update command.
insert enhancements
insert should be upgraded to behave like the comparable function Metadata::registerCalib in calibUtil in the following way. When a new calibration is entered with proc_level equal to any legal value other than 'SUPSED', the database is searched for similar calibrations (same type, instrument, flavor, proc_level) with a vend later than the new row's vstart. The old row's vend is properly adjusted. Perhaps human user should be asked if he/she wants to proceed before each old row is updated. Any such update will be logged. Also, if proc_level is 'PROD', set prod_start to current (GMT) time.
update enhancements
If update is used to change proc_level to or from 'PROD', update prod_start or prod_end as appropriate.
supersede
Add a new supersede function, really a special kind of insert. The caller right-clicks on the row to be superseded; it must be one which has proc_level equal to 'PROD'. Its proc_level is set to 'SUPSED' and something like the insert dialogue comes up so the user can set column values for the new row. However, some of them (including at least calib_type, instrument and flavor) are not settable by the user because they are taken from the old row; others must be set by the user and may not be inherited from the old row: could be that the only one in this class is data_ident. This information (which columns are inherited, which must be newly-specified) should not be hard-coded in rdbGUI; it should be added to the xml description and rdbModel should be enhanced to make the information available to the gui.
multi-insert
Add new multi-insert command. It frequently happens that someone wants to register several new calibrations with many shared characteristics. It would be nice if they didn't have to retype identical values for, e.g., locale, instrument, vstart, vend and so forth. As for the supersede function, which columns are "sticky" should not be hard-coded in rdbGUI. The nicest interface I can think of would be to have, in the xml description, suggestions as to which columns should be sticky, but also have a way for the user to modify this list dynamically, just as applications often let you select which icons you want to appear on a toolbar.
insert-similar
Add new insert-similar command. Gui interface would be similar to what we have now for update; that is, right-click on a row and get an insert dialog pre-filled with the row's contents for the human to edit. However, the action would be to make a new entry rather than modify that row.

Last modified:

J. Bogart