Skip to content
This repository was archived by the owner on Sep 16, 2021. It is now read-only.

Commit 62e60e6

Browse files
committed
Merge pull request #45 from WouterJ/issue_5
[WIP] Clean up JavaScript scripts
2 parents 9c98bd0 + 901b145 commit 62e60e6

File tree

3 files changed

+147
-119
lines changed

3 files changed

+147
-119
lines changed

Resources/public/js/init.js renamed to Resources/public/js/admin_tree.js

Lines changed: 78 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -3,83 +3,86 @@
33
*/
44
var AdminTree = (function () {
55

6-
var my = {},
7-
generateDialog;
6+
'use strict';
87

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 = {};
119

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>");
1313
treeDialog.attr('src', url);
14+
treeDialog.css('height', '500px');
1415

1516
treeDialog.dialog({
16-
width: 800,
17-
modal: true,
18-
autoOpen: true,
17+
width: 800,
18+
modal: true,
19+
autoOpen: true,
1920
resizable: true,
20-
close: function(event, ui) {
21+
zIndex: 9999,
22+
close: function (e, ui) {
2123
if (closeCallback) {
22-
closeCallback(event, ui);
24+
closeCallback(e, ui);
2325
}
24-
},
25-
zIndex: 9999
26+
}
2627
});
2728

28-
treeDialog.attr('style', 'height: 500px');
29+
jQuery(document.body).append(treeDialog);
2930

3031
return treeDialog;
3132
};
3233

3334
my.generateTreeStateArray = function (path) {
3435

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);
4141

4242
while (pos > 0) {
4343
curItem = path.substr(start, pos - start);
44-
if (curItem !== '') {
44+
if ('' !== curItem) {
4545
curSegment = curSegment + '/' + curItem;
46+
4647
segments.push(curSegment);
4748
}
49+
4850
start = pos + 1;
4951
pos = path.indexOf('/', start);
5052
}
5153

5254
curItem = path.substr(start);
5355

54-
if (curItem !== '') {
56+
if ('' !== curItem) {
5557
curSegment = curSegment + '/' + curItem;
58+
5659
segments.push(curSegment);
5760
}
5861

5962
return segments;
6063
};
6164

6265
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')) {
6772
config.selected = config.rootNode;
6873
}
69-
if (! 'routing_defaults' in config) {
70-
config.routing_defaults = {};
71-
}
74+
7275
var treeInst = jQuery(config.selector).jstree({
7376
"core": {
7477
"initially_load": config.path.expanded,
7578
"initially_open": config.path.preloaded
7679
},
77-
"plugins": [ "contextmenu", "themes", "types", "ui", "json_data", "crrm", "dnd", "cookies" ],
80+
"plugins": ["contextmenu", "themes", "types", "ui", "json_data", "crrm", "dnd", "cookies"],
7881
"json_data": {
7982
"ajax": {
8083
"url": config.ajax.children_url,
8184
"data": function (node) {
82-
if (node == -1) {
85+
if (-1 === node) {
8386
return { 'root' : config.rootNode };
8487
} else {
8588
return { 'root' : jQuery(node).attr('id') };
@@ -88,34 +91,40 @@ var AdminTree = (function () {
8891
}
8992
},
9093
"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
9598
},
9699
"ui": {
97-
"initially_select" : [ config.selected ]
100+
"initially_select" : [config.selected]
98101
},
99102
"contextmenu": {
100-
"items": function(node) {
103+
"items": function (node) {
101104
var result = {};
102105
var nodetype = node.attr("rel");
103-
if (nodetype in config.types) {
106+
107+
if (config.types.hasOwnProperty(nodetype)) {
104108
var createItem = {};
105109
var found = false;
110+
106111
createItem.label = config.labels.createItem;
107112
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)) {
110116
createItem.submenu[val] = {};
111117
createItem.submenu[val].label = config.types[val].label;
112118
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");
115121

116122
if (config.createInOverlay) {
117123
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+
),
119128
function () {
120129
treeInst.jstree('refresh', node);
121130
}
@@ -127,19 +136,22 @@ var AdminTree = (function () {
127136
found = true;
128137
}
129138
});
139+
130140
if (found) {
131141
result.createItem = createItem;
132142
}
133143
}
144+
134145
if (undefined !== config.types[node.attr("rel")].routes.delete_route) {
135146
result.deleteItem = {};
136147
result.deleteItem.label = config.labels.deleteItem;
137148
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");
140151
window.location = Routing.generate(config.types[node.attr("rel")].routes.delete_route, routing_defaults);
141152
};
142153
}
154+
143155
return result;
144156
}
145157
},
@@ -157,16 +169,19 @@ var AdminTree = (function () {
157169

158170
treeInst.bind("select_node.jstree", function (event, data) {
159171
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
162174
) {
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");
165177

166178
if (config.editInOverlay) {
167179
if (2 < data.args.length){ // only generateDialog() when the tree has received a click, not on refresh
168180
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+
),
170185
function () {
171186
treeInst.jstree('refresh');
172187
}
@@ -177,23 +192,26 @@ var AdminTree = (function () {
177192
}
178193
} else {
179194
// TODO: overlay?
180-
console.log('This node is not editable');
195+
console.log('This node is not editable'); // note this will break lte IE8
181196
}
182197
})
183198
.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]) {
185200
var confirmEvent = jQuery.Event('symfony_cmf_tree.move', data.inst);
186-
$(this).trigger(confirmEvent);
201+
202+
jQuery(this).trigger(confirmEvent);
203+
187204
if (confirmEvent.isDefaultPrevented()) {
188205
e.stopImmediatePropagation();
206+
189207
return false;
190208
}
191209
}
192210
})
193211
.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;
197215
var oldParent = data.rslt.op;
198216
var newParent = data.rslt.np;
199217

@@ -204,7 +222,7 @@ var AdminTree = (function () {
204222
}
205223

206224
if (!oldParent.is(newParent)) {
207-
$.post(
225+
jQuery.post(
208226
config.ajax.move_url,
209227
{ "dropped": dropped.attr("id"), "target": parent },
210228
function (data) {
@@ -213,14 +231,15 @@ var AdminTree = (function () {
213231
}
214232
);
215233
} else {
216-
$.post(
234+
jQuery.post(
217235
config.ajax.reorder_url,
218236
{ "dropped": dropped.attr("id"), "target": target.attr("id"), "parent": parent, "position": position }
219237
);
220238
}
221239
})
222-
223-
.delegate("a", "click", function (event, data) { event.preventDefault(); });
240+
.on("click", "a", function (e) {
241+
e.preventDefault();
242+
});
224243
};
225244

226245
return my;

Resources/public/js/select.js

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)