diff --git a/assets/js/icecoder.js b/assets/js/icecoder.js index c99838f..f983ab9 100644 --- a/assets/js/icecoder.js +++ b/assets/js/icecoder.js @@ -1950,7 +1950,7 @@ var ICEcoder = { if ("/[NEW]" !== shortURL) { fileLink = fileLink.replace(/\//g, "|"); - this.serverQueue("add", iceLoc + "/lib/file-control.php?action=load&file=" + encodeURIComponent(fileLink) + "&csrf=" + this.csrf + "&lineNumber=" + line); + this.serverQueue("add", iceLoc + "/lib/file-control.php?action=load&file=" + encodeURIComponent(fileLink) + "&csrf=" + this.csrf + "&lineNumber=" + line, encodeURIComponent(fileLink)); this.serverMessage('' + t['Opening File'] + ' ' + shortURL.substr(shortURL.lastIndexOf("/") + 1)); } else { this.createNewTab(true, shortURL); @@ -2348,7 +2348,7 @@ var ICEcoder = { console.log("ICEcoder error info for your request..."); console.log(statusObj); ICEcoder.serverMessage(); - ICEcoder.serverQueue('del', 0); + ICEcoder.serverQueue('del'); } else { eval(statusObj.action.doNext); } @@ -2358,7 +2358,7 @@ var ICEcoder = { console.log("ICEcoder error info for your request..."); console.log(statusObj); ICEcoder.serverMessage(); - ICEcoder.serverQueue('del', 0); + ICEcoder.serverQueue('del'); } } }; @@ -3352,24 +3352,28 @@ var ICEcoder = { var cM, nextSaveID, txtArea, topSaveID, element, xhr, statusObj, timeStart; // If we have this exact item URL, it's almost certain we've got a repetitive save // situation and so clear the message and server queue item to avoid save jamming - if (this.serverQueueItems.indexOf(item) !== -1) { + if (action=="add" && this.serverQueueItems.length > 0 && item.indexOf('action=save')>0 && this.serverQueueItems[0].file === file) { this.serverMessage(); - this.serverQueue("del",0); + this.serverQueue("del"); return; } - cM = this.getcMInstance(); // Firstly, work out how many saves we have to carry out nextSaveID=0; for (var i=0;i0) { + if (this.serverQueueItems[i].item.indexOf('action=save')>0) { nextSaveID++; } } nextSaveID++; // Add to end of array or remove from beginning on demand, plus add or remove if necessary if (action=="add") { - this.serverQueueItems.push(item); + this.serverQueueItems.push( + { + "item" : item, + "file" : file, + "changes" : changes + }); if (item.indexOf('action=save')>0) { txtArea = document.createElement('textarea'); txtArea.setAttribute('id', 'saveTemp'+nextSaveID); @@ -3379,12 +3383,11 @@ var ICEcoder = { get('saveTemp'+nextSaveID).value = cM.getValue(); // Else we can save the JSON version of the changes to implement } else { - get('saveTemp'+nextSaveID).value = changes; + get('saveTemp'+nextSaveID).value = this.serverQueueItems[0].changes; } } } else if (action=="del") { - // console.log(this); - if (this.serverQueueItems[0] && this.serverQueueItems[0].indexOf('action=save')>0) { + if (this.serverQueueItems[0] && this.serverQueueItems[0].item.indexOf('action=save')>0) { topSaveID = nextSaveID-1; for (var i=1;i=1 || this.serverQueueItems.length==1) { // If we have an item, we're not saving previous file refs and not loading - if (item && (item.indexOf('saveFiles=')==-1 && item.indexOf('action=load')==-1)) { + if (this.serverQueueItems[0].item && (this.serverQueueItems[0].item.indexOf('saveFiles=')==-1 && this.serverQueueItems[0].item.indexOf('action=load')==-1)) { xhr = this.xhrObj(); xhr.onreadystatechange=function() { if (xhr.readyState==4) { @@ -3426,7 +3428,7 @@ var ICEcoder = { console.log("ICEcoder error info for your request..."); console.log(statusObj); ICEcoder.serverMessage(); - ICEcoder.serverQueue('del',0); + ICEcoder.serverQueue('del'); } else { eval(statusObj.action.doNext); } @@ -3436,29 +3438,28 @@ var ICEcoder = { console.log("ICEcoder error info for your request..."); console.log(statusObj); ICEcoder.serverMessage(); - ICEcoder.serverQueue('del',0); + ICEcoder.serverQueue('del'); } } }; - xhr.open("POST",this.serverQueueItems[0],true); + xhr.open("POST",this.serverQueueItems[0].item,true); xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); timeStart = new Date().getTime(); // Save as events need to send all contents - if (item.indexOf('action=saveAs')>0) { - xhr.send('timeStart='+timeStart+'&file='+file+'&contents='+encodeURIComponent(document.getElementById('saveTemp1').value)); + if (this.serverQueueItems[0].item.indexOf('action=saveAs')>0) { + xhr.send('timeStart='+timeStart+'&file='+this.serverQueueItems[0].file+'&contents='+encodeURIComponent(document.getElementById('saveTemp1').value)); // Save evens can just sent the changes - } else if (item.indexOf('action=save')>0) { - xhr.send('timeStart='+timeStart+'&file='+file+'&changes='+encodeURIComponent(document.getElementById('saveTemp1').value)); + } else if (this.serverQueueItems[0].item.indexOf('action=save')>0) { + xhr.send('timeStart='+timeStart+'&file='+this.serverQueueItems[0].file+'&changes='+encodeURIComponent(document.getElementById('saveTemp1').value)); // Another type of event } else { - xhr.send('timeStart='+timeStart+'&file='+file); + xhr.send('timeStart='+timeStart+'&file='+this.serverQueueItems[0].file); } } else { - setTimeout(function(ic) { if ("undefined" != typeof ic.serverQueueItems[0]) { - ic.filesFrame.contentWindow.frames['fileControl'].location.href=ic.serverQueueItems[0]; + ic.filesFrame.contentWindow.frames['fileControl'].location.href=ic.serverQueueItems[0].item; } },1,this); @@ -3485,7 +3486,7 @@ var ICEcoder = { previousFiles = this.openFiles.join(',').replace(/\//g,"|").replace(/(\|\[NEW\])|(,\|\[NEW\])/g,"").replace(/(^,)|(,$)/g,""); if (previousFiles=="") {previousFiles="CLEAR"}; // Then send through to the settings page to update setting - this.serverQueue("add",iceLoc+"/lib/settings.php?saveFiles="+encodeURIComponent(previousFiles)+"&csrf="+this.csrf); + this.serverQueue("add",iceLoc+"/lib/settings.php?saveFiles="+encodeURIComponent(previousFiles)+"&csrf="+this.csrf, encodeURIComponent(previousFiles)); this.updateLast10List(previousFiles); }, @@ -4404,9 +4405,11 @@ var ICEcoder = { if (i!=this.dragTabNo) { get('tab'+i).style.zIndex = 1; } else { - setTimeout(function(num) { - get('tab' + num).style.zIndex = 1; - }, 150, swapWith); + if ("undefined" !== typeof swapWith) { + setTimeout(function (num) { + get('tab' + num).style.zIndex = 1; + }, 150, swapWith); + } } } if (this.thisLeft && this.thisLeft!==false) {