Commit 466a4178 authored by Carsten  Rose's avatar Carsten Rose
Browse files

Merge branch 'develop' into 'fieldset-improvements'

# Conflicts:
#   less/qfq-bs.css.less
parents 9a628f37 e681f952
Pipeline #3080 failed with stages
in 7 minutes and 7 seconds
# EditorConfig is awesome: http://EditorConfig.org
#
# Use as master: https://github.com/TYPO3-Documentation/T3DocTeam/blob/master/.editorconfig
# top-most EditorConfig file
root = false
[{*.rst, *.rst.txt}]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 3
# MD-Files
[*.md]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4
# ignore generated documentation
*GENERATED*
# ignore typical clutter of IDEs and editors (this could be added in .git/info/exclude,
# but we add it here for convenience)
*~
*.bak
*.idea
*.project
*.swp
.project
.webprj
.vscode
nbprojec
# Created by .ignore support plugin (hsz.mobi)
.python_virtualenv/
.virtual_env
......@@ -13,23 +28,32 @@
.support
.support_plantuml
.support_sonar
qfq.flowchart.dia.autosave
test.json
test.php
test.html
*.autosave
composer.lock
/Documentation-GENERATED-temp
/bower_components
/composer.phar
/css
/dist/
/doc/*.pdf
/doc/jsdoc
/doc/phpdoc
/doc/plantuml
/extension/Documentation/_make/build
/Documentation-develop/*.pdf
/Documentation-develop/jsdoc
/Documentation-develop/phpdoc
/Documentation-develop/plantuml
/extension/vendor
/extension/Documentation/_make
/extension/Documentation/html
/extension/Resources/Private/vendor
/extension/Resources/Public/Css
/extension/Resources/Public/fonts
/extension/Resources/Public/JavaScript
/extension/Tests/selenium/tmp
/fonts
/js
/node_modules
......@@ -37,3 +61,10 @@ test.php
/qfq.flowchart.dia.autosave
/support
/vendor
/javascript/src/.vscode
/javascript/src/npm-debug.log
/docker/chromedriver
/docker/geckodriver
/docker/run_qfq_docker.output
before_script:
- VERSION=`cat ./version`
- RELDATE=`date '+%Y%m%d%H%M'`
- mkdir build || true
variables:
SELENIUM_LOGS_PATH: "/scratch/tmp/7/"
stages:
- before
- build
- selenium
documentation:
stage: before
script:
- docker pull t3docs/render-documentation
- source <(docker run --rm t3docs/render-documentation show-shell-commands)
- dockrun_t3rd makehtml
snapshot:
stage: build
except:
- tags
artifacts:
expire_in: 1 week
paths:
- build/
script:
- make VERSION=$VERSION phpunit_snapshot
- chmod a+r qfq_$VERSION_*.zip
- scp qfq_$VERSION_*.zip w16:qfq/snapshots/
- make VERSION=${VERSION} phpunit_snapshot
- chmod a+r qfq_${VERSION}_*.zip
- echo "mv qfq_${VERSION}_*.zip qfq_${VERSION}_${RELDATE}-${CI_BUILD_REF_NAME}.zip"
- mv qfq_${VERSION}_*.zip qfq_${VERSION}_${RELDATE}-${CI_BUILD_REF_NAME}.zip
- scp qfq_${VERSION}_*.zip w16:qfq/snapshots/
- mv qfq_${VERSION}_*.zip build/qfq.zip
release:
stage: build
only:
- tags
artifacts:
expire_in: 1 week
paths:
- build/
script:
- make VERSION=$VERSION phpunit_release
- chmod a+r qfq_$VERSION_*.zip
- scp qfq_$VERSION_*.zip w16:qfq/releases/
- make VERSION=${VERSION} phpunit_release
- chmod a+r qfq_${VERSION}_*.zip
- scp qfq_${VERSION}_*.zip w16:qfq/releases/
- mv qfq_${VERSION}_*.zip build/qfq.zip
selenium:
stage: selenium
script:
- unzip -q build/qfq.zip -d qfq
- cd docker/
- ./run_qfq_docker.sh -no-deploy
- ./deploy_to_container.sh ../qfq
- ./run_selenium_tests_docker.sh
- echo "hello"
after_script:
# remove containers and move logs to persistent location
- cd docker; ./remove-containers.sh <<< "y"
- cd ..
- umask 002
- mkdir "$SELENIUM_LOGS_PATH/$CI_COMMIT_SHORT_SHA"
- cp extension/Tests/selenium/selenium_logs/* "$SELENIUM_LOGS_PATH/$CI_COMMIT_SHORT_SHA/"
- echo "Selenium Logs copied to $SELENIUM_LOGS_PATH/$CI_COMMIT_SHORT_SHA/"
- echo "Or download result (log/screenshot) in gitlab under CI/CD > Pipelines <job> > right side 'Artifacts'"
artifacts:
expire_in: 1 week
paths:
- extension/Tests/selenium/selenium_logs/
.. ==================================================
.. Header hierachy
.. Header hierarchy
.. ==
.. --
.. ^^
......@@ -36,6 +36,627 @@ Features
Bug Fixes
^^^^^^^^^
Version 19.12.0
---------------
Date: <date>
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 '#'.
* #9531 / File Upload Required.
* #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 / Identiy 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
Notes
^^^^^
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.
Features
^^^^^^^^
* #9521 / Textarea auto-grow. Update Manual.rst. New class qfq-auto-grow for textareas.
* Update FormEditor to 80,1,350.
* Alerts a) changed overlay to blur and white, b) optimized to better reading for developer - ':hover' inside of error messages: black text and blue highlight.
* Add new CSS class 'qfq-sticky-element' - to stick individual elements.
Bug Fixes
^^^^^^^^^
* #9354 / Missing border around form if there are no pills / no title
* #9053 / Using the tablesorter filter in form triggers dirty detection for save. Set qfq-skip-dirty on all tablesorter-filter.
* #2720 / Formelement 'radio' - required failed.
* #9512 / PDF merge fails on encrypted PDFs. Try to use qpdf to decrypt.
* #6232 / Missing required: Pill/Input not 'bring to front' - Textarea, Editor, Radio.
* #9300 / Fix Name restMethod-FormElement.
* Add '@' to various PHP/IO function to suppress generic OS exception - now QFQ will report customized messages.
* FormEditor / error message: fix missing formId in STORE_SIP on calling FE directly from error message.
* Manual.rst: Tip for wkhtml added. Add description for 'fileButtonText'. Adjustments for 'slaveId' concept.
Version 19.10.0
---------------
Date: 17.10.2019
Notes
^^^^^
* Background color of popups & error messages changed.
* slaveId/sqlInsert/sqlUpdate/sqlDelete are now available for all FormElements.
* New MySQL stored procedure strip_tags() function.
Features
^^^^^^^^
* #5695 / First implementation of multiform.
* #7495 / Removed dirty flag when 'enable-save-button' is set.
* Add MySQL strip_tags() function.
Bug Fixes
^^^^^^^^^
* #9329 / Fabric annotations. Fixed Scaling Problem on Static Canvas instances.
* #9298 / Fix timeout of file_get_contents. Extend timeout for downloadPage to 10min.
* #9274 / PHP 7.3 reports: switch statement with 'continue 2'.
* #9269 / fillStoreForm now fired two times in API calls. The first time during loadFormDefinition and the second time after the STORE_TYPO3 has been faked via SIP.
* Manual.rst: Add '!' to fillStoreVar Query
* Increase z-index in CSS 'dropdown-menu' class to 1060. The 'tablesorter > columnselector' will be hidden with 'qfq-sticky' by values < 1000.
* Reduce z-index in CSS 'qfq-sticky' class from 9999 to 1000. The 'tablesorter > columnselector' will be hidden with values > 1060.
Version 19.9.1
--------------
Date: 21.09.2019
Notes
^^^^^
* Use the CSS class 'qfq-sticky' in `<thead>` to make a table header 'sticky' - on long pages such tables headers are always
visible.
* The page with the list of all forms: a new best practice report includes useful statistics `Form-Editor-Usage`_ - best
is to replace the old code.
Features
^^^^^^^^
* #9203 / Pin the header of table (CCS 'sticky'), to make it always visible even if the page scrolls down.
* #9172 / AutoCron: new colum 'autoGenerated', 'xId'
* #9089 / Move Stored Procedure to SECURITY=INVOKER
* Manual.rst: Best practice `Form-Editor-Usage`_
* Reduce BS legend.font-size from 21 to 17.
* Change doc of tablesorter to use 'sorter-false' as class.
Bug Fixes
^^^^^^^^^
* #9074 / QFQ query with nested QFQ query failed, if the outer QFQ query is a multi column query ( ='{{!' ). Fixed.
Version 19.9.0
--------------
Date: 09.09.2019
Notes
^^^^^
* Size of input elements now might be specified dynamically (with min and max height).
* Twig converts json objects to an array.
Features
^^^^^^^^
* Report.php: Twig, convert json object into associative array.
* Test SQL stored procedure in Form report.
* qfq-bs.css.less: a) reduce 'qfq-note' padding-top from 7 to 2 px, b) reduce 'legend' margin-bottom from 25 to 0.
* Debug output sendmail redirect all: addresses now always space delimited.
* FormEditor:
* Remove FormElement 'tabindex'.
* Change FormElement.class from 'Select' to 'Radio'.
* Manual.rst:
* Clean syntax highlight.
* Update realtime log file QFQ code.
* Add 'Best Practice' code to show QFQ log files in realtime. Reformat some content.
* #7849 / New option 'fileTrash' and 'fileTrashText'.
* #7682 / 'Input textarea auto height'
* #4434 / Special column names now have to start with underscore. Earlier it was recognised even if there was no underscore.
Bug Fixes
^^^^^^^^^
* #7860 / Special column name 'mailto' no handles text correctly if multi byte encoded. Fixed.
* #7849 / Missed filename after the file chooser selected an file. Fixed.
* #1201 / FE.parameter option 'tabindex' has never been implemented. Removed.
According https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex only the values '0' and '-1' are good.
* Add table html-id to subrecords, created by QFQ. Needed for tablesorter.
* Add TinyMCE to list of 'Software distributed together with QFQ'
Version 19.8.0
--------------
Date: 28.08.2019
Notes
^^^^^
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/
* Increase Length of column Form.forwardPage limit from 255 to 511.
* Index.rst: Add Rafi, Elias, Nicola as further contributors.
* Add SQL stored procedure QIFEMPTY().
* #8806 / Add SQL stored procedure QNL2BR().
* #8851 / Add sqlLogMode modifyAll and restrict sqlLogMode modify.
* #8859 / FormEditor: Filter + ColumnSelector.
* #8856 / AutoCron: SQL logMode should be defined separately.
Bug Fixes
^^^^^^^^^
* #8933 / Broken record lock: lock extend does not work - fixed
* #8846 / FormEditor: subrecord of FormElement might be wider than Form.
* #8853 / fe.class=action: container should be hidden - hidden is wrong - FE-action might be assigned to templateGrou
Container. New solution: if FE.class='action' only templateGroups are in the 'container' list.
* #6656 / DragnDrop' into 'master'
* Update compatibility: API change in T3 makes QFQ incompatible with Typo3 >=9.4. Change compatibility back to <9.3.
Problem: sys_language_uid
* Update QFQ from earlier/equal version than 0.19.2 fails to create table 'Cron'.
Version 19.7.1
--------------
Date: 17.07.2019
Notes
^^^^^
* TWIG integration
Features
^^^^^^^^
* TWIG:
* 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.
Bug Fixes
^^^^^^^^^
* Database.php: fix CodeException
* Fabric: Readonly now displays annotations again.
Version 19.7.0
--------------
Date: 02.07.2019
Notes
^^^^^
* Settings for tablesorter can now be saved.
* Selenium docker based is integrated now.
Features
^^^^^^^^
* #7284 / tablesorter save sort order
* #8592 / Fixed button display, added Alert instead of disabled button.
* #8204 / position required mark
* Excel.php: Delete superficial autoloader require
* Cleanup: hashPassword.php moved from Api to External.
* Cleanup unwanted git tracked files: Documentation-develop/jsdoc|...
* Selenium + Docker
* Update .gitignore - documentation directory moved several days ago.
Bug Fixes
^^^^^^^^^
* #6917 / Fix Monitor does not work.
* #8098 / Fix Language specific retype label or note has not been set correctly.
* Fix undefined index and potential undefined index.
* Fix Autoloader for External/AutoCron.php.
* Small fixes Manual.rst.
* Fix broken Manual: unwanted '<' after '{{!' lead to fully broken Manual.
* Fix path Source/api to Source/Api.
Version 19.6.2
--------------
Date: 21.06.2019
Notes
^^^^^
The Rest API path changed:
* old: typo3conf/ext/qfq/Source/api/rest.php
* new: typo3conf/ext/qfq/Classes/Api/rest.php
QFQ is now PSR4 compliant.
Features
^^^^^^^^
* #8520 / Switch to psr4 composer.
* #8272 / Disable 'save' button as long as an upload is running.
* #7529 / Guarantee Sip Action plays only once.
* #8577 / Documentation enhanced for behaviour of SELECT '_test'.
Bug Fixes
^^^^^^^^^
* #7903 / Delete with 'table' as parameter doesn't work anymore.
* #8571 / Primary Key: report error if lower/uppercase don't match - in general if given primary key is not found in table definition.
* #8465 / Var substitute: '{{name:R:::0}}' default not used if it is '0'.
Version 19.6.1
--------------
Date: 16.06.2019
Notes
^^^^^
* 'pdftk' is no longer used.
* Please install 'poppler-utils' - the command 'pdfunite' is the replacement of 'pdftk'.
Features
^^^^^^^^
* #8558 / Split error message in toUser and toDeveloper. Add error code.
* #8562 / Replace pdftk by pdfunite. 'pdftk' is outdated. It's hard to install on Ubuntu 18. It fails for recent PDFs.
'pdfunite' is based on poppler. URLs are preserved. Orientation and size are preserved.
Bug Fixes
^^^^^^^^^
* Fix uniqIdQfq() - returned always badcaffeee1234
* Refactor function.sql to function.sql. Implement constants for Version numbers.
* Update NewDoc.md
Version 19.6.0
--------------
Date: 12.06.2019
Notes
^^^^^
* Add Marc Egger as Developer
Bug Fixes
^^^^^^^^^
* #8523 / htmlid: remove spaces (war #8460). Replace uniqid() by uniqIdQfq() which delivers a constant id in case of running unit tests
* #8430 / QFQ Doc mising.
* Index.rst: customize URL for 'report a problem'.
* Sitemap.rst: new created to be included by Index.rst.
* Reformat Index.rst according https://github.com/TYPO3-Documentation/TYPO3CMS-Example-ExtensionManual.git.
* Move doc to docker generation. Update ReST Syntax URLs.
* Remove 'extension/Documentation.outdated'.
* Update .gitignore to not commit rendered doc.
* Manual.rst: Excel Export / PDF export replace 'uid:<int>' with 'uid:<tt-content record id>'
* Update SQL functions to hanlde errors more efficient.
Version 19.5.1