diff --git a/CHANGELOG.md b/CHANGELOG.md index 755f26bc7a5ba653b21ca1713ff0b50e0b5592c5..c44fc8d33280a8106715348a05031774c28c745b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ .. --------------------------------------------used to the update the records specified ------ .. Best Practice T3 reST: https://docs.typo3.org/m/typo3/docs-how-to-document/master/en-us/WritingReST/CheatSheet.html .. Reference: https://docs.typo3.org/m/typo3/docs-how-to-document/master/en-us/WritingReST/Index.html +.. .. Italic *italic* .. Bold **bold** .. Code ``text`` @@ -19,7 +20,6 @@ .. Internal Link: :ref:`downloadButton` (default url text) or :ref:`download Button<downloadButton>` (explicit url text) .. Add Images: .. image:: ./Images/a4.jpg .. -.. .. Admonitions .. .. note:: .. important:: .. tip:: .. warning:: .. Color: (blue) (orange) (green) (red) @@ -52,6 +52,30 @@ Features Bug Fixes ^^^^^^^^^ +Version 23.10.1 +--------------- + +Date: 22.10.2023 + +Notes +^^^^^ + +Features +^^^^^^^^ + +* #15682 / Subrecord hide please save record first if there is no table title. +* #15098 / Implemented qfqFunction in QFQ variable for usage in forms. +* Doc: Replace many places single back tick by double back tick. Add hint for 'Row size too large'. Added Enis & Jan + as Developer. Add hint use mysqldump with one row per record. + +Bug Fixes +^^^^^^^^^ + +* #17003 / inline edit - dark mode has wrong css path. +* #17075 / Fix broken '... AS _restClient'. +* #17091 / upload_Incorrect_integer_value_fileSize. +* RTD: Fix broken readthedocs rendering. + Version 23.10.0 --------------- @@ -128,6 +152,7 @@ Notes Bug Fixes ^^^^^^^^^ +* #16372 / Upload Element 'Undefined index htmlDownloadButton' und 'unknown mode ID' * #16381 / Form title dynamic update broken. * #16392 / Reevaluate sanitize class for each store. * Fix db column enum dropdown 'data truncated' @@ -369,9 +394,9 @@ Notes per QFQ installation and/or per form. * Subrecord: - * Dynamically computed 'new' button in subrecord: FE.parameter.new. Use regular `... AS _link` syntax. - * Per row customizeable edit and delete button. Use special column name `_rowEdit` and `_rowDelete`. Use - regular `... AS _link` syntax. + * Dynamically computed 'new' button in subrecord: FE.parameter.new. Use regular `... AS _link` syntax. + * Per row customizeable edit and delete button. Use special column name `_rowEdit` and `_rowDelete`. Use + regular `... AS _link` syntax. * Link/Tablesorter: New link qualifier `|Y:...` which is invisible to the user, but will be respected by tablesorter and filter. @@ -3724,11 +3749,10 @@ Changes * 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' + 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. @@ -3775,22 +3799,22 @@ Changes ^^^^^^^ * Table 'FormElement' - * New column: rowLabelInputNote: + * 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` ; + 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' + 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. @@ -3871,9 +3895,9 @@ Bug fixes * 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. + * 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. diff --git a/Documentation-develop/NewVersion.md b/Documentation-develop/NewVersion.md index b6dc5c863603932fa60735c2eb696348eab4dcd4..fb21eb29beb424b5d41609b4d43a624a94b469ce 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 23.10.0 + **Auto**: ./setVersion.sh 23.10.1 Manuell: @@ -56,7 +56,7 @@ Neue Versionsnummer * **Commit & Push** to develop branch: - New version v23.10.0 + New version v23.10.1 6) * Merge 'Develop' to **Master**: git.math.uzh.ch > QFQ > Merge Requests > New merge request > 'Develop >> Master' @@ -66,10 +66,10 @@ Neue Versionsnummer * Neuen tag via Browser auf dem **master** branch setzen: git.math.uzh.ch > QFQ > Repository > Tags > New tag - Tag: v23.10.0 + Tag: v23.10.1 # Den tag mit diesem Command zu setzen scheint den Build Prozess nicht zu triggern. - git tag -a v23.10.0 -m 'New version v23.10.0' git push + git tag -a v23.10.1 -m 'New version v23.10.1' git push 7) **Merge 'master' into 'develop'** diff --git a/Documentation/Form.rst b/Documentation/Form.rst index 9c5ba9f8b9cc6104cb63a7aa30a8e9c12460ad06..23f25081d7dbe32da48a1df36b7b4a450914d4b2 100644 --- a/Documentation/Form.rst +++ b/Documentation/Form.rst @@ -1986,6 +1986,10 @@ will be rendered inside the form as a HTML table. subrecordAppendExtraDeleteForm = address2 + * *subrecordEmptyText*: Optional. Define the text displayed when subrecord has no records:: + + subrecordEmptyText = my custom text + **Subrecord DragAndDrop** Subrecords inherently support drag-and-drop, see also :ref:`drag_and_drop`. diff --git a/Documentation/GeneralTips.rst b/Documentation/GeneralTips.rst index 818a8dcc73782e1a25c6a0cac2421a6f3a740869..57643e80ef033f0a54d837b68c7d23a44a2c1194 100644 --- a/Documentation/GeneralTips.rst +++ b/Documentation/GeneralTips.rst @@ -301,13 +301,21 @@ Row size too large * Details: https://mariadb.com/kb/en/troubleshooting-row-size-too-large-errors-with-innodb/ * Typically too many columns per table on an InnoDB Table. -* First try is to check (and to change) ROW_FORMAT:: +* First try is to check (and to change) ROW_FORMAT: :: - ALTER TABLE tab ROW_FORMAT=DYNAMIC; + ALTER TABLE tab ROW_FORMAT=DYNAMIC; -* Bad workaround for creating a wide table:: +* Bad workaround for creating a wide table: :: - SET SESSION innodb_strict_mode=OFF; - CREATE TABLE ... + SET SESSION innodb_strict_mode=OFF; + CREATE TABLE ... + +* Best is to change as much columns as neccessary from ``varchar()`` to ``tinytext`` / ``text`` + +SQL Dump with one record per line +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Sometimes it's helpful to have SQL dumps with each record on a single line:: + + msyqldump --skip-opt <DB-Name> -* Best is to change as much columns as neccessary from ``varchar()`` to ``tinytext`` / ``text`` \ No newline at end of file diff --git a/Documentation/Release.rst b/Documentation/Release.rst index 92355cdcd7605d31db78e0cc1c56373afe57f85b..073b0f2041f6a5220e42eef9307dc05c24964ee7 100644 --- a/Documentation/Release.rst +++ b/Documentation/Release.rst @@ -12,6 +12,7 @@ .. --------------------------------------------used to the update the records specified ------ .. Best Practice T3 reST: https://docs.typo3.org/m/typo3/docs-how-to-document/master/en-us/WritingReST/CheatSheet.html .. Reference: https://docs.typo3.org/m/typo3/docs-how-to-document/master/en-us/WritingReST/Index.html +.. .. Italic *italic* .. Bold **bold** .. Code ``text`` @@ -19,7 +20,6 @@ .. Internal Link: :ref:`downloadButton` (default url text) or :ref:`download Button<downloadButton>` (explicit url text) .. Add Images: .. image:: ./Images/a4.jpg .. -.. .. Admonitions .. .. note:: .. important:: .. tip:: .. warning:: .. Color: (blue) (orange) (green) (red) @@ -52,6 +52,30 @@ Features Bug Fixes ^^^^^^^^^ +Version 23.10.1 +--------------- + +Date: 22.10.2023 + +Notes +^^^^^ + +Features +^^^^^^^^ + +* #15682 / Subrecord hide please save record first if there is no table title. +* #15098 / Implemented qfqFunction in QFQ variable for usage in forms. +* Doc: Replace many places single back tick by double back tick. Add hint for 'Row size too large'. Added Enis & Jan + as Developer. Add hint use mysqldump with one row per record. + +Bug Fixes +^^^^^^^^^ + +* #17003 / inline edit - dark mode has wrong css path. +* #17075 / Fix broken '... AS _restClient'. +* #17091 / upload_Incorrect_integer_value_fileSize. +* RTD: Fix broken readthedocs rendering. + Version 23.10.0 --------------- diff --git a/Documentation/Report.rst b/Documentation/Report.rst index c90f25f883c26ebc55d5788d58a50cd9c8c67490..72dd4a5195931a9c47ae9a9fb6209cd4083d4d85 100644 --- a/Documentation/Report.rst +++ b/Documentation/Report.rst @@ -345,8 +345,8 @@ Text across several lines ^^^^^^^^^^^^^^^^^^^^^^^^^ To get better human readable SQL queries, it's possible to split a line across several lines. Lines -with keywords are on their own (:ref:`QFQ Keywords (Bodytext)<qfq_keywords>` start a new line). If a line is not a 'keyword' line, it will -be appended to the last keyword line. 'Keyword' lines are detected on:: +with keywords are on their own (:ref:`QFQ Keywords (Bodytext)<qfq_keywords>` start a new line). If a line is not a +'keyword' line, it will be appended to the last keyword line. 'Keyword' lines are detected on:: <level>.<keyword> = { diff --git a/Documentation/Settings.cfg b/Documentation/Settings.cfg index d2a1ef89395dacf293401146d8384dab9ec5ac36..b048b0981e9ad6f184c88bda9afb10ee6834ce44 100644 --- a/Documentation/Settings.cfg +++ b/Documentation/Settings.cfg @@ -22,7 +22,7 @@ project = QFQ - Quick Form Query version = 23.10 -release = 23.10.0 +release = 23.10.1 t3author = Carsten Rose copyright = since 2017 by the author diff --git a/Documentation/Variable.rst b/Documentation/Variable.rst index 0f58273e66717d055883eadf79cf6d96584f632f..12b6552e24d8e900a60e6e21bf92f154130c028f 100644 --- a/Documentation/Variable.rst +++ b/Documentation/Variable.rst @@ -44,7 +44,7 @@ provided. Access to: * :ref:`store-variables` * :ref:`sql-variables` * :ref:`row-column-variables` -* :ref:`link-column-variables` +* :ref:`link-function-column-variables` Some examples, including nesting:: @@ -72,6 +72,12 @@ Some examples, including nesting:: # Link Columns {{p:form=Person&r=1|t:Edit Person|E|s AS link}} + # Function Columns: output in {{fullname:R}} + {{getFullname(pId) => fullname AS function}} + + # Function Columns: output direct tt_content + {{getFullname(pId) AS function}} + Leading and trailing spaces inside curly braces are removed. * ``{{ SELECT "Hello World" }}`` becomes ``{{SELECT "Hello World"}}`` @@ -421,21 +427,42 @@ General note: using this type of variables is only the second choice. First choi :ref:`access-column-values`) - using the STORE_RECORD is more portable cause no renumbering is needed if the level keys change. -.. _`link-column-variables`: +.. _`link-function-column-variables`: -Link column variables ---------------------- +Link/Function column variables +------------------------------ + +Link column +^^^^^^^^^^^ These variables return a link, completely rendered in HTML. The syntax and all features of :ref:`column-link` are available. The following code will render a *new person* button:: {{p:form&form=Person|s|N|t:new person AS link}} -For better reading, the format string might be wrapped in single or double quotes (this is optional): :: +Optional: For better reading, the format string might be wrapped in single or double quotes: :: {{"p:form&form=Person|s|N|t:new person" AS link}} -These variables are especially helpful in: + +Function column +^^^^^^^^^^^^^^^ + +Function column variables are helpful in: * `report`, to create create links or buttons outside of an SQL statement. E.g. in `head`, `rbeg`, ... * `form`, to create links and buttons in labels or notes. + +Definition of a qfqFunction: Report with qfqFunction. Subheader: getFullname:: + + render = api + 10.sql = SELECT CONCAT(lastName, ', ', firstName) FROM Person WHERE id = {{pId:R0}} + +a) Somewhere in a different report or form:: + + {{getFullname(pId) AS function}} + +b) Somewhere in a different report, output is returned in STORE_RECORD variable `fullname`:: + + {{getFullname(pId) => fullname AS function}} + diff --git a/Documentation/conf.py b/Documentation/conf.py index 591b4a236a87b3e9014149e8789e0209ce487819..e4e23b99d032572ae41843981085b1d9459848a6 100644 --- a/Documentation/conf.py +++ b/Documentation/conf.py @@ -64,7 +64,7 @@ author = 'Carsten Rose, Benjamin Baer, Enis Nuredini, Jan Haller' # The short X.Y version. version = '23.10' # The full version, including alpha/beta/rc tags. -release = '23.10.0' +release = '23.10.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/extension/Classes/Core/AbstractBuildForm.php b/extension/Classes/Core/AbstractBuildForm.php index b4eeb1c09ecd490c758d15c41c781cac7505f5f4..65db9a2a32ed8340773adf60504d0988068a8569 100644 --- a/extension/Classes/Core/AbstractBuildForm.php +++ b/extension/Classes/Core/AbstractBuildForm.php @@ -2515,6 +2515,10 @@ abstract class AbstractBuildForm { } $htmlBody .= Support::wrapTag("<tr $rowAttribute>", $rowHtml, true); } + if(empty($formElement[$subrecordToken])){ + $rowHtml .= Support::wrapTag("<td>", $formElement[SUBRECORD_EMPTY_TEXT] ?? SUBRECORD_DEFAULT_EMPTY_TEXT); + $htmlBody .= Support::wrapTag("<tr>", $rowHtml, true); + } return $htmlBody; } diff --git a/extension/Classes/Core/Constants.php b/extension/Classes/Core/Constants.php index 3f0256a83579cc55e99e47a365d70be40ffbee26..fd6c8745af7d855ef2daaabee9cc6c0a16d6694b 100644 --- a/extension/Classes/Core/Constants.php +++ b/extension/Classes/Core/Constants.php @@ -823,7 +823,6 @@ const SIP_EXCLUDE_XDEBUG_SESSION_START = 'XDEBUG_SESSION_START'; // FURTHER: all extracted params from 'urlparam const ACTION_KEYWORD_SLAVE_ID = 'slaveId'; - const VAR_RANDOM = 'random'; const VAR_FILE_DESTINATION = 'fileDestination'; const VAR_SLAVE_ID = ACTION_KEYWORD_SLAVE_ID; @@ -1004,6 +1003,8 @@ const QUESTION_DELETE = 'Do you really want to delete the record?'; const SUBRECORD_COLUMN_DEFAULT_MAX_LENGTH = 20; const SUBRECORD_COLUMN_TITLE_EDIT = 'subrecordColumnTitleEdit'; const SUBRECORD_COLUMN_TITLE_DELETE = 'subrecordColumnTitleDelete'; +const SUBRECORD_EMPTY_TEXT = 'subrecordEmptyText'; +const SUBRECORD_DEFAULT_EMPTY_TEXT = 'Currently no records exist.'; const FORM_ELEMENTS_NATIVE = 'native'; const FORM_ELEMENTS_SUBRECORD = 'subrecord'; const FORM_ELEMENTS_NATIVE_SUBRECORD = 'native_subrecord'; @@ -1783,7 +1784,7 @@ const LINE_ALT_INSERT_ID = 'altInsertId'; const COLUMN_LINK = 'link'; const COLUMN_EXEC = 'exec'; const COLUMN_THUMBNAIL = 'thumbnail'; - +const COLUMN_FUNCTION = 'function'; const COLUMN_PPAGE = 'Page'; const COLUMN_PPAGEC = 'Pagec'; const COLUMN_PPAGED = 'Paged'; diff --git a/extension/Classes/Core/Evaluate.php b/extension/Classes/Core/Evaluate.php index e4f469630a19c9057e4b1f846b84467d6affe593..c82ba2f867dec33185f9746467b5a649851b4237 100644 --- a/extension/Classes/Core/Evaluate.php +++ b/extension/Classes/Core/Evaluate.php @@ -15,11 +15,11 @@ use IMATHUZH\Qfq\Core\Helper\OnString; use IMATHUZH\Qfq\Core\Helper\Path; use IMATHUZH\Qfq\Core\Helper\Support; use IMATHUZH\Qfq\Core\Report\Link; +use IMATHUZH\Qfq\Core\Report\Report; use IMATHUZH\Qfq\Core\Report\Tablesorter; use IMATHUZH\Qfq\Core\Store\Sip; use IMATHUZH\Qfq\Core\Store\Store; - const EVALUATE_DB_INDEX_DEFAULT = 0; /** * Class Evaluate @@ -52,9 +52,8 @@ class Evaluate { private $endDelimiter = ''; private $endDelimiterLength = 0; private $sqlKeywords = array('SELECT ', 'INSERT ', 'DELETE ', 'UPDATE ', 'SHOW ', 'REPLACE ', 'TRUNCATE ', 'DESCRIBE ', 'EXPLAIN ', 'SET '); - private $escapeTypeDefault = ''; - + private $report = null; // private $debugStack = array(); @@ -297,6 +296,34 @@ class Evaluate { return DND_DATA_DND_API . '="' . Path::urlApi(API_DRAG_AND_DROP_PHP) . '?s=' . $s . '"'; } + /** Execute qfqFunction and output value. Content is accessible in record store + * + * @param $arrToken + * @param $foundInStore + * @return string + * @throws \CodeException + * @throws \UserFormException + * @throws \UserReportException + * @throws \DbException + */ + private function inlineFunction($arrToken, &$foundInStore): string { + $output = ''; + $token = OnString::trimQuote(trim(implode(' ', $arrToken))); + if ($this->report === null) { + $this->report = new Report(array(), $this); + } + + $this->report->doQfqFunction($token); + $foundInStore = TOKEN_FOUND_AS_COLUMN; + + // Check for => in qfqFunction. If not given then output content. + if (!strpos($token, '=>')) { + $output = $this->store::getVar(COLUMN_FUNCTION_OUTPUT, STORE_RECORD); + } + + return $output; + } + /** * Tries to substitute $token. * Token might be: @@ -395,6 +422,10 @@ class Evaluate { $baseUrlAttribute = DATA_TABLESORTER_BASE_URL . "='" . $this->store->getVar(SYSTEM_BASE_URL, STORE_SYSTEM) . "'"; return ($this->tablesorter->inlineTablesorterView($arrToken[VAR_INDEX_VALUE], $foundInStore, $frCmd)) . $baseUrlAttribute; break; + + case COLUMN_FUNCTION: + return ($this->inlineFunction($arrToken, $foundInStore)); + break; default: break; } diff --git a/extension/Classes/Core/Report/Report.php b/extension/Classes/Core/Report/Report.php index b52fda83cc387284e1a2fe0fe6a182a5092b0d40..c5dad53c847bcc7ace1a5be6d0b1507dcf12cfe1 100644 --- a/extension/Classes/Core/Report/Report.php +++ b/extension/Classes/Core/Report/Report.php @@ -45,6 +45,7 @@ const DEFAULT_BOOTSTRAP_BUTTON = 'bootstrapButton'; /** * Class Report * @package qfq + * */ class Report { @@ -424,7 +425,7 @@ class Report { * Return 'return values' in STORE_RECORD and QFQ function output in {{_output:R}}. * BTW: the QFQ function is cached and read only once. The evaluation is not cached. * - * @param $cmd # 'getFirstName(pId) => firstName, myLink' + * @param string $cmd # 'getFirstName(pId) => firstName, myLink' * @throws \CodeException * @throws \DbException * @throws \DownloadException @@ -437,7 +438,7 @@ class Report { * @throws \UserFormException * @throws \UserReportException */ - private function doQfqFunction($cmd) { + public function doQfqFunction(string $cmd): void { // QFQ function cache static $functionCache = array(); diff --git a/extension/RELEASE.txt b/extension/RELEASE.txt index 8cb0860b922bdc43a1e9135cc14b112a88082b3d..073b0f2041f6a5220e42eef9307dc05c24964ee7 100644 --- a/extension/RELEASE.txt +++ b/extension/RELEASE.txt @@ -12,6 +12,7 @@ .. --------------------------------------------used to the update the records specified ------ .. Best Practice T3 reST: https://docs.typo3.org/m/typo3/docs-how-to-document/master/en-us/WritingReST/CheatSheet.html .. Reference: https://docs.typo3.org/m/typo3/docs-how-to-document/master/en-us/WritingReST/Index.html +.. .. Italic *italic* .. Bold **bold** .. Code ``text`` @@ -19,7 +20,6 @@ .. Internal Link: :ref:`downloadButton` (default url text) or :ref:`download Button<downloadButton>` (explicit url text) .. Add Images: .. image:: ./Images/a4.jpg .. -.. .. Admonitions .. .. note:: .. important:: .. tip:: .. warning:: .. Color: (blue) (orange) (green) (red) @@ -52,6 +52,30 @@ Features Bug Fixes ^^^^^^^^^ +Version 23.10.1 +--------------- + +Date: 22.10.2023 + +Notes +^^^^^ + +Features +^^^^^^^^ + +* #15682 / Subrecord hide please save record first if there is no table title. +* #15098 / Implemented qfqFunction in QFQ variable for usage in forms. +* Doc: Replace many places single back tick by double back tick. Add hint for 'Row size too large'. Added Enis & Jan + as Developer. Add hint use mysqldump with one row per record. + +Bug Fixes +^^^^^^^^^ + +* #17003 / inline edit - dark mode has wrong css path. +* #17075 / Fix broken '... AS _restClient'. +* #17091 / upload_Incorrect_integer_value_fileSize. +* RTD: Fix broken readthedocs rendering. + Version 23.10.0 --------------- @@ -128,6 +152,7 @@ Notes Bug Fixes ^^^^^^^^^ +* #16372 / Upload Element 'Undefined index htmlDownloadButton' und 'unknown mode ID' * #16381 / Form title dynamic update broken. * #16392 / Reevaluate sanitize class for each store. * Fix db column enum dropdown 'data truncated' diff --git a/extension/ext_emconf.php b/extension/ext_emconf.php index 3e781ff4b54b95d4dc6f735096c2eec86038e651..776d94d9d8f8f282026da472b5127926cf71f4b5 100644 --- a/extension/ext_emconf.php +++ b/extension/ext_emconf.php @@ -12,7 +12,7 @@ $EM_CONF['qfq'] = array( 'dependencies' => 'fluid,extbase', 'clearcacheonload' => true, 'state' => 'stable', - 'version' => '23.10.0', + 'version' => '23.10.1', 'constraints' => [ 'depends' => [ 'typo3' => '8.0.0-11.9.99', @@ -20,6 +20,5 @@ $EM_CONF['qfq'] = array( 'conflicts' => [], 'suggests' => [], ], - ); diff --git a/version b/version index 7d7a0702435d3d1f633fc95f064cdd3df32f6caa..16e4d40238a8232ecfa8ee3e49f874f4637fd3ad 100644 --- a/version +++ b/version @@ -1 +1 @@ -23.10.0 +23.10.1