aboutsummaryrefslogtreecommitdiff
path: root/js/document/models/base.js
diff options
context:
space:
mode:
authorArmen Kesablyan2012-06-19 00:45:26 -0700
committerArmen Kesablyan2012-06-19 00:45:26 -0700
commitc59eb371559a3061ce53223e249ca97daace5968 (patch)
treef9540e26c0f273d35f92010605da65dd85bbe70c /js/document/models/base.js
parent0f040acabfb7a4bf3138debec5aff869487ceb11 (diff)
parent918a4f5870e972b6e4e301c3237e065a1ffd26f5 (diff)
downloadninja-c59eb371559a3061ce53223e249ca97daace5968.tar.gz
Merge branch 'master' of github.com:Motorola-Mobility/ninja-internal
Diffstat (limited to 'js/document/models/base.js')
-rwxr-xr-xjs/document/models/base.js69
1 files changed, 51 insertions, 18 deletions
diff --git a/js/document/models/base.js b/js/document/models/base.js
index 5fa06259..8ff52132 100755
--- a/js/document/models/base.js
+++ b/js/document/models/base.js
@@ -6,8 +6,9 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
6 6
7//////////////////////////////////////////////////////////////////////// 7////////////////////////////////////////////////////////////////////////
8// 8//
9var Montage = require("montage/core/core").Montage, 9var Montage = require("montage/core/core").Montage,
10 Component = require("montage/ui/component").Component; 10 Component = require("montage/ui/component").Component,
11 NinjaPrompt = require("js/components/prompt.reel").NinjaPrompt;
11//////////////////////////////////////////////////////////////////////// 12////////////////////////////////////////////////////////////////////////
12// 13//
13exports.BaseDocumentModel = Montage.create(Component, { 14exports.BaseDocumentModel = Montage.create(Component, {
@@ -65,6 +66,9 @@ exports.BaseDocumentModel = Montage.create(Component, {
65 _selection: { 66 _selection: {
66 value: [] 67 value: []
67 }, 68 },
69 domContainer: {
70 value: null
71 },
68 //////////////////////////////////////////////////////////////////// 72 ////////////////////////////////////////////////////////////////////
69 // 73 //
70 selection: { 74 selection: {
@@ -264,30 +268,59 @@ exports.BaseDocumentModel = Montage.create(Component, {
264 if (this.callback) this.callback(result); 268 if (this.callback) this.callback(result);
265 } 269 }
266 }, 270 },
271 ////////////////////////////////////////////////////////////////////
272 //
273 handleSavePrompt: {
274 value: function (continueToClose, callback) {
275 //TODO: Perhaps add logic to save the file is the user wants
276 if (continueToClose) {
277 if (callback) callback();
278 } else {
279 //User canceled
280 //this.saveAll(null, callback);
281 }
282 }
283 },
267 //////////////////////////////////////////////////////////////////// 284 ////////////////////////////////////////////////////////////////////
268 //TODO: Implement better logic to include different views on single document 285 //TODO: Implement better logic to include different views on single document
269 close: { 286 close: {
270 value: function (view, callback) { 287 value: function (view, callback) {
271 //Outcome of close (pending on save logic) 288 //Checking if files needs to be saved to avoid losing data
272 var success;
273 //
274 if (this.needsSave) { 289 if (this.needsSave) {
275 //TODO: Prompt user to save or lose data 290 //Creating prompt to ask user to save the file
291 var prompt = NinjaPrompt.create();
292 prompt.initialize('confirm', {message: 'Do you want to save the changes you made in the document '+this.file.name+'?\n\nYour changes will be lost if you do not save them.'}, function (result){this.handleSavePrompt(result, callback);}.bind(this));
293 //Showing the prompt, it will make callback with user input
294 prompt.show();
276 } else { 295 } else {
277 //Close file 296 //TODO: Add support for other views
278 success = true; 297 if (!view || view === 'design') {
279 } 298 this.closeView('design');
280 //Checking for view mode to close 299 }
281 if (this.views.design && (!view || view === 'design')) { 300 //Making callback
282 //TODO: Create a destroy method, this is messy 301 if (callback) callback();
283 this.views.design.pauseAndStopVideos();
284 this.parentContainer.removeChild(this.views.design.iframe);
285 this.views.design = null;
286 } 302 }
287 //Returning result of operation 303
288 return success;
289 } 304 }
290 } 305 },
306 ////////////////////////////////////////////////////////////////////
307 //
308 closeView: {
309 value: function (view) {
310 //Checking for view mode to close
311 switch (view.toLowerCase()) {
312 case 'design':
313 //TODO: Make into clean method in the design view
314 this.views.design.pauseAndStopVideos();
315 this.parentContainer.removeChild(this.views.design.iframe);
316 this.views.design = null;
317 break;
318 default:
319 //TODO: Error?
320 break;
321 }
322 }
323 }
291 //////////////////////////////////////////////////////////////////// 324 ////////////////////////////////////////////////////////////////////
292 //////////////////////////////////////////////////////////////////// 325 ////////////////////////////////////////////////////////////////////
293}); 326});