Skip to content
Snippets Groups Projects
Release.rst 112.03 KiB

Release

Version 21.x.x

Date: <date>

Notes

Features

Bug Fixes

Version 21.y.y

Date: <date>

Notes

  • The log directory was moved into the qfqProject directory in version 21.2.0 for new installations. But if the directory fileadmin/protected/log already exists then QFQ keeps storing logs there. This was added to release notes of 21.2.0 in hindsight.

Features

Bug Fixes

Version 21.5.0

Date: 02.05.2021

Features

  • CodingGuideline.rst: add Form Best practice

Bug Fixes

  • #10505 / Drag'n'Drop broken on Multi DB Instance - all checks done
  • #10754 / Clean up stale requirements.txt
  • #11769 / Missing description table in Form.rst
  • #12352 / Form As Json: copy via JSON in FormEditor broken.
  • #12398 / Fix check required for uploads
  • #12475 / During QFQ update take care that all system tables exist.
  • #12479 / Remove unwrap('p-tag') for TinyMCE - currently, this breaks regular consecutive <p> tags

Version 21.4.0

Date: 11.04.2021

Notes

  • The new introduced 'Form As File' Feature in QFQ Version 21.3.* has been disabled. Instead every form can be imported and exported as JSON. The automatic import/export was not stable and a manual process promises less problems.

Features

  • #12015 / useAdvancedFormEditor: disable form sync using feature flag
  • #12346 / Add new formJson.json to system forms
  • #12345 / Update documentation of special column formJson
  • REST.rst: small reformat.
  • Add Test copyToClipboard
  • HTTP Header: Add 'X-Api-Key'. Fix problem for token without argument name. Update doc.
  • Add margin to qfq-badge
  • Fix undefined clearMe

Bug Fixes

  • #12341 / FormSubmitLog also saves FormName (not only FormId)
  • #11265 / Dropdown Menu: wrap with <p> breaks dropdown
  • #12268 / Enhanced FormSubmitLog Page Sample Code
  • gitlab-ci.yml: `mkdir -p ... ` suppresses warning if directory already exist. Add more descriptive message.
  • docker/run_qfq_docker.sh: 'source' eines files, das nicht existiert, gibt immer einen Fehler auf stdout.
  • Fix problem: /var/www/html/my/typo3conf/ext/qfq/Classes/Core/Form/FormAction.php / Line: 394 / Undefined index: saveFormJson
  • extension/Classes/Core/Helper/SessionCookie.php: Index 'host' was empty

Version 21.3.2

Date: 22.03.2021

Features

  • #9528 / Implement option 'clearMe' to show a small X in input & textaera fields per FormElement, per Form or global.

Bug Fixes

  • #12015 / use Advanced Form Editor - problem with uppercase f in Form for form name.

Version 21.3.1

Date: 21.03.2021

Notes

  • Custom QFQ Function:
    • Call QFQ function from inside a report, at any place, as often as needed. The QFQ function code will be parsed only one time. Variables will be replaced in time.
    • Based on QFQ function: a new download source can be specified : source:<function name>

Features

  • #11998 / Custom QFQ-Function
  • #12015 / Use Advanced FormEditor

Bug Fixes

  • Bug with empty Fabric string fixed

Version 21.3.0

Date: 07.03.2021

Notes

  • To enforce usage of the new form-list we throw an exception on QFQ update if the line "file=_formEditor" is not present in any tt-content bodytext. :ref:`form-editor`.
  • Persistent download links, combined with SQL based access check. :ref:`download`.
  • Check new file based definition of forms :ref:`form-as-file` - this makes it easier to work in team with GIT based files.

Features

  • #12085 / Persistent download links.
  • #12022 / New Escape class HtmlSpecialChar 'h'
  • #11957 / Get European Timezone {{start:R::t}}
  • #11926 / Update Form As File Documentation
  • #12015 / Add formEditor as a system QFQ report and enforce formEditor existence
  • #11926 / Use alternate form and report directories for phpunit (form_phpunit)
  • #11953 / Logger.php: replace makePathAbsolute with Path functions
  • #11931 / Report minimal required PHP version and stop, if PHP version is too low.
  • #9213 / Add note for tablesorter.
  • Add EV tips for tablesorter as a table in doc

Bug Fixes

  • #12016 / Run Typo3 autoloader before password hashing if API request
  • #5444 / Typeahead FE value is now prefetched after save.

Version 21.2.0

Date: 01.02.2021

Notes

  • The log directory was moved into the qfqProject directory in version 21.2.0 for new installations. But if the directory fileadmin/protected/log already exists then QFQ keeps storing logs there. This was added to release notes of 21.2.0 in hindsight.

Features

  • #10286 / Download Links: Glyphicon selbst wählen/ausblenden
  • #11878 / Purge extension option config.documentation
  • #6793 / Source files for ZIP archives might now specified with a path/filename how they are called inside the ZIP.
  • log directory was moved into qfqProject directory

Bug Fixes

  • #11925 / downloadButton Parameter 'd:Filename'
  • #9355 / Increase column width header & attach
  • #11865 / Form Editor exception when edited after saved
  • #11798 / Use T3 password hashing API instead of hack
  • #11750 / Checkbox does not work together correctly with required fields
  • #11666 / PHP 7.4: Trying to access array offset on value of type int
  • #11245 / If forwardMode column is set to '', set forwardMode to 'auto'

Version 20.11.0

Date: 12.11.2020

Features

  • #7156 / Throw exception when a report level is defined twice.
  • #11335 / Sanitize Alnumx: allow 'ß'
  • #11325 / Allow SQL CALL(). Unsupported: Multiple (like query_multi()) - only the first one will be returned.
  • #11269 / REST Post might return a customized answer.
  • #11512 / Twig: add access to Var store
  • #11118 / Uniqueness is now guaranteed in {{random:V}}
  • #11513 / Add special column AS _script
  • #11509 / PDF split fails for broken PDF
  • #10979 / Ajax Calls an API - dataReport

Bug Fixes

  • #11430 / phpSpreadsheet throws exception that '' is not numeric
  • #10257 / Delete AS _link only worked with certain parameter order.
  • #11511 / Tablesorter: fix encoding error, sanitize base64 encoding
  • #11146 / Sendmail dynamic PDF broken
  • #10554 / Fix extrabuttonlock also for select, radio and checkbox
  • #11245 / If forwardMode column is set to '', set forwardMode to 'auto'

Version 20.9.0

Date: 06.09.2020

Notes

  • New SIP protected AJAX calls.
  • Report now fires calls to websocket (remote hosts).
  • Report now fires REST calls to remote hosts.

Features

  • #10979 / Report: do SIP protected AJAX calls to typo3conf/ext/qfq/Classes/Api/dataReport.php.
  • #11076 / Report: trigger call to websockets.
  • #11119 / Report: REST Client calls - incl. processing of answer.
  • Add CodingGuideline.rst.

Bug Fixes

  • #10919 / AutoCron: Fix missing FillStoreSystemBySql.
  • #11075 / Form: Missing SQL error message in FE Action Elements.
  • #11039 / Fix CSS for Checkbox.

Version 20.6.2

Date: 25.06.2020

Bug Fixes

  • #10641 / TypeAheadTag: Fehler beim gleichzeitigen anlegen mehrerer neuer Tags
  • #10794 / Documentation: Crontab entry more clearly

Version 20.6.1

Date: 24.06.2020

Features

  • #10778 / Upload ZIP and unpack

Version 20.6.0

Date: 14.06.2020

Notes

  • Add note in Installation.rst to start Apache with Locale en_US.UTF-8. This helps to support Umlaut and other characters in filenames and wkhtml commandline options (like header/footer).
  • Migrate documentation from T3 to ReadTheDocs.io - looks older but 'search' is much more better. New: chapters separated in individual files.
  • For the image to PDF feature, installation of img2pdf is required (please check :ref:`preparation`).

Features

  • #10751 / Allow images to be concatenated for PDF download.
  • Fontawesome updated 5.13.
  • Extend FE.label size to 1023.
  • Local documentation rendering directly via Sphinx.
  • Manual: Search is working, table width not truncated anymore, PDF & epub export, redirect qfq.io/doc to docs.qfq.io.
  • Update copyright notice.

Bug Fixes

  • #10507 / FormElement.type: 'annotate' is defined two times in Enum
  • #10705 / New function 'HelperFile::joinPathFilename($pre, $post)'. Joins only if $post is without leading slash.

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

Date: 05.04.2020

Notes

  • New Feature: :ref:`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'.

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

Version 20.2.0

Date: 02.02.2020

Notes

  • Add new keyword 'render' in tt-content Report and QFQ config. 'render' will control if a) only Form OR Report will be rendered (render=single) or b) as previous Form AND Report together (render=both).
    • Advantage: with 'render=single' no more SELECT ... FROM (SELECT '') AS fake WHERE '{{form:SE}}'=''.
    • Attention: NEW default behaviour in new QFQ installations - render=single. Behaviour in old installations is unchanged.
  • tt-content records with 'render = api' can stay on the same page as the link to get the content (e.g. Excel Export).
  • Change default doc page to qfq.io/doc.
  • Add new specialColumnName: '_noWrap' - skips wrapping of fbeg,fsep,fend.
  • First version of 'FullCalendar.io' - new SpecialColumnName will follow in the future.

Features

  • #9929 / New keyword '_noWrap' for column names (alias) - skips wrapping of fbeg/fskip/fend.
  • #9905 / Keyword 'render' in Report. Final implementation. Doc updated.
  • #9959 / Update QFQ Config on the fly.
  • #9990 / Describe order of FormElement processing - :ref:`form-process-order`.
  • #8658 / FullCalendar.io V3 implemented.
  • #9535 / VerticalText new implementation.
  • Manual.rst: Add list of icons. Enhance sendmail doc.
  • Change color of qfq-info-* from blue to light-blue. Add qfq-primary, qfq-danger.

Bug Fixes

  • #10010 / FE.type=sendmail will now be fired together with fe.type=after* (not after).
  • #5869 / Table names not properly escaped.
  • #9638 / TextArea: Autosize - broken when using clipboard,
  • Fixed problem with border showing when qfq-color-white is set.
  • Fix selenium tests, remove chromedriver from npm.
  • Log problem that crashes qfq when calendar dependencies are missing.
  • Fixed gruntfile problem.

Version 20.1.1

Date: 13.01.2020

Bug Fixes

  • #7705 / Fix problem with wrong value after save and form update.
  • #8587 / A form triggers a save only, if there are real table columns.

Version 20.1.0

Date: 09.01.2020

Notes

  • Deprecated: Form.parameter.mode. Use Form.parameter.formModeGlobal

Features

  • #9805 / Form.parameter.activateFirstRequiredTab.
  • #9858 / Form.parameter: replace 'mode' by 'formModeGlobal'
  • #9860 / SQL function qmore(): change text '...' to '[...]'.
  • Update Developer doc for record locking.
  • Mockup for error handling.

Bug Fixes

  • #7925 / Error in split PDF file during upload. Fix the cwd error in Logger.
  • #9789 / Record lock release to early on 'leave page'. QfqJS: Moved release lock to before unload.
  • #9861 / Fix problem with broken sql.log filename.
  • #8851 / Revert implementation: LogMode 'modify' vs. 'modifyAll'.
  • #9859 / Database Update: check for 'Update specialColumnName needed' breaks new QFQ install.
  • #9813 / During QFQ database update, skip errors like 'Error 1060 - Duplicate Column'.
  • Manual.rst: Fix various broken table layouts.

Version 19.12.0

Date: 17.12.2019

Notes

  • Switch the whole homepage to readonly: FormModeGlobal and STORE_USER

Features

  • TinyMCE: grey out controls when readonly.
  • Mockup:
    • Update files to get CSS & JS files from their own directory structure (not an installed QFQ extension).
    • Add fontawesome, tablesorter to mockup 'formCheckbox.html'.
  • CI: Download selenium logs (only failed) under artifacts.
  • Dev: .gitignore: exclude some docker & selenium.
  • Merge Selenium Python Checks into Master.
  • #9686 / html decode and sanitize an export filename to become the 'save as'-filename.
  • #9666 / min-width for extraButtonInfo.
  • FormEditor: optimize minWidth for 'rowLabelInputNote' field.

Bug Fixes

  • #9720 / Checkbox dynamic update varoious settings:
    • Multi Plain Vertical & Horizontal, Checkbox Multi BS.
    • Fixed that label of 'checkbox' are bold and label of 'checkbox-inline' are normal.
  • #7974 / TinyMCE: ReadOnly.
  • #9424 / modeSql: skip if it starts with '#'.
  • #9674 / Select Required Dynamic Update.
  • #9678 / textarea now trigger DynamicUpdate.
  • #9679 / FormModeGlobal: add STORE_USER - system wide readonly.
  • #9690 / Select Required.
  • #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 / 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.
  • Download / PDF merge: skip leading errors, interpret only 'Could not merge encrypted files'.
  • DragAndDrop broken: after refactoring Support.php, the dragAndDrop was broken - missed init of '$store'.

Version 19.11.3

Date: 29.11.2019

Features

  • #8886 / Check pattern: after focus lost.
  • #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':
      • 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.
  • New default class for 'form' tag: 'qfq-notify'.
  • Manual.rst: Add info for 'letter-no-break'.
  • Add validator.js to list of used packages.

Bug Fixes

  • #9670 / If qpdf fails to decrypt a PDF, try gs.
  • #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.
  • #9638 / Textarea Sizing: Now also listens for paste.
  • #7891 / Added missing 'type="button"' to button element.
  • Remove ' style="font-size: 1em;"' in extraButton - this causes extra space between multiple extraButton inline in one input element.

Version 19.11.2

Date: 25.11.2019

Notes

  • Enhance formModeGlobal=requiredOff/-ButMark (temporarily skipRequiredCheck): fill's '{{allRequiredGiven:V}}' before save to 1 (all given) else 0.
  • Offers user to save form, even if not all required data are given and offers application logic to check easily if all required fields has been filled.

Features

  • #9526 / Mark required fields more visible.
  • #9617 / Improve 'formModeGlobal=requiredOff'.
    • Feature Form.formModeGlobal implemented - STORE_SIP overwrites form definition.
    • New STORE_VAR variable 'allRequiredGiven'. Becomes '1' if all required fields are given, else 0.
  • Add param 'L' & 'type' automatically to form save.
  • Manual.rst: Procedure to find an irreproducible error.
  • Change definition of QFQ system tables for 'modified' and 'created'. Use DATETIME instead of TIMESTAMP.

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'.
  • Fixes bug that no mime_type_content is called if there is on file.
  • Fix broken regex101 url.

Version 19.11.1

Date: 11.11.2019

Bug Fixes

  • #9532 / 'Advanced Upload' broken - slaveId/sqlUpdate/... have been processed two times, after multiform code changes.

Version 19.11.0

Date: 08.11.2019

Notes

New CSS Class:

  • 'qfq-sticky' - to make an element sticky.

Update/new stored procedures:

  • QMORE: change symbols from '..more' / '..less' to '...' / '<<'.
  • QIFEMPTY: add empty detection for a) date, b) datetime, c) '0'.
  • QDATE_FORMAT(timestamp). Return text in 'dd.mm.yyyy hh:mm' format or '-' if timestamp is empty.