Actions
Bug #12045
opentemplateGroup afterSave FE: Aufruf ohne sqlHonorFormElements funktioniert nicht
Start date:
18.02.2021
Due date:
% Done:
0%
Estimated time:
Discuss:
Prio Planung:
Vote:
Description
Szenario:
templateGroup mit non-native FEs. Zum Speichern der Werte braucht es immer ein afterSave FE mit slaveId, sqlInsert, ...
Beobachtetes Verhalten
Wenn beim afterSave FE kein sqlHonorFormElements = sampleColumn%d definiert ist, wird der afterSave Record zwar korrekt oft (z.B. 5x) aufgerufen, jedoch ist %d jedesmal = 1 (bzw. %D = 0), statt inkrementell.
Erwartetes Verhalten
Erwartet wäre, dass bei fehlendem sqlHonorFormElements die sqlInsert/Update/Delete statements unabhängig von irgendwelchen TemplateGroup-FE-Werten ausgeführt werden, nur abhängig von der slaveId, wie auch bei anderen afterSave-FEs. Und zwar mit %d = 1, 2, 3, 4, 5, nicht jedesmal = 1.
Updated by Elias Villiger about 3 years ago
Beispiel-Setup, was aktuell nicht funktioniert:
fe[0].class = Container fe[0].type = template Group fe[0].name = Names fe[1].class = Native fe[1].type = input fe[1].container = Names fe[1].name = name%d fe[2].class = Action fe[2].type = afterSave fe[2].parameter = slaveId = {{SELECT id FROM person ORDER BY id LIMIT %D,1 }} sqlInsert = {{INSERT INTO person (name) SELECT '{{name%d}}' FROM (SELECT '') AS _ WHERE '{{name%d}}' != '' }} sqlUpdate = {{UPDATE person SET name = '{{name%d}}' WHERE id={{slaveId:V}} }} sqlDelete = {{DELETE FROM person WHERE id={{slaveId:V}} }}
Damit es funktioniert, muss
fe[2].parameter = sqlHonorFormElements = name%dergänzt werden. In den meisten Fällen ist das sowieso sinnvoll, aber für andere Fälle, sollte es trotzdem funktionieren.
Actions