| 174 |
/// Create New File |
/// Create New File |
| 175 |
TextEditor.prototype.reallyCreateNewFileAction=function(name){ |
TextEditor.prototype.reallyCreateNewFileAction=function(name){ |
| 176 |
this.db.transaction( |
this.db.transaction( |
| 177 |
function (transaction) { |
new Function("transaction", |
| 178 |
var myfunc = new Function("transaction","results","transaction.executeSql('INSERT INTO files (name, filedata_id) VALUES (?, ?);', [ '"+name+"', results.insertId], "+this.name+".nullDataHandler,"+this.name+".killTransaction);"); |
"transaction.executeSql('INSERT INTO filedata (datablob) VALUES (\"\");', [],"+ |
| 179 |
transaction.executeSql('INSERT INTO filedata (datablob) VALUES ("");', [], myfunc, this.errorHandler); |
"function(transaction,results){"+ |
| 180 |
} |
"transaction.executeSql('INSERT INTO files (name, filedata_id) VALUES (?, ?);',"+ |
| 181 |
); |
"['"+name+"',results.insertId],"+this.name+".nullDataHandler,"+this.name+".killTransaction);},"+ |
| 182 |
|
this.name+".errorHandler);")); |
| 183 |
fileSelector(); |
fileSelector(); |
| 184 |
} |
} |
| 185 |
|
|
| 186 |
TextEditor.prototype.createNewFileAction=function(){ |
TextEditor.prototype.createNewFileAction=function(){ |
| 187 |
var name = document.getElementById('createFilename').value |
var name = document.getElementById('createFilename').value |
| 188 |
if(name == "") { |
if(name == "") { |
| 189 |
if (confirm('Filename is required, try agein?')) { createNewFile(); }else{ fileSelector(); } |
if (confirm('Filename is required, try agein?')) { this.createNewFile(); }else{ fileSelector(); } |
| 190 |
return; |
return; |
| 191 |
} |
} |
|
|
|
| 192 |
this.db.transaction( |
this.db.transaction( |
| 193 |
new Function("transaction", "transaction.executeSql('SELECT id,name from files where name=?;',['"+name+"'],"+ |
new Function("transaction", "transaction.executeSql('SELECT id,name from files where name=?;',['"+name+"'],"+ |
| 194 |
"function (transaction, results) {"+ |
"function (transaction, results) {"+ |
| 196 |
this.name+".reallyCreateNewFileAction('"+name+"');"+ |
this.name+".reallyCreateNewFileAction('"+name+"');"+ |
| 197 |
"}else{"+ |
"}else{"+ |
| 198 |
"if (confirm(results.rows.item(0)['name']+' already exist, try agein?')) {"+ |
"if (confirm(results.rows.item(0)['name']+' already exist, try agein?')) {"+ |
| 199 |
"createNewFile();"+ |
this.name+".createNewFile();"+ |
| 200 |
"}else{"+ |
"}else{"+ |
| 201 |
"fileSelector();"+ |
"fileSelector();"+ |
| 202 |
"}"+ |
"}"+ |
| 415 |
var res = "<tr class='filerow'>"; |
var res = "<tr class='filerow'>"; |
| 416 |
res += "<td class='filenamecell' onClick=\""+this.name+".showFile('"+name+"');\">"+name+"</td>"; |
res += "<td class='filenamecell' onClick=\""+this.name+".showFile('"+name+"');\">"+name+"</td>"; |
| 417 |
res += "<td class='filelinkcell'>"; |
res += "<td class='filelinkcell'>"; |
| 418 |
res += "<button class='blue' onClick=\"editFile('"+name+"');\"> Edit </button> "; |
res += "<button class='blue' onClick=\""+this.name+".editFile('"+name+"');\"> Edit </button> "; |
| 419 |
res += "<button class='green' onClick=\"renameFile('"+name+"',"+files_id+");\"> Rename </button> "; |
res += "<button class='green' onClick=\""+this.name+".renameFile('"+name+"',"+files_id+");\"> Rename </button> "; |
| 420 |
res += "<button onClick=\"uploadFile('"+name+"');\">Upload</button>"; |
res += "<button onClick=\"uploadFile('"+name+"');\">Upload</button>"; |
| 421 |
res += "<button class='red' onClick=\""+this.name+".deleteFile('"+name+"');\">Delete</button>"; |
res += "<button class='red' onClick=\""+this.name+".deleteFile('"+name+"');\">Delete</button>"; |
| 422 |
res += "</td></tr>\n"; |
res += "</td></tr>\n"; |
| 426 |
|
|
| 427 |
TextEditor.prototype.createMenuBar=function(){ |
TextEditor.prototype.createMenuBar=function(){ |
| 428 |
var menu = "<ul id='menubar'>"; |
var menu = "<ul id='menubar'>"; |
| 429 |
menu += "<li><button onClick='createNewFile()'>Create New File</button></li>"; |
menu += "<li><button onClick='"+this.name+".createNewFile()'>Create New File</button></li>"; |
| 430 |
// menu += "<li><button onClick='deleteAllFile()'>Delete All</button></li>"; |
// menu += "<li><button onClick='deleteAllFile()'>Delete All</button></li>"; |
| 431 |
menu += "<li><button onClick='getRemoteFileList()'>File List on a Server</button></li>"; |
menu += "<li><button onClick='getRemoteFileList()'>File List on a Server</button></li>"; |
| 432 |
menu += "<li><button onClick='configServer()'>Server Configuration</button></li>"; |
menu += "<li><button onClick='configServer()'>Server Configuration</button></li>"; |
| 434 |
return menu; |
return menu; |
| 435 |
} |
} |
| 436 |
|
|
| 437 |
|
TextEditor.prototype.createNewFile=function(){ |
| 438 |
|
var popupDiv = document.getElementById('popup'); |
| 439 |
|
var string = ""; |
| 440 |
|
|
| 441 |
|
string += "<H1 class='title'>Create New File</H1>\n"; |
| 442 |
|
string += "<div class=\"input_form\">\n"; |
| 443 |
|
string += "Filename:<input id='createFilename' name='name' value=\"\" />\n"; |
| 444 |
|
string += "<button onClick=\""+this.name+".createNewFileAction();hideItemById('popup'); \">Create</button>\n"; |
| 445 |
|
string += "<button onClick=\"hideItemById('popup'); \">Cancel</button>\n"; |
| 446 |
|
string += "</div>\n"; |
| 447 |
|
|
| 448 |
|
popupDiv.innerHTML=string; |
| 449 |
|
popupDiv.style.display='block'; |
| 450 |
|
} |
| 451 |
|
|
| 452 |
|
TextEditor.prototype.renameFile=function(name, id){ |
| 453 |
|
var popupDiv = document.getElementById('popup'); |
| 454 |
|
var string = ""; |
| 455 |
|
|
| 456 |
|
string += "<H1 class='title'>Rename File</H1>\n"; |
| 457 |
|
string += "<div class='input_form'>\n"; |
| 458 |
|
string += "Old Filename: "+name+"<br>"; |
| 459 |
|
string += "New Filename:<input id='newFilename' name='newname' value=\"\" />\n"; |
| 460 |
|
string += "<input type='hidden' id='fileId' value=\""+id+"\" /><br>\n"; |
| 461 |
|
string += "<button onClick=\""+this.name+".renameFileAction();hideItemById('popup');\">Rename</button>\n"; |
| 462 |
|
string += "<button onClick=\"hideItemById('popup'); \">Cancel</button>\n"; |
| 463 |
|
string += "</div>\n"; |
| 464 |
|
|
| 465 |
|
popupDiv.innerHTML=string; |
| 466 |
|
popupDiv.style.display='block'; |
| 467 |
|
} |
| 468 |
|
|
| 469 |
|
TextEditor.prototype.editFile=function(name){ |
| 470 |
|
if(currentMode == 'Preview'){ |
| 471 |
|
var data = getSVGContent(); |
| 472 |
|
var editcontent="<textarea id=\"editarea\" rows=\""+editarea_h+"\" cols=\""+editarea_w+"\">"+data+"</textarea>\n"; |
| 473 |
|
updateEditMenu(); |
| 474 |
|
editDiv.innerHTML = editMenuBar() +"<br>"+ editcontent; |
| 475 |
|
|
| 476 |
|
setMode('Edit'); |
| 477 |
|
}else{ |
| 478 |
|
this.getFile(name, this.name+'.editFileData'); |
| 479 |
|
} |
| 480 |
|
} |
| 481 |
|
|
| 482 |
|
TextEditor.prototype.editFileData=function(transaction, results){ |
| 483 |
|
var editDiv = document.getElementById('editDiv'); |
| 484 |
|
var datadiv = document.getElementById('tempdata'); |
| 485 |
|
|
| 486 |
|
if( results.rows.length == 0) return; |
| 487 |
|
var data = results.rows.item(0); |
| 488 |
|
var filename = data['name']; |
| 489 |
|
var filedata = data['datablob']; |
| 490 |
|
datadiv.setAttribute('lfdataid', parseInt(data['filedata_id'])); |
| 491 |
|
|
| 492 |
|
var editcontent="<textarea id=\"editarea\" rows=\""+editarea_h+"\" cols=\""+editarea_w+"\">"+filedata+"</textarea>\n"; |
| 493 |
|
|
| 494 |
|
document.title="EditFile: "+filename; |
| 495 |
|
updateEditMenu(); |
| 496 |
|
editDiv.innerHTML = editMenuBar() +"<br>"+ editcontent; |
| 497 |
|
|
| 498 |
|
setMode('Edit'); |
| 499 |
|
} |
| 500 |
|
|
| 501 |
|
TextEditor.prototype.editCurrentFile=function(){ |
| 502 |
|
var datadiv = document.getElementById('tempdata'); |
| 503 |
|
var name = datadiv.getAttribute('lfname'); |
| 504 |
|
|
| 505 |
|
this.editFile(name); |
| 506 |
|
} |
| 507 |
|
|
| 508 |
|
|
| 509 |
///////// |
///////// |
| 510 |
function fileSelector() { |
function fileSelector() { |
| 575 |
popupDiv.style.display='block'; |
popupDiv.style.display='block'; |
| 576 |
} |
} |
| 577 |
|
|
|
//// |
|
|
function createNewFile(){ |
|
|
var popupDiv = document.getElementById('popup'); |
|
|
var string = ""; |
|
|
|
|
|
string += "<H1 class='title'>Create New File</H1>\n"; |
|
|
string += "<div class=\"input_form\">\n"; |
|
|
string += "Filename:<input id='createFilename' name='name' value=\"\" />\n"; |
|
|
string += "<button onClick=\"Editor.createNewFileAction();hideItemById('popup'); \">Create</button>\n"; |
|
|
string += "<button onClick=\"hideItemById('popup'); \">Cancel</button>\n"; |
|
|
string += "</div>\n"; |
|
|
|
|
|
popupDiv.innerHTML=string; |
|
|
popupDiv.style.display='block'; |
|
|
} |
|
|
|
|
| 578 |
///// |
///// |
|
function renameFile(name, id){ |
|
|
var popupDiv = document.getElementById('popup'); |
|
|
var string = ""; |
|
|
|
|
|
string += "<H1 class='title'>Rename File</H1>\n"; |
|
|
string += "<div class='input_form'>\n"; |
|
|
string += "Old Filename: "+name+"<br>"; |
|
|
string += "New Filename:<input id='newFilename' name='newname' value=\"\" />\n"; |
|
|
string += "<input type='hidden' id='fileId' value=\""+id+"\" /><br>\n"; |
|
|
string += "<button onClick=\"Editor.renameFileAction();hideItemById('popup');\">Rename</button>\n"; |
|
|
string += "<button onClick=\"hideItemById('popup'); \">Cancel</button>\n"; |
|
|
string += "</div>\n"; |
|
|
|
|
|
popupDiv.innerHTML=string; |
|
|
popupDiv.style.display='block'; |
|
|
} |
|
|
|
|
| 579 |
/// EditMenu |
/// EditMenu |
| 580 |
function insertStr(str, len){ |
function insertStr(str, len){ |
| 581 |
var editarea = document.getElementById('editarea'); |
var editarea = document.getElementById('editarea'); |
| 652 |
menuDiv.style.display='block'; |
menuDiv.style.display='block'; |
| 653 |
} |
} |
| 654 |
|
|
|
//// Editor |
|
|
function editFileData(transaction, results){ |
|
|
var editDiv = document.getElementById('editDiv'); |
|
|
var datadiv = document.getElementById('tempdata'); |
|
|
|
|
|
if( results.rows.length == 0) return; |
|
|
var data = results.rows.item(0); |
|
|
var filename = data['name']; |
|
|
var filedata = data['datablob']; |
|
|
datadiv.setAttribute('lfdataid', parseInt(data['filedata_id'])); |
|
|
|
|
|
var editcontent="<textarea id=\"editarea\" rows=\""+editarea_h+"\" cols=\""+editarea_w+"\">"+filedata+"</textarea>\n"; |
|
|
|
|
|
document.title="EditFile: "+filename; |
|
|
updateEditMenu(); |
|
|
editDiv.innerHTML = editMenuBar() +"<br>"+ editcontent; |
|
|
|
|
|
setMode('Edit'); |
|
|
} |
|
|
|
|
|
function editFile(name){ |
|
|
if(currentMode == 'Preview'){ |
|
|
var data = getSVGContent(); |
|
|
var editcontent="<textarea id=\"editarea\" rows=\""+editarea_h+"\" cols=\""+editarea_w+"\">"+data+"</textarea>\n"; |
|
|
updateEditMenu(); |
|
|
editDiv.innerHTML = editMenuBar() +"<br>"+ editcontent; |
|
|
|
|
|
setMode('Edit'); |
|
|
}else{ |
|
|
Editor.getFile(name, 'editFileData'); |
|
|
} |
|
|
} |
|
|
|
|
|
function editCurrentFile(){ |
|
|
var datadiv = document.getElementById('tempdata'); |
|
|
var name = datadiv.getAttribute('lfname'); |
|
|
|
|
|
editFile(name); |
|
|
} |
|
|
|
|
| 655 |
////////////////////////////// |
////////////////////////////// |
| 656 |
// Show File (GUI Editor) |
// Show File (GUI Editor) |
| 657 |
function updateShowMenu(){ |
function updateShowMenu(){ |