diff --git a/CHANGELOG.md b/CHANGELOG.md index c5a4a75f6689559d74f9bc204b127a9b48d2958f..4ecda19f6caf6c8cff34df58765b0e5be4d1636e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,23 @@ Features Bug Fixes ^^^^^^^^^ +Version 20.4.1 +-------------- + +Date: 30.04.2020 + +Notes +^^^^^ + +* Developer: update local npm/font awesome packages via `make bootstrap`. + +Features +^^^^^^^^ + +* #10433 / Update to Font Awesome 5.0 +* #10379 / Stored Procedure: SLUGIFY() +* Manual.rst: Example Report 'render'. Update several places to fit latest ReST layout rules. + Version 20.4.0 -------------- @@ -44,32 +61,31 @@ Date: 05.04.2020 Notes ^^^^^ - * New Feature: `typeAheadTag <https://docs.typo3.org/p/IMATHUZH/qfq/master/en-us/Manual.html#type-ahead-tag>` - extend regular input with multiple values via typeAhead. _ - * MySQL StoredProcedure: +* New Feature: `typeAheadTag <https://docs.typo3.org/p/IMATHUZH/qfq/master/en-us/Manual.html#type-ahead-tag>`_ - extend regular input with multiple values via typeAhead. _ +* MySQL StoredProcedure: - * strip_tags() - Simple strip html tags. - * QCC() - Escape colon / coma. Useful for QFQ link arguments like 'text' or 'tooltip'. + * strip_tags() - Simple strip html tags. + * QCC() - Escape colon / coma. Useful for QFQ link arguments like 'text' or 'tooltip'. Features ^^^^^^^^ - * #9686 / Download: sanitize output filename. - * #10358 / Configure path/environment via QFQ config: qpdf, gs, pdfunite. - * #9517, #10145, #10177, #10117 / typeAheadTag. - * #10152 / QCC() - Stored Procedure to escape colon / coma. - * #10115 / TypeAhead: static list. - * FabricJS: replaced glyphicons with font awesome. - * Rename config.qfq.example.php config-example.qfq.php. +* #9686 / Download: sanitize output filename. +* #10358 / Configure path/environment via QFQ config: qpdf, gs, pdfunite. +* #9517, #10145, #10177, #10117 / typeAheadTag. +* #10152 / QCC() - Stored Procedure to escape colon / coma. +* FabricJS: replaced glyphicons with font awesome. +* Rename config.qfq.example.php config-example.qfq.php. Bug Fixes ^^^^^^^^^ - * #6798 / Close didn't worked with r=0. - * #10199 / Form.forwardMode: missing mode 'Close' / 'Auto'. - * #10173 / Dynamic Update: Readonly element can't be activated via dynamic update. - * Fix broken default value for Form.forwardMode. - * Fix problem with reporting broken TG-FormElements. - * Add error message if primary table does not exist. +* #6798 / Close didn't worked with r=0. +* #10199 / Form.forwardMode: missing mode 'Close' / 'Auto'. +* #10173 / Dynamic Update: Readonly element can't be activated via dynamic update. +* Fix broken default value for Form.forwardMode. +* Fix problem with reporting broken TG-FormElements. +* Add error message if primary table does not exist. Version 20.2.0 -------------- @@ -199,7 +215,7 @@ Bug Fixes * #9691 / Checkbox: dynamic update > readonly. HTML ID for checkbox elements. Dynamic update switch 'readonly' for 'checkbox plain multi' and 'radio plain multi'. * #9692 / Keyboard Select Checkbox. * #9720 / Checkbox: Various setups with dynamic update. -* #9733 / Identiy different tabs. Record lock for same tab will always be granted. +* #9733 / Identify different tabs. Record lock for same tab will always be granted. * #9734 / Fix 'dirty lock release' - leaving a dirty form without closing, leaves a stale lock record. Added a releaselock() before window.unload. Dirty remove on goBack. * #9735 / File Delete: no dirty trigger. @@ -221,12 +237,12 @@ Features * #9655 / Checkboxes and radios now defined with a min-width in horizontal plain mode. * #9617 / formModeGlobal: - * Two modes of 'formModeGlobal' available: 'requiredOff' and 'requiredOffButMark'. - * 'requiredOffButMark': + * Two modes of 'formModeGlobal' available: 'requiredOff' and 'requiredOffButMark'. + * 'requiredOffButMark': - * Renamed temporary 'skipRequiredCheck' to 'requiredOffButMark'. - * Keep required marks after save. - * Stop hiding helpblocks per default, set with class qfq-only-active-error. + * Renamed temporary 'skipRequiredCheck' to 'requiredOffButMark'. + * Keep required marks after save. + * Stop hiding helpblocks per default, set with class qfq-only-active-error. * Radio: new class 'qfq-disabled' if readonly is set. Softer blue. Mark disabled - changed hover. Text in darker orange. Simple-error renamed to qfq-notify - removed box around error. @@ -241,11 +257,11 @@ Bug Fixes * #3995 / Implemented partly: CheckBox and Radio can now be locked. * #8091 / Checkbox required: - * If radio or checkbox is required and empty on submit, form save brings the element to front. - * Fix radio plain vertical. - * Fix label2 not to be bold. - * Checkbox Plain Vertical: forces 'font-weight: 400;'. - * Updated colors for checkboxes/radios. + * If radio or checkbox is required and empty on submit, form save brings the element to front. + * Fix radio plain vertical. + * Fix label2 not to be bold. + * Checkbox Plain Vertical: forces 'font-weight: 400;'. + * Updated colors for checkboxes/radios. * #9638 / Textarea Sizing: Now also listens for paste. * #7891 / Added missing 'type="button"' to button element. @@ -282,12 +298,12 @@ Bug Fixes * #7639 / subrecord drag n drop: - * `orderInterval` has not been respected. - * Update Manual.rst. - * Fake STORE_SIP so it can be used during processing sql1. - * The record, currently loaded into form, is available via STORE_RECORD. - * Check for id/_id and ord/_ord. - * Throw meaningful exception if missing 'id' or 'ord'. + * `orderInterval` has not been respected. + * Update Manual.rst. + * Fake STORE_SIP so it can be used during processing sql1. + * The record, currently loaded into form, is available via STORE_RECORD. + * Check for id/_id and ord/_ord. + * Throw meaningful exception if missing 'id' or 'ord'. * Fixes bug that no mime_type_content is called if there is on file. * Fix broken regex101 url. @@ -300,7 +316,7 @@ Date: 11.11.2019 Bug Fixes ^^^^^^^^^ - * #9532 / 'Advanced Upload' broken - slaveId/sqlUpdate/... have been processed two times, after multiform code changes. +* #9532 / 'Advanced Upload' broken - slaveId/sqlUpdate/... have been processed two times, after multiform code changes. Version 19.11.0 --------------- @@ -456,11 +472,11 @@ Features * Manual.rst: - * Update tablesorter `class="sorter-false"`. - * Add note to include font-awesome. - * QFQ_LOG documentation. - * Enhance wkhtml debug info. - * Add link to https://mariadb.com/kb/en/library/stored-routine-privileges/ + * Update tablesorter `class="sorter-false"`. + * Add note to include font-awesome. + * QFQ_LOG documentation. + * Enhance wkhtml debug info. + * Add link to https://mariadb.com/kb/en/library/stored-routine-privileges/ * Increase Length of column Form.forwardPage limit from 255 to 511. * Index.rst: Add Rafi, Elias, Nicola as further contributors. @@ -498,9 +514,9 @@ Features * TWIG: - * Add Twig Extension to parse QFQ Links - * Pass assoc-array of query result as context - * allow to pass template as string + * Add Twig Extension to parse QFQ Links + * Pass assoc-array of query result as context + * allow to pass template as string * Database.php: extend function sql error message * #8179 / extraButtonLock and extraButtonPassword might be specified without a value or with 0 or with 1. @@ -743,8 +759,8 @@ Date: 15.03.2019 Bug Fixes ^^^^^^^^^ - * 8058 / Form > fillStoreVar: broken for TemplateGroup - Form.fillStoreVar not available during fillStoreForm(). - * 8048 / A retype FE should not be checked for 'required' during save. +* 8058 / Form > fillStoreVar: broken for TemplateGroup - Form.fillStoreVar not available during fillStoreForm(). +* 8048 / A retype FE should not be checked for 'required' during save. Version 19.3.0 @@ -1239,13 +1255,13 @@ Notes 'jquery.tablesorter.pager.min.js', 'widget-columnSelector.min.js' in your Typo3 template record. See https://docs.typo3.org/p/IMATHUZH/qfq/master/en-us/Manual.html#setup-css-js - * *Existing* QFQ installations: update your CSS/JS includes! The new tablesorter jquery plugin might break (JS errors - seen on the console) your installation, if it isn't included! + * *Existing* QFQ installations: update your CSS/JS includes! The new tablesorter jquery plugin might break (JS errors + seen on the console) your installation, if it isn't included! - * If you use the extension 'UZH Corporate Design Template': + * If you use the extension 'UZH Corporate Design Template': - * Update to the latest version 18.9.0. - * Add constants in the Typo3 template record 'ext: main': :: + * Update to the latest version 18.9.0. + * Add constants in the Typo3 template record 'ext: main': :: cd.extra.css.file5 = typo3conf/ext/qfq/Resources/Public/Css/tablesorter-bootstrap.css @@ -1452,8 +1468,8 @@ Notes * NEW: Drag and drop to sort elements! Check the Manual. * `URL forwardMode` - * `client` renamed to `auto`. - * `close` added. + * `client` renamed to `auto`. + * `close` added. Features ^^^^^^^^ @@ -2583,47 +2599,47 @@ Version 0.15 Changes ^^^^^^^ - * Play formEditor.sql. +* Play formEditor.sql. - * Form 'FormElement' failed to display the formtitle of the current form in case of a new FE. - * Updated subrecord in 'Form' for 'FormElements' - columns 'size' and 'sql1' removed and 'dyn' inserted. Play formEditor.sql. +* Form 'FormElement' failed to display the formtitle of the current form in case of a new FE. +* Updated subrecord in 'Form' for 'FormElements' - columns 'size' and 'sql1' removed and 'dyn' inserted. Play formEditor.sql. - * #3431, Parameter keyword 'typeAheadLdapKeyPrintf' changed to 'typeAheadLdapIdPrintf'.:: +* #3431, Parameter keyword 'typeAheadLdapKeyPrintf' changed to 'typeAheadLdapIdPrintf'.:: - UPDATE FormElement SET parameter = REPLACE(parameter, 'typeAheadLdapKeyPrintf', 'typeAheadLdapIdPrintf') + UPDATE FormElement SET parameter = REPLACE(parameter, 'typeAheadLdapKeyPrintf', 'typeAheadLdapIdPrintf') - * Size 'placeholder' increased:: +* Size 'placeholder' increased:: - ALTER TABLE `FormElement` CHANGE `placeholder` `placeholder` VARCHAR( 2048 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; + ALTER TABLE `FormElement` CHANGE `placeholder` `placeholder` VARCHAR( 2048 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; Features ^^^^^^^^ - * Introduce new config.qfq.ini setting 'EDIT_FORM_PAGE' - by default set to 'form' - the wrench symbol on every Form - will direct to that page. Fix #3420 / Quicklink 'editform' on form: directs to the current T3 page which might be insufficient. - * Form 'subrecord' columns: the default width limit of 20 chars are disabled if 'nostrip' is specifed. - * #3431 / typeAheadSql: columnname 'key' is a reserverd SQL statement - replace by 'id'. Additional the parametername - 'typeAheadLdapKeyPrintf' renamed to 'typeAheadLdapIdPrintf'. By using 'id' instead of 'key' the quoting of the columnname - is not necessary anoymore. +* Introduce new config.qfq.ini setting 'EDIT_FORM_PAGE' - by default set to 'form' - the wrench symbol on every Form + will direct to that page. Fix #3420 / Quicklink 'editform' on form: directs to the current T3 page which might be insufficient. +* Form 'subrecord' columns: the default width limit of 20 chars are disabled if 'nostrip' is specifed. +* #3431 / typeAheadSql: columnname 'key' is a reserverd SQL statement - replace by 'id'. Additional the parametername + 'typeAheadLdapKeyPrintf' renamed to 'typeAheadLdapIdPrintf'. By using 'id' instead of 'key' the quoting of the columnname + is not necessary anoymore. Bug Fixes ^^^^^^^^^ - * #3419 / typeAheadSql: Array with only one column or non standard columnnames are not handeld properbly. - Detection of missing LIMIT implemented. - * #3425 / Form.parameter, FormElement.parameter: comment handling, trailing & leading spaces - Manual.rst: commented handling of 'comment character' and 'escaping of leading/trailing spaces' - Support.php: new funtion handleEscapeSpaceComment(). - * Evaluate.php: parse all F|FE.parameter via handleEscapeSpaceComment(). A leading '#' or ' ' might be escaped by '\'. - * Saving 'extra' FE in STORE_SIP has been done with inappropiate FE_NAME. Correct is the pure FE_NAME, without any - extension like recordId. Unessary and broken decoding removed. - * #3426 / Dynamic Update: Inputs loose the new content and shows the old value. - * Through fix #2064 the FE.checkType has not been used anymore. This is fixed now. - * #3433 / templateGroup on primary Record: Values of removed copies are not deleted. The new implementation creates empty - fake instances of all copies of templateGroup FormElements. Those are empty. Before save, the submitted form values - will be expanded with the empty fake templateGroup FormElements and such empty values will be saved. +* #3419 / typeAheadSql: Array with only one column or non standard columnnames are not handeld properbly. + Detection of missing LIMIT implemented. +* #3425 / Form.parameter, FormElement.parameter: comment handling, trailing & leading spaces + Manual.rst: commented handling of 'comment character' and 'escaping of leading/trailing spaces' + Support.php: new funtion handleEscapeSpaceComment(). +* Evaluate.php: parse all F|FE.parameter via handleEscapeSpaceComment(). A leading '#' or ' ' might be escaped by '\'. +* Saving 'extra' FE in STORE_SIP has been done with inappropiate FE_NAME. Correct is the pure FE_NAME, without any + extension like recordId. Unessary and broken decoding removed. +* #3426 / Dynamic Update: Inputs loose the new content and shows the old value. +* Through fix #2064 the FE.checkType has not been used anymore. This is fixed now. +* #3433 / templateGroup on primary Record: Values of removed copies are not deleted. The new implementation creates empty + fake instances of all copies of templateGroup FormElements. Those are empty. Before save, the submitted form values + will be expanded with the empty fake templateGroup FormElements and such empty values will be saved. Version 0.14 @@ -2632,47 +2648,47 @@ Version 0.14 Changes ^^^^^^^ - * Play formEditor.sql. +* Play formEditor.sql. - * All Form & FormEditor input elements now have a maxlength definition of 0, which means take the column definition value. - * Drop-down list of container assignment: +* All Form & FormEditor input elements now have a maxlength definition of 0, which means take the column definition value. +* Drop-down list of container assignment: - * Display 'type' ('pill', 'fieldset', 'templategroup') instead of 'class' (always 'container'). - * Display 'name' (internal name) instead of 'label' (shown on the website and might not so usefull as 'name' which - is nowhere else used than in that drop-down. +* Display 'type' ('pill', 'fieldset', 'templategroup') instead of 'class' (always 'container'). +* Display 'name' (internal name) instead of 'label' (shown on the website and might not so usefull as 'name' which + is nowhere else used than in that drop-down. - * FormElement.placeholder colum width extended to 512: +* FormElement.placeholder colum width extended to 512: - ALTER TABLE `FormElement` CHANGE `placeholder` `placeholder` VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' + ALTER TABLE `FormElement` CHANGE `placeholder` `placeholder` VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' - * New class Ldap.php. +* New class Ldap.php. Features ^^^^^^^^ - * Typeahead for SQL and LDAP Datasources implemented. - * formEditor.sql: Changed width of column FormElement.placeholder from 255 to 512. Removed hardcoded 'size' in FormElement 'placeholder'. - * Character Count: Display a `counter` on input or textarea fields, activated by specifying the formElement.parameter 'characterCountWrap'. - * Evaluate.php: Two new escape options 'l' and 'L'. Backport of ldap_escape() for PHP <5.6. Multiple escaping for one value now possible. - * Manual.rst: add some example for TypeAhead and for saving LDAP value. - * Load foreign values in templatGroups - saving is not implemented yet. - * Manual: Added howto prevent <p>-wrap in TinyMCE. - * TemplateGroup: Add button now disabled if max. number of copies reached. - * #3414 / QuickFormQuery.php: wrap whole form in 'col-md-XX' - User controls the width of an QFQ form. +* Typeahead for SQL and LDAP Datasources implemented. +* formEditor.sql: Changed width of column FormElement.placeholder from 255 to 512. Removed hardcoded 'size' in FormElement 'placeholder'. +* Character Count: Display a `counter` on input or textarea fields, activated by specifying the formElement.parameter 'characterCountWrap'. +* Evaluate.php: Two new escape options 'l' and 'L'. Backport of ldap_escape() for PHP <5.6. Multiple escaping for one value now possible. +* Manual.rst: add some example for TypeAhead and for saving LDAP value. +* Load foreign values in templatGroups - saving is not implemented yet. +* Manual: Added howto prevent <p>-wrap in TinyMCE. +* TemplateGroup: Add button now disabled if max. number of copies reached. +* #3414 / QuickFormQuery.php: wrap whole form in 'col-md-XX' - User controls the width of an QFQ form. Bug Fixes ^^^^^^^^^ - * Dynamic Update has been broken since implementing of 'element-update' (#3180). Now both methods, 'element-update' and 'form-update' should be fine. - * qfq-bs.css.less: Fixed problem with 'typeahead input elements' not expanded to Bootstrap column width. Changed - Layout/Design Typeahead drop-down box. Add hoover for the drop-down box with a blue background. - * AbstractBuildForm.php: #3374 - textarea elements now contains 'maxlength' attribute. - * BuildFormBootstrap.php: wrapping of optional 'submitButtonText' now done with the 'per form' values. - * typeahead.php: if there is an exception, the message body is sent as regular 'content' for the drop-down box. At the - moment this is the only way to transmit any error messages. - * formEditor.sql: removed all 'maxLength' string values for 'Form' and 'FormElement' forms. - * Save button becomes active if a templateGroup copy is removed. - * #3413 / Form ohne Pill hat kein padding am Rand. Fix: if there are no pills, an additinal col-md-12 will be rendered. +* Dynamic Update has been broken since implementing of 'element-update' (#3180). Now both methods, 'element-update' and 'form-update' should be fine. +* qfq-bs.css.less: Fixed problem with 'typeahead input elements' not expanded to Bootstrap column width. Changed + Layout/Design Typeahead drop-down box. Add hoover for the drop-down box with a blue background. +* AbstractBuildForm.php: #3374 - textarea elements now contains 'maxlength' attribute. +* BuildFormBootstrap.php: wrapping of optional 'submitButtonText' now done with the 'per form' values. +* typeahead.php: if there is an exception, the message body is sent as regular 'content' for the drop-down box. At the + moment this is the only way to transmit any error messages. +* formEditor.sql: removed all 'maxLength' string values for 'Form' and 'FormElement' forms. +* Save button becomes active if a templateGroup copy is removed. +* #3413 / Form ohne Pill hat kein padding am Rand. Fix: if there are no pills, an additinal col-md-12 will be rendered. Version 0.13 @@ -2681,55 +2697,55 @@ Version 0.13 Changes ^^^^^^^ - * Play formEditor.sql. - * formEditor.sql: +* Play formEditor.sql. +* formEditor.sql: - * Checktype of `Form.name` restricted to `alnumx` (prior `all`). - * Changed `access` for Form `form` & '`ormElement` from `always` to `sip`. + * Checktype of `Form.name` restricted to `alnumx` (prior `all`). + * Changed `access` for Form `form` & '`ormElement` from `always` to `sip`. - * Table `FormElement`: +* Table `FormElement`: - * Modified column: `checkType` - new value `numerical`. + * Modified column: `checkType` - new value `numerical`. ALTER TABLE FormElement MODIFY COLUMN checkType ENUM('alnumx','digit','numerical','email','min|max','min|max date', 'pattern','allbut','all') NOT NULL DEFAULT 'alnumx' - * Example Report for `forms` extended by a delete button per row. +* Example Report for `forms` extended by a delete button per row. Features ^^^^^^^^ - * print.php: offers 'print page' for any local page - create a PDF on the fly (printout is then browser independent). +* print.php: offers 'print page' for any local page - create a PDF on the fly (printout is then browser independent). - * Install `wkhtmltopdf` on the webserver (http://wkhtmltopdf.org/). - * In config.qfq.ini setup: + * Install `wkhtmltopdf` on the webserver (http://wkhtmltopdf.org/). + * In config.qfq.ini setup: BASE_URL_PRINT=http://www.../ WKHTMLTOPDF=/opt/wkhtmltox/bin/wkhtmltopdf - * Check and error report if 'php_intl' is missing. - * New Checktype 'allow numerical'. - * Documentation: example for 'radio' with no pre selection. - * #3063 / Radios and checkboxes optional rendered in Bootstrap layout. - * Added 'help-box with-errors'-DIV after radios and checkboxes. - * Respect attribute `data-class-on-change` on save buttons. +* Check and error report if 'php_intl' is missing. +* New Checktype 'allow numerical'. +* Documentation: example for 'radio' with no pre selection. +* #3063 / Radios and checkboxes optional rendered in Bootstrap layout. +* Added 'help-box with-errors'-DIV after radios and checkboxes. +* Respect attribute `data-class-on-change` on save buttons. Bug Fixes ^^^^^^^^^ - * #2138 / digit sanitize: new class 'numerical' implemented. - * Fixed recursive thrown exception. - * #2064 / search of a default value for a non existing tablecolumn returns 'false'. +* #2138 / digit sanitize: new class 'numerical' implemented. +* Fixed recursive thrown exception. +* #2064 / search of a default value for a non existing tablecolumn returns 'false'. - * Fixed setting of STORE_SYSTEM / showDebugInfo during API call. + * Fixed setting of STORE_SYSTEM / showDebugInfo during API call. - * #2081, #3180 / Form: Label & note - update via `DynamicUpdate`. - * #3253 / if there is no STORE_TYPO3 (calls through .../api/ like save, delete, load): use SIP / CLIENT_TYPO3VARS. - * qfq-bs.css: +* #2081, #3180 / Form: Label & note - update via `DynamicUpdate`. +* #3253 / if there is no STORE_TYPO3 (calls through .../api/ like save, delete, load): use SIP / CLIENT_TYPO3VARS. +* qfq-bs.css: - * Alignment of checkboxes and radios optimized. - * CSS class 'qfq-note' for 'notes' (third column in a form). + * Alignment of checkboxes and radios optimized. + * CSS class 'qfq-note' for 'notes' (third column in a form). Version 0.12 @@ -2738,101 +2754,103 @@ Version 0.12 Changes ^^^^^^^ - * Table 'FormElement' - * New column: rowLabelInputNote: +* Table 'FormElement' + * New column: rowLabelInputNote: ALTER TABLE `FormElement` ADD `rowLabelInputNote` set('row','label','/label','input','/input','note','/note','/row') NOT NULL DEFAULT 'row,label,/label,input,/input,note,/note,/row' AFTER `bsNoteColumns` ; - * Modified column: 'type' - new value 'templateGroup': + * Modified column: 'type' - new value 'templateGroup': ALTER TABLE `FormElement` CHANGE `type` `type` ENUM( 'checkbox', 'date', 'datetime', 'dateJQW', 'datetimeJQW', 'extra', 'gridJQW', 'text', 'editor', 'time', 'note', 'password', 'radio', 'select', 'subrecord', 'upload', 'fieldset', 'pill', 'templateGroup', 'beforeLoad', 'beforeSave', 'beforeInsert', 'beforeUpdate', 'beforeDelete', 'afterLoad', 'afterSave', 'afterInsert', 'afterUpdate', 'afterDelete', 'sendMail' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'text' - * formEditor.sql: Added HTML 'placeholder' in FormEditor for bs*Columns. +* formEditor.sql: Added HTML 'placeholder' in FormEditor for bs*Columns. - * PLAY 'formEditor.sql'. + * PLAY 'formEditor.sql'. - * User Input will be UTF8 normalized. +* User Input will be UTF8 normalized. - * INSTALL 'php5-intl' or 'php7.0-intl' on Webserver. + * INSTALL 'php5-intl' or 'php7.0-intl' on Webserver. - * Add globalize.js to be included. Needed by jqx-all.js. +* Add globalize.js to be included. Needed by jqx-all.js. - * UPDATE EXISTING TypoScript TEMPLATES of QFQ Installation. + * UPDATE EXISTING TypoScript TEMPLATES of QFQ Installation. - * Name of variable '_filename' (used in field 'parameter') has changed. Old: '_filename', New: 'filename'. +* Name of variable '_filename' (used in field 'parameter') has changed. Old: '_filename', New: 'filename'. - * UPDATE `FormElement` SET parameter = REPLACE(parameter, "_filename", "filename") + * UPDATE `FormElement` SET parameter = REPLACE(parameter, "_filename", "filename") Features ^^^^^^^^ - * User input will be UTF8 normalized. - * config.qfq-ini: +* User input will be UTF8 normalized. +* config.qfq-ini: - * New configuration values: FORM_BS_LABEL_COLUMNS / FORM_BS_INPUT_COLUMNS / FORM_BS_NOTE_COLUMNS. - * Comment empty variables - the new default setting is, that empty parameter in config.qfq.ini means EMPTY + * New configuration values: FORM_BS_LABEL_COLUMNS / FORM_BS_INPUT_COLUMNS / FORM_BS_NOTE_COLUMNS. + * Comment empty variables - the new default setting is, that empty parameter in config.qfq.ini means EMPTY (=parameter is set and will not be overwritten by internal default), not UNDEFINED (overwritten by internal default). - * FileUpload: +* FileUpload: - * Implemented new Formelement.parameter: fileReplace=always - will replace existing files. - * Multiple / Advanced Upload: new logic implements slaveId, sqlInsert, sqlUpdate, sqlDelete. + * Implemented new Formelement.parameter: fileReplace=always - will replace existing files. + * Multiple / Advanced Upload: new logic implements slaveId, sqlInsert, sqlUpdate, sqlDelete. - * FormElement.parameter: sqlBefore / sqlAfter fired during 'Form' save for action elements. - * STORE FORM: variable 'filename' moved to STORE VAR - sanatize class needs no longer specified. - * STORE VAR: two new variables 'filename' and 'fileDestination' valid during processing of current upload FormElement. - * Default store priority list changed. Old: 'FSRD', New: 'FSRVD'. - * CODING.md: update doc for FormElement 'upload' and general 'Form' rendering & save (recursive rendering). - * User manual: +* FormElement.parameter: sqlBefore / sqlAfter fired during 'Form' save for action elements. +* STORE FORM: variable 'filename' moved to STORE VAR - sanatize class needs no longer specified. +* STORE VAR: two new variables 'filename' and 'fileDestination' valid during processing of current upload FormElement. +* Default store priority list changed. Old: 'FSRD', New: 'FSRVD'. +* CODING.md: update doc for FormElement 'upload' and general 'Form' rendering & save (recursive rendering). +* User manual: - * Described form layout options: description for bsLabelColumn, bsInputColumn, bsNoteColumn. - * Update 'file-upload' doc. - * Described 3 examples for upload forms. + * Described form layout options: description for bsLabelColumn, bsInputColumn, bsNoteColumn. + * Update 'file-upload' doc. + * Described 3 examples for upload forms. - * Administrator manual: +* Administrator manual: - * Add description page.meta... + * Add description page.meta... - * New FormElement (type= 'container') added: 'templateGroup'. +* New FormElement (type= 'container') added: 'templateGroup'. - * FormElement.parameter.tgAddClass | tgAddText | tgRemoveClass | tgRemoveText | tgClass. - * FormElement.maxSize: max number of duplicates. - * #3230 / templateGroup: margin between copies. 'tgClass' implemented. + * FormElement.parameter.tgAddClass | tgAddText | tgRemoveClass | tgRemoveText | tgClass. + * FormElement.maxSize: max number of duplicates. + * #3230 / templateGroup: margin between copies. 'tgClass' implemented. - * Native FormElements: +* Native FormElements: - * FormElement.parameter.htlmlBefore|htmlAfter - add the specified HTML code before or after the element (outside of any wrapping). - * #3224, #3231 / Html Tag <hr> als FormElement. >> htmlBefore | htmlAfter. - * FormElement.parameter.wrapLabel | wrapInput | wrapAfter | wrapRow - if specified, any default wrapping is omitted. - * FormElement.bsNoteColumns | bsInputColumns | bsNoteColumns - a '0' will suppress the whole rendering of the item. - * FormElement.rowLabelInputNote - switch on/off rendering of the corresponding system wrapping items. + * FormElement.parameter.htlmlBefore|htmlAfter - add the specified HTML code before or after the element (outside of any wrapping). + * #3224, #3231 / Html Tag <hr> als FormElement. >> htmlBefore | htmlAfter. + * FormElement.parameter.wrapLabel | wrapInput | wrapAfter | wrapRow - if specified, any default wrapping is omitted. + * FormElement.bsNoteColumns | bsInputColumns | bsNoteColumns - a '0' will suppress the whole rendering of the item. + * FormElement.rowLabelInputNote - switch on/off rendering of the corresponding system wrapping items. - * #3232 / Define custom 'on-change' color - used for the save button: Form.parameter.buttonOnChangeClass=... - * Form.parameter & FormElement.parameter: Lines starting with '#' are treated as comments and will not be parsed. +* #3232 / Define custom 'on-change' color - used for the save button: Form.parameter.buttonOnChangeClass=... +* Form.parameter & FormElement.parameter: Lines starting with '#' are treated as comments and will not be parsed. Bug fixes ^^^^^^^^^ - * User manual: - * Fixed double include of validator.js in T3 Typoscript template example. - * Fixed wrong store name SYSTEM: S > Y. - * Fixed wrong STORE_FORM variable names. - * Reformat FormElement.parameter description. - * Styling errors fixed. - * Use of 'decryptCurlyBraces()' to get better error messages. - * Skip unwanted parameter expansion during save. - * Fixed bug with uninitialized FE_SLAVE_ID. - * formEditor.sql: - * The defintion as 'editor' (not text) for FormElement 'note' has been lost - reinserted. - * Fixed problem while playing SQL query - deleting old FormElements of Formeditor deleted also FormElements of other forms. - * #3066 / help-text with-error - CSS class 'hidden' will be rendered by default (as long there is no error). - * Labels are skipped, if FormElement.bsLabelColumns=0. - * Respect attribute `data-class-on-change` on save buttons. +* User manual: + + * Fixed double include of validator.js in T3 Typoscript template example. + * Fixed wrong store name SYSTEM: S > Y. + * Fixed wrong STORE_FORM variable names. + * Reformat FormElement.parameter description. + * Styling errors fixed. + +* Use of 'decryptCurlyBraces()' to get better error messages. +* Skip unwanted parameter expansion during save. +* Fixed bug with uninitialized FE_SLAVE_ID. +* formEditor.sql: + * The defintion as 'editor' (not text) for FormElement 'note' has been lost - reinserted. + * Fixed problem while playing SQL query - deleting old FormElements of Formeditor deleted also FormElements of other forms. +* #3066 / help-text with-error - CSS class 'hidden' will be rendered by default (as long there is no error). +* Labels are skipped, if FormElement.bsLabelColumns=0. +* Respect attribute `data-class-on-change` on save buttons. Version 0.11 ------------ @@ -2840,21 +2858,21 @@ Version 0.11 Features ^^^^^^^^ - * Added STORE_BEFORE, #3146 - Mainly used to compare old and new values during a form 'save' action. - * Added 'best practice' for defining and using of 'Central configure values' in UserManual. - * Added accent characters to sanatize class 'alnumx', #3183. - * Set default all QFQ send mails to 'auto-submit'. - * Added possibility to customize error messages ('data-pattern-error', 'data-rquired-error', 'data-match-error', - 'data-error') if validation fails. Customization can be done on global level (config.qfq.ini), per Form or per FormElement. - * *FormElement*: Double an input element and validate that the input match: FormElement.parameter.retype=1. - * Autofocus in Forms is now supported. By default the first Input Element receives the focus. Can be customized. - * Added a timestamp in shown exceptions. Usefull for screenshots, send by customer, to find the problem in SQL logfiles. +* Added STORE_BEFORE, #3146 - Mainly used to compare old and new values during a form 'save' action. +* Added 'best practice' for defining and using of 'Central configure values' in UserManual. +* Added accent characters to sanatize class 'alnumx', #3183. +* Set default all QFQ send mails to 'auto-submit'. +* Added possibility to customize error messages ('data-pattern-error', 'data-rquired-error', 'data-match-error', + 'data-error') if validation fails. Customization can be done on global level (config.qfq.ini), per Form or per FormElement. +* *FormElement*: Double an input element and validate that the input match: FormElement.parameter.retype=1. +* Autofocus in Forms is now supported. By default the first Input Element receives the focus. Can be customized. +* Added a timestamp in shown exceptions. Usefull for screenshots, send by customer, to find the problem in SQL logfiles. Bug fixes ^^^^^^^^^ - * Fixed missing docutmentation for FormElement 'note'. - * Failed SQL queries will now always be logged, even if they do not modify some data. +* Fixed missing docutmentation for FormElement 'note'. +* Failed SQL queries will now always be logged, even if they do not modify some data. Version 0.10 ------------ @@ -2862,14 +2880,14 @@ Version 0.10 Features ^^^^^^^^ - * Implemented Parameter 'extraDeleteForm' for 'forms' and 'subrecords'. Update doc. +* Implemented Parameter 'extraDeleteForm' for 'forms' and 'subrecords'. Update doc. Bug fixes ^^^^^^^^^ - * Suppress rendering of form title during a 'delete' call. No one will see it and required parameters are not supplied. - * In case of broken SQL queries, print them in ajax error message. - * Remove parameter 'table' from Delete SIP URLs. ToolTip updated. +* Suppress rendering of form title during a 'delete' call. No one will see it and required parameters are not supplied. +* In case of broken SQL queries, print them in ajax error message. +* Remove parameter 'table' from Delete SIP URLs. ToolTip updated. Version 0.9 ----------- @@ -2877,43 +2895,43 @@ Version 0.9 Features ^^^^^^^^ - * FormEditor: - * design update - new default background color: grey. - * per form configureable background colors. - * Optional right align of all form element labels. - * Added config.qfq.ini values CSS_CLASS_QFQ_FORM_PILL, CSS_CLASS_QFQ_FORM_BODY, CSS_CLASS_QFQ_CONTAINER. +* FormEditor: + * design update - new default background color: grey. + * per form configureable background colors. + * Optional right align of all form element labels. + * Added config.qfq.ini values CSS_CLASS_QFQ_FORM_PILL, CSS_CLASS_QFQ_FORM_BODY, CSS_CLASS_QFQ_CONTAINER. Bug fixes ^^^^^^^^^ - * BuildFormBootstrap.php: added new class name 'qfq-label' to form labels - needed to assign 'qfq-form-right' class. - Changed wrapping of formelements from 'col-md-8' (wrong) to 'col-md-12'. - * QuickFormQuery.php: Set default for new F_CLASS_PILL & F_CLASS_BODY. - * formEditor.sql: New default background color for formElements is blue. - * qfq-bs.css.less: add classes qfq-form-pill, qfq-form-body, form-group (center), qfq-color-..., qfq-form-right. - * Index.rst: Add note to hierachy chars. Fixed uncomplete doc to a) bs*Columns, showButton. Add classPill, classBody. - Rewrote form.paramter.class. - * QuickFormQuery.php: Button save/ close/ delete/ new - align to right border of form. - * UsersManual/index.rst: renamed chapter for formelements. Cleanup formelement types. Wrote chapter 'Detailed concept'. - * QuickFormQuery.php, FormAction.php: '#2931 / afterSave Hauptrecord xId nicht direkt verfügbar' - load master record - again, after 'action'-elements has been processed. - * UsersManual/index.rst: Startet FAQ section. - * config.qfq.example.ini: Added comment where to save config.qfq.ini. - * UsersManual/index.rst: Rewrite of 'action'-FormElement definition. - * #2739 / beforeDelete / afterDelete. - * PROTOCOL.md: update 'delete' description. - * delete.php: fixed unwanted loose of MSG_CONTENT. - * Report.php: Fixed double '&&' in building UrlParam. - * FormAction.php: In case of 'AFTER_DELETE', do not try to load primary record - that one is already deleted. - * Sip.php: Do not skip SIP_TARGET_URL as parameter for the SIP. - * #3001 / Report: delete implementieren. - * Index.rst, Constants.php: reverted parameter '_table' in delete links back to 'table' - Reason: 'form' needs to be - 'form' (instead of '_form') due to many used places already. - * Sip.php: move SIP_TARGET_URL back to stored inside SIP - it's necessary for 'delete'-links. - * Report.php, Constants.php: Remove code to handle unecessary 'p:' tag for delete links. - * Link.php: Check paged / Paged that the parameter r, table and form are given in the right combination. - * Link.php, Report.php: New '_link' token 'x'. '_paged' and '_Paged' are rendered via Link() class, Link() class now - supports delete links. - * QuickFormQuery.php: for modeForm='Form Delete' the 'required param' are not respected - this makes sense, cause these - parameters typically filled in newly created records. - * #3076 / Delete Button bei Subrecords erzeugt sporadisch Javascript Exceptions (Webkit: Chrome / Vivaldi) - kein loeschen moeglich. +* BuildFormBootstrap.php: added new class name 'qfq-label' to form labels - needed to assign 'qfq-form-right' class. + Changed wrapping of formelements from 'col-md-8' (wrong) to 'col-md-12'. +* QuickFormQuery.php: Set default for new F_CLASS_PILL & F_CLASS_BODY. +* formEditor.sql: New default background color for formElements is blue. +* qfq-bs.css.less: add classes qfq-form-pill, qfq-form-body, form-group (center), qfq-color-..., qfq-form-right. +* Index.rst: Add note to hierachy chars. Fixed uncomplete doc to a) bs*Columns, showButton. Add classPill, classBody. + Rewrote form.paramter.class. +* QuickFormQuery.php: Button save/ close/ delete/ new - align to right border of form. +* UsersManual/index.rst: renamed chapter for formelements. Cleanup formelement types. Wrote chapter 'Detailed concept'. +* QuickFormQuery.php, FormAction.php: '#2931 / afterSave Hauptrecord xId nicht direkt verfügbar' - load master record + again, after 'action'-elements has been processed. +* UsersManual/index.rst: Startet FAQ section. +* config.qfq.example.ini: Added comment where to save config.qfq.ini. +* UsersManual/index.rst: Rewrite of 'action'-FormElement definition. +* #2739 / beforeDelete / afterDelete. +* PROTOCOL.md: update 'delete' description. +* delete.php: fixed unwanted loose of MSG_CONTENT. +* Report.php: Fixed double '&&' in building UrlParam. +* FormAction.php: In case of 'AFTER_DELETE', do not try to load primary record - that one is already deleted. +* Sip.php: Do not skip SIP_TARGET_URL as parameter for the SIP. +* #3001 / Report: delete implementieren. +* Index.rst, Constants.php: reverted parameter '_table' in delete links back to 'table' - Reason: 'form' needs to be + 'form' (instead of '_form') due to many used places already. +* Sip.php: move SIP_TARGET_URL back to stored inside SIP - it's necessary for 'delete'-links. +* Report.php, Constants.php: Remove code to handle unecessary 'p:' tag for delete links. +* Link.php: Check paged / Paged that the parameter r, table and form are given in the right combination. +* Link.php, Report.php: New '_link' token 'x'. '_paged' and '_Paged' are rendered via Link() class, Link() class now + supports delete links. +* QuickFormQuery.php: for modeForm='Form Delete' the 'required param' are not respected - this makes sense, cause these + parameters typically filled in newly created records. +* #3076 / Delete Button bei Subrecords erzeugt sporadisch Javascript Exceptions (Webkit: Chrome / Vivaldi) - kein loeschen moeglich. diff --git a/Documentation-develop/NewVersion.md b/Documentation-develop/NewVersion.md index dfa23ed9e83bdac434132a070a5e1f473de716da..54eb2f1e4cd54e614d68b2be70b59f4fb32be459 100644 --- a/Documentation-develop/NewVersion.md +++ b/Documentation-develop/NewVersion.md @@ -44,7 +44,7 @@ Neue Versionsnummer **Achtung**: die Release Minor darf KEINE fuehrenden Nullen enthalten!!! Ansonsten funktioniert die Verteilung vie TER nicht. - **Auto**: ./setVersion.sh 20.4.0 + **Auto**: ./setVersion.sh 20.4.1 Manuell: * extension/Documentation/_make/conf.py: release, version- @@ -60,12 +60,12 @@ Neue Versionsnummer * Update the version number in this document (topic 6) * Commit & Push new version changes to master branch: - New version 20.4.0 + New version 20.4.1 7) **New Tag**: - git tag v20.4.0 - git push -u origin v20.4.0 + git tag v20.4.1 + git push -u origin v20.4.1 8) **Merge 'master' into 'develop'** diff --git a/Documentation/Release.rst b/Documentation/Release.rst index 76d4e71d0102ef0b9d72540874022c11b7b7cc4e..4ecda19f6caf6c8cff34df58765b0e5be4d1636e 100644 --- a/Documentation/Release.rst +++ b/Documentation/Release.rst @@ -36,6 +36,23 @@ Features Bug Fixes ^^^^^^^^^ +Version 20.4.1 +-------------- + +Date: 30.04.2020 + +Notes +^^^^^ + +* Developer: update local npm/font awesome packages via `make bootstrap`. + +Features +^^^^^^^^ + +* #10433 / Update to Font Awesome 5.0 +* #10379 / Stored Procedure: SLUGIFY() +* Manual.rst: Example Report 'render'. Update several places to fit latest ReST layout rules. + Version 20.4.0 -------------- diff --git a/Documentation/Settings.cfg b/Documentation/Settings.cfg index a91ff2d34a62d6a55b65a6396044a207cd53dbe1..894b0091cadee49d97e9ff6a902ba2f6c1b8c39d 100644 --- a/Documentation/Settings.cfg +++ b/Documentation/Settings.cfg @@ -22,7 +22,7 @@ project = QFQ - Quick Form Query version = 20.4 -release = 20.4.0 +release = 20.4.1 t3author = Carsten Rose copyright = since 2017 by the author diff --git a/extension/RELEASE.txt b/extension/RELEASE.txt index c5a4a75f6689559d74f9bc204b127a9b48d2958f..4ecda19f6caf6c8cff34df58765b0e5be4d1636e 100644 --- a/extension/RELEASE.txt +++ b/extension/RELEASE.txt @@ -36,6 +36,23 @@ Features Bug Fixes ^^^^^^^^^ +Version 20.4.1 +-------------- + +Date: 30.04.2020 + +Notes +^^^^^ + +* Developer: update local npm/font awesome packages via `make bootstrap`. + +Features +^^^^^^^^ + +* #10433 / Update to Font Awesome 5.0 +* #10379 / Stored Procedure: SLUGIFY() +* Manual.rst: Example Report 'render'. Update several places to fit latest ReST layout rules. + Version 20.4.0 -------------- @@ -44,32 +61,31 @@ Date: 05.04.2020 Notes ^^^^^ - * New Feature: `typeAheadTag <https://docs.typo3.org/p/IMATHUZH/qfq/master/en-us/Manual.html#type-ahead-tag>` - extend regular input with multiple values via typeAhead. _ - * MySQL StoredProcedure: +* New Feature: `typeAheadTag <https://docs.typo3.org/p/IMATHUZH/qfq/master/en-us/Manual.html#type-ahead-tag>`_ - extend regular input with multiple values via typeAhead. _ +* MySQL StoredProcedure: - * strip_tags() - Simple strip html tags. - * QCC() - Escape colon / coma. Useful for QFQ link arguments like 'text' or 'tooltip'. + * strip_tags() - Simple strip html tags. + * QCC() - Escape colon / coma. Useful for QFQ link arguments like 'text' or 'tooltip'. Features ^^^^^^^^ - * #9686 / Download: sanitize output filename. - * #10358 / Configure path/environment via QFQ config: qpdf, gs, pdfunite. - * #9517, #10145, #10177, #10117 / typeAheadTag. - * #10152 / QCC() - Stored Procedure to escape colon / coma. - * #10115 / TypeAhead: static list. - * FabricJS: replaced glyphicons with font awesome. - * Rename config.qfq.example.php config-example.qfq.php. +* #9686 / Download: sanitize output filename. +* #10358 / Configure path/environment via QFQ config: qpdf, gs, pdfunite. +* #9517, #10145, #10177, #10117 / typeAheadTag. +* #10152 / QCC() - Stored Procedure to escape colon / coma. +* FabricJS: replaced glyphicons with font awesome. +* Rename config.qfq.example.php config-example.qfq.php. Bug Fixes ^^^^^^^^^ - * #6798 / Close didn't worked with r=0. - * #10199 / Form.forwardMode: missing mode 'Close' / 'Auto'. - * #10173 / Dynamic Update: Readonly element can't be activated via dynamic update. - * Fix broken default value for Form.forwardMode. - * Fix problem with reporting broken TG-FormElements. - * Add error message if primary table does not exist. +* #6798 / Close didn't worked with r=0. +* #10199 / Form.forwardMode: missing mode 'Close' / 'Auto'. +* #10173 / Dynamic Update: Readonly element can't be activated via dynamic update. +* Fix broken default value for Form.forwardMode. +* Fix problem with reporting broken TG-FormElements. +* Add error message if primary table does not exist. Version 20.2.0 -------------- @@ -199,7 +215,7 @@ Bug Fixes * #9691 / Checkbox: dynamic update > readonly. HTML ID for checkbox elements. Dynamic update switch 'readonly' for 'checkbox plain multi' and 'radio plain multi'. * #9692 / Keyboard Select Checkbox. * #9720 / Checkbox: Various setups with dynamic update. -* #9733 / Identiy different tabs. Record lock for same tab will always be granted. +* #9733 / Identify different tabs. Record lock for same tab will always be granted. * #9734 / Fix 'dirty lock release' - leaving a dirty form without closing, leaves a stale lock record. Added a releaselock() before window.unload. Dirty remove on goBack. * #9735 / File Delete: no dirty trigger. @@ -221,12 +237,12 @@ Features * #9655 / Checkboxes and radios now defined with a min-width in horizontal plain mode. * #9617 / formModeGlobal: - * Two modes of 'formModeGlobal' available: 'requiredOff' and 'requiredOffButMark'. - * 'requiredOffButMark': + * Two modes of 'formModeGlobal' available: 'requiredOff' and 'requiredOffButMark'. + * 'requiredOffButMark': - * Renamed temporary 'skipRequiredCheck' to 'requiredOffButMark'. - * Keep required marks after save. - * Stop hiding helpblocks per default, set with class qfq-only-active-error. + * Renamed temporary 'skipRequiredCheck' to 'requiredOffButMark'. + * Keep required marks after save. + * Stop hiding helpblocks per default, set with class qfq-only-active-error. * Radio: new class 'qfq-disabled' if readonly is set. Softer blue. Mark disabled - changed hover. Text in darker orange. Simple-error renamed to qfq-notify - removed box around error. @@ -241,11 +257,11 @@ Bug Fixes * #3995 / Implemented partly: CheckBox and Radio can now be locked. * #8091 / Checkbox required: - * If radio or checkbox is required and empty on submit, form save brings the element to front. - * Fix radio plain vertical. - * Fix label2 not to be bold. - * Checkbox Plain Vertical: forces 'font-weight: 400;'. - * Updated colors for checkboxes/radios. + * If radio or checkbox is required and empty on submit, form save brings the element to front. + * Fix radio plain vertical. + * Fix label2 not to be bold. + * Checkbox Plain Vertical: forces 'font-weight: 400;'. + * Updated colors for checkboxes/radios. * #9638 / Textarea Sizing: Now also listens for paste. * #7891 / Added missing 'type="button"' to button element. @@ -282,12 +298,12 @@ Bug Fixes * #7639 / subrecord drag n drop: - * `orderInterval` has not been respected. - * Update Manual.rst. - * Fake STORE_SIP so it can be used during processing sql1. - * The record, currently loaded into form, is available via STORE_RECORD. - * Check for id/_id and ord/_ord. - * Throw meaningful exception if missing 'id' or 'ord'. + * `orderInterval` has not been respected. + * Update Manual.rst. + * Fake STORE_SIP so it can be used during processing sql1. + * The record, currently loaded into form, is available via STORE_RECORD. + * Check for id/_id and ord/_ord. + * Throw meaningful exception if missing 'id' or 'ord'. * Fixes bug that no mime_type_content is called if there is on file. * Fix broken regex101 url. @@ -300,7 +316,7 @@ Date: 11.11.2019 Bug Fixes ^^^^^^^^^ - * #9532 / 'Advanced Upload' broken - slaveId/sqlUpdate/... have been processed two times, after multiform code changes. +* #9532 / 'Advanced Upload' broken - slaveId/sqlUpdate/... have been processed two times, after multiform code changes. Version 19.11.0 --------------- @@ -456,11 +472,11 @@ Features * Manual.rst: - * Update tablesorter `class="sorter-false"`. - * Add note to include font-awesome. - * QFQ_LOG documentation. - * Enhance wkhtml debug info. - * Add link to https://mariadb.com/kb/en/library/stored-routine-privileges/ + * Update tablesorter `class="sorter-false"`. + * Add note to include font-awesome. + * QFQ_LOG documentation. + * Enhance wkhtml debug info. + * Add link to https://mariadb.com/kb/en/library/stored-routine-privileges/ * Increase Length of column Form.forwardPage limit from 255 to 511. * Index.rst: Add Rafi, Elias, Nicola as further contributors. @@ -498,9 +514,9 @@ Features * TWIG: - * Add Twig Extension to parse QFQ Links - * Pass assoc-array of query result as context - * allow to pass template as string + * Add Twig Extension to parse QFQ Links + * Pass assoc-array of query result as context + * allow to pass template as string * Database.php: extend function sql error message * #8179 / extraButtonLock and extraButtonPassword might be specified without a value or with 0 or with 1. @@ -743,8 +759,8 @@ Date: 15.03.2019 Bug Fixes ^^^^^^^^^ - * 8058 / Form > fillStoreVar: broken for TemplateGroup - Form.fillStoreVar not available during fillStoreForm(). - * 8048 / A retype FE should not be checked for 'required' during save. +* 8058 / Form > fillStoreVar: broken for TemplateGroup - Form.fillStoreVar not available during fillStoreForm(). +* 8048 / A retype FE should not be checked for 'required' during save. Version 19.3.0 @@ -1239,13 +1255,13 @@ Notes 'jquery.tablesorter.pager.min.js', 'widget-columnSelector.min.js' in your Typo3 template record. See https://docs.typo3.org/p/IMATHUZH/qfq/master/en-us/Manual.html#setup-css-js - * *Existing* QFQ installations: update your CSS/JS includes! The new tablesorter jquery plugin might break (JS errors - seen on the console) your installation, if it isn't included! + * *Existing* QFQ installations: update your CSS/JS includes! The new tablesorter jquery plugin might break (JS errors + seen on the console) your installation, if it isn't included! - * If you use the extension 'UZH Corporate Design Template': + * If you use the extension 'UZH Corporate Design Template': - * Update to the latest version 18.9.0. - * Add constants in the Typo3 template record 'ext: main': :: + * Update to the latest version 18.9.0. + * Add constants in the Typo3 template record 'ext: main': :: cd.extra.css.file5 = typo3conf/ext/qfq/Resources/Public/Css/tablesorter-bootstrap.css @@ -1452,8 +1468,8 @@ Notes * NEW: Drag and drop to sort elements! Check the Manual. * `URL forwardMode` - * `client` renamed to `auto`. - * `close` added. + * `client` renamed to `auto`. + * `close` added. Features ^^^^^^^^ @@ -2583,47 +2599,47 @@ Version 0.15 Changes ^^^^^^^ - * Play formEditor.sql. +* Play formEditor.sql. - * Form 'FormElement' failed to display the formtitle of the current form in case of a new FE. - * Updated subrecord in 'Form' for 'FormElements' - columns 'size' and 'sql1' removed and 'dyn' inserted. Play formEditor.sql. +* Form 'FormElement' failed to display the formtitle of the current form in case of a new FE. +* Updated subrecord in 'Form' for 'FormElements' - columns 'size' and 'sql1' removed and 'dyn' inserted. Play formEditor.sql. - * #3431, Parameter keyword 'typeAheadLdapKeyPrintf' changed to 'typeAheadLdapIdPrintf'.:: +* #3431, Parameter keyword 'typeAheadLdapKeyPrintf' changed to 'typeAheadLdapIdPrintf'.:: - UPDATE FormElement SET parameter = REPLACE(parameter, 'typeAheadLdapKeyPrintf', 'typeAheadLdapIdPrintf') + UPDATE FormElement SET parameter = REPLACE(parameter, 'typeAheadLdapKeyPrintf', 'typeAheadLdapIdPrintf') - * Size 'placeholder' increased:: +* Size 'placeholder' increased:: - ALTER TABLE `FormElement` CHANGE `placeholder` `placeholder` VARCHAR( 2048 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; + ALTER TABLE `FormElement` CHANGE `placeholder` `placeholder` VARCHAR( 2048 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; Features ^^^^^^^^ - * Introduce new config.qfq.ini setting 'EDIT_FORM_PAGE' - by default set to 'form' - the wrench symbol on every Form - will direct to that page. Fix #3420 / Quicklink 'editform' on form: directs to the current T3 page which might be insufficient. - * Form 'subrecord' columns: the default width limit of 20 chars are disabled if 'nostrip' is specifed. - * #3431 / typeAheadSql: columnname 'key' is a reserverd SQL statement - replace by 'id'. Additional the parametername - 'typeAheadLdapKeyPrintf' renamed to 'typeAheadLdapIdPrintf'. By using 'id' instead of 'key' the quoting of the columnname - is not necessary anoymore. +* Introduce new config.qfq.ini setting 'EDIT_FORM_PAGE' - by default set to 'form' - the wrench symbol on every Form + will direct to that page. Fix #3420 / Quicklink 'editform' on form: directs to the current T3 page which might be insufficient. +* Form 'subrecord' columns: the default width limit of 20 chars are disabled if 'nostrip' is specifed. +* #3431 / typeAheadSql: columnname 'key' is a reserverd SQL statement - replace by 'id'. Additional the parametername + 'typeAheadLdapKeyPrintf' renamed to 'typeAheadLdapIdPrintf'. By using 'id' instead of 'key' the quoting of the columnname + is not necessary anoymore. Bug Fixes ^^^^^^^^^ - * #3419 / typeAheadSql: Array with only one column or non standard columnnames are not handeld properbly. - Detection of missing LIMIT implemented. - * #3425 / Form.parameter, FormElement.parameter: comment handling, trailing & leading spaces - Manual.rst: commented handling of 'comment character' and 'escaping of leading/trailing spaces' - Support.php: new funtion handleEscapeSpaceComment(). - * Evaluate.php: parse all F|FE.parameter via handleEscapeSpaceComment(). A leading '#' or ' ' might be escaped by '\'. - * Saving 'extra' FE in STORE_SIP has been done with inappropiate FE_NAME. Correct is the pure FE_NAME, without any - extension like recordId. Unessary and broken decoding removed. - * #3426 / Dynamic Update: Inputs loose the new content and shows the old value. - * Through fix #2064 the FE.checkType has not been used anymore. This is fixed now. - * #3433 / templateGroup on primary Record: Values of removed copies are not deleted. The new implementation creates empty - fake instances of all copies of templateGroup FormElements. Those are empty. Before save, the submitted form values - will be expanded with the empty fake templateGroup FormElements and such empty values will be saved. +* #3419 / typeAheadSql: Array with only one column or non standard columnnames are not handeld properbly. + Detection of missing LIMIT implemented. +* #3425 / Form.parameter, FormElement.parameter: comment handling, trailing & leading spaces + Manual.rst: commented handling of 'comment character' and 'escaping of leading/trailing spaces' + Support.php: new funtion handleEscapeSpaceComment(). +* Evaluate.php: parse all F|FE.parameter via handleEscapeSpaceComment(). A leading '#' or ' ' might be escaped by '\'. +* Saving 'extra' FE in STORE_SIP has been done with inappropiate FE_NAME. Correct is the pure FE_NAME, without any + extension like recordId. Unessary and broken decoding removed. +* #3426 / Dynamic Update: Inputs loose the new content and shows the old value. +* Through fix #2064 the FE.checkType has not been used anymore. This is fixed now. +* #3433 / templateGroup on primary Record: Values of removed copies are not deleted. The new implementation creates empty + fake instances of all copies of templateGroup FormElements. Those are empty. Before save, the submitted form values + will be expanded with the empty fake templateGroup FormElements and such empty values will be saved. Version 0.14 @@ -2632,47 +2648,47 @@ Version 0.14 Changes ^^^^^^^ - * Play formEditor.sql. +* Play formEditor.sql. - * All Form & FormEditor input elements now have a maxlength definition of 0, which means take the column definition value. - * Drop-down list of container assignment: +* All Form & FormEditor input elements now have a maxlength definition of 0, which means take the column definition value. +* Drop-down list of container assignment: - * Display 'type' ('pill', 'fieldset', 'templategroup') instead of 'class' (always 'container'). - * Display 'name' (internal name) instead of 'label' (shown on the website and might not so usefull as 'name' which - is nowhere else used than in that drop-down. +* Display 'type' ('pill', 'fieldset', 'templategroup') instead of 'class' (always 'container'). +* Display 'name' (internal name) instead of 'label' (shown on the website and might not so usefull as 'name' which + is nowhere else used than in that drop-down. - * FormElement.placeholder colum width extended to 512: +* FormElement.placeholder colum width extended to 512: - ALTER TABLE `FormElement` CHANGE `placeholder` `placeholder` VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' + ALTER TABLE `FormElement` CHANGE `placeholder` `placeholder` VARCHAR(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' - * New class Ldap.php. +* New class Ldap.php. Features ^^^^^^^^ - * Typeahead for SQL and LDAP Datasources implemented. - * formEditor.sql: Changed width of column FormElement.placeholder from 255 to 512. Removed hardcoded 'size' in FormElement 'placeholder'. - * Character Count: Display a `counter` on input or textarea fields, activated by specifying the formElement.parameter 'characterCountWrap'. - * Evaluate.php: Two new escape options 'l' and 'L'. Backport of ldap_escape() for PHP <5.6. Multiple escaping for one value now possible. - * Manual.rst: add some example for TypeAhead and for saving LDAP value. - * Load foreign values in templatGroups - saving is not implemented yet. - * Manual: Added howto prevent <p>-wrap in TinyMCE. - * TemplateGroup: Add button now disabled if max. number of copies reached. - * #3414 / QuickFormQuery.php: wrap whole form in 'col-md-XX' - User controls the width of an QFQ form. +* Typeahead for SQL and LDAP Datasources implemented. +* formEditor.sql: Changed width of column FormElement.placeholder from 255 to 512. Removed hardcoded 'size' in FormElement 'placeholder'. +* Character Count: Display a `counter` on input or textarea fields, activated by specifying the formElement.parameter 'characterCountWrap'. +* Evaluate.php: Two new escape options 'l' and 'L'. Backport of ldap_escape() for PHP <5.6. Multiple escaping for one value now possible. +* Manual.rst: add some example for TypeAhead and for saving LDAP value. +* Load foreign values in templatGroups - saving is not implemented yet. +* Manual: Added howto prevent <p>-wrap in TinyMCE. +* TemplateGroup: Add button now disabled if max. number of copies reached. +* #3414 / QuickFormQuery.php: wrap whole form in 'col-md-XX' - User controls the width of an QFQ form. Bug Fixes ^^^^^^^^^ - * Dynamic Update has been broken since implementing of 'element-update' (#3180). Now both methods, 'element-update' and 'form-update' should be fine. - * qfq-bs.css.less: Fixed problem with 'typeahead input elements' not expanded to Bootstrap column width. Changed - Layout/Design Typeahead drop-down box. Add hoover for the drop-down box with a blue background. - * AbstractBuildForm.php: #3374 - textarea elements now contains 'maxlength' attribute. - * BuildFormBootstrap.php: wrapping of optional 'submitButtonText' now done with the 'per form' values. - * typeahead.php: if there is an exception, the message body is sent as regular 'content' for the drop-down box. At the - moment this is the only way to transmit any error messages. - * formEditor.sql: removed all 'maxLength' string values for 'Form' and 'FormElement' forms. - * Save button becomes active if a templateGroup copy is removed. - * #3413 / Form ohne Pill hat kein padding am Rand. Fix: if there are no pills, an additinal col-md-12 will be rendered. +* Dynamic Update has been broken since implementing of 'element-update' (#3180). Now both methods, 'element-update' and 'form-update' should be fine. +* qfq-bs.css.less: Fixed problem with 'typeahead input elements' not expanded to Bootstrap column width. Changed + Layout/Design Typeahead drop-down box. Add hoover for the drop-down box with a blue background. +* AbstractBuildForm.php: #3374 - textarea elements now contains 'maxlength' attribute. +* BuildFormBootstrap.php: wrapping of optional 'submitButtonText' now done with the 'per form' values. +* typeahead.php: if there is an exception, the message body is sent as regular 'content' for the drop-down box. At the + moment this is the only way to transmit any error messages. +* formEditor.sql: removed all 'maxLength' string values for 'Form' and 'FormElement' forms. +* Save button becomes active if a templateGroup copy is removed. +* #3413 / Form ohne Pill hat kein padding am Rand. Fix: if there are no pills, an additinal col-md-12 will be rendered. Version 0.13 @@ -2681,55 +2697,55 @@ Version 0.13 Changes ^^^^^^^ - * Play formEditor.sql. - * formEditor.sql: +* Play formEditor.sql. +* formEditor.sql: - * Checktype of `Form.name` restricted to `alnumx` (prior `all`). - * Changed `access` for Form `form` & '`ormElement` from `always` to `sip`. + * Checktype of `Form.name` restricted to `alnumx` (prior `all`). + * Changed `access` for Form `form` & '`ormElement` from `always` to `sip`. - * Table `FormElement`: +* Table `FormElement`: - * Modified column: `checkType` - new value `numerical`. + * Modified column: `checkType` - new value `numerical`. ALTER TABLE FormElement MODIFY COLUMN checkType ENUM('alnumx','digit','numerical','email','min|max','min|max date', 'pattern','allbut','all') NOT NULL DEFAULT 'alnumx' - * Example Report for `forms` extended by a delete button per row. +* Example Report for `forms` extended by a delete button per row. Features ^^^^^^^^ - * print.php: offers 'print page' for any local page - create a PDF on the fly (printout is then browser independent). +* print.php: offers 'print page' for any local page - create a PDF on the fly (printout is then browser independent). - * Install `wkhtmltopdf` on the webserver (http://wkhtmltopdf.org/). - * In config.qfq.ini setup: + * Install `wkhtmltopdf` on the webserver (http://wkhtmltopdf.org/). + * In config.qfq.ini setup: BASE_URL_PRINT=http://www.../ WKHTMLTOPDF=/opt/wkhtmltox/bin/wkhtmltopdf - * Check and error report if 'php_intl' is missing. - * New Checktype 'allow numerical'. - * Documentation: example for 'radio' with no pre selection. - * #3063 / Radios and checkboxes optional rendered in Bootstrap layout. - * Added 'help-box with-errors'-DIV after radios and checkboxes. - * Respect attribute `data-class-on-change` on save buttons. +* Check and error report if 'php_intl' is missing. +* New Checktype 'allow numerical'. +* Documentation: example for 'radio' with no pre selection. +* #3063 / Radios and checkboxes optional rendered in Bootstrap layout. +* Added 'help-box with-errors'-DIV after radios and checkboxes. +* Respect attribute `data-class-on-change` on save buttons. Bug Fixes ^^^^^^^^^ - * #2138 / digit sanitize: new class 'numerical' implemented. - * Fixed recursive thrown exception. - * #2064 / search of a default value for a non existing tablecolumn returns 'false'. +* #2138 / digit sanitize: new class 'numerical' implemented. +* Fixed recursive thrown exception. +* #2064 / search of a default value for a non existing tablecolumn returns 'false'. - * Fixed setting of STORE_SYSTEM / showDebugInfo during API call. + * Fixed setting of STORE_SYSTEM / showDebugInfo during API call. - * #2081, #3180 / Form: Label & note - update via `DynamicUpdate`. - * #3253 / if there is no STORE_TYPO3 (calls through .../api/ like save, delete, load): use SIP / CLIENT_TYPO3VARS. - * qfq-bs.css: +* #2081, #3180 / Form: Label & note - update via `DynamicUpdate`. +* #3253 / if there is no STORE_TYPO3 (calls through .../api/ like save, delete, load): use SIP / CLIENT_TYPO3VARS. +* qfq-bs.css: - * Alignment of checkboxes and radios optimized. - * CSS class 'qfq-note' for 'notes' (third column in a form). + * Alignment of checkboxes and radios optimized. + * CSS class 'qfq-note' for 'notes' (third column in a form). Version 0.12 @@ -2738,101 +2754,103 @@ Version 0.12 Changes ^^^^^^^ - * Table 'FormElement' - * New column: rowLabelInputNote: +* Table 'FormElement' + * New column: rowLabelInputNote: ALTER TABLE `FormElement` ADD `rowLabelInputNote` set('row','label','/label','input','/input','note','/note','/row') NOT NULL DEFAULT 'row,label,/label,input,/input,note,/note,/row' AFTER `bsNoteColumns` ; - * Modified column: 'type' - new value 'templateGroup': + * Modified column: 'type' - new value 'templateGroup': ALTER TABLE `FormElement` CHANGE `type` `type` ENUM( 'checkbox', 'date', 'datetime', 'dateJQW', 'datetimeJQW', 'extra', 'gridJQW', 'text', 'editor', 'time', 'note', 'password', 'radio', 'select', 'subrecord', 'upload', 'fieldset', 'pill', 'templateGroup', 'beforeLoad', 'beforeSave', 'beforeInsert', 'beforeUpdate', 'beforeDelete', 'afterLoad', 'afterSave', 'afterInsert', 'afterUpdate', 'afterDelete', 'sendMail' ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'text' - * formEditor.sql: Added HTML 'placeholder' in FormEditor for bs*Columns. +* formEditor.sql: Added HTML 'placeholder' in FormEditor for bs*Columns. - * PLAY 'formEditor.sql'. + * PLAY 'formEditor.sql'. - * User Input will be UTF8 normalized. +* User Input will be UTF8 normalized. - * INSTALL 'php5-intl' or 'php7.0-intl' on Webserver. + * INSTALL 'php5-intl' or 'php7.0-intl' on Webserver. - * Add globalize.js to be included. Needed by jqx-all.js. +* Add globalize.js to be included. Needed by jqx-all.js. - * UPDATE EXISTING TypoScript TEMPLATES of QFQ Installation. + * UPDATE EXISTING TypoScript TEMPLATES of QFQ Installation. - * Name of variable '_filename' (used in field 'parameter') has changed. Old: '_filename', New: 'filename'. +* Name of variable '_filename' (used in field 'parameter') has changed. Old: '_filename', New: 'filename'. - * UPDATE `FormElement` SET parameter = REPLACE(parameter, "_filename", "filename") + * UPDATE `FormElement` SET parameter = REPLACE(parameter, "_filename", "filename") Features ^^^^^^^^ - * User input will be UTF8 normalized. - * config.qfq-ini: +* User input will be UTF8 normalized. +* config.qfq-ini: - * New configuration values: FORM_BS_LABEL_COLUMNS / FORM_BS_INPUT_COLUMNS / FORM_BS_NOTE_COLUMNS. - * Comment empty variables - the new default setting is, that empty parameter in config.qfq.ini means EMPTY + * New configuration values: FORM_BS_LABEL_COLUMNS / FORM_BS_INPUT_COLUMNS / FORM_BS_NOTE_COLUMNS. + * Comment empty variables - the new default setting is, that empty parameter in config.qfq.ini means EMPTY (=parameter is set and will not be overwritten by internal default), not UNDEFINED (overwritten by internal default). - * FileUpload: +* FileUpload: - * Implemented new Formelement.parameter: fileReplace=always - will replace existing files. - * Multiple / Advanced Upload: new logic implements slaveId, sqlInsert, sqlUpdate, sqlDelete. + * Implemented new Formelement.parameter: fileReplace=always - will replace existing files. + * Multiple / Advanced Upload: new logic implements slaveId, sqlInsert, sqlUpdate, sqlDelete. - * FormElement.parameter: sqlBefore / sqlAfter fired during 'Form' save for action elements. - * STORE FORM: variable 'filename' moved to STORE VAR - sanatize class needs no longer specified. - * STORE VAR: two new variables 'filename' and 'fileDestination' valid during processing of current upload FormElement. - * Default store priority list changed. Old: 'FSRD', New: 'FSRVD'. - * CODING.md: update doc for FormElement 'upload' and general 'Form' rendering & save (recursive rendering). - * User manual: +* FormElement.parameter: sqlBefore / sqlAfter fired during 'Form' save for action elements. +* STORE FORM: variable 'filename' moved to STORE VAR - sanatize class needs no longer specified. +* STORE VAR: two new variables 'filename' and 'fileDestination' valid during processing of current upload FormElement. +* Default store priority list changed. Old: 'FSRD', New: 'FSRVD'. +* CODING.md: update doc for FormElement 'upload' and general 'Form' rendering & save (recursive rendering). +* User manual: - * Described form layout options: description for bsLabelColumn, bsInputColumn, bsNoteColumn. - * Update 'file-upload' doc. - * Described 3 examples for upload forms. + * Described form layout options: description for bsLabelColumn, bsInputColumn, bsNoteColumn. + * Update 'file-upload' doc. + * Described 3 examples for upload forms. - * Administrator manual: +* Administrator manual: - * Add description page.meta... + * Add description page.meta... - * New FormElement (type= 'container') added: 'templateGroup'. +* New FormElement (type= 'container') added: 'templateGroup'. - * FormElement.parameter.tgAddClass | tgAddText | tgRemoveClass | tgRemoveText | tgClass. - * FormElement.maxSize: max number of duplicates. - * #3230 / templateGroup: margin between copies. 'tgClass' implemented. + * FormElement.parameter.tgAddClass | tgAddText | tgRemoveClass | tgRemoveText | tgClass. + * FormElement.maxSize: max number of duplicates. + * #3230 / templateGroup: margin between copies. 'tgClass' implemented. - * Native FormElements: +* Native FormElements: - * FormElement.parameter.htlmlBefore|htmlAfter - add the specified HTML code before or after the element (outside of any wrapping). - * #3224, #3231 / Html Tag <hr> als FormElement. >> htmlBefore | htmlAfter. - * FormElement.parameter.wrapLabel | wrapInput | wrapAfter | wrapRow - if specified, any default wrapping is omitted. - * FormElement.bsNoteColumns | bsInputColumns | bsNoteColumns - a '0' will suppress the whole rendering of the item. - * FormElement.rowLabelInputNote - switch on/off rendering of the corresponding system wrapping items. + * FormElement.parameter.htlmlBefore|htmlAfter - add the specified HTML code before or after the element (outside of any wrapping). + * #3224, #3231 / Html Tag <hr> als FormElement. >> htmlBefore | htmlAfter. + * FormElement.parameter.wrapLabel | wrapInput | wrapAfter | wrapRow - if specified, any default wrapping is omitted. + * FormElement.bsNoteColumns | bsInputColumns | bsNoteColumns - a '0' will suppress the whole rendering of the item. + * FormElement.rowLabelInputNote - switch on/off rendering of the corresponding system wrapping items. - * #3232 / Define custom 'on-change' color - used for the save button: Form.parameter.buttonOnChangeClass=... - * Form.parameter & FormElement.parameter: Lines starting with '#' are treated as comments and will not be parsed. +* #3232 / Define custom 'on-change' color - used for the save button: Form.parameter.buttonOnChangeClass=... +* Form.parameter & FormElement.parameter: Lines starting with '#' are treated as comments and will not be parsed. Bug fixes ^^^^^^^^^ - * User manual: - * Fixed double include of validator.js in T3 Typoscript template example. - * Fixed wrong store name SYSTEM: S > Y. - * Fixed wrong STORE_FORM variable names. - * Reformat FormElement.parameter description. - * Styling errors fixed. - * Use of 'decryptCurlyBraces()' to get better error messages. - * Skip unwanted parameter expansion during save. - * Fixed bug with uninitialized FE_SLAVE_ID. - * formEditor.sql: - * The defintion as 'editor' (not text) for FormElement 'note' has been lost - reinserted. - * Fixed problem while playing SQL query - deleting old FormElements of Formeditor deleted also FormElements of other forms. - * #3066 / help-text with-error - CSS class 'hidden' will be rendered by default (as long there is no error). - * Labels are skipped, if FormElement.bsLabelColumns=0. - * Respect attribute `data-class-on-change` on save buttons. +* User manual: + + * Fixed double include of validator.js in T3 Typoscript template example. + * Fixed wrong store name SYSTEM: S > Y. + * Fixed wrong STORE_FORM variable names. + * Reformat FormElement.parameter description. + * Styling errors fixed. + +* Use of 'decryptCurlyBraces()' to get better error messages. +* Skip unwanted parameter expansion during save. +* Fixed bug with uninitialized FE_SLAVE_ID. +* formEditor.sql: + * The defintion as 'editor' (not text) for FormElement 'note' has been lost - reinserted. + * Fixed problem while playing SQL query - deleting old FormElements of Formeditor deleted also FormElements of other forms. +* #3066 / help-text with-error - CSS class 'hidden' will be rendered by default (as long there is no error). +* Labels are skipped, if FormElement.bsLabelColumns=0. +* Respect attribute `data-class-on-change` on save buttons. Version 0.11 ------------ @@ -2840,21 +2858,21 @@ Version 0.11 Features ^^^^^^^^ - * Added STORE_BEFORE, #3146 - Mainly used to compare old and new values during a form 'save' action. - * Added 'best practice' for defining and using of 'Central configure values' in UserManual. - * Added accent characters to sanatize class 'alnumx', #3183. - * Set default all QFQ send mails to 'auto-submit'. - * Added possibility to customize error messages ('data-pattern-error', 'data-rquired-error', 'data-match-error', - 'data-error') if validation fails. Customization can be done on global level (config.qfq.ini), per Form or per FormElement. - * *FormElement*: Double an input element and validate that the input match: FormElement.parameter.retype=1. - * Autofocus in Forms is now supported. By default the first Input Element receives the focus. Can be customized. - * Added a timestamp in shown exceptions. Usefull for screenshots, send by customer, to find the problem in SQL logfiles. +* Added STORE_BEFORE, #3146 - Mainly used to compare old and new values during a form 'save' action. +* Added 'best practice' for defining and using of 'Central configure values' in UserManual. +* Added accent characters to sanatize class 'alnumx', #3183. +* Set default all QFQ send mails to 'auto-submit'. +* Added possibility to customize error messages ('data-pattern-error', 'data-rquired-error', 'data-match-error', + 'data-error') if validation fails. Customization can be done on global level (config.qfq.ini), per Form or per FormElement. +* *FormElement*: Double an input element and validate that the input match: FormElement.parameter.retype=1. +* Autofocus in Forms is now supported. By default the first Input Element receives the focus. Can be customized. +* Added a timestamp in shown exceptions. Usefull for screenshots, send by customer, to find the problem in SQL logfiles. Bug fixes ^^^^^^^^^ - * Fixed missing docutmentation for FormElement 'note'. - * Failed SQL queries will now always be logged, even if they do not modify some data. +* Fixed missing docutmentation for FormElement 'note'. +* Failed SQL queries will now always be logged, even if they do not modify some data. Version 0.10 ------------ @@ -2862,14 +2880,14 @@ Version 0.10 Features ^^^^^^^^ - * Implemented Parameter 'extraDeleteForm' for 'forms' and 'subrecords'. Update doc. +* Implemented Parameter 'extraDeleteForm' for 'forms' and 'subrecords'. Update doc. Bug fixes ^^^^^^^^^ - * Suppress rendering of form title during a 'delete' call. No one will see it and required parameters are not supplied. - * In case of broken SQL queries, print them in ajax error message. - * Remove parameter 'table' from Delete SIP URLs. ToolTip updated. +* Suppress rendering of form title during a 'delete' call. No one will see it and required parameters are not supplied. +* In case of broken SQL queries, print them in ajax error message. +* Remove parameter 'table' from Delete SIP URLs. ToolTip updated. Version 0.9 ----------- @@ -2877,43 +2895,43 @@ Version 0.9 Features ^^^^^^^^ - * FormEditor: - * design update - new default background color: grey. - * per form configureable background colors. - * Optional right align of all form element labels. - * Added config.qfq.ini values CSS_CLASS_QFQ_FORM_PILL, CSS_CLASS_QFQ_FORM_BODY, CSS_CLASS_QFQ_CONTAINER. +* FormEditor: + * design update - new default background color: grey. + * per form configureable background colors. + * Optional right align of all form element labels. + * Added config.qfq.ini values CSS_CLASS_QFQ_FORM_PILL, CSS_CLASS_QFQ_FORM_BODY, CSS_CLASS_QFQ_CONTAINER. Bug fixes ^^^^^^^^^ - * BuildFormBootstrap.php: added new class name 'qfq-label' to form labels - needed to assign 'qfq-form-right' class. - Changed wrapping of formelements from 'col-md-8' (wrong) to 'col-md-12'. - * QuickFormQuery.php: Set default for new F_CLASS_PILL & F_CLASS_BODY. - * formEditor.sql: New default background color for formElements is blue. - * qfq-bs.css.less: add classes qfq-form-pill, qfq-form-body, form-group (center), qfq-color-..., qfq-form-right. - * Index.rst: Add note to hierachy chars. Fixed uncomplete doc to a) bs*Columns, showButton. Add classPill, classBody. - Rewrote form.paramter.class. - * QuickFormQuery.php: Button save/ close/ delete/ new - align to right border of form. - * UsersManual/index.rst: renamed chapter for formelements. Cleanup formelement types. Wrote chapter 'Detailed concept'. - * QuickFormQuery.php, FormAction.php: '#2931 / afterSave Hauptrecord xId nicht direkt verfügbar' - load master record - again, after 'action'-elements has been processed. - * UsersManual/index.rst: Startet FAQ section. - * config.qfq.example.ini: Added comment where to save config.qfq.ini. - * UsersManual/index.rst: Rewrite of 'action'-FormElement definition. - * #2739 / beforeDelete / afterDelete. - * PROTOCOL.md: update 'delete' description. - * delete.php: fixed unwanted loose of MSG_CONTENT. - * Report.php: Fixed double '&&' in building UrlParam. - * FormAction.php: In case of 'AFTER_DELETE', do not try to load primary record - that one is already deleted. - * Sip.php: Do not skip SIP_TARGET_URL as parameter for the SIP. - * #3001 / Report: delete implementieren. - * Index.rst, Constants.php: reverted parameter '_table' in delete links back to 'table' - Reason: 'form' needs to be - 'form' (instead of '_form') due to many used places already. - * Sip.php: move SIP_TARGET_URL back to stored inside SIP - it's necessary for 'delete'-links. - * Report.php, Constants.php: Remove code to handle unecessary 'p:' tag for delete links. - * Link.php: Check paged / Paged that the parameter r, table and form are given in the right combination. - * Link.php, Report.php: New '_link' token 'x'. '_paged' and '_Paged' are rendered via Link() class, Link() class now - supports delete links. - * QuickFormQuery.php: for modeForm='Form Delete' the 'required param' are not respected - this makes sense, cause these - parameters typically filled in newly created records. - * #3076 / Delete Button bei Subrecords erzeugt sporadisch Javascript Exceptions (Webkit: Chrome / Vivaldi) - kein loeschen moeglich. +* BuildFormBootstrap.php: added new class name 'qfq-label' to form labels - needed to assign 'qfq-form-right' class. + Changed wrapping of formelements from 'col-md-8' (wrong) to 'col-md-12'. +* QuickFormQuery.php: Set default for new F_CLASS_PILL & F_CLASS_BODY. +* formEditor.sql: New default background color for formElements is blue. +* qfq-bs.css.less: add classes qfq-form-pill, qfq-form-body, form-group (center), qfq-color-..., qfq-form-right. +* Index.rst: Add note to hierachy chars. Fixed uncomplete doc to a) bs*Columns, showButton. Add classPill, classBody. + Rewrote form.paramter.class. +* QuickFormQuery.php: Button save/ close/ delete/ new - align to right border of form. +* UsersManual/index.rst: renamed chapter for formelements. Cleanup formelement types. Wrote chapter 'Detailed concept'. +* QuickFormQuery.php, FormAction.php: '#2931 / afterSave Hauptrecord xId nicht direkt verfügbar' - load master record + again, after 'action'-elements has been processed. +* UsersManual/index.rst: Startet FAQ section. +* config.qfq.example.ini: Added comment where to save config.qfq.ini. +* UsersManual/index.rst: Rewrite of 'action'-FormElement definition. +* #2739 / beforeDelete / afterDelete. +* PROTOCOL.md: update 'delete' description. +* delete.php: fixed unwanted loose of MSG_CONTENT. +* Report.php: Fixed double '&&' in building UrlParam. +* FormAction.php: In case of 'AFTER_DELETE', do not try to load primary record - that one is already deleted. +* Sip.php: Do not skip SIP_TARGET_URL as parameter for the SIP. +* #3001 / Report: delete implementieren. +* Index.rst, Constants.php: reverted parameter '_table' in delete links back to 'table' - Reason: 'form' needs to be + 'form' (instead of '_form') due to many used places already. +* Sip.php: move SIP_TARGET_URL back to stored inside SIP - it's necessary for 'delete'-links. +* Report.php, Constants.php: Remove code to handle unecessary 'p:' tag for delete links. +* Link.php: Check paged / Paged that the parameter r, table and form are given in the right combination. +* Link.php, Report.php: New '_link' token 'x'. '_paged' and '_Paged' are rendered via Link() class, Link() class now + supports delete links. +* QuickFormQuery.php: for modeForm='Form Delete' the 'required param' are not respected - this makes sense, cause these + parameters typically filled in newly created records. +* #3076 / Delete Button bei Subrecords erzeugt sporadisch Javascript Exceptions (Webkit: Chrome / Vivaldi) - kein loeschen moeglich. diff --git a/extension/ext_emconf.php b/extension/ext_emconf.php index fc6e425c1f5e76afd7d9b475804f7da91822e862..d1c5b53c01872599db0543ce500025bcb14b7d9b 100644 --- a/extension/ext_emconf.php +++ b/extension/ext_emconf.php @@ -12,7 +12,7 @@ $EM_CONF[$_EXTKEY] = array( 'dependencies' => 'fluid,extbase', 'clearcacheonload' => true, 'state' => 'stable', - 'version' => '20.4.0', + 'version' => '20.4.1', 'constraints' => [ 'depends' => [ 'typo3' => '7.0.0-9.2.99', diff --git a/version b/version index bd45cd74a27b54ce581f30534f80b08c4962fa5d..1b0aa9924446eff02d77703617de73456b8bfaa9 100644 --- a/version +++ b/version @@ -1 +1 @@ -20.4.0 +20.4.1