3
3
*/
4
4
var AdminTree = ( function ( ) {
5
5
6
- var my = { } ,
7
- generateDialog ;
6
+ 'use strict' ;
8
7
9
- generateDialog = function ( url , closeCallback ) {
10
- var treeDialog = jQuery ( "<iframe id='tree_dialog'></iframe>" ) ; // iframe is needed because the delivered form might need some additional JS
8
+ var my = { } ;
11
9
12
- jQuery ( document . body ) . append ( treeDialog ) ;
10
+ var generateDialog = function ( url , closeCallback ) {
11
+ // iframe is needed because the delivered form might need some additional JS
12
+ var treeDialog = jQuery ( "<iframe id='tree_dialog'></iframe>" ) ;
13
13
treeDialog . attr ( 'src' , url ) ;
14
+ treeDialog . css ( 'height' , '500px' ) ;
14
15
15
16
treeDialog . dialog ( {
16
- width : 800 ,
17
- modal : true ,
18
- autoOpen : true ,
17
+ width : 800 ,
18
+ modal : true ,
19
+ autoOpen : true ,
19
20
resizable : true ,
20
- close : function ( event , ui ) {
21
+ zIndex : 9999 ,
22
+ close : function ( e , ui ) {
21
23
if ( closeCallback ) {
22
- closeCallback ( event , ui ) ;
24
+ closeCallback ( e , ui ) ;
23
25
}
24
- } ,
25
- zIndex : 9999
26
+ }
26
27
} ) ;
27
28
28
- treeDialog . attr ( 'style' , 'height: 500px' ) ;
29
+ jQuery ( document . body ) . append ( treeDialog ) ;
29
30
30
31
return treeDialog ;
31
32
} ;
32
33
33
34
my . generateTreeStateArray = function ( path ) {
34
35
35
- var start , pos , segments , curSegment , curItem ;
36
-
37
- curSegment = '' ;
38
- segments = [ ] ;
39
- start = 1 ;
40
- pos = path . indexOf ( '/' , start ) ;
36
+ var curItem ;
37
+ var curSegment = '' ;
38
+ var segments = [ ] ;
39
+ var start = 1 ;
40
+ var pos = path . indexOf ( '/' , start ) ;
41
41
42
42
while ( pos > 0 ) {
43
43
curItem = path . substr ( start , pos - start ) ;
44
- if ( curItem !== '' ) {
44
+ if ( '' !== curItem ) {
45
45
curSegment = curSegment + '/' + curItem ;
46
+
46
47
segments . push ( curSegment ) ;
47
48
}
49
+
48
50
start = pos + 1 ;
49
51
pos = path . indexOf ( '/' , start ) ;
50
52
}
51
53
52
54
curItem = path . substr ( start ) ;
53
55
54
- if ( curItem !== '' ) {
56
+ if ( '' !== curItem ) {
55
57
curSegment = curSegment + '/' + curItem ;
58
+
56
59
segments . push ( curSegment ) ;
57
60
}
58
61
59
62
return segments ;
60
63
} ;
61
64
62
65
my . initTree = function ( config ) {
63
- if ( ! 'rootNode' in config ) {
64
- config . rootNode = "/" ;
65
- }
66
- if ( ! 'selected' in config ) {
66
+ jQuery . extend ( {
67
+ rootNode : '/' ,
68
+ selected : null , // will be set to the rootNode by default
69
+ } , config ) ;
70
+
71
+ if ( ! config . hasOwnProperty ( 'selected' ) ) {
67
72
config . selected = config . rootNode ;
68
73
}
69
- if ( ! 'routing_defaults' in config ) {
70
- config . routing_defaults = { } ;
71
- }
74
+
72
75
var treeInst = jQuery ( config . selector ) . jstree ( {
73
76
"core" : {
74
77
"initially_load" : config . path . expanded ,
75
78
"initially_open" : config . path . preloaded
76
79
} ,
77
- "plugins" : [ "contextmenu" , "themes" , "types" , "ui" , "json_data" , "crrm" , "dnd" , "cookies" ] ,
80
+ "plugins" : [ "contextmenu" , "themes" , "types" , "ui" , "json_data" , "crrm" , "dnd" , "cookies" ] ,
78
81
"json_data" : {
79
82
"ajax" : {
80
83
"url" : config . ajax . children_url ,
81
84
"data" : function ( node ) {
82
- if ( node == - 1 ) {
85
+ if ( - 1 === node ) {
83
86
return { 'root' : config . rootNode } ;
84
87
} else {
85
88
return { 'root' : jQuery ( node ) . attr ( 'id' ) } ;
@@ -88,34 +91,40 @@ var AdminTree = (function () {
88
91
}
89
92
} ,
90
93
"types" : {
91
- "max_depth" : - 1 ,
92
- "max_children" : - 1 ,
93
- "valid_children" : "all" ,
94
- "types" : config . types
94
+ "max_depth" : - 1 ,
95
+ "max_children" : - 1 ,
96
+ "valid_children" : "all" ,
97
+ "types" : config . types
95
98
} ,
96
99
"ui" : {
97
- "initially_select" : [ config . selected ]
100
+ "initially_select" : [ config . selected ]
98
101
} ,
99
102
"contextmenu" : {
100
- "items" : function ( node ) {
103
+ "items" : function ( node ) {
101
104
var result = { } ;
102
105
var nodetype = node . attr ( "rel" ) ;
103
- if ( nodetype in config . types ) {
106
+
107
+ if ( config . types . hasOwnProperty ( nodetype ) ) {
104
108
var createItem = { } ;
105
109
var found = false ;
110
+
106
111
createItem . label = config . labels . createItem ;
107
112
createItem . submenu = { } ;
108
- $ . each ( config . types [ nodetype ] . valid_children , function ( i , val ) {
109
- if ( val in config . types ) {
113
+
114
+ jQuery . each ( config . types [ nodetype ] . valid_children , function ( i , val ) {
115
+ if ( config . types . hasOwnProperty ( val ) ) {
110
116
createItem . submenu [ val ] = { } ;
111
117
createItem . submenu [ val ] . label = config . types [ val ] . label ;
112
118
createItem . submenu [ val ] . action = function ( node ) {
113
- routing_defaults = config . routing_defaults ;
114
- routing_defaults [ " parent" ] = node . attr ( "url_safe_id" ) ;
119
+ var routing_defaults = config . routing_defaults ;
120
+ routing_defaults . parent = node . attr ( "url_safe_id" ) ;
115
121
116
122
if ( config . createInOverlay ) {
117
123
generateDialog (
118
- Routing . generate ( config . types [ val ] . routes . create_route , routing_defaults ) ,
124
+ Routing . generate (
125
+ config . types [ val ] . routes . create_route ,
126
+ routing_defaults
127
+ ) ,
119
128
function ( ) {
120
129
treeInst . jstree ( 'refresh' , node ) ;
121
130
}
@@ -127,19 +136,22 @@ var AdminTree = (function () {
127
136
found = true ;
128
137
}
129
138
} ) ;
139
+
130
140
if ( found ) {
131
141
result . createItem = createItem ;
132
142
}
133
143
}
144
+
134
145
if ( undefined !== config . types [ node . attr ( "rel" ) ] . routes . delete_route ) {
135
146
result . deleteItem = { } ;
136
147
result . deleteItem . label = config . labels . deleteItem ;
137
148
result . deleteItem . action = function ( node ) {
138
- routing_defaults = config . routing_defaults ;
139
- routing_defaults [ "id" ] = node . attr ( "url_safe_id" ) ;
149
+ var routing_defaults = config . routing_defaults ;
150
+ routing_defaults . id = node . attr ( "url_safe_id" ) ;
140
151
window . location = Routing . generate ( config . types [ node . attr ( "rel" ) ] . routes . delete_route , routing_defaults ) ;
141
152
} ;
142
153
}
154
+
143
155
return result ;
144
156
}
145
157
} ,
@@ -157,16 +169,19 @@ var AdminTree = (function () {
157
169
158
170
treeInst . bind ( "select_node.jstree" , function ( event , data ) {
159
171
if ( data . rslt . obj . attr ( "rel" ) in config . types
160
- && data . rslt . obj . attr ( "id" ) != config . selected
161
- && undefined != config . types [ data . rslt . obj . attr ( "rel" ) ] . routes . select_route
172
+ && data . rslt . obj . attr ( "id" ) !== config . selected
173
+ && undefined !== config . types [ data . rslt . obj . attr ( "rel" ) ] . routes . select_route
162
174
) {
163
- routing_defaults = config . routing_defaults ;
164
- routing_defaults [ "id" ] = data . rslt . obj . attr ( "url_safe_id" ) ;
175
+ var routing_defaults = config . routing_defaults ;
176
+ routing_defaults . id = data . rslt . obj . attr ( "url_safe_id" ) ;
165
177
166
178
if ( config . editInOverlay ) {
167
179
if ( 2 < data . args . length ) { // only generateDialog() when the tree has received a click, not on refresh
168
180
generateDialog (
169
- Routing . generate ( config . types [ data . rslt . obj . attr ( "rel" ) ] . routes . select_route , routing_defaults ) ,
181
+ Routing . generate (
182
+ config . types [ data . rslt . obj . attr ( "rel" ) ] . routes . select_route ,
183
+ routing_defaults
184
+ ) ,
170
185
function ( ) {
171
186
treeInst . jstree ( 'refresh' ) ;
172
187
}
@@ -177,23 +192,26 @@ var AdminTree = (function () {
177
192
}
178
193
} else {
179
194
// TODO: overlay?
180
- console . log ( 'This node is not editable' ) ;
195
+ console . log ( 'This node is not editable' ) ; // note this will break lte IE8
181
196
}
182
197
} )
183
198
. bind ( "before.jstree" , function ( e , data ) {
184
- if ( data . func === "move_node" && data . plugin === "crrm" && data . args [ 1 ] == false ) {
199
+ if ( "move_node" === data . func && "crrm" === data . plugin && false === data . args [ 1 ] ) {
185
200
var confirmEvent = jQuery . Event ( 'symfony_cmf_tree.move' , data . inst ) ;
186
- $ ( this ) . trigger ( confirmEvent ) ;
201
+
202
+ jQuery ( this ) . trigger ( confirmEvent ) ;
203
+
187
204
if ( confirmEvent . isDefaultPrevented ( ) ) {
188
205
e . stopImmediatePropagation ( ) ;
206
+
189
207
return false ;
190
208
}
191
209
}
192
210
} )
193
211
. bind ( "move_node.jstree" , function ( event , data ) {
194
- var dropped = data . rslt . o ;
195
- var target = data . rslt . r ;
196
- var position = data . rslt . p ;
212
+ var dropped = data . rslt . o ;
213
+ var target = data . rslt . r ;
214
+ var position = data . rslt . p ;
197
215
var oldParent = data . rslt . op ;
198
216
var newParent = data . rslt . np ;
199
217
@@ -204,7 +222,7 @@ var AdminTree = (function () {
204
222
}
205
223
206
224
if ( ! oldParent . is ( newParent ) ) {
207
- $ . post (
225
+ jQuery . post (
208
226
config . ajax . move_url ,
209
227
{ "dropped" : dropped . attr ( "id" ) , "target" : parent } ,
210
228
function ( data ) {
@@ -213,14 +231,15 @@ var AdminTree = (function () {
213
231
}
214
232
) ;
215
233
} else {
216
- $ . post (
234
+ jQuery . post (
217
235
config . ajax . reorder_url ,
218
236
{ "dropped" : dropped . attr ( "id" ) , "target" : target . attr ( "id" ) , "parent" : parent , "position" : position }
219
237
) ;
220
238
}
221
239
} )
222
-
223
- . delegate ( "a" , "click" , function ( event , data ) { event . preventDefault ( ) ; } ) ;
240
+ . on ( "click" , "a" , function ( e ) {
241
+ e . preventDefault ( ) ;
242
+ } ) ;
224
243
} ;
225
244
226
245
return my ;
0 commit comments