-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathextjs-migration3to4.txt
More file actions
79 lines (57 loc) · 3.14 KB
/
extjs-migration3to4.txt
File metadata and controls
79 lines (57 loc) · 3.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
extjs 3.3 to extjs 4 migration docu
1) Tree - eventsystem.
Handler direkt in die leafs schreiben geht jetzt nicht mehr. Handler nur mehr über tree-events.
2) Store - deklaration.
Jsonstore gibts nicht mehr. Expliziter proxy erforderlich. Die url im proxy deklarieren.
3) Grid - deklaration.
columns statt colModel.colums.
- beforeitemclick
return false bricht die selektion der neuen zeile nicht ab, stattdessen beforeselect verwenden
?- rowclick und rowdblclick -> itemclick
4) ux
Die wenigsten user extentsions funktionieren.
- Obsolet:
- xdate (angabe von submitformat in datefield)
- xcheckbox (angabe von uncheckedValue in checkbox)
- oosubmmit (primär wegen xdate und xcheckbox eingesetzt. Radiogroup dürfte in ext4 auch besser zu meinem modell passen.)
- fileupload: funktion bereitgestellt von Ext.form.field.File (xtype: 'filefield')
- grid-filter-row: kein ersatz gefunden
5) Form
- compositefield gibt es nicht mehr (irreführende fehlermeldung) -> benutze fieldset
- defaultlayout: 'form' -> 'anchor'. Layout: 'form' -> "namespace is undefined" (siehe unten)
- reset dirty nicht defered aufrufen, sondern verlegen in actioncomplete event der form. (wäre auch in ext3 möglich gewesen)
5.1) Radiogroup und checkboxgroup
- Eine radiogroup darf keinen namen haben, die dazugehörigen items (auswahlmöglichkeiten) MÜSSEN
einen namen haben - und zwar alle den gleichen.
Ein name an der radiogroup selbst resultiert in: invalid 'in' operand value \n if (value && name in value) { ...
- Eine checkboxgroup darf auch keinen namen haben - macht auch nicht viel sinn.
- ACHTUNG: Für eigene fehlermeldungen (z.b. invalidfields) macht es sinn, dass
radiogroups und checkboxgroups einen FAKE namen haben.
Dieser fakename DARF MIT KEINEM FELDNAMEN KOLLIDIEREN sonst fehlermeldung oder feldinhalt geht verloren.
6) Ext.Date
Das defaultFormat wird in den locale files nicht gesetzt und bleibt auf "m/d/Y".
Ext.util.Format.dateFormat wird korrekt gesetzt, ist aber kein standard und ist nicht dokumentiert.
Patch:
--- a/locale/ext-lang-de.js
+++ b/locale/ext-lang-de.js
@@ -100,6 +100,7 @@ Ext.onReady(function() {
Ext.Date.getShortDayName = function(day) {
return Ext.Date.dayNames[day].substring(0, 3);
};
+ Ext.Date.defaultFormat = "d.m.Y";
}
if(Ext.MessageBox){
Ext.MessageBox.buttonText = {
7) Defer actions:
Ext.MessageBox.hide.defer(1500, Ext.MessageBox); oder
(function() { Ext.Msg.hide(); }).defer(5000);
-> Ext.Function.defer(Ext.MessageBox.hide, 1500, Ext.MessageBox);
=> Ext.Function.defer(Function fn, Number millis, [Object scope], [Array args], [Boolean/Number appendArgs])
*** ERROR MESSAGES ***
- "namespace is undefined"
in ext-all-debug.js: if (namespace === from || namespace.substring(0, from.length) === from) {
bedeutet meist verwendung von ux komponenten im extjs-3 modell oder weggefallene komponenten, die
igendwo verborgen sind und daher keine vernünftige javascript fehlermeldung bringen
(siehe <http://www.sencha.com/forum/showthread.php?136993-Error-in-migration-from-Ext-3.3-to-4.0.2>)
- "invalid 'in' operand value" \n "if (value && name in value) {"
Kann bedeuten name-property in radiobox gesetzt.