diff options
author | Jose Antonio Marquez | 2012-02-12 16:50:33 -0800 |
---|---|---|
committer | Jose Antonio Marquez | 2012-02-12 16:50:33 -0800 |
commit | b1fc4f84d92efeaa33ec239b662235c9e8218d0c (patch) | |
tree | 8f8c9aacb3c2a2315b8f44ca4400dfea95e21833 /js/io | |
parent | 9f2356c48b831d32d7278648656fe44b98bc4a1f (diff) | |
download | ninja-b1fc4f84d92efeaa33ec239b662235c9e8218d0c.tar.gz |
File Save (HTML only)
Added the ability to save an HTML file from design view, need to add CSS detection and saving (of styles in <style> only). Also need to add 'Save All' for all file attached to the HTML file.
Diffstat (limited to 'js/io')
-rwxr-xr-x | js/io/document/html-document.js | 24 | ||||
-rwxr-xr-x | js/io/system/coreioapi.js | 2 | ||||
-rwxr-xr-x | js/io/system/fileio.js | 28 |
3 files changed, 50 insertions, 4 deletions
diff --git a/js/io/document/html-document.js b/js/io/document/html-document.js index fbb34a1d..2ece76c5 100755 --- a/js/io/document/html-document.js +++ b/js/io/document/html-document.js | |||
@@ -14,6 +14,7 @@ var HTMLDocument = exports.HTMLDocument = Montage.create(baseDocumentModule.Base | |||
14 | _htmlTemplateUrl: { value: "user-document-templates/montage-application-cloud/index.html", enumerable: false}, | 14 | _htmlTemplateUrl: { value: "user-document-templates/montage-application-cloud/index.html", enumerable: false}, |
15 | _iframe: { value: null, enumerable: false }, | 15 | _iframe: { value: null, enumerable: false }, |
16 | _server: { value: null, enumerable: false }, | 16 | _server: { value: null, enumerable: false }, |
17 | _templateDocument: { value: null, enumerable: false }, | ||
17 | _selectionModel: { value: [], enumerable: false }, | 18 | _selectionModel: { value: [], enumerable: false }, |
18 | _undoModel: { value: { "queue" : [], "position" : 0 }, enumerable: false}, | 19 | _undoModel: { value: { "queue" : [], "position" : 0 }, enumerable: false}, |
19 | 20 | ||
@@ -359,6 +360,10 @@ var HTMLDocument = exports.HTMLDocument = Montage.create(baseDocumentModule.Base | |||
359 | // | 360 | // |
360 | handleEvent: { | 361 | handleEvent: { |
361 | value: function(event){ | 362 | value: function(event){ |
363 | //TODO: Clean up, using for prototyping save | ||
364 | this._templateDocument = {}; | ||
365 | this._templateDocument.head = this.iframe.contentWindow.document.getElementById("userHead");; | ||
366 | this._templateDocument.body = this.iframe.contentWindow.document.getElementById("UserContent");; | ||
362 | // | 367 | // |
363 | this.documentRoot = this.iframe.contentWindow.document.getElementById("UserContent"); | 368 | this.documentRoot = this.iframe.contentWindow.document.getElementById("UserContent"); |
364 | this.stageBG = this.iframe.contentWindow.document.getElementById("stageBG"); | 369 | this.stageBG = this.iframe.contentWindow.document.getElementById("stageBG"); |
@@ -373,7 +378,7 @@ var HTMLDocument = exports.HTMLDocument = Montage.create(baseDocumentModule.Base | |||
373 | this.iframe.contentWindow.document.getElementById("userHead").innerHTML = this._userDocument.content.head; | 378 | this.iframe.contentWindow.document.getElementById("userHead").innerHTML = this._userDocument.content.head; |
374 | 379 | ||
375 | 380 | ||
376 | 381 | //TODO: Look at code below and clean up | |
377 | 382 | ||
378 | 383 | ||
379 | 384 | ||
@@ -461,7 +466,21 @@ var HTMLDocument = exports.HTMLDocument = Montage.create(baseDocumentModule.Base | |||
461 | * public method | 466 | * public method |
462 | * | 467 | * |
463 | */ | 468 | */ |
464 | save:{ | 469 | //////////////////////////////////////////////////////////////////// |
470 | // | ||
471 | save: { | ||
472 | enumerable: false, | ||
473 | value: function () { | ||
474 | //TODO: Add code view logic | ||
475 | return {mode: 'html', document: this._userDocument, head: this._templateDocument.head.innerHTML, body: this._templateDocument.body.innerHTML}; | ||
476 | } | ||
477 | } | ||
478 | //////////////////////////////////////////////////////////////////// | ||
479 | //////////////////////////////////////////////////////////////////// | ||
480 | |||
481 | |||
482 | /* | ||
483 | save:{ | ||
465 | value:function(){ | 484 | value:function(){ |
466 | try{ | 485 | try{ |
467 | if(this.currentView === "design"){ | 486 | if(this.currentView === "design"){ |
@@ -477,5 +496,6 @@ var HTMLDocument = exports.HTMLDocument = Montage.create(baseDocumentModule.Base | |||
477 | } | 496 | } |
478 | } | 497 | } |
479 | } | 498 | } |
499 | */ | ||
480 | 500 | ||
481 | }); \ No newline at end of file | 501 | }); \ No newline at end of file |
diff --git a/js/io/system/coreioapi.js b/js/io/system/coreioapi.js index b19f1e70..614b0850 100755 --- a/js/io/system/coreioapi.js +++ b/js/io/system/coreioapi.js | |||
@@ -450,7 +450,7 @@ window.hack = function (name, type) { | |||
450 | enumerable: false, | 450 | enumerable: false, |
451 | value: function(file) { | 451 | value: function(file) { |
452 | var retValue = { success:null, status:null }; | 452 | var retValue = { success:null, status:null }; |
453 | if(file && file.uri && file.uri.length && file.contents && file.contents.length) { | 453 | if(file && file.uri && file.uri.length && file.contents) { |
454 | try { | 454 | try { |
455 | var serviceURL = this._prepareServiceURL(this.fileServiceURL, file.uri), | 455 | var serviceURL = this._prepareServiceURL(this.fileServiceURL, file.uri), |
456 | xhr = new XMLHttpRequest(); | 456 | xhr = new XMLHttpRequest(); |
diff --git a/js/io/system/fileio.js b/js/io/system/fileio.js index 045fa2fd..f363ef9f 100755 --- a/js/io/system/fileio.js +++ b/js/io/system/fileio.js | |||
@@ -104,13 +104,39 @@ exports.FileIo = Montage.create(Component, { | |||
104 | // | 104 | // |
105 | saveFile: { | 105 | saveFile: { |
106 | enumerable: true, | 106 | enumerable: true, |
107 | value: function() { | 107 | value: function(file) { |
108 | //Checking for API to be available | 108 | //Checking for API to be available |
109 | if (!this.application.ninja.coreIoApi.cloudAvailable()) { | 109 | if (!this.application.ninja.coreIoApi.cloudAvailable()) { |
110 | //API not available, no IO action taken | 110 | //API not available, no IO action taken |
111 | return null; | 111 | return null; |
112 | } | 112 | } |
113 | //Peforming check for file to exist | ||
114 | var check = this.application.ninja.coreIoApi.fileExists({uri: file.uri}), status, result; | ||
115 | //Upon successful check, handling results | ||
116 | if (check.success) { | ||
117 | //Handling status of check | ||
118 | switch (check.status) { | ||
119 | case 204: | ||
120 | //File exists | ||
121 | result = this.application.ninja.coreIoApi.updateFile(file); | ||
122 | status = 204; | ||
123 | break; | ||
124 | case 404://createFile | ||
125 | //File does not exists, ready to be created | ||
126 | result = this.application.ninja.coreIoApi.createFile(file); | ||
127 | status = 404; | ||
128 | break; | ||
129 | default: | ||
130 | //Unknown Error | ||
131 | status = 500; | ||
132 | break; | ||
133 | } | ||
134 | } else { | ||
135 | //Unknown Error | ||
136 | status = 500; | ||
137 | } | ||
113 | // | 138 | // |
139 | return {status: status, result: result}; | ||
114 | } | 140 | } |
115 | }, | 141 | }, |
116 | //////////////////////////////////////////////////////////////////// | 142 | //////////////////////////////////////////////////////////////////// |