Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wp-file-.../lib/js/ui
File: tree.js
}
[1000] Fix | Delete
[1001] Fix | Delete
// mark as loaded to cwd parents
[1002] Fix | Delete
current.parents('.elfinder-navbar-wrapper').children('.'+navdir).addClass(loaded);
[1003] Fix | Delete
[1004] Fix | Delete
if (res) {
[1005] Fix | Delete
fm.lazy(open).done(function() {
[1006] Fix | Delete
dfrd.resolve();
[1007] Fix | Delete
});
[1008] Fix | Delete
} else {
[1009] Fix | Delete
open();
[1010] Fix | Delete
dfrd.resolve();
[1011] Fix | Delete
}
[1012] Fix | Delete
},
[1013] Fix | Delete
rmSpinner = function(fail) {
[1014] Fix | Delete
if (baseNode) {
[1015] Fix | Delete
spinner.remove();
[1016] Fix | Delete
baseNode.addClass(collapsed + (fail? '' : (' ' + loaded)));
[1017] Fix | Delete
}
[1018] Fix | Delete
},
[1019] Fix | Delete
dfrd = jQuery.Deferred(),
[1020] Fix | Delete
baseNode, spinner;
[1021] Fix | Delete
[1022] Fix | Delete
if (!fm.navHash2Elm(cwdhash).length) {
[1023] Fix | Delete
syncing = true;
[1024] Fix | Delete
loadParents()
[1025] Fix | Delete
.done(function(res) {
[1026] Fix | Delete
done(res, dfrd);
[1027] Fix | Delete
rmSpinner();
[1028] Fix | Delete
})
[1029] Fix | Delete
.fail(function() {
[1030] Fix | Delete
rmSpinner(true);
[1031] Fix | Delete
dfrd.reject();
[1032] Fix | Delete
})
[1033] Fix | Delete
.always(function() {
[1034] Fix | Delete
syncing = false;
[1035] Fix | Delete
});
[1036] Fix | Delete
} else {
[1037] Fix | Delete
done(void(0), dfrd);
[1038] Fix | Delete
}
[1039] Fix | Delete
[1040] Fix | Delete
// trigger 'treesync' with my jQuery.Deferred
[1041] Fix | Delete
fm.trigger('treesync', dfrd);
[1042] Fix | Delete
[1043] Fix | Delete
return dfrd;
[1044] Fix | Delete
},
[1045] Fix | Delete
[1046] Fix | Delete
/**
[1047] Fix | Delete
* Make writable and not root dirs droppable
[1048] Fix | Delete
*
[1049] Fix | Delete
* @return void
[1050] Fix | Delete
*/
[1051] Fix | Delete
updateDroppable = function(target, node) {
[1052] Fix | Delete
var limit = 100,
[1053] Fix | Delete
next;
[1054] Fix | Delete
[1055] Fix | Delete
if (!target) {
[1056] Fix | Delete
if (!node || node.closest('div.'+wrapperRoot).hasClass(uploadable)) {
[1057] Fix | Delete
(node || tree.find('div.'+uploadable)).find(selNavdir+':not(.elfinder-ro,.elfinder-na)').addClass('native-droppable');
[1058] Fix | Delete
}
[1059] Fix | Delete
if (!node || node.closest('div.'+wrapperRoot).hasClass(pastable)) {
[1060] Fix | Delete
target = (node || tree.find('div.'+pastable)).find(selNavdir+':not(.'+droppable+')');
[1061] Fix | Delete
} else {
[1062] Fix | Delete
target = jQuery();
[1063] Fix | Delete
}
[1064] Fix | Delete
if (node) {
[1065] Fix | Delete
// check leaf roots
[1066] Fix | Delete
node.children('div.'+wrapperRoot).each(function() {
[1067] Fix | Delete
updateDroppable(null, jQuery(this));
[1068] Fix | Delete
});
[1069] Fix | Delete
}
[1070] Fix | Delete
}
[1071] Fix | Delete
[1072] Fix | Delete
// make droppable on async
[1073] Fix | Delete
if (target.length) {
[1074] Fix | Delete
fm.asyncJob(function(elm) {
[1075] Fix | Delete
jQuery(elm).droppable(droppableopts);
[1076] Fix | Delete
}, jQuery.makeArray(target), {
[1077] Fix | Delete
interval : 20,
[1078] Fix | Delete
numPerOnce : 100
[1079] Fix | Delete
});
[1080] Fix | Delete
}
[1081] Fix | Delete
},
[1082] Fix | Delete
[1083] Fix | Delete
/**
[1084] Fix | Delete
* Check required folders for subfolders and update arrow classes
[1085] Fix | Delete
*
[1086] Fix | Delete
* @param Array folders to check
[1087] Fix | Delete
* @param String css class
[1088] Fix | Delete
* @return void
[1089] Fix | Delete
*/
[1090] Fix | Delete
updateArrows = function(dirs, cls) {
[1091] Fix | Delete
var sel = cls == loaded
[1092] Fix | Delete
? '.'+collapsed+':not(.'+loaded+')'
[1093] Fix | Delete
: ':not(.'+collapsed+')';
[1094] Fix | Delete
[1095] Fix | Delete
jQuery.each(dirs, function(i, dir) {
[1096] Fix | Delete
fm.navHash2Elm(dir.phash).filter(sel)
[1097] Fix | Delete
.filter(function() { return jQuery.grep(jQuery(this).next('.'+subtree).children(), function(n) {
[1098] Fix | Delete
return (jQuery(n).children().hasClass(root))? false : true;
[1099] Fix | Delete
}).length > 0; })
[1100] Fix | Delete
.addClass(cls);
[1101] Fix | Delete
});
[1102] Fix | Delete
},
[1103] Fix | Delete
[1104] Fix | Delete
[1105] Fix | Delete
[1106] Fix | Delete
/**
[1107] Fix | Delete
* Navigation tree
[1108] Fix | Delete
*
[1109] Fix | Delete
* @type JQuery
[1110] Fix | Delete
*/
[1111] Fix | Delete
tree = jQuery(this).addClass(treeclass)
[1112] Fix | Delete
// make dirs draggable and toggle hover class
[1113] Fix | Delete
.on('mouseenter mouseleave', selNavdir, function(e) {
[1114] Fix | Delete
var enter = (e.type === 'mouseenter');
[1115] Fix | Delete
if (enter && scrolling) { return; }
[1116] Fix | Delete
var link = jQuery(this),
[1117] Fix | Delete
hash, dir;
[1118] Fix | Delete
[1119] Fix | Delete
if (!link.hasClass(dropover+' '+disabled)) {
[1120] Fix | Delete
if (!mobile && enter && !link.data('dragRegisted') && !link.hasClass(root+' '+draggable+' elfinder-na elfinder-wo')) {
[1121] Fix | Delete
link.data('dragRegisted', true);
[1122] Fix | Delete
if (fm.isCommandEnabled('copy', (hash = fm.navId2Hash(link.attr('id'))))) {
[1123] Fix | Delete
link.draggable(fm.draggable);
[1124] Fix | Delete
}
[1125] Fix | Delete
}
[1126] Fix | Delete
link.toggleClass(hover, enter);
[1127] Fix | Delete
}
[1128] Fix | Delete
// update title attr if necessary
[1129] Fix | Delete
if (enter && opts.attrTitle) {
[1130] Fix | Delete
dir = fm.file(hash || fm.navId2Hash(link.attr('id')));
[1131] Fix | Delete
if (!dir.isroot && link.attr('title') === (dir.i18 || dir.name)) {
[1132] Fix | Delete
link.attr('title', fm.path(hash, true));
[1133] Fix | Delete
}
[1134] Fix | Delete
}
[1135] Fix | Delete
})
[1136] Fix | Delete
// native drag enter
[1137] Fix | Delete
.on('dragenter', selNavdir, function(e) {
[1138] Fix | Delete
if (e.originalEvent.dataTransfer) {
[1139] Fix | Delete
var dst = jQuery(this);
[1140] Fix | Delete
dst.addClass(hover);
[1141] Fix | Delete
if (dst.is('.'+collapsed+':not(.'+expanded+')')) {
[1142] Fix | Delete
dst.data('expandTimer', setTimeout(function() {
[1143] Fix | Delete
dst.is('.'+collapsed+'.'+hover) && dst.children('.'+arrow).trigger('click');
[1144] Fix | Delete
}, 500));
[1145] Fix | Delete
}
[1146] Fix | Delete
}
[1147] Fix | Delete
})
[1148] Fix | Delete
// native drag leave
[1149] Fix | Delete
.on('dragleave', selNavdir, function(e) {
[1150] Fix | Delete
if (e.originalEvent.dataTransfer) {
[1151] Fix | Delete
var dst = jQuery(this);
[1152] Fix | Delete
dst.data('expandTimer') && clearTimeout(dst.data('expandTimer'));
[1153] Fix | Delete
dst.removeClass(hover);
[1154] Fix | Delete
}
[1155] Fix | Delete
})
[1156] Fix | Delete
// open dir or open subfolders in tree
[1157] Fix | Delete
.on('click', selNavdir, function(e) {
[1158] Fix | Delete
var link = jQuery(this),
[1159] Fix | Delete
hash = fm.navId2Hash(link.attr('id')),
[1160] Fix | Delete
file = fm.file(hash);
[1161] Fix | Delete
[1162] Fix | Delete
if (link.data('longtap')) {
[1163] Fix | Delete
link.removeData('longtap');
[1164] Fix | Delete
e.stopPropagation();
[1165] Fix | Delete
return;
[1166] Fix | Delete
}
[1167] Fix | Delete
[1168] Fix | Delete
if (!link.hasClass(active)) {
[1169] Fix | Delete
tree.find(selNavdir+'.'+active).removeClass(active);
[1170] Fix | Delete
link.addClass(active);
[1171] Fix | Delete
}
[1172] Fix | Delete
if (hash != fm.cwd().hash && !link.hasClass(disabled)) {
[1173] Fix | Delete
fm.exec('open', hash).done(function() {
[1174] Fix | Delete
fm.one('opendone', function() {
[1175] Fix | Delete
fm.select({selected: [hash], origin: 'navbar'});
[1176] Fix | Delete
});
[1177] Fix | Delete
});
[1178] Fix | Delete
} else {
[1179] Fix | Delete
if (link.hasClass(collapsed)) {
[1180] Fix | Delete
link.children('.'+arrow).trigger('click');
[1181] Fix | Delete
}
[1182] Fix | Delete
fm.select({selected: [hash], origin: 'navbar'});
[1183] Fix | Delete
}
[1184] Fix | Delete
})
[1185] Fix | Delete
// for touch device
[1186] Fix | Delete
.on('touchstart', selNavdir, function(e) {
[1187] Fix | Delete
if (e.originalEvent.touches.length > 1) {
[1188] Fix | Delete
return;
[1189] Fix | Delete
}
[1190] Fix | Delete
var evt = e.originalEvent,
[1191] Fix | Delete
p;
[1192] Fix | Delete
[1193] Fix | Delete
if (e.target.nodeName === 'INPUT') {
[1194] Fix | Delete
e.stopPropagation();
[1195] Fix | Delete
return;
[1196] Fix | Delete
}
[1197] Fix | Delete
[1198] Fix | Delete
p = jQuery(this).addClass(hover)
[1199] Fix | Delete
.removeData('longtap')
[1200] Fix | Delete
.data('tmlongtap', setTimeout(function(e){
[1201] Fix | Delete
// long tap
[1202] Fix | Delete
p.data('longtap', true);
[1203] Fix | Delete
fm.trigger('contextmenu', {
[1204] Fix | Delete
'type' : 'navbar',
[1205] Fix | Delete
'targets' : [fm.navId2Hash(p.attr('id'))],
[1206] Fix | Delete
'x' : evt.touches[0].pageX,
[1207] Fix | Delete
'y' : evt.touches[0].pageY
[1208] Fix | Delete
});
[1209] Fix | Delete
}, 500));
[1210] Fix | Delete
})
[1211] Fix | Delete
.on('touchmove touchend', selNavdir, function(e) {
[1212] Fix | Delete
if (e.target.nodeName === 'INPUT') {
[1213] Fix | Delete
e.stopPropagation();
[1214] Fix | Delete
return;
[1215] Fix | Delete
}
[1216] Fix | Delete
clearTimeout(jQuery(this).data('tmlongtap'));
[1217] Fix | Delete
jQuery(this).removeData('tmlongtap');
[1218] Fix | Delete
if (e.type == 'touchmove') {
[1219] Fix | Delete
jQuery(this).removeClass(hover);
[1220] Fix | Delete
}
[1221] Fix | Delete
})
[1222] Fix | Delete
// toggle subfolders in tree
[1223] Fix | Delete
.on('click', selNavdir+'.'+collapsed+' .'+arrow, function(e) {
[1224] Fix | Delete
var arrow = jQuery(this),
[1225] Fix | Delete
link = arrow.parent(selNavdir),
[1226] Fix | Delete
stree = link.next('.'+subtree),
[1227] Fix | Delete
dfrd = jQuery.Deferred(),
[1228] Fix | Delete
slideTH = 30, cnt;
[1229] Fix | Delete
[1230] Fix | Delete
e.stopPropagation();
[1231] Fix | Delete
[1232] Fix | Delete
if (link.hasClass(loaded)) {
[1233] Fix | Delete
link.toggleClass(expanded);
[1234] Fix | Delete
fm.lazy(function() {
[1235] Fix | Delete
cnt = link.hasClass(expanded)? stree.children().length + stree.find('div.elfinder-navbar-subtree[style*=block]').children().length : stree.find('div:visible').length;
[1236] Fix | Delete
if (cnt > slideTH) {
[1237] Fix | Delete
stree.toggle();
[1238] Fix | Delete
fm.draggingUiHelper && fm.draggingUiHelper.data('refreshPositions', 1);
[1239] Fix | Delete
checkSubdirs();
[1240] Fix | Delete
} else {
[1241] Fix | Delete
stree.stop(true, true)[link.hasClass(expanded)? 'slideDown' : 'slideUp'](opts.durations.slideUpDown, function(){
[1242] Fix | Delete
fm.draggingUiHelper && fm.draggingUiHelper.data('refreshPositions', 1);
[1243] Fix | Delete
checkSubdirs();
[1244] Fix | Delete
});
[1245] Fix | Delete
}
[1246] Fix | Delete
}).always(function() {
[1247] Fix | Delete
dfrd.resolve();
[1248] Fix | Delete
});
[1249] Fix | Delete
} else {
[1250] Fix | Delete
spinner.insertBefore(arrow);
[1251] Fix | Delete
link.removeClass(collapsed);
[1252] Fix | Delete
[1253] Fix | Delete
fm.request({cmd : 'tree', target : fm.navId2Hash(link.attr('id'))})
[1254] Fix | Delete
.done(function(data) {
[1255] Fix | Delete
updateTree(Object.assign([], filter(data.tree)));
[1256] Fix | Delete
[1257] Fix | Delete
if (stree.children().length) {
[1258] Fix | Delete
link.addClass(collapsed+' '+expanded);
[1259] Fix | Delete
if (stree.children().length > slideTH) {
[1260] Fix | Delete
stree.show();
[1261] Fix | Delete
fm.draggingUiHelper && fm.draggingUiHelper.data('refreshPositions', 1);
[1262] Fix | Delete
checkSubdirs();
[1263] Fix | Delete
} else {
[1264] Fix | Delete
stree.stop(true, true).slideDown(opts.durations.slideUpDown, function(){
[1265] Fix | Delete
fm.draggingUiHelper && fm.draggingUiHelper.data('refreshPositions', 1);
[1266] Fix | Delete
checkSubdirs();
[1267] Fix | Delete
});
[1268] Fix | Delete
}
[1269] Fix | Delete
}
[1270] Fix | Delete
})
[1271] Fix | Delete
.always(function(data) {
[1272] Fix | Delete
spinner.remove();
[1273] Fix | Delete
link.addClass(loaded);
[1274] Fix | Delete
fm.one('treedone', function() {
[1275] Fix | Delete
dfrd.resolve();
[1276] Fix | Delete
});
[1277] Fix | Delete
});
[1278] Fix | Delete
}
[1279] Fix | Delete
arrow.data('dfrd', dfrd);
[1280] Fix | Delete
})
[1281] Fix | Delete
.on('contextmenu', selNavdir, function(e) {
[1282] Fix | Delete
e.stopPropagation();
[1283] Fix | Delete
var self = jQuery(this);
[1284] Fix | Delete
[1285] Fix | Delete
// now dirname editing
[1286] Fix | Delete
if (self.find('input:text').length) {
[1287] Fix | Delete
return;
[1288] Fix | Delete
}
[1289] Fix | Delete
[1290] Fix | Delete
e.preventDefault();
[1291] Fix | Delete
[1292] Fix | Delete
if (!self.data('tmlongtap')) {
[1293] Fix | Delete
fm.trigger('contextmenu', {
[1294] Fix | Delete
'type' : 'navbar',
[1295] Fix | Delete
'targets' : [fm.navId2Hash(jQuery(this).attr('id'))],
[1296] Fix | Delete
'x' : e.pageX,
[1297] Fix | Delete
'y' : e.pageY
[1298] Fix | Delete
});
[1299] Fix | Delete
}
[1300] Fix | Delete
self.addClass('ui-state-hover');
[1301] Fix | Delete
[1302] Fix | Delete
fm.getUI('contextmenu').children().on('mouseenter', function() {
[1303] Fix | Delete
self.addClass('ui-state-hover');
[1304] Fix | Delete
});
[1305] Fix | Delete
[1306] Fix | Delete
fm.bind('closecontextmenu', function() {
[1307] Fix | Delete
self.removeClass('ui-state-hover');
[1308] Fix | Delete
});
[1309] Fix | Delete
})
[1310] Fix | Delete
.on('scrolltoview', selNavdir, function(e, data) {
[1311] Fix | Delete
var self = jQuery(this);
[1312] Fix | Delete
autoScroll(self.attr('id')).done(function() {
[1313] Fix | Delete
if (!data || data.blink === 'undefined' || data.blink) {
[1314] Fix | Delete
fm.resources.blink(self, 'lookme');
[1315] Fix | Delete
}
[1316] Fix | Delete
});
[1317] Fix | Delete
})
[1318] Fix | Delete
// prepend fake dir
[1319] Fix | Delete
.on('create.'+fm.namespace, function(e, item) {
[1320] Fix | Delete
var pdir = findSubtree(item.phash),
[1321] Fix | Delete
lock = item.move || false,
[1322] Fix | Delete
dir = jQuery(itemhtml(item)).addClass('elfinder-navbar-wrapper-tmp'),
[1323] Fix | Delete
selected = fm.selected();
[1324] Fix | Delete
[1325] Fix | Delete
lock && selected.length && fm.trigger('lockfiles', {files: selected});
[1326] Fix | Delete
pdir.prepend(dir);
[1327] Fix | Delete
}),
[1328] Fix | Delete
scrolling = false,
[1329] Fix | Delete
navbarScrTm,
[1330] Fix | Delete
// move tree into navbar
[1331] Fix | Delete
navbar = fm.getUI('navbar').append(tree).show().on('scroll', function() {
[1332] Fix | Delete
scrolling = true;
[1333] Fix | Delete
navbarScrTm && cancelAnimationFrame(navbarScrTm);
[1334] Fix | Delete
navbarScrTm = requestAnimationFrame(function() {
[1335] Fix | Delete
scrolling = false;
[1336] Fix | Delete
checkSubdirs();
[1337] Fix | Delete
});
[1338] Fix | Delete
}),
[1339] Fix | Delete
[1340] Fix | Delete
prevSortTreeview = fm.sortAlsoTreeview;
[1341] Fix | Delete
[1342] Fix | Delete
fm.open(function(e) {
[1343] Fix | Delete
var data = e.data,
[1344] Fix | Delete
dirs = filter(data.files),
[1345] Fix | Delete
contextmenu = fm.getUI('contextmenu');
[1346] Fix | Delete
[1347] Fix | Delete
data.init && tree.empty();
[1348] Fix | Delete
[1349] Fix | Delete
if (fm.UA.iOS) {
[1350] Fix | Delete
navbar.removeClass('overflow-scrolling-touch').addClass('overflow-scrolling-touch');
[1351] Fix | Delete
}
[1352] Fix | Delete
[1353] Fix | Delete
if (dirs.length) {
[1354] Fix | Delete
fm.lazy(function() {
[1355] Fix | Delete
if (!contextmenu.data('cmdMaps')) {
[1356] Fix | Delete
contextmenu.data('cmdMaps', {});
[1357] Fix | Delete
}
[1358] Fix | Delete
updateTree(dirs);
[1359] Fix | Delete
updateArrows(dirs, loaded);
[1360] Fix | Delete
sync(dirs);
[1361] Fix | Delete
});
[1362] Fix | Delete
} else {
[1363] Fix | Delete
sync();
[1364] Fix | Delete
}
[1365] Fix | Delete
})
[1366] Fix | Delete
// add new dirs
[1367] Fix | Delete
.add(function(e) {
[1368] Fix | Delete
var dirs = filter(e.data.added);
[1369] Fix | Delete
[1370] Fix | Delete
if (dirs.length) {
[1371] Fix | Delete
updateTree(dirs);
[1372] Fix | Delete
updateArrows(dirs, collapsed);
[1373] Fix | Delete
}
[1374] Fix | Delete
})
[1375] Fix | Delete
// update changed dirs
[1376] Fix | Delete
.change(function(e) {
[1377] Fix | Delete
// do ot perfome while syncing
[1378] Fix | Delete
if (syncing) {
[1379] Fix | Delete
return;
[1380] Fix | Delete
}
[1381] Fix | Delete
[1382] Fix | Delete
var dirs = filter(e.data.changed, true),
[1383] Fix | Delete
length = dirs.length,
[1384] Fix | Delete
l = length,
[1385] Fix | Delete
tgts = jQuery(),
[1386] Fix | Delete
changed = {},
[1387] Fix | Delete
dir, phash, node, tmp, realParent, reqParent, realSibling, reqSibling, isExpanded, isLoaded, parent, subdirs;
[1388] Fix | Delete
[1389] Fix | Delete
jQuery.each(hasMoreDirs, function(h, node) {
[1390] Fix | Delete
node.trigger('update.'+fm.namespace, { change: 'prepare' });
[1391] Fix | Delete
});
[1392] Fix | Delete
[1393] Fix | Delete
while (l--) {
[1394] Fix | Delete
dir = dirs[l];
[1395] Fix | Delete
phash = dir.phash;
[1396] Fix | Delete
if ((node = fm.navHash2Elm(dir.hash)).length) {
[1397] Fix | Delete
parent = node.parent();
[1398] Fix | Delete
if (phash) {
[1399] Fix | Delete
realParent = node.closest('.'+subtree);
[1400] Fix | Delete
reqParent = findSubtree(phash);
[1401] Fix | Delete
realSibling = node.parent().next();
[1402] Fix | Delete
reqSibling = findSibling(reqParent, dir);
[1403] Fix | Delete
[1404] Fix | Delete
if (!reqParent.length) {
[1405] Fix | Delete
continue;
[1406] Fix | Delete
}
[1407] Fix | Delete
[1408] Fix | Delete
if (reqParent[0] !== realParent[0] || realSibling.get(0) !== reqSibling.get(0)) {
[1409] Fix | Delete
reqSibling.length ? reqSibling.before(parent) : reqParent.append(parent);
[1410] Fix | Delete
}
[1411] Fix | Delete
}
[1412] Fix | Delete
isExpanded = node.hasClass(expanded);
[1413] Fix | Delete
isLoaded = node.hasClass(loaded);
[1414] Fix | Delete
tmp = jQuery(itemhtml(dir));
[1415] Fix | Delete
node.replaceWith(tmp.children(selNavdir));
[1416] Fix | Delete
! mobile && updateDroppable(null, parent);
[1417] Fix | Delete
[1418] Fix | Delete
if (dir.dirs
[1419] Fix | Delete
&& (isExpanded || isLoaded)
[1420] Fix | Delete
&& (node = fm.navHash2Elm(dir.hash))
[1421] Fix | Delete
&& node.next('.'+subtree).children().length) {
[1422] Fix | Delete
isExpanded && node.addClass(expanded);
[1423] Fix | Delete
isLoaded && node.addClass(loaded);
[1424] Fix | Delete
}
[1425] Fix | Delete
[1426] Fix | Delete
subdirs |= dir.dirs == -1;
[1427] Fix | Delete
}
[1428] Fix | Delete
}
[1429] Fix | Delete
[1430] Fix | Delete
// to check subdirs
[1431] Fix | Delete
if (subdirs) {
[1432] Fix | Delete
checkSubdirs();
[1433] Fix | Delete
}
[1434] Fix | Delete
[1435] Fix | Delete
jQuery.each(hasMoreDirs, function(h, node) {
[1436] Fix | Delete
node.trigger('update.'+fm.namespace, { change: 'done' });
[1437] Fix | Delete
});
[1438] Fix | Delete
[1439] Fix | Delete
length && sync(void(0), false);
[1440] Fix | Delete
})
[1441] Fix | Delete
// remove dirs
[1442] Fix | Delete
.remove(function(e) {
[1443] Fix | Delete
var dirs = e.data.removed,
[1444] Fix | Delete
l = dirs.length,
[1445] Fix | Delete
node, stree, removed;
[1446] Fix | Delete
[1447] Fix | Delete
jQuery.each(hasMoreDirs, function(h, node) {
[1448] Fix | Delete
node.trigger('update.'+fm.namespace, { removed : dirs });
[1449] Fix | Delete
node.trigger('update.'+fm.namespace, { change: 'prepare' });
[1450] Fix | Delete
});
[1451] Fix | Delete
[1452] Fix | Delete
while (l--) {
[1453] Fix | Delete
if ((node = fm.navHash2Elm(dirs[l])).length) {
[1454] Fix | Delete
removed = true;
[1455] Fix | Delete
stree = node.closest('.'+subtree);
[1456] Fix | Delete
node.parent().detach();
[1457] Fix | Delete
if (!stree.children().length) {
[1458] Fix | Delete
stree.hide().prev(selNavdir).removeClass(collapsed+' '+expanded+' '+loaded);
[1459] Fix | Delete
}
[1460] Fix | Delete
}
[1461] Fix | Delete
}
[1462] Fix | Delete
[1463] Fix | Delete
removed && fm.getUI('navbar').children('.ui-resizable-handle').trigger('resize');
[1464] Fix | Delete
[1465] Fix | Delete
jQuery.each(hasMoreDirs, function(h, node) {
[1466] Fix | Delete
node.trigger('update.'+fm.namespace, { change: 'done' });
[1467] Fix | Delete
});
[1468] Fix | Delete
})
[1469] Fix | Delete
// lock/unlock dirs while moving
[1470] Fix | Delete
.bind('lockfiles unlockfiles', function(e) {
[1471] Fix | Delete
var lock = e.type == 'lockfiles',
[1472] Fix | Delete
helperLocked = e.data.helper? e.data.helper.data('locked') : false,
[1473] Fix | Delete
act = (lock && !helperLocked) ? 'disable' : 'enable',
[1474] Fix | Delete
dirs = jQuery.grep(e.data.files||[], function(h) {
[1475] Fix | Delete
var dir = fm.file(h);
[1476] Fix | Delete
return dir && dir.mime == 'directory' ? true : false;
[1477] Fix | Delete
});
[1478] Fix | Delete
[1479] Fix | Delete
jQuery.each(dirs, function(i, hash) {
[1480] Fix | Delete
var dir = fm.navHash2Elm(hash);
[1481] Fix | Delete
[1482] Fix | Delete
if (dir.length && !helperLocked) {
[1483] Fix | Delete
dir.hasClass(draggable) && dir.draggable(act);
[1484] Fix | Delete
dir.hasClass(droppable) && dir.droppable(act);
[1485] Fix | Delete
dir[lock ? 'addClass' : 'removeClass'](disabled);
[1486] Fix | Delete
}
[1487] Fix | Delete
});
[1488] Fix | Delete
})
[1489] Fix | Delete
.bind('sortchange', function() {
[1490] Fix | Delete
if (fm.sortAlsoTreeview || prevSortTreeview !== fm.sortAlsoTreeview) {
[1491] Fix | Delete
var dirs,
[1492] Fix | Delete
ends = [],
[1493] Fix | Delete
endsMap = {},
[1494] Fix | Delete
endsVid = {},
[1495] Fix | Delete
topVid = '',
[1496] Fix | Delete
single = false,
[1497] Fix | Delete
current;
[1498] Fix | Delete
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function