Skip to content
This repository was archived by the owner on Dec 14, 2023. It is now read-only.

Commit e4a5215

Browse files
author
mattpass
committed
pass file when loading, No 0 item on del for serverQueue, JSON based queue items, only try to set style if swapWith
1 parent 501d9f0 commit e4a5215

File tree

1 file changed

+30
-27
lines changed

1 file changed

+30
-27
lines changed

assets/js/icecoder.js

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1950,7 +1950,7 @@ var ICEcoder = {
19501950

19511951
if ("/[NEW]" !== shortURL) {
19521952
fileLink = fileLink.replace(/\//g, "|");
1953-
this.serverQueue("add", iceLoc + "/lib/file-control.php?action=load&file=" + encodeURIComponent(fileLink) + "&csrf=" + this.csrf + "&lineNumber=" + line);
1953+
this.serverQueue("add", iceLoc + "/lib/file-control.php?action=load&file=" + encodeURIComponent(fileLink) + "&csrf=" + this.csrf + "&lineNumber=" + line, encodeURIComponent(fileLink));
19541954
this.serverMessage('<b>' + t['Opening File'] + '</b> ' + shortURL.substr(shortURL.lastIndexOf("/") + 1));
19551955
} else {
19561956
this.createNewTab(true, shortURL);
@@ -2348,7 +2348,7 @@ var ICEcoder = {
23482348
console.log("ICEcoder error info for your request...");
23492349
console.log(statusObj);
23502350
ICEcoder.serverMessage();
2351-
ICEcoder.serverQueue('del', 0);
2351+
ICEcoder.serverQueue('del');
23522352
} else {
23532353
eval(statusObj.action.doNext);
23542354
}
@@ -2358,7 +2358,7 @@ var ICEcoder = {
23582358
console.log("ICEcoder error info for your request...");
23592359
console.log(statusObj);
23602360
ICEcoder.serverMessage();
2361-
ICEcoder.serverQueue('del', 0);
2361+
ICEcoder.serverQueue('del');
23622362
}
23632363
}
23642364
};
@@ -3352,24 +3352,28 @@ var ICEcoder = {
33523352
var cM, nextSaveID, txtArea, topSaveID, element, xhr, statusObj, timeStart;
33533353
// If we have this exact item URL, it's almost certain we've got a repetitive save
33543354
// situation and so clear the message and server queue item to avoid save jamming
3355-
if (this.serverQueueItems.indexOf(item) !== -1) {
3355+
if (action=="add" && this.serverQueueItems.length > 0 && item.indexOf('action=save')>0 && this.serverQueueItems[0].file === file) {
33563356
this.serverMessage();
3357-
this.serverQueue("del",0);
3357+
this.serverQueue("del");
33583358
return;
33593359
}
3360-
33613360
cM = this.getcMInstance();
33623361
// Firstly, work out how many saves we have to carry out
33633362
nextSaveID=0;
33643363
for (var i=0;i<this.serverQueueItems.length;i++) {
3365-
if (this.serverQueueItems[i].indexOf('action=save')>0) {
3364+
if (this.serverQueueItems[i].item.indexOf('action=save')>0) {
33663365
nextSaveID++;
33673366
}
33683367
}
33693368
nextSaveID++;
33703369
// Add to end of array or remove from beginning on demand, plus add or remove if necessary
33713370
if (action=="add") {
3372-
this.serverQueueItems.push(item);
3371+
this.serverQueueItems.push(
3372+
{
3373+
"item" : item,
3374+
"file" : file,
3375+
"changes" : changes
3376+
});
33733377
if (item.indexOf('action=save')>0) {
33743378
txtArea = document.createElement('textarea');
33753379
txtArea.setAttribute('id', 'saveTemp'+nextSaveID);
@@ -3379,12 +3383,11 @@ var ICEcoder = {
33793383
get('saveTemp'+nextSaveID).value = cM.getValue();
33803384
// Else we can save the JSON version of the changes to implement
33813385
} else {
3382-
get('saveTemp'+nextSaveID).value = changes;
3386+
get('saveTemp'+nextSaveID).value = this.serverQueueItems[0].changes;
33833387
}
33843388
}
33853389
} else if (action=="del") {
3386-
// console.log(this);
3387-
if (this.serverQueueItems[0] && this.serverQueueItems[0].indexOf('action=save')>0) {
3390+
if (this.serverQueueItems[0] && this.serverQueueItems[0].item.indexOf('action=save')>0) {
33883391
topSaveID = nextSaveID-1;
33893392
for (var i=1;i<topSaveID;i++) {
33903393
get('saveTemp'+i).value = get('saveTemp'+(i+1)).value;
@@ -3394,12 +3397,11 @@ var ICEcoder = {
33943397
}
33953398
this.serverQueueItems.splice(0,1);
33963399
}
3397-
33983400
// If we've just removed from the array and there's another action queued up, or we're triggering for the first time
33993401
// then do the next requested process, stored at array pos 0
34003402
if (action=="del" && this.serverQueueItems.length>=1 || this.serverQueueItems.length==1) {
34013403
// If we have an item, we're not saving previous file refs and not loading
3402-
if (item && (item.indexOf('saveFiles=')==-1 && item.indexOf('action=load')==-1)) {
3404+
if (this.serverQueueItems[0].item && (this.serverQueueItems[0].item.indexOf('saveFiles=')==-1 && this.serverQueueItems[0].item.indexOf('action=load')==-1)) {
34033405
xhr = this.xhrObj();
34043406
xhr.onreadystatechange=function() {
34053407
if (xhr.readyState==4) {
@@ -3426,7 +3428,7 @@ var ICEcoder = {
34263428
console.log("ICEcoder error info for your request...");
34273429
console.log(statusObj);
34283430
ICEcoder.serverMessage();
3429-
ICEcoder.serverQueue('del',0);
3431+
ICEcoder.serverQueue('del');
34303432
} else {
34313433
eval(statusObj.action.doNext);
34323434
}
@@ -3436,29 +3438,28 @@ var ICEcoder = {
34363438
console.log("ICEcoder error info for your request...");
34373439
console.log(statusObj);
34383440
ICEcoder.serverMessage();
3439-
ICEcoder.serverQueue('del',0);
3441+
ICEcoder.serverQueue('del');
34403442
}
34413443
}
34423444
};
3443-
xhr.open("POST",this.serverQueueItems[0],true);
3445+
xhr.open("POST",this.serverQueueItems[0].item,true);
34443446
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
34453447
timeStart = new Date().getTime();
34463448

34473449
// Save as events need to send all contents
3448-
if (item.indexOf('action=saveAs')>0) {
3449-
xhr.send('timeStart='+timeStart+'&file='+file+'&contents='+encodeURIComponent(document.getElementById('saveTemp1').value));
3450+
if (this.serverQueueItems[0].item.indexOf('action=saveAs')>0) {
3451+
xhr.send('timeStart='+timeStart+'&file='+this.serverQueueItems[0].file+'&contents='+encodeURIComponent(document.getElementById('saveTemp1').value));
34503452
// Save evens can just sent the changes
3451-
} else if (item.indexOf('action=save')>0) {
3452-
xhr.send('timeStart='+timeStart+'&file='+file+'&changes='+encodeURIComponent(document.getElementById('saveTemp1').value));
3453+
} else if (this.serverQueueItems[0].item.indexOf('action=save')>0) {
3454+
xhr.send('timeStart='+timeStart+'&file='+this.serverQueueItems[0].file+'&changes='+encodeURIComponent(document.getElementById('saveTemp1').value));
34533455
// Another type of event
34543456
} else {
3455-
xhr.send('timeStart='+timeStart+'&file='+file);
3457+
xhr.send('timeStart='+timeStart+'&file='+this.serverQueueItems[0].file);
34563458
}
34573459
} else {
3458-
34593460
setTimeout(function(ic) {
34603461
if ("undefined" != typeof ic.serverQueueItems[0]) {
3461-
ic.filesFrame.contentWindow.frames['fileControl'].location.href=ic.serverQueueItems[0];
3462+
ic.filesFrame.contentWindow.frames['fileControl'].location.href=ic.serverQueueItems[0].item;
34623463
}
34633464
},1,this);
34643465

@@ -3485,7 +3486,7 @@ var ICEcoder = {
34853486
previousFiles = this.openFiles.join(',').replace(/\//g,"|").replace(/(\|\[NEW\])|(,\|\[NEW\])/g,"").replace(/(^,)|(,$)/g,"");
34863487
if (previousFiles=="") {previousFiles="CLEAR"};
34873488
// Then send through to the settings page to update setting
3488-
this.serverQueue("add",iceLoc+"/lib/settings.php?saveFiles="+encodeURIComponent(previousFiles)+"&csrf="+this.csrf);
3489+
this.serverQueue("add",iceLoc+"/lib/settings.php?saveFiles="+encodeURIComponent(previousFiles)+"&csrf="+this.csrf, encodeURIComponent(previousFiles));
34893490
this.updateLast10List(previousFiles);
34903491
},
34913492

@@ -4404,9 +4405,11 @@ var ICEcoder = {
44044405
if (i!=this.dragTabNo) {
44054406
get('tab'+i).style.zIndex = 1;
44064407
} else {
4407-
setTimeout(function(num) {
4408-
get('tab' + num).style.zIndex = 1;
4409-
}, 150, swapWith);
4408+
if ("undefined" !== typeof swapWith) {
4409+
setTimeout(function (num) {
4410+
get('tab' + num).style.zIndex = 1;
4411+
}, 150, swapWith);
4412+
}
44104413
}
44114414
}
44124415
if (this.thisLeft && this.thisLeft!==false) {

0 commit comments

Comments
 (0)