20121107¶
eId-Karten einlesen¶
Jetzt kommt die eigentliche Einbindung dran: wenn man eine Karte eingelesen hat, müssen die Daten ja an den Server geschickt werden, und der muss dann nachschlagen, entscheiden und ggf. rückfragen, was damit geschehen soll.
Das ist was Neues für Lino.
Ein bisschen wie das lino_xl.lib.cal.CalendarPanel
.
Oder vielleicht brauche ich nicht einmal einen
Actor
mit
Action
?
Der erste Versuch geht in diese Richtung.
Abspaltung
eines BaseRequest
aus dem bisherigen
ActionRequest
.
http://code.google.com/p/lino/source/detail?r=435632ee40dc.
Bugfix “AJAX-Gehoppel”¶
Nach diesen Änderungen entdeckte ich einen lustigen Bug: wenn man im Startbildschirm in der UsersWithClients die “Primären Begleitungen” und “Aktiven Klienten” eines Bentuzers hintereinander abwechselnd aufruft und wieder schließt, dann fängt Lino beim dritten Aufruf an, endlose AJAX-Calls zu machen.
Ob das an dem neuen BaseRequest
liegt?
Das ist leicht nachgeprüft:
hg revert actions.py -r 5d68fbf237e3
Nein, an dieser Änderung lags nicht. Der Fehler ist auch mit der vorigen Version reproduzierbar.
10.50 Uhr. Erklärung: die Felder des params_panel sollen ja automatisch ein Aktualisieren der Tabelle auslösen, wenn man sie verändert. Das mach ich mit folgenden event bindings:
Ext.each(this.params_panel.fields,function(f) {
if (f instanceof Ext.form.Checkbox)
f.on('check',function() {t.refresh()});
else if (f instanceof Ext.form.TriggerField)
f.on('select',function() {t.refresh()});
else {
f.on('change',function() {t.refresh()});
}
});
Diese refresh wurden dann aber auch in set_param_values gefeuert, wenn die Felder nach einem refresh() verändert wurden. Und das war immer dann der Fall, wenn das gleiche Fenster vorher mit anderen Parametern benutzt worden war. Lösung:
var refresh = function() {if (!t.setting_param_values) t.refresh();}
Ext.each(this.params_panel.fields,function(f) {
if (f instanceof Ext.form.Checkbox)
f.on('check',refresh);
else if (f instanceof Ext.form.TriggerField)
f.on('select',refresh);
else {
f.on('change',refresh);
}
});
Mausefalle deaktiviert¶
Wenn jemand auf den Button “Tabellenkonfiguration speichern”
(“Save Grid Configuration”) klickte,
generierte Lino eine fehlerhafte Konfigurationsdatei,
die dann beim nächsten Neugenerieren
der lino*.js
“aktiv” wurde.
Weil sowieso bislang nicht erwiesen ist, wie sinnvoll dieses Feature
überhaupt ist, habe ich es bis auf weiteres mal deaktiviert.