| 158 |
this.db.transaction( |
this.db.transaction( |
| 159 |
function (transaction) { |
function (transaction) { |
| 160 |
transaction.executeSql('CREATE TABLE IF NOT EXISTS files(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, filedata_id INTEGER NOT NULL, deleted INTEGER NOT NULL DEFAULT 0);', [], this.nullDataHandler, this.killTransaction); |
transaction.executeSql('CREATE TABLE IF NOT EXISTS files(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, filedata_id INTEGER NOT NULL, deleted INTEGER NOT NULL DEFAULT 0);', [], this.nullDataHandler, this.killTransaction); |
| 161 |
transaction.executeSql('CREATE TABLE IF NOT EXISTS filedata(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, datablob BLOB NOT NULL DEFAULT "");', [], this.nullDataHandler, this.errorHandler); |
transaction.executeSql('CREATE TABLE IF NOT EXISTS filedata(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, datablob BLOB NOT NULL DEFAULT "");', [], TextEditor.nullDataHandler, TextEditor.errorHandler); |
| 162 |
} |
} |
| 163 |
); |
); |
| 164 |
} |
} |
| 178 |
"transaction.executeSql('INSERT INTO filedata (datablob) VALUES (\"\");', [],"+ |
"transaction.executeSql('INSERT INTO filedata (datablob) VALUES (\"\");', [],"+ |
| 179 |
"function(transaction,results){"+ |
"function(transaction,results){"+ |
| 180 |
"transaction.executeSql('INSERT INTO files (name, filedata_id) VALUES (?, ?);',"+ |
"transaction.executeSql('INSERT INTO files (name, filedata_id) VALUES (?, ?);',"+ |
| 181 |
"['"+name+"',results.insertId],"+this.name+".nullDataHandler,"+this.name+".killTransaction);},"+ |
"['"+name+"',results.insertId],TextEditor.nullDataHandler,TextEditor.killTransaction);},"+ |
| 182 |
this.name+".errorHandler);")); |
"TextEditor.errorHandler);")); |
| 183 |
fileSelector(); |
fileSelector(); |
| 184 |
} |
} |
| 185 |
|
|
| 201 |
"fileSelector();"+ |
"fileSelector();"+ |
| 202 |
"}"+ |
"}"+ |
| 203 |
"}"+ |
"}"+ |
| 204 |
"}, "+this.name+".errorHandler);") |
"}, TextEditor.errorHandler);") |
| 205 |
); |
); |
| 206 |
} |
} |
| 207 |
|
|
| 213 |
TextEditor.prototype.reallyDelete=function(id){ |
TextEditor.prototype.reallyDelete=function(id){ |
| 214 |
this.db.transaction( |
this.db.transaction( |
| 215 |
new Function("transaction", |
new Function("transaction", |
| 216 |
"transaction.executeSql('DELETE FROM files where id=?;', ["+id+"], null, "+this.name+".errorHandler);" |
"transaction.executeSql('DELETE FROM files where id=?;', ["+id+"], null, TextEditor.errorHandler);" |
| 217 |
+"transaction.executeSql('DELETE FROM filedata where id=?;',["+id+"],"+this.name+".deleteUpdateResults, "+ |
+"transaction.executeSql('DELETE FROM filedata where id=?;',["+id+"],"+this.name+".deleteUpdateResults, "+ |
| 218 |
this.name+".errorHandler);") |
"TextEditor.errorHandler);") |
| 219 |
); |
); |
| 220 |
} |
} |
| 221 |
|
|
| 226 |
"if (confirm('Really delete '+results.rows.item(0)['name']+'?')) {"+ |
"if (confirm('Really delete '+results.rows.item(0)['name']+'?')) {"+ |
| 227 |
this.name+".reallyDelete(results.rows.item(0)['id']);"+ |
this.name+".reallyDelete(results.rows.item(0)['id']);"+ |
| 228 |
"}"+ |
"}"+ |
| 229 |
"}, "+this.name+".errorHandler);") |
"}, TextEditor.errorHandler);") |
| 230 |
); |
); |
| 231 |
} |
} |
| 232 |
|
|
| 233 |
TextEditor.prototype.reallyDeleteAll=function(){ |
TextEditor.prototype.reallyDeleteAll=function(){ |
| 234 |
this.transaction( |
this.transaction( |
| 235 |
new Function("transaction", |
new Function("transaction", |
| 236 |
"transaction.executeSql('DELETE FROM files;',[],null, "+this.name+".errorHandler);" |
"transaction.executeSql('DELETE FROM files;',[],null,TextEditor.errorHandler);" |
| 237 |
+"transaction.executeSql('DELETE FROM filedata;',[],"+this.name+".deleteUpdateResults, "+this.name+".errorHandler);") |
+"transaction.executeSql('DELETE FROM filedata;',[],"+this.name+".deleteUpdateResults,TextEditor.errorHandler);") |
| 238 |
); |
); |
| 239 |
} |
} |
| 240 |
|
|
| 246 |
TextEditor.prototype.reallyRenameFileAction=function(id, newname){ |
TextEditor.prototype.reallyRenameFileAction=function(id, newname){ |
| 247 |
this.db.transaction( |
this.db.transaction( |
| 248 |
function (transaction) { |
function (transaction) { |
| 249 |
transaction.executeSql('UPDATE files set name=? where id=?;', [newname,id ], null, this.errorHandler); |
transaction.executeSql('UPDATE files set name=? where id=?;', [newname,id ], null,TextEditor.errorHandler); |
| 250 |
} |
} |
| 251 |
); |
); |
| 252 |
fileSelector(); |
fileSelector(); |
| 267 |
"alert(results.rows.item(0)['name']+' already exist');"+ |
"alert(results.rows.item(0)['name']+' already exist');"+ |
| 268 |
"fileSelector();"+ |
"fileSelector();"+ |
| 269 |
"}"+ |
"}"+ |
| 270 |
"}, "+this.name+".errorHandler);") |
"},TextEditor.errorHandler);") |
| 271 |
); |
); |
| 272 |
} |
} |
| 273 |
|
|
| 295 |
var filedata_id = datadiv.getAttribute('lfdataid'); |
var filedata_id = datadiv.getAttribute('lfdataid'); |
| 296 |
|
|
| 297 |
transaction.executeSql("UPDATE filedata set datablob=? where id=?;", |
transaction.executeSql("UPDATE filedata set datablob=? where id=?;", |
| 298 |
[ contents, filedata_id ], this.nullDataHandler, this.errorHandler); |
[ contents, filedata_id ], TextEditor.nullDataHandler, TextEditor.errorHandler); |
| 299 |
|
|
| 300 |
alert('Saved.'); |
alert('Saved.'); |
| 301 |
} |
} |
| 308 |
|
|
| 309 |
this.db.transaction( |
this.db.transaction( |
| 310 |
function (transaction) { |
function (transaction) { |
| 311 |
var myfunc = new Function("transaction", "results", "transaction.executeSql('INSERT INTO files (name, filedata_id) VALUES (?, ?);', [ '"+fname+"', results.insertId], "+this.name+".nullDataHandler, "+this.name+".killTransaction);"); |
var myfunc = new Function("transaction", "results", "transaction.executeSql('INSERT INTO files (name, filedata_id) VALUES (?, ?);', [ '"+fname+"', results.insertId], TextEditor.nullDataHandler, TextEditor.killTransaction);"); |
| 312 |
|
|
| 313 |
transaction.executeSql('INSERT INTO filedata (datablob) VALUES (?);', [content], myfunc, this.errorHandler); |
transaction.executeSql('INSERT INTO filedata (datablob) VALUES (?);', [content], myfunc,TextEditor.errorHandler); |
| 314 |
} |
} |
| 315 |
); |
); |
| 316 |
datadiv.textContent=""; |
datadiv.textContent=""; |
| 343 |
"fileSelector();"+ |
"fileSelector();"+ |
| 344 |
"}"+ |
"}"+ |
| 345 |
"}"+ |
"}"+ |
| 346 |
"}, "+this.name+".errorHandler);") |
"}, TextEditor.errorHandler);") |
| 347 |
); |
); |
| 348 |
} |
} |
| 349 |
|
|
| 353 |
|
|
| 354 |
this.db.transaction( |
this.db.transaction( |
| 355 |
function (transaction) { |
function (transaction) { |
| 356 |
transaction.executeSql('SELECT * from files, filedata where files.name=? and files.filedata_id = filedata.id;', [name], eval(func), this.errorHandler); |
transaction.executeSql('SELECT * from files, filedata where files.name=? and files.filedata_id = filedata.id;', [name], eval(func), TextEditor.errorHandler); |
| 357 |
} |
} |
| 358 |
); |
); |
| 359 |
} |
} |
| 404 |
"}"+ |
"}"+ |
| 405 |
"menuDiv.innerHTML='<H1 class=\"title\">'+MainTitle+'</H1>'+"+this.name+".createMenuBar()+filelist;"+ |
"menuDiv.innerHTML='<H1 class=\"title\">'+MainTitle+'</H1>'+"+this.name+".createMenuBar()+filelist;"+ |
| 406 |
"}"+ |
"}"+ |
| 407 |
"}, "+this.name+".errorHandler);") |
"}, TextEditor.errorHandler);") |
| 408 |
); |
); |
| 409 |
} |
} |
| 410 |
|
|
| 575 |
popupDiv.style.display='block'; |
popupDiv.style.display='block'; |
| 576 |
} |
} |
| 577 |
|
|
| 578 |
|
/////// Access Server |
| 579 |
|
function newXMLRequest(){ |
| 580 |
|
if(this.XMLHttpRequest){ |
| 581 |
|
return new XMLHttpRequest(); |
| 582 |
|
}else { |
| 583 |
|
return new ActiveXObject("Microsoft.XMLHTTP"); |
| 584 |
|
} |
| 585 |
|
} |
| 586 |
|
|
| 587 |
|
function createRequestData(data){ |
| 588 |
|
var str="filetype=svg"; |
| 589 |
|
for (var i in data){ |
| 590 |
|
str = str +"&"+ i +"="+encodeURIComponent(data[i]); |
| 591 |
|
} |
| 592 |
|
return str; |
| 593 |
|
} |
| 594 |
|
|
| 595 |
|
function postRequest(url, data, func){ |
| 596 |
|
var postData=createRequestData(data); |
| 597 |
|
var obj=newXMLRequest(); |
| 598 |
|
|
| 599 |
|
try{ |
| 600 |
|
obj.onreadystatechange = function(){ |
| 601 |
|
if (obj.readyState == 4){ |
| 602 |
|
if (obj.status == 200){ |
| 603 |
|
func(obj.responseText); |
| 604 |
|
}else{ |
| 605 |
|
alert("Fail to postRequest: status="+obj.status); |
| 606 |
|
return; |
| 607 |
|
} |
| 608 |
|
} |
| 609 |
|
} |
| 610 |
|
obj.open("POST", url, true); |
| 611 |
|
obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); |
| 612 |
|
obj.send(postData); |
| 613 |
|
}catch(e){ |
| 614 |
|
} |
| 615 |
|
} |
| 616 |
|
|
| 617 |
|
function commnadFinishAlert(s){ |
| 618 |
|
alert(s); |
| 619 |
|
} |
| 620 |
|
|
| 621 |
|
function uploadFileData(transaction, results){ |
| 622 |
|
var data = results.rows.item(0); |
| 623 |
|
var updata = new Array(0); |
| 624 |
|
updata['name']= data['name']; |
| 625 |
|
updata['datalob'] = data['datablob']; |
| 626 |
|
updata['cmd'] = 'upload' |
| 627 |
|
|
| 628 |
|
postRequest(Config.MgrPath+iSlideMgr, updata, commnadFinishAlert); |
| 629 |
|
} |
| 630 |
|
|
| 631 |
|
function uploadFile(name){ |
| 632 |
|
Editor.getFile(name, 'uploadFileData'); |
| 633 |
|
} |
| 634 |
|
|
| 635 |
|
function getRemoteFileList(){ |
| 636 |
|
var data=new Array(); |
| 637 |
|
data['name'] = "SVG"; |
| 638 |
|
data['cmd'] = "list"; |
| 639 |
|
postRequest(Config.MgrPath+iSlideMgr, data, fileSelectorOnServer); |
| 640 |
|
} |
| 641 |
|
|
| 642 |
|
function previewRemoteFile(content){ |
| 643 |
|
previewFile(content); |
| 644 |
|
setMode('Preview'); |
| 645 |
|
} |
| 646 |
|
|
| 647 |
|
function getRemoteFile(name){ |
| 648 |
|
var data=new Array(); |
| 649 |
|
data['name'] = name; |
| 650 |
|
data['cmd'] = "get"; |
| 651 |
|
postRequest(Config.MgrPath+iSlideMgr, data, previewRemoteFile); |
| 652 |
|
} |
| 653 |
|
|
| 654 |
|
function saveRemoteFile(content){ |
| 655 |
|
var datadiv = document.getElementById('tempdata'); |
| 656 |
|
var fname = datadiv.getAttribute('lfname'); |
| 657 |
|
Editor.saveContentWithFilename(fname, content); |
| 658 |
|
} |
| 659 |
|
|
| 660 |
|
function downloadFile(name){ |
| 661 |
|
var data=new Array(); |
| 662 |
|
data['name'] = name; |
| 663 |
|
data['cmd'] = "get"; |
| 664 |
|
var datadiv = document.getElementById('tempdata'); |
| 665 |
|
datadiv.setAttribute('lfname', name); |
| 666 |
|
postRequest(Config.MgrPath+iSlideMgr, data, saveRemoteFile); |
| 667 |
|
} |
| 668 |
|
|
| 669 |
|
function showRemoteFile(name){ |
| 670 |
|
getRemoteFile(name); |
| 671 |
|
} |
| 672 |
|
|
| 673 |
|
function downloadToFile(name){ |
| 674 |
|
var downloadForm = ""; |
| 675 |
|
downloadForm += "<form action=\"iSlideManager.php\" method=\"post\">"; |
| 676 |
|
downloadForm += "<input type=\"hidden\" name=\"cmd\" value=\"download\">"; |
| 677 |
|
downloadForm += "<input type=\"hidden\" name=\"name\" value=\""+name+"\">"; |
| 678 |
|
downloadForm += "<input type=\"hidden\" name=\"filetype\" value=\"svg\">"; |
| 679 |
|
downloadForm += "<input type=\"submit\">"; |
| 680 |
|
downloadForm += "</form>"; |
| 681 |
|
|
| 682 |
|
var cmdForm = document.getElementById('cmdForm'); |
| 683 |
|
cmdForm.innerHTML = downloadForm; |
| 684 |
|
cmdForm.firstChild.submit(); |
| 685 |
|
} |
| 686 |
|
|
| 687 |
|
|
| 688 |
///// |
///// |
| 689 |
/// EditMenu |
/// EditMenu |
| 690 |
function insertStr(str, len){ |
function insertStr(str, len){ |
| 1744 |
return str.replace(/(^\s+)|(\s+$)/g, ""); |
return str.replace(/(^\s+)|(\s+$)/g, ""); |
| 1745 |
} |
} |
| 1746 |
|
|
|
/////// Access Server |
|
|
function newXMLRequest(){ |
|
|
if(this.XMLHttpRequest){ |
|
|
return new XMLHttpRequest(); |
|
|
}else { |
|
|
return new ActiveXObject("Microsoft.XMLHTTP"); |
|
|
} |
|
|
} |
|
|
|
|
|
function createRequestData(data){ |
|
|
var str="filetype=svg"; |
|
|
for (var i in data){ |
|
|
str = str +"&"+ i +"="+encodeURIComponent(data[i]); |
|
|
} |
|
|
return str; |
|
|
} |
|
|
|
|
|
function postRequest(url, data, func){ |
|
|
var postData=createRequestData(data); |
|
|
var obj=newXMLRequest(); |
|
|
|
|
|
try{ |
|
|
obj.onreadystatechange = function(){ |
|
|
if (obj.readyState == 4){ |
|
|
if (obj.status == 200){ |
|
|
func(obj.responseText); |
|
|
}else{ |
|
|
alert("Fail to postRequest: status="+obj.status); |
|
|
return; |
|
|
} |
|
|
} |
|
|
} |
|
|
obj.open("POST", url, true); |
|
|
obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); |
|
|
obj.send(postData); |
|
|
}catch(e){ |
|
|
} |
|
|
} |
|
|
|
|
|
function commnadFinishAlert(s){ |
|
|
alert(s); |
|
|
} |
|
|
|
|
|
function uploadFileData(transaction, results){ |
|
|
var data = results.rows.item(0); |
|
|
var updata = new Array(0); |
|
|
updata['name']= data['name']; |
|
|
updata['datalob'] = data['datablob']; |
|
|
updata['cmd'] = 'upload' |
|
|
|
|
|
postRequest(Config.MgrPath+iSlideMgr, updata, commnadFinishAlert); |
|
|
} |
|
|
|
|
|
function uploadFile(name){ |
|
|
Editor.getFile(name, 'uploadFileData'); |
|
|
} |
|
|
|
|
|
function getRemoteFileList(){ |
|
|
var data=new Array(); |
|
|
data['name'] = "SVG"; |
|
|
data['cmd'] = "list"; |
|
|
postRequest(Config.MgrPath+iSlideMgr, data, fileSelectorOnServer); |
|
|
} |
|
|
|
|
|
function previewRemoteFile(content){ |
|
|
previewFile(content); |
|
|
setMode('Preview'); |
|
|
} |
|
|
|
|
|
function getRemoteFile(name){ |
|
|
var data=new Array(); |
|
|
data['name'] = name; |
|
|
data['cmd'] = "get"; |
|
|
postRequest(Config.MgrPath+iSlideMgr, data, previewRemoteFile); |
|
|
} |
|
|
|
|
|
function saveRemoteFile(content){ |
|
|
var datadiv = document.getElementById('tempdata'); |
|
|
var fname = datadiv.getAttribute('lfname'); |
|
|
Editor.saveContentWithFilename(fname, content); |
|
|
} |
|
|
|
|
|
function downloadFile(name){ |
|
|
var data=new Array(); |
|
|
data['name'] = name; |
|
|
data['cmd'] = "get"; |
|
|
var datadiv = document.getElementById('tempdata'); |
|
|
datadiv.setAttribute('lfname', name); |
|
|
postRequest(Config.MgrPath+iSlideMgr, data, saveRemoteFile); |
|
|
} |
|
|
|
|
|
function showRemoteFile(name){ |
|
|
getRemoteFile(name); |
|
|
} |
|
|
|
|
|
function downloadToFile(name){ |
|
|
var downloadForm = ""; |
|
|
downloadForm += "<form action=\"iSlideManager.php\" method=\"post\">"; |
|
|
downloadForm += "<input type=\"hidden\" name=\"cmd\" value=\"download\">"; |
|
|
downloadForm += "<input type=\"hidden\" name=\"name\" value=\""+name+"\">"; |
|
|
downloadForm += "<input type=\"hidden\" name=\"filetype\" value=\"svg\">"; |
|
|
downloadForm += "<input type=\"submit\">"; |
|
|
downloadForm += "</form>"; |
|
|
|
|
|
var cmdForm = document.getElementById('cmdForm'); |
|
|
cmdForm.innerHTML = downloadForm; |
|
|
cmdForm.firstChild.submit(); |
|
|
} |
|
|
|
|
| 1747 |
//////// Event Handler |
//////// Event Handler |
| 1748 |
function selectedRectangle(x, y, ex, ey){ |
function selectedRectangle(x, y, ex, ey){ |
| 1749 |
if(!svg_select) return null; |
if(!svg_select) return null; |