Commit 2e7081ee authored by Marc Egger's avatar Marc Egger
Browse files

Refs #10120 finished checking for UPDATE/INSERT/DELETE statements which could...

Refs #10120 finished checking for UPDATE/INSERT/DELETE statements which could operate on Form/FormElement
parent a32a7d3d
Pipeline #3620 failed with stages
in 42 seconds
......@@ -9,16 +9,13 @@ use IMATHUZH\Qfq\Core\Helper\OnString;
use IMATHUZH\Qfq\Core\Helper\SqlQuery;
// TODO: exportAllForms() mit deleteFiles true testen
// TODO: queryFormNames is executed before Form table exists. Add error to sql and make sure this does not happen in DatabaseUpdate.php
// TODO: gibt es UPDATE/INSERT/DELETE statements die an Form/FormElement arbeiten koennen, die nicht nur durch doForm aufgerufen werden?
//
// TODO: Testen: QFQ komplett neu installiert => form dir existiert mit allen form files aktuell. QFQ neu installation mit existierenden forms => alte forms sind noch da. QFQ update => alte forms noch da, updates an FormEditor ersichtlich
// TODO: Testen: Dies sollte schon erfuellt sein, testen: bevor ein form/formelement im form editor gespeichert wird, soll es vom file geladen werden (Save.php). Falls das file importiert wurde, gibt es eine fehlermeldung.
// TODO: Testen: anfrage nach dirty, form file ueberpruefen (importieren)
// TODO: Testen: Dirty tabelle ist aussergewoehnlich voll. werden die records nicht abgeraeumt wegen formAsFile?
// TODO: Testen: ausporbieren was passiert wenn ich in Form-Editor auf speicher druecke nachdem ich in einem anderen tab das geanderte form file in die DB lade.
// TODO: Testen: importAllForms() wird nur ausgefuehrt, wenn der Report Form/FormElement aufruft
// TODO: Fix all broken tests... one easy solution?
// TODO: Carsten Fragen: Form backups erstellen vor deleteFormFile und exportForm?
// TODO: Carsten Fragen: "git rm" anstatt "rm" benutzen falls ordner ein git repo? Einziger unterschied: macht "git add"
// TODO: Carsten Fragen: Form Copy ist broken. Aber jetzt auch unnötig, da man einfach die files kopieren kann.
......@@ -419,7 +416,7 @@ class FormAsFile
// find substrings whihch start with FROM and are followed by Form or FormElement
preg_match_all('/(?i)FROM(?-i)(.*?)\b(' . TABLE_NAME_FORM . '|' . TABLE_NAME_FORM_ELEMENT . ')\b/s', $sql, $matches);
// Check if other keywords are in between FROM and the table name
// Check if no other SQL keywords are in between FROM and the table name
$keywordsAfterFrom = ['WHERE', 'GROUP BY', 'HAVING', 'WINDOW', 'ORDER BY', 'LIMIT', 'FOR', 'INTO'];
foreach($matches[0] as $match)
{
......@@ -647,10 +644,10 @@ class FormAsFile
}
/**
* Return list of form file names contained in the form path (without suffix).
* Return array of form file names contained in the form path (without suffix).
*
* @param Database $database
* @return array|false
* @return array|false [formName]
* @throws \CodeException
* @throws \DbException
* @throws \UserFormException
......
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