ChangeLog file

Version 06.03.02 (2005-01-25)
=============================
- With Microsoft SQL Server you will see and use only tables owned by the user you connect. Changes SQL statements to obtain all tables and replace SQL for columns info with sp_MSHelp* store procedures that are more readable and should be more performance.
- For Microsoft SQL Server we store now owner.tablename as tablename. To avoid missing characters, the relative field lenght has be changed.
- If you try to delete records in a table with string pks, you got an error.
- If you try to delete records in a table with string pks, you come back to a new form with primary keys filled with old values. Fixed so the new form is totally empty.

 

Version 06.03.02 (2005-01-24)
=============================
- In previous version the MSSQL support works only if your database is named sqledit owing to some lines of testing code I left in mssql.pm.
- No changes has been made in SQLEdit.pm apart from the versione number.

 

Version 06.03.01 (2005-01-24)
=============================
- Alter SQLEdit database because databaseLinkId must be a varchar in WebGUI 6.2
- The databaseLink selection doesn't work because databaseLinkId is a varchar in WebGUI 6.2 and because default database link selection is now binded to default WebGUI database and not to the unset value.
- Internally changed the variable name which handle database connection to avoid conflict with WebGUI variables namespace.
- In the versions of WebGUI previous to the 06.00.00 if yours form has datetime fields and it produced an error owing to checks in the value of the fields, the datetime fields reset to value "01-01-1970". Fixed
- Add a property of the WObject to inform SQLEdit what kind of database it will be used. Default database type will be, obviously, MySQL.
- Add Cc and Bcc fields for email notify.
- To, From, Cc and Bcc now processes macros.

 

Version 06.03.00 (2005-01-16)
=============================
- Optimize access to user database handler.
- All database logics has been moved out from SQLEdit into DBIx::DBDescribe module.

Version 06.02.05 (2005-01-15)
=============================
- If you add a new SQLEdit object, it failed because system was unable to detect email address of the owner object. Fixed
- I don't know when, but soft reload didn't work. Fixed

 

Version 06.02.04 (2005-01-07)
=============================
- No changes has been made to SQLEdit.pm (among to version number)

- The create script of previous version have an error in the creation of table SQLEdit. Those who upgraded from previous versions (<06.02.03) have not found some problem and they must not do anything. Those who installed 06.02.03 from scratch got an error when add an SQLEdit object. These peoples can simple solve problem executing these sql statements

  ALTER TABLE `SQLEdit` ADD `emailSend_onAfterAddNew` TINYINT( 1 )
    UNSIGNED DEFAULT '0' NOT NULL ;
  ALTER TABLE `SQLEdit` ADD `emailTemplateId` VARCHAR( 22 ) DEFAULT '4'
    NOT NULL;
  ALTER TABLE `SQLEdit` ADD `emailFrom` VARCHAR( 80 ) NOT NULL ;
  ALTER TABLE `SQLEdit` ADD `emailTo` VARCHAR( 80 ) NOT NULL ;
  ALTER TABLE `SQLEdit` ADD `emailSubject` VARCHAR( 255 ) NOT NULL ;

 

Version 06.02.03 (2004-12-27)
=============================
- In the test_anagr example and, generally, if you try to delete a record using the func=deleteForm SQLEdit link parameter, default for proceed parameter is 'back' and so, if you have a referer page, you should expect to go back to this referer page. But, until now, this was not true and you always came back to the SQLEdit page in "enter a new record" mode. This is now fixed and so, you go back to your referer page after record has been deleted.
- Visible property were valued twice. Fixed.
- Add a global session variable $session{SQLEdit}{is_error} that is true only if there is some errors in the save process.
- Fields_loop template variable now return columns properties and values order by sequenceNumber.
- A template variable edit.url has been added with url to current page
- It's now possible to send an email every time a record has been added or updated.

 

Version 06.02.02 (2004-12-13)
=============================
- If you upload a file, two (hidden) fields can be used as columns name or in onBeforeSave event. If your upload filed is called "upload_file", the column "upload_file_ContentType" can be used to get mime type of the uploaded file and "upload_file_FileName" to get the original uploaded file name.
- Sometimes editing a record with an autoincrement field, reset its value. Fixed
- Unable to delete field with a primary key value equal to 0. Fixed.

 

Version 06.02.01 (2004-09-25)
=============================
- A bug, which produces an error when fields are edited in WebGUI versions minor than 6.1.1, has been fixed.

 

Version 06.02.00 (2004-09-23)
=============================
- Removed a bug that produce, under some circustance, a not well formatted reload database schema page.
- Add upload file support for blob columns. You can now upload binary data (image, pdf,...) into a *blob column. You can also delete the stored data.Remember that many configurations are required to allow upload of large files over HTTP. As an example, LimitRequestBody Apache directive or, since files will be stored in a mysql database using sql statements, max_allowed_packet mysql variable that limit the sql statement length. To have more information take a look at http://www.ebruni.it/software/os/webgui/sqledit/upload.htm
- In order to follow changes in WebGUI 6.2.x related to wobject ids, now all ids in SQLEdit are stored in a varchar(22) fields.
- For the same reason create.sql script has been changed.

- Using a better way (LAST_INSERT_ID) to retrieve auto_increment id of last added record.

 

Version 06.01.04 (2004-08-29)
=============================
- Correct a typo in help reference which involves WebGUI 5 only. This had been already fixed in the 06.01.01 create_01_pre_06_01.sql but no solution had been created for those who had upgraded from previous version. The upgrade_06.01.03_06.01.04.sql fixes it.
- Correct two typo in the create.sql script.
- No changes has been made to SQLEdit.pm (among to version number)

 

Version 06.01.03 (2004-08-13)
=============================
- Add a size field property for textbox.
- Change default template to have the configuration of "whatNext" combo inside template. Parameter template form.next is obsoleted and it will be removed in next versions.
- Fix a bug that affected only previous version that don't show datetime in WebGUI 5.x
- Some changes in database link selection labels.

 

Version 06.01.02 (2004-08-04)
=============================
- Owing to the fact that SQLEdit is affected by WebGUI bug of the date before 1970/01/01, I removed dependence to Time::Local that may cause problems if you don't use GMT time and I used WebGUI::DateTime. If you want a WebGUI::DateTime not affected by this bug, I developed a new WebGUI::DateTime. You can find it here.

 

Version 06.01.01 (2004-08-03)
=============================
- Correct a typo in help reference.
- Correct a typo in onBeforeEdit event where variable fld_values had been named fdl_values.
- If your date(time) field is readonly, you always get date(time) in internaldatabase format, whatever was your profile choise. Fixed. However, owing to a WebGUI bug in version from 5.5.8 to 6.1.1 (until now) this is the only case where your date will be displayed with your settings profile.
- If the database field is in epoch (int) format and you set a date(time) field format in form you get correct date. But if you set field as readonly (visible), you come back to see epoch time. Fixed.
- Note: If used in WebGUI 5.5.6, SQLEdit IS NOT affected by WebGUI bug which doesn't permit to save dates previous to January, 1st 1970. For other WebGUI versions you can use Date::Calc patch available here.
 

Version 06.01.00 (2004-07-31)
=============================
- Add Help and i18n directory with SQLEdit help relations and internalizations for WebGUI 6.1.x
- Split create.sql in two script, the first to run always, the second only in WebGUI < 6.1.x.
- Add code to maintain compatibility between old and new APIs for functions canEditWobject, isInGroup and canEditPage
- SQLEdit global configuration page and fields configuration page are now showed in "AdminStyle" without neighbour elements.

- Fix some bugs in uninstall.sql

 

Version 06.00.12 (2004-07-18)
=============================
- Field value is now sent to field template (or fields loop) like field.value template parameter.
- An error raised if you try to set default field template as 'inherited' in the main SQLEdit configuration page. The value is only valid for fields configurations.
- Now default template use the new template engine where fields layout are stored in the fields template. Old template (where fields layout are stored in TMPL_LOOP element) is now called "default Pre 06.00.12". This is not true for those who upgrade from a previous version. Here only names will change, but "default Pre" will continue to be the default value.
- Add two template named 'Read Only' to SQLEdit and SQLEdit_field namespace to use SQLEdit as a viewer.

 

Version 06.00.11 (2004-07-13)
=============================
- No changes in SQLEdit.pm
- Starting from 06.00.08 the create script have an error in the creation of table SQLEdit_field. Two columns (nullValue, nullValueOther) are missing. Those who upgraded from previous versions (<06.00.08) have not found some problem and they must not do anything. Those who installed 06.00.08,09,10 from scratch got an error if they try to change fields property. These can find an error like "Unknown column 'nullValueOther' in 'field list'" in their webgui.log. To solve this problem, you can uninstall SQLEdit and install this version or you can execute this upgrade sql statement
  ALTER TABLE `SQLEdit_field`
    ADD nullValue VARCHAR(10) DEFAULT 'undef' NOT NULL AFTER defaultValue,
    ADD nullValueOther VARCHAR(20) AFTER nullValue;

 

Version 06.00.10 (2004-07-04)
=============================
- Some optimization in functions which analyze database schema and support for a ZEROFILL and BINARY mysql attributes.
- Now it's possible to order possible values numerically
- Now it's possible to order possible values also with a descending order.
- Add an user event function onLoad where you can alter SQLEdit status mode. This function obtain an hashref with one parameter, 'session_form' that is an hashref with all session form item.
- Add an user event function onBeforeEdit where you can alter form values before record will be edit. This function obtain an hashref with three parameter:'fld_values' that is an hashref of all values database columns, 'tmpl_var' that is an hashref with template params, 'fld_pers' with user field preferences.
- Add an user event function onBeforeSave where you can alter form values before record will be saved. This function obtain an hashref with two parameters: 'fld_values' that is an hashref of all values database columns and 'cancel' that is a scalar that abort save if not empty.
- Add an user event function onBeforeCancel where you can hook form before record will be deleted. This function obtain an hashref with one key 'cancel' that, if not empty, abort delete and return its value as an error to user.
- A better understanding of WebGUI process, has allowed to never disappear admin buttons and other elements of WebGUI page during SQLEdit operations. Removing HTTP redirect response status also reduced drastically bytes sent to browser.
- Default form templates (old and new template engine) have been changed so that link to delete record is hidden if you are adding a new record.
- In previous version, link to delete record inside SQLEdit works only if your  primary key was called "id". To the contrary, you had to change template by adapting it to your primary keys structure. Now, a new template parameter "form.pkvqs" has been added and default form templates have been changed to use this new parameter and to create a correct link in every case.
- Module had problem if a database column name had non-"word" characters.
- When you edit a record with primary keys not auto-increment, these are editable fields (as in add record mode). This is not good. Starting from now, in edit mode, if not hidden, primary keys fields are always visible (read-only).
- Default status for primary key fields is now 'required'. This setting affect only new SQLEdit elements or elements where you make an hard reload.
- In previous versions, only users that were able to edit page, were able to add/delete records. Now everyone can do it. You can filter those who can do it using the parameter 'cancel' in onBeforeSave and onBeforeCancel events.

 

Version 06.00.09 (2004-06-27)
=============================
- Update documentation.
- Owing to a bug in WebGUI::Form, standard selectList of all WebGUI form fields is missing of "float" field. Integrated a patched fieldType function to show original missing fields until WebGUI developers don't fix this problem.
- Optimized the function that creates form fields.
- Update default template to create correct HTML code and add administrative button when fields are hidden.
- It's now possible to render field with different layout, because at every fields it's possible to apply a different "field template". It's possible, as an example, to build form with some fields on the same row.
- Now, when saving data, eventual problems are intercept and they do not produce a WebGUI error more. It is possible to obtain the internal problem description enabling the debug module.

 

Version 06.00.08 (2004-06-20)
=============================
- Many problems relevant to datetime format have been fixed. First of all, if a form field had defined as datetime, no values would have been saved into the database. Moreover, if a database field had been of datatime type, synchronize form with database would have raised an error.
- Now you can set a special string value that it will be translated as NULL database value. For DATE nullable fields, if you set this value to the empty string it will be translated to the NULL value, else it will be translated to the empty date '0000-00-00'. For a Datetime field, owing to a WebGUI bug, if you set its value to your special NULL string value, the NULL value will be saved but current datetime will be showed when you edit the record.

 

Version 06.00.07 (2004-06-16)
=============================
- Centralized international traslation function to clean code
- Field property page now have tabs and it looks like Wobject property page.
- Add a tab in the field property page to set some kind of restriction for the field value like: permitted chars, range of values, length limits and so on.
- If a database reload is required, now it will be executed a "soft" reload. Fields which exist only in table will be appended it the form while fields which exist only in the form will be deleted. All other fields will stay unchanged and all its user configurations will stay unchanged. To force an "hard" reload (the one available in previous version) a checkbox has beenadded to reload confirm page.
- Reload confirm pages has been internationalized.

 

Version 06.00.06 (2004-05-31)
=============================
- Fixed a bug which doesn't correctly save dates if the database field is in epoch (int) format. Note: SQLEdit IS NOT affected by WebGUI bug which doesn't permit to save dates previous to January, 1st 1970.

 

Version 06.00.05 (2004-05-26)
=============================
- Added a property named 'visible' to SQLEdit Wobject. This property can be used to choose if SQLEdit will be visible (and active) in the page. It's a Perl function code that SQLEdit calls every time the object should be rendered in the page and must return '0' or '1'. Before eval Perl code in this property, a macro expansion, will be executed and so, you can use WebGUI macros to choise if SQLEdit object will be visible.
- Now "referer page" process WebGUI macros.

Version 06.00.04 (2004-05-17)
=============================
- A bug in the previous version produces an error if you try to add or modify an SQLEdit object. It tries to update property possibleValuesSort in the SQLEdit table, while this is a parameter of SQLEdit_field table.
- You got an error if one of the primary keys is a string (and must be quoted in SQL query).
- Delete records doesn't work if there isn't a primary key named 'id'. Fixed.
- Now, all form field values can be overwrote by query string parameters.

Version 06.00.03 (2004-05-16)
=============================
- Modify documentation to remember to be a "guru" for using this module.
- Now it's possible to choose in which kind of order, fields possible values will be listed: preserving input order, ordered by key or by values.

Version 06.00.02 (2004-04-05)
=============================
- SQLEdit used an hidden field named "op" that gives problems because it's internally used by WebGUI. This causes errors in webgui.log like Bareword "WebGUI::Operation::www_save" not allowed while "strict subs". Fixed by changing hidden field name in "exec". Thanks to Renat Araslanow for reporting problem and for suggesting a solution.
- Changed some internal logics to understand what kind of operation it will be executed.

Version 06.00.01 (2004-03-31)
=============================
- Now you can use macro to set possible values and defaul value for fields.

Version 06.00.00 (2004-03-15)
=============================
- A little gap :-) in the versioning. This version works well with WebGUI 6.0 but is backward compatible with WebGUI 5.5
- In WebGUI6 we use the new databaseLink select object while in previous version we should create the select object by hands. This is the only difference that produce an error if you use SQLEdit ver. 1.0.x in WebGUI6.
- If you save a record an SQL query show also if debug is disabled. Fixed.
- It's now possible to set a default value for fields. Default is obtained from database schema and can be modified from fields editor.

Version 01.00.04 (2004-02-27)
=============================
- If you delete a database field from a table and then try to open an existent page with an SQLEdit object that link to the table you got an error. Now you are notified that it is required to reload database schema.

Version 01.00.03 (2004-02-26)
=============================
- If you try to write text on a database field that is a BLOB, text isn't escaped and so query fails. Fixed.
- If you hide a control you see the word "Nascosto" when administrative panel is on. Internationalized it. Thanks to Lee Patrick Drummond for reporting these bugs.

Version 01.00.02 (2004-01-31)
=============================
- Add some help file
- DSN doesn't work if directly set without use databaseLink. Fixed.
- Some database operations don't work if tables are outside WebGUI Db. Fixed
- Add support for required fields.

Version 01.00.01 (2004-01-21)
=============================
- Removed dependence from DBIx::DBSchema. All required functions internally rewrited
- Added support for cut and paste of SQLEdit into WebGUI clipboard
- Added some other international strings
- Change default template to support internationalization strings
- Added SQL script to upgrade database from 01.00.00
- Adapted SQLEdit directory structure to WebGUI structure

Version 01.00.00 (2004-01-01)
=============================
- First public release.