aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rwxr-xr-xjs/components/ui/icon-list-basic/icon.reel/icon.js14
-rwxr-xr-xjs/components/ui/tree-basic/treeItem.reel/treeItem.js14
-rwxr-xr-xjs/controllers/document-controller.js68
-rwxr-xr-xjs/controllers/selection-controller.js21
-rwxr-xr-xjs/controllers/styles-controller.js10
-rwxr-xr-xjs/controllers/undo-controller.js17
-rwxr-xr-xjs/data/menu-data.js6
-rwxr-xr-xjs/document/html-document.js242
-rwxr-xr-xjs/helper-classes/3D/draw-utils.js10
-rw-r--r--js/io/system/ninjalibrary.json2
-rwxr-xr-xjs/io/ui/file-picker/file-picker-controller.js2
-rwxr-xr-xjs/io/ui/file-picker/file-picker-model.js6
-rw-r--r--js/io/ui/file-picker/picker-navigator.reel/picker-navigator.js13
-rw-r--r--js/io/ui/save-as-dialog.reel/save-as-dialog.js4
-rw-r--r--js/mediators/io-mediator.js234
-rwxr-xr-xjs/panels/Panel.reel/Panel.html20
-rwxr-xr-xjs/panels/Panel.reel/Panel.js4
-rwxr-xr-xjs/panels/PanelContainer.reel/PanelContainer.js77
-rw-r--r--js/panels/Timeline/Collapser.js62
-rw-r--r--js/panels/Timeline/Layer.reel/Layer.html129
-rw-r--r--js/panels/Timeline/Layer.reel/Layer.js172
-rw-r--r--js/panels/Timeline/TimelinePanel.reel/TimelinePanel.html13
-rw-r--r--js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js478
-rw-r--r--js/panels/Timeline/TimelineTrack.reel/TimelineTrack.html136
-rw-r--r--js/panels/Timeline/TimelineTrack.reel/TimelineTrack.js116
-rwxr-xr-xjs/stage/layout.js10
-rwxr-xr-xjs/stage/stage-view.reel/stage-view.js5
27 files changed, 1131 insertions, 754 deletions
diff --git a/js/components/ui/icon-list-basic/icon.reel/icon.js b/js/components/ui/icon-list-basic/icon.reel/icon.js
index 72adbfa1..1ef6e277 100755
--- a/js/components/ui/icon-list-basic/icon.reel/icon.js
+++ b/js/components/ui/icon-list-basic/icon.reel/icon.js
@@ -174,21 +174,17 @@ var Icon = exports.Icon = Montage.create(Component, {
174 enumerable: true, 174 enumerable: true,
175 value:{ 175 value:{
176 "img_root":"images/picker/", 176 "img_root":"images/picker/",
177 ".png":"png_file.png",
178 ".jpg":"jpeg_file.png",
179 ".js":"js_file.png", 177 ".js":"js_file.png",
178 ".json":"json_file.png",
180 ".css":"css_file.png", 179 ".css":"css_file.png",
181 ".html":"html_file.png", 180 ".html":"html_file.png",
182 ".xml":"xml_file.png", 181 ".xml":"xml_file.png",
183 ".php":"php_file.png", 182 ".php":"php_file.png",
183 ".pl":"pl_file.png",
184 ".py":"py_file.png",
185 ".rb":"rb_file.png",
184 ".doc":"doc_file.png", 186 ".doc":"doc_file.png",
185 ".docx":"doc_file.png", 187 ".txt":"txt_file.png",
186 ".rtf":"rtf_file.png",
187 ".pdf":"pdf_file.png",
188 ".zip":"zip_file.png",
189 ".rar":"zip_file.png",
190 ".app":"executable.png",
191 ".exe":"executable.png",
192 "file_default":"file.png", 188 "file_default":"file.png",
193 "directory":"folder.png" 189 "directory":"folder.png"
194 } 190 }
diff --git a/js/components/ui/tree-basic/treeItem.reel/treeItem.js b/js/components/ui/tree-basic/treeItem.reel/treeItem.js
index 4c71cb6b..a67dad43 100755
--- a/js/components/ui/tree-basic/treeItem.reel/treeItem.js
+++ b/js/components/ui/tree-basic/treeItem.reel/treeItem.js
@@ -242,21 +242,17 @@ exports.TreeItem = Montage.create(Component, {
242 enumerable: true, 242 enumerable: true,
243 value:{ 243 value:{
244 "img_root":"images/picker/", 244 "img_root":"images/picker/",
245 ".png":"png_file.png",
246 ".jpg":"jpeg_file.png",
247 ".js":"js_file.png", 245 ".js":"js_file.png",
246 ".json":"json_file.png",
248 ".css":"css_file.png", 247 ".css":"css_file.png",
249 ".html":"html_file.png", 248 ".html":"html_file.png",
250 ".xml":"xml_file.png", 249 ".xml":"xml_file.png",
251 ".php":"php_file.png", 250 ".php":"php_file.png",
251 ".pl":"pl_file.png",
252 ".py":"py_file.png",
253 ".rb":"rb_file.png",
252 ".doc":"doc_file.png", 254 ".doc":"doc_file.png",
253 ".docx":"doc_file.png", 255 ".txt":"txt_file.png",
254 ".rtf":"rtf_file.png",
255 ".pdf":"pdf_file.png",
256 ".zip":"zip_file.png",
257 ".rar":"zip_file.png",
258 ".app":"executable.png",
259 ".exe":"executable.png",
260 "file_default":"file.png", 256 "file_default":"file.png",
261 "directory":"folder.png" 257 "directory":"folder.png"
262 } 258 }
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js
index 64ff2c7e..87e93465 100755
--- a/js/controllers/document-controller.js
+++ b/js/controllers/document-controller.js
@@ -60,8 +60,9 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
60 this.eventManager.addEventListener("executeSave", this, false); 60 this.eventManager.addEventListener("executeSave", this, false);
61 this.eventManager.addEventListener("executeSaveAs", this, false); 61 this.eventManager.addEventListener("executeSaveAs", this, false);
62 this.eventManager.addEventListener("executeSaveAll", this, false); 62 this.eventManager.addEventListener("executeSaveAll", this, false);
63 this.eventManager.addEventListener("executeFileClose", this, false);
63 64
64 this.eventManager.addEventListener("recordStyleChanged", this, false); 65 this.eventManager.addEventListener("styleSheetDirty", this, false);
65 66
66 } 67 }
67 }, 68 },
@@ -76,11 +77,14 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
76 // 77 //
77 handleWebRequest: { 78 handleWebRequest: {
78 value: function (request) { 79 value: function (request) {
79 if (this._hackRootFlag && request.url.indexOf('js/document/templates/montage-html') !== -1) { 80 //TODO: Check if frameId is proper
81 if (this._hackRootFlag && request.parentFrameId !== -1) {
80 //TODO: Optimize creating string 82 //TODO: Optimize creating string
81 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 //console.log(this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1], request.url);
82 } 84 //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]};
85 return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split(chrome.extension.getURL('js/document/templates/montage-html/'))[1]};
83 } 86 }
87 }
84 }, 88 },
85 //////////////////////////////////////////////////////////////////// 89 ////////////////////////////////////////////////////////////////////
86 // 90 //
@@ -154,17 +158,29 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
154 if((typeof this.activeDocument !== "undefined") && this.application.ninja.coreIoApi.cloudAvailable()){ 158 if((typeof this.activeDocument !== "undefined") && this.application.ninja.coreIoApi.cloudAvailable()){
155 saveAsSettings.fileName = this.activeDocument.name; 159 saveAsSettings.fileName = this.activeDocument.name;
156 saveAsSettings.folderUri = this.activeDocument.uri.substring(0, this.activeDocument.uri.lastIndexOf("/")); 160 saveAsSettings.folderUri = this.activeDocument.uri.substring(0, this.activeDocument.uri.lastIndexOf("/"));
157 //add callback 161 saveAsSettings.callback = this.saveAsCallback.bind(this);
158 this.application.ninja.newFileController.showSaveAsDialog(saveAsSettings); 162 this.application.ninja.newFileController.showSaveAsDialog(saveAsSettings);
159 } 163 }
160 } 164 }
161 }, 165 },
162 166 ////////////////////////////////////////////////////////////////////
167 handleExecuteFileClose:{
168 value: function(event) {
169 if(this.activeDocument && this.application.ninja.coreIoApi.cloudAvailable()){
170 this.closeDocument(this.activeDocument.uuid);
171 }
172 }
173 },
174 ////////////////////////////////////////////////////////////////////
163 // 175 //
164 fileSaveResult: { 176 fileSaveResult: {
165 value: function (result) { 177 value: function (result) {
166 if(result.status === 204){ 178 if((result.status === 204) || (result.status === 404)){//204=>existing file || 404=>new file... saved
167 this.activeDocument.needsSave = false; 179 this.activeDocument.needsSave = false;
180 if(this.application.ninja.currentDocument !== null){
181 //clear Dirty StyleSheets for the saved document
182 this.application.ninja.stylesController.clearDirtyStyleSheets(this.application.ninja.currentDocument);
183 }
168 } 184 }
169 } 185 }
170 }, 186 },
@@ -246,6 +262,29 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
246 }, 262 },
247 //////////////////////////////////////////////////////////////////// 263 ////////////////////////////////////////////////////////////////////
248 // 264 //
265 saveAsCallback:{
266 value:function(saveAsDetails){
267 var fileUri = null, filename = saveAsDetails.filename, destination = saveAsDetails.destination;
268 //update document metadata
269 this.activeDocument.name = ""+filename;
270 //prepare new file uri
271 if(destination && (destination.charAt(destination.length -1) !== "/")){
272 destination = destination + "/";
273 }
274 fileUri = destination+filename;
275
276 this.activeDocument.uri = fileUri;
277 //save a new file
278 //use the ioMediator.fileSaveAll when implemented
279 this.activeDocument._userDocument.name=filename;
280 this.activeDocument._userDocument.root=destination;
281 this.activeDocument._userDocument.uri=fileUri;
282 this.application.ninja.ioMediator.fileSave(this.activeDocument.save(), this.fileSaveResult.bind(this));
283 //
284