aboutsummaryrefslogtreecommitdiff
path: root/js/document/models/text.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/document/models/text.js')
-rwxr-xr-xjs/document/models/text.js57
1 files changed, 53 insertions, 4 deletions
diff --git a/js/document/models/text.js b/js/document/models/text.js
index ebf9993e..d1252b7d 100755
--- a/js/document/models/text.js
+++ b/js/document/models/text.js
@@ -7,7 +7,7 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
7//////////////////////////////////////////////////////////////////////// 7////////////////////////////////////////////////////////////////////////
8// 8//
9var Montage = require("montage/core/core").Montage, 9var Montage = require("montage/core/core").Montage,
10 BaseDocumentModel = require("js/document/models/text").BaseDocumentModel; 10 BaseDocumentModel = require("js/document/models/base").BaseDocumentModel;
11//////////////////////////////////////////////////////////////////////// 11////////////////////////////////////////////////////////////////////////
12// 12//
13exports.TextDocumentModel = Montage.create(BaseDocumentModel, { 13exports.TextDocumentModel = Montage.create(BaseDocumentModel, {
@@ -16,9 +16,58 @@ exports.TextDocumentModel = Montage.create(BaseDocumentModel, {
16 hasTemplate: { 16 hasTemplate: {
17 enumerable: false, 17 enumerable: false,
18 value: false 18 value: false
19 } 19 },
20 //////////////////////////////////////////////////////////////////// 20////////////////////////////////////////////////////////////////////
21 //////////////////////////////////////////////////////////////////// 21 //
22 save: {
23 enumerable: false,
24 value: function (callback) {
25 this.application.ninja.documentController.activeDocument.model.views.code.editor.save();//save to textarea
26
27 var self = this;
28
29 this.application.ninja.ioMediator.fileSave({
30 mode: ""+ self.file.extension,
31 file: self.file,
32 content:self.views.code.textArea.value
33 }, this.handleSaved.bind({callback: callback, model: this}));
34 }
35 },
36////////////////////////////////////////////////////////////////////
37 //
38 handleSaved: {
39 value: function (result) {
40 //
41 if (result.status === 204) {
42 this.model.needsSave = false;
43 }
44 //
45 if (this.callback) this.callback(result);
46 }
47 },
48 ////////////////////////////////////////////////////////////////////
49 //
50 close: {
51 value: function (view, callback) {
52 //Outcome of close (pending on save logic)
53 var success;
54 //
55 if (this.needsSave) {
56 //Prompt user to save of lose data
57 } else {
58 //Close file
59 success = true;
60 }
61 //
62 this.parentContainer.removeChild(this.views.code.textViewContainer);
63 this.application.ninja.stage.showCodeViewBar(false);
64 this.application.ninja.stage.restoreAllPanels();
65 this.views.code = null;
66
67 //
68 return success;
69 }
70 }
22}); 71});
23//////////////////////////////////////////////////////////////////////// 72////////////////////////////////////////////////////////////////////////
24//////////////////////////////////////////////////////////////////////// \ No newline at end of file 73//////////////////////////////////////////////////////////////////////// \ No newline at end of file