Commit f6194f3d authored by Carsten  Rose's avatar Carsten Rose
Browse files

Merge branch 'master' into develop

parents 0c018750 6ab85554
Pipeline #4217 passed with stages
in 3 minutes and 31 seconds
......@@ -22,6 +22,7 @@
Release
=======
Version 20.x.x
--------------
......@@ -36,6 +37,34 @@ Features
Bug Fixes
^^^^^^^^^
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
--------------
......@@ -54,7 +83,6 @@ Features
* #10979 / Report: do SIP protected AJAX calls to typo3conf/ext/qfq/Classes/Api/dataReport.php.
* #11076 / Report: trigger call to websockets.
* #11118 / Retrieve random string which is guaranteed to be uniq: {{randomUniq:V}}.
* #11119 / Report: REST Client calls - incl. processing of answer.
* Add CodingGuideline.rst.
......
......@@ -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.9.0
**Auto**: ./setVersion.sh 20.11.0
Manuell:
* extension/Documentation/_make/conf.py: release, version-
......@@ -59,12 +59,12 @@ Neue Versionsnummer
* Commit & Push new version changes to master branch:
New version 20.9.0
New version 20.11.0
7) **New Tag**:
git tag v20.9.0
git push -u origin v20.9.0
git tag v20.11.0
git push -u origin v20.11.0
8) **Merge 'master' into 'develop'**
......
......@@ -22,6 +22,7 @@
Release
=======
Version 20.x.x
--------------
......@@ -36,6 +37,34 @@ Features
Bug Fixes
^^^^^^^^^
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
--------------
......
......@@ -21,8 +21,8 @@
; you can use in 'conf.py'
project = QFQ - Quick Form Query
version = 20.9
release = 20.9.0
version = 20.11
release = 20.11.0
t3author = Carsten Rose
copyright = since 2017 by the author
......
......@@ -62,9 +62,9 @@ author = 'Carsten Rose, Benjamin Baer, Marc Egger'
# built documents.
#
# The short X.Y version.
version = '20.9'
version = '20.11'
# The full version, including alpha/beta/rc tags.
release = '20.9.0'
release = '20.11.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
......
......@@ -275,6 +275,7 @@ const ERROR_TOO_FEW_PARAMETER_FOR_SENDMAIL = 1408;
const ERROR_TOO_MANY_PARAMETER = 1409;
const ERROR_INVALID_SAVE_PDF_FILENAME = 1410;
const ERROR_TWIG_COLUMN_NOT_UNIQUE = 1411;
const ERROR_DOUBLE_DEFINITION = 1412;
// Upload
const ERROR_UPLOAD = 1500;
......
......@@ -948,7 +948,7 @@ class Link {
* @param array $vars
* @throws \UserReportException
*/
private function checkParam(array $tokenGiven, array $vars) {
private function checkParam(array $tokenGiven, array &$vars) {
$countLinkAnchor = 0;
$countLinkPicture = 0;
$countSources = 0;
......@@ -988,6 +988,10 @@ class Link {
if (isset($tokenGiven[TOKEN_DOWNLOAD]) && count($vars[NAME_COLLECT_ELEMENTS]) == 0 && $countSources == 0) {
throw new \UserReportException ("Missing element sources for download", ERROR_MISSING_REQUIRED_PARAMETER);
}
if (isset($tokenGiven[TOKEN_ACTION_DELETE])) {
$this->checkDeleteParam($vars);
}
}
/**
......@@ -1840,14 +1844,6 @@ EOF;
*/
private function buildActionDelete($vars, $value) {
// Minimal check for required parameter.
$vars[NAME_URL_PARAM] = $this->checkDeleteParam($vars[NAME_URL_PARAM]);
if ($vars[NAME_URL_PARAM] == '') {
$vars[NAME_RENDER] = RENDER_MODE_5;
return $vars;
}
if ($vars[NAME_URL] == '') {
$vars[NAME_URL] = API_DIR . '/' . API_DELETE_PHP;
}
......@@ -1864,35 +1860,33 @@ EOF;
/**
* Check that at least SIP_RECORD_ID is given and SIP_TABLE or SIP_FORM.
* This check is only processed for COLUMN_PAGED & COLUMN_PPAGED. Not for COLOUMN_LINK, cause it's not known there.
* This check is only processed for COLUMN_PAGED & COLUMN_PAGED. Not for COLUMN_LINK, cause it's not known there.
* In case of missing parameter, throw an exception.
*
* @param $urlParam
* @return string
* @param array $vars
* @throws \UserFormException
* @throws \UserReportException
*/
private function checkDeleteParam($urlParam) {
private function checkDeleteParam(&$vars) {
$urlParam = $vars[NAME_URL_PARAM];
// Fill array 'found' with every given token
$found = KeyValueStringParser::parse($urlParam, '=', '&');
// If there is no 'r' or 'r'=0: no delete button will be rendered
if (!isset($found[SIP_RECORD_ID]) || $found[SIP_RECORD_ID] == '' || $found[SIP_RECORD_ID] == 0) {
return '';
}
$flagRecordId = isset($found[SIP_RECORD_ID]);
$flagRecordId = isset($found[SIP_RECORD_ID]) && $found[SIP_RECORD_ID] != '' && $found[SIP_RECORD_ID] != 0;
$flagTable = isset($found[SIP_TABLE]) && $found[SIP_TABLE] != '';
$flagForm = isset($found[SIP_FORM]) && $found[SIP_FORM] != '';
if ($flagRecordId && ($flagTable || $flagForm)) {
return $urlParam;
if (!$flagRecordId) {
// If there is no 'r' or 'r'=0: no delete button will be rendered
$vars[NAME_RENDER] = RENDER_MODE_5;
} else {
if (!$flagTable && !$flagForm) {
throw new \UserReportException ("Missing some qualifier/value for column " . COLUMN_PAGED . '/' . COLUMN_PPAGED . ": " .
SIP_RECORD_ID . ", " . SIP_FORM . " or " . SIP_TABLE, ERROR_MISSING_REQUIRED_DELETE_QUALIFIER);
}
}
throw new \UserReportException ("Missing some qualifier/value for column " . COLUMN_PAGED . '/' . COLUMN_PPAGED . ": " .
SIP_RECORD_ID . ", " . SIP_FORM . " or " . SIP_TABLE, ERROR_MISSING_REQUIRED_DELETE_QUALIFIER);
}
/**
......
......@@ -302,8 +302,14 @@ class Report {
*/
private function setLine($level, $frCmd, $value) {
$index = $level . "." . $frCmd;
// throw exception if this level was already defined
if(!empty($this->frArray[$index])) {
throw new \UserReportException ("Double definition: $index is defined more than once.", ERROR_DOUBLE_DEFINITION);
}
// store complete line reformatted in frArray
$this->frArray[$level . "." . $frCmd] = $value;
$this->frArray[$index] = $value;
// per sql command
//pro sql cmd wird der Indexarray abgefüllt. Dieser wird später verwendet um auf den $frArray zuzugreifen
......
......@@ -22,6 +22,7 @@
Release
=======
Version 20.x.x
--------------
......@@ -36,6 +37,34 @@ Features
Bug Fixes
^^^^^^^^^
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
--------------
......@@ -54,7 +83,6 @@ Features
* #10979 / Report: do SIP protected AJAX calls to typo3conf/ext/qfq/Classes/Api/dataReport.php.
* #11076 / Report: trigger call to websockets.
* #11118 / Retrieve random string which is guaranteed to be uniq: {{randomUniq:V}}.
* #11119 / Report: REST Client calls - incl. processing of answer.
* Add CodingGuideline.rst.
......
......@@ -12,7 +12,7 @@ $EM_CONF[$_EXTKEY] = array(
'dependencies' => 'fluid,extbase',
'clearcacheonload' => true,
'state' => 'stable',
'version' => '20.9.0',
'version' => '20.11.0',
'constraints' => [
'depends' => [
'typo3' => '7.0.0-9.2.99',
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment