diff options
Diffstat (limited to 'js/controllers')
-rwxr-xr-x | js/controllers/document-controller.js | 49 | ||||
-rwxr-xr-x | js/controllers/styles-controller.js | 7 |
2 files changed, 29 insertions, 27 deletions
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js index c2aa1b6b..7491ef9f 100755 --- a/js/controllers/document-controller.js +++ b/js/controllers/document-controller.js | |||
@@ -66,35 +66,37 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
66 | 66 | ||
67 | 67 | ||
68 | 68 | ||
69 | handleWebRequest: { | ||
70 | value: function (request) { | ||
71 | if (request.url.indexOf('js/document/templates/montage-html') !== -1) { | ||
72 | 69 | ||
73 | //console.log(request); | ||
74 | 70 | ||
75 | //TODO: Figure out why active document is not available here | ||
76 | 71 | ||
77 | if (this._hackRootFlag) { | ||
78 | |||
79 | //console.log(request.url.split('/')[request.url.split('/').length-1]); | ||
80 | //console.log(this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController._activeDocument.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split('/')[request.url.split('/').length-1]); | ||
81 | 72 | ||
73 | //////////////////////////////////////////////////////////////////// | ||
74 | // | ||
75 | handleWebRequest: { | ||
76 | value: function (request) { | ||
77 | if (this._hackRootFlag && request.url.indexOf('js/document/templates/montage-html') !== -1) { | ||
78 | //TODO: Optimize creating string | ||
82 | return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split('/')[request.url.split('/').length-1]}; | 79 | return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split('/')[request.url.split('/').length-1]}; |
83 | } | 80 | } |
84 | } | 81 | } |
85 | } | ||
86 | }, | 82 | }, |
87 | 83 | //////////////////////////////////////////////////////////////////// | |
88 | 84 | // | |
89 | handleAppLoaded: { | 85 | handleAppLoaded: { |
90 | value: function() { | 86 | value: function() { |
91 | // | 87 | //Adding an intercept to resources loaded to ensure user assets load from cloud simulator |
92 | |||
93 | chrome.webRequest.onBeforeRequest.addListener(this.handleWebRequest.bind(this), {urls: ["<all_urls>"]}, ["blocking"]); | 88 | chrome.webRequest.onBeforeRequest.addListener(this.handleWebRequest.bind(this), {urls: ["<all_urls>"]}, ["blocking"]); |
94 | |||
95 | } | 89 | } |
96 | }, | 90 | }, |
91 | //////////////////////////////////////////////////////////////////// | ||
97 | 92 | ||
93 | |||
94 | |||
95 | |||
96 | |||
97 | |||
98 | |||
99 | |||
98 | handleExecuteFileOpen: { | 100 | handleExecuteFileOpen: { |
99 | value: function(event) { | 101 | value: function(event) { |
100 | var pickerSettings = event._event.settings || {}; | 102 | var pickerSettings = event._event.settings || {}; |
@@ -118,28 +120,21 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
118 | //TODO: Check for appropiate structures | 120 | //TODO: Check for appropiate structures |
119 | handleExecuteSave: { | 121 | handleExecuteSave: { |
120 | value: function(event) { | 122 | value: function(event) { |
123 | if(!!this.activeDocument){ | ||
121 | //Text and HTML document classes should return the same save object for fileSave | 124 | //Text and HTML document classes should return the same save object for fileSave |
122 | this.application.ninja.ioMediator.fileSave(this.activeDocument.save(), this.fileSaveResult.bind(this)); | 125 | this.application.ninja.ioMediator.fileSave(this.activeDocument.save(), this.fileSaveResult.bind(this)); |
123 | } | 126 | } |
127 | } | ||
124 | }, | 128 | }, |
125 | //////////////////////////////////////////////////////////////////// | 129 | //////////////////////////////////////////////////////////////////// |
126 | // | 130 | // |
127 | fileSaveResult: { | 131 | fileSaveResult: { |
128 | value: function (result) { | 132 | value: function (result) { |
129 | if(result.status === 204){ | 133 | if(result.status === 204){ |
130 | this.clearDocumentDirtyFlag(); | 134 | this.activeDocument.needsSave = false; |
131 | } | 135 | } |
132 | } | 136 | } |
133 | }, | 137 | }, |
134 | //////////////////////////////////////////////////////////////////// | ||
135 | |||
136 | |||
137 | clearDocumentDirtyFlag:{ | ||
138 | value: function(){ | ||
139 | this.activeDocument.dirtyFlag = false; | ||
140 | } | ||
141 | }, | ||
142 | |||
143 | 138 | ||
144 | createNewFile:{ | 139 | createNewFile:{ |
145 | value:function(newFileObj){ | 140 | value:function(newFileObj){ |
@@ -278,7 +273,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
278 | 273 | ||
279 | closeDocument: { | 274 | closeDocument: { |
280 | value: function(id) { | 275 | value: function(id) { |
281 | if(this.activeDocument.dirtyFlag === true){ | 276 | if(this.activeDocument.needsSave === true){ |
282 | //if file dirty then alert user to save | 277 | //if file dirty then alert user to save |
283 | } | 278 | } |
284 | 279 | ||
@@ -301,6 +296,8 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
301 | this._removeDocumentView(doc.container); | 296 | this._removeDocumentView(doc.container); |
302 | this.application.ninja.stage.stageView.hideRulers(); | 297 | this.application.ninja.stage.stageView.hideRulers(); |
303 | document.getElementById("iframeContainer").style.display="block"; | 298 | document.getElementById("iframeContainer").style.display="block"; |
299 | |||
300 | this.application.ninja.stage.hideCanvas(true); | ||
304 | } | 301 | } |
305 | } | 302 | } |
306 | }, | 303 | }, |
diff --git a/js/controllers/styles-controller.js b/js/controllers/styles-controller.js index 44ca50e1..885d710f 100755 --- a/js/controllers/styles-controller.js +++ b/js/controllers/styles-controller.js | |||
@@ -571,6 +571,10 @@ var stylesController = exports.StylesController = Montage.create(Component, { | |||
571 | rules = [], | 571 | rules = [], |
572 | win = element.ownerDocument.defaultView, | 572 | win = element.ownerDocument.defaultView, |
573 | self = this; | 573 | self = this; |
574 | |||
575 | if(!win) { | ||
576 | return null; | ||
577 | } | ||
574 | 578 | ||
575 | if(!omitPseudos) { | 579 | if(!omitPseudos) { |
576 | pseudos.concat(['link', 'visited', 'active', 'hover', 'focus', 'first-letter', | 580 | pseudos.concat(['link', 'visited', 'active', 'hover', 'focus', 'first-letter', |
@@ -674,8 +678,9 @@ var stylesController = exports.StylesController = Montage.create(Component, { | |||
674 | } | 678 | } |
675 | 679 | ||
676 | var matchingElements, i; | 680 | var matchingElements, i; |
681 | |||
677 | for(i = 0; i < specArr.length; i++) { | 682 | for(i = 0; i < specArr.length; i++) { |
678 | matchingElements = win.document.querySelectorAll(specArr[i].selector); | 683 | matchingElements = element.ownerDocument.querySelectorAll(specArr[i].selector); |
679 | if(nj.toArray(matchingElements).indexOf(element) !== -1) { | 684 | if(nj.toArray(matchingElements).indexOf(element) !== -1) { |
680 | return specArr[i]; | 685 | return specArr[i]; |
681 | } | 686 | } |