Release

Version 0.13

Changes

  • Play formEditor.sql.

  • formEditor.sql:

    • Checktype of Form.name restricted to alnumx (prior all).
    • Changed access for Form form & ‘ormElement from always to sip.
  • Table FormElement

    • 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.

Features

  • 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:

      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.

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’.
    • 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:
    • Alignment of checkboxes and radios optimized.
    • CSS class ‘qfq-note’ for ‘notes’ (third column in a form).

Version 0.12

Changes

  • 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’

      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.

    • PLAY ‘formEditor.sql’.
  • User Input will be UTF8 normalized.

    • INSTALL ‘php5-intl’ or ‘php7.0-intl’ on Webserver.
  • Add globalize.js to be included. Needed by jqx-all.js

    • UPDATE EXISTING TypoScript TEMPLATES of QFQ Installation.

Features

  • 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 (=parameter is set and will not be overwritten by internal default), not UNDEFINED (overwritten by internal default).
  • FileUpload: * 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: * Described form layout options: description for bsLabelColumn, bsInputColumn, bsNoteColumn * Update ‘file-upload’ doc. * Described 3 examples for upload forms.
  • Administrator manual: * Add description page.meta...
  • 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.
  • 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.
  • #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.

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.

Bug fixes

  • 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

Features

  • 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.

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.

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.
  • Fixed: #3076 Delete Button bei Subrecords erzeugt sporadisch Javascript Exceptions (Webkit: Chrome / Vivaldi) - kein loeschen moeglich.