diff options
Diffstat (limited to 'js/io')
-rwxr-xr-x | js/io/system/coreioapi.js | 6 | ||||
-rw-r--r-- | js/io/system/ninjalibrary.js | 10 | ||||
-rw-r--r-- | js/io/system/ninjalibrary.json | 4 | ||||
-rwxr-xr-x | js/io/ui/file-picker/file-input-field.reel/file-input-field.js | 10 | ||||
-rwxr-xr-x | js/io/ui/file-picker/file-picker-controller.js | 11 | ||||
-rwxr-xr-x | js/io/ui/file-picker/file-picker-model.js | 6 | ||||
-rw-r--r-- | js/io/ui/file-picker/picker-navigator.reel/picker-navigator.js | 20 | ||||
-rwxr-xr-x | js/io/ui/new-file-dialog/new-file-location.reel/new-file-location.js | 12 | ||||
-rw-r--r-- | js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js | 80 | ||||
-rwxr-xr-x | js/io/ui/new-file-dialog/new-file-workflow-controller.js | 25 | ||||
-rw-r--r-- | js/io/ui/save-as-dialog.reel/save-as-dialog.js | 63 |
11 files changed, 192 insertions, 55 deletions
diff --git a/js/io/system/coreioapi.js b/js/io/system/coreioapi.js index f428a229..b0ffe2d8 100755 --- a/js/io/system/coreioapi.js +++ b/js/io/system/coreioapi.js | |||
@@ -217,7 +217,7 @@ exports.CoreIoApi = Montage.create(Component, { | |||
217 | value: function(serviceURL, path) { | 217 | value: function(serviceURL, path) { |
218 | var urlOut = path.replace(/\\/g,"/"); | 218 | var urlOut = path.replace(/\\/g,"/"); |
219 | urlOut = urlOut.replace(/:/g,""); | 219 | urlOut = urlOut.replace(/:/g,""); |
220 | urlOut = encodeURI(urlOut); | 220 | urlOut = encodeURIComponent(urlOut); |
221 | //add leading / if not already there | 221 | //add leading / if not already there |
222 | if((urlOut.length > 0) && (urlOut.charAt(0) !== "/")){ | 222 | if((urlOut.length > 0) && (urlOut.charAt(0) !== "/")){ |
223 | urlOut = "/" + urlOut; | 223 | urlOut = "/" + urlOut; |
@@ -393,12 +393,12 @@ exports.CoreIoApi = Montage.create(Component, { | |||
393 | xhr = new XMLHttpRequest(); | 393 | xhr = new XMLHttpRequest(); |
394 | // | 394 | // |
395 | xhr.open("POST", serviceURL, false); | 395 | xhr.open("POST", serviceURL, false); |
396 | xhr.responseType = "arraybuffer"; | 396 | //xhr.responseType = "arraybuffer"; |
397 | if(file.contentType && file.contentType.length) | 397 | if(file.contentType && file.contentType.length) |
398 | xhr.setRequestHeader("Content-Type", file.contentType); | 398 | xhr.setRequestHeader("Content-Type", file.contentType); |
399 | else | 399 | else |
400 | xhr.setRequestHeader("Content-Type", "text/plain"); | 400 | xhr.setRequestHeader("Content-Type", "text/plain"); |
401 | 401 | ||
402 | if (file.contents) | 402 | if (file.contents) |
403 | xhr.send(file.contents); | 403 | xhr.send(file.contents); |
404 | else | 404 | else |
diff --git a/js/io/system/ninjalibrary.js b/js/io/system/ninjalibrary.js index 960bdef9..201598fc 100644 --- a/js/io/system/ninjalibrary.js +++ b/js/io/system/ninjalibrary.js | |||
@@ -82,7 +82,7 @@ exports.NinjaLibrary = Montage.create(Object.prototype, { | |||
82 | // | 82 | // |
83 | copyLibToCloud: { | 83 | copyLibToCloud: { |
84 | enumerable: false, | 84 | enumerable: false, |
85 | value: function (path, libName) { | 85 | value: function (path, libName, callback) { |
86 | // | 86 | // |
87 | if(this.coreApi.directoryExists({uri: path+libName}).status === 404) { | 87 | if(this.coreApi.directoryExists({uri: path+libName}).status === 404) { |
88 | this.chromeApi.directoryContents(this.chromeApi.fileSystem.root, function (contents) { | 88 | this.chromeApi.directoryContents(this.chromeApi.fileSystem.root, function (contents) { |
@@ -91,7 +91,7 @@ exports.NinjaLibrary = Montage.create(Object.prototype, { | |||
91 | //Getting contents of library to be copied | 91 | //Getting contents of library to be copied |
92 | this.chromeApi.directoryContents(contents[i], function (lib) { | 92 | this.chromeApi.directoryContents(contents[i], function (lib) { |
93 | //Creating directory structure from subfolders | 93 | //Creating directory structure from subfolders |
94 | this.copyDirectoryToCloud(path, contents[i], path, function (status) {console.log(status)}); | 94 | this.copyDirectoryToCloud(path, contents[i], path, callback); |
95 | }.bind(this)); | 95 | }.bind(this)); |
96 | break; | 96 | break; |
97 | } | 97 | } |
@@ -116,7 +116,7 @@ exports.NinjaLibrary = Montage.create(Object.prototype, { | |||
116 | dir = folder.name; | 116 | dir = folder.name; |
117 | } | 117 | } |
118 | // | 118 | // |
119 | if (!this.coreApi.createDirectory({uri: dir})) { | 119 | if (!this.coreApi.createDirectory({uri: dir.replace(/\/\//gi, '/')})) { |
120 | //Error occured while creating folders | 120 | //Error occured while creating folders |
121 | return; | 121 | return; |
122 | } | 122 | } |
@@ -132,12 +132,14 @@ exports.NinjaLibrary = Montage.create(Object.prototype, { | |||
132 | this.chromeApi.fileContent(contents[i].fullPath, function (result) { | 132 | this.chromeApi.fileContent(contents[i].fullPath, function (result) { |
133 | // | 133 | // |
134 | //this.coreApi.createFile({uri: fileRoot+result.file.fullPath, contents: blob.getBlob(result.data.type), contentType: result.data.type}); | 134 | //this.coreApi.createFile({uri: fileRoot+result.file.fullPath, contents: blob.getBlob(result.data.type), contentType: result.data.type}); |
135 | this.coreApi.createFile({uri: fileRoot+result.file.fullPath, contents: result.content}); | 135 | this.coreApi.createFile({uri: (fileRoot+result.file.fullPath).replace(/\/\//gi, '/'), contents: result.content}); |
136 | }.bind(this)); | 136 | }.bind(this)); |
137 | } | 137 | } |
138 | } | 138 | } |
139 | }.bind(this)); | 139 | }.bind(this)); |
140 | } | 140 | } |
141 | //TODO Add logic for proper callback status(es) | ||
142 | if (callback) callback(true); | ||
141 | } | 143 | } |
142 | }, | 144 | }, |
143 | //////////////////////////////////////////////////////////////////// | 145 | //////////////////////////////////////////////////////////////////// |
diff --git a/js/io/system/ninjalibrary.json b/js/io/system/ninjalibrary.json index a61c30d1..29df45b8 100644 --- a/js/io/system/ninjalibrary.json +++ b/js/io/system/ninjalibrary.json | |||
@@ -1,6 +1,6 @@ | |||
1 | { | 1 | { |
2 | "libraries": [ | 2 | "libraries": [ |
3 | {"name": "Montage", "path": "/node_modules/descriptor.json", "version": "0.6.0.0"}, | 3 | {"name": "Montage", "path": "/node_modules/descriptor.json", "version": "0.7.0.0"}, |
4 | {"name": "RDGE", "path": "/assets/descriptor.json", "version": "0.5.0.1"} | 4 | {"name": "RDGE", "path": "/assets/descriptor.json", "version": "0.5.1.2"} |
5 | ] | 5 | ] |
6 | } \ No newline at end of file | 6 | } \ No newline at end of file |
diff --git a/js/io/ui/file-picker/file-input-field.reel/file-input-field.js b/js/io/ui/file-picker/file-input-field.reel/file-input-field.js index 651fd7fa..46e8b386 100755 --- a/js/io/ui/file-picker/file-input-field.reel/file-input-field.js +++ b/js/io/ui/file-picker/file-input-field.reel/file-input-field.js | |||
@@ -20,6 +20,7 @@ var FileInputField = exports.FileInputField = Montage.create(Component, { | |||
20 | this.eventManager.addEventListener("pickerSelectionsDone", function(evt){that.handleFileInputPickerSelectionsDone(evt);}, false); | 20 | this.eventManager.addEventListener("pickerSelectionsDone", function(evt){that.handleFileInputPickerSelectionsDone(evt);}, false); |
21 | 21 | ||
22 | this.newFileDirectory.addEventListener("keyup", function(evt){that.handleNewFileDirectoryOnkeyup(evt);}, false); | 22 | this.newFileDirectory.addEventListener("keyup", function(evt){that.handleNewFileDirectoryOnkeyup(evt);}, false); |
23 | this.newFileDirectory.addEventListener("paste", this, false); | ||
23 | } | 24 | } |
24 | }, | 25 | }, |
25 | 26 | ||
@@ -63,12 +64,21 @@ var FileInputField = exports.FileInputField = Montage.create(Component, { | |||
63 | } | 64 | } |
64 | }, | 65 | }, |
65 | 66 | ||
67 | handlePaste:{ | ||
68 | value:function(evt){ | ||
69 | evt.preventDefault(); | ||
70 | evt.target.value = evt.clipboardData.getData("Text"); | ||
71 | this.handleNewFileDirectoryOnkeyup(evt); | ||
72 | } | ||
73 | }, | ||
74 | |||
66 | handleNewFileDirectoryOnkeyup:{ | 75 | handleNewFileDirectoryOnkeyup:{ |
67 | value:function(evt){ | 76 | value:function(evt){ |
68 | if(this.newFileDirectory.value !== ""){ | 77 | if(this.newFileDirectory.value !== ""){ |
69 | var newFileDirectorySetEvent = document.createEvent("Events"); | 78 | var newFileDirectorySetEvent = document.createEvent("Events"); |
70 | newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false); | 79 | newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false); |
71 | newFileDirectorySetEvent.newFileDirectory = this.newFileDirectory.value; | 80 | newFileDirectorySetEvent.newFileDirectory = this.newFileDirectory.value; |
81 | newFileDirectorySetEvent.keyCode = evt.keyCode; | ||
72 | this.eventManager.dispatchEvent(newFileDirectorySetEvent); | 82 | this.eventManager.dispatchEvent(newFileDirectorySetEvent); |
73 | } | 83 | } |
74 | } | 84 | } |
diff --git a/js/io/ui/file-picker/file-picker-controller.js b/js/io/ui/file-picker/file-picker-controller.js index 3b19de83..436a50f3 100755 --- a/js/io/ui/file-picker/file-picker-controller.js +++ b/js/io/ui/file-picker/file-picker-controller.js | |||
@@ -23,6 +23,11 @@ var FilePickerController = exports.FilePickerController = Montage.create(require | |||
23 | } | 23 | } |
24 | }, | 24 | }, |
25 | 25 | ||
26 | pickerNavChoices:{ | ||
27 | enumerable: true, | ||
28 | value: null | ||
29 | }, | ||
30 | |||
26 | filePickerPopupType:{ | 31 | filePickerPopupType:{ |
27 | enumerable: false, | 32 | enumerable: false, |
28 | value: "filePicker" | 33 | value: "filePicker" |
@@ -104,7 +109,7 @@ var FilePickerController = exports.FilePickerController = Montage.create(require | |||
104 | aModel.topLevelDirectories = topLevelDirectories; | 109 | aModel.topLevelDirectories = topLevelDirectories; |
105 | 110 | ||
106 | if(!!topLevelDirectories && !!topLevelDirectories[0]){ | 111 | if(!!topLevelDirectories && !!topLevelDirectories[0]){ |
107 | aModel.currentRoot = topLevelDirectories[0].uri; | 112 | aModel.currentRoot = aModel.currentLogicalDrive = topLevelDirectories[0].uri; |
108 | } | 113 | } |
109 | 114 | ||
110 | //populate the last opened folder first, if none then populate default root | 115 | //populate the last opened folder first, if none then populate default root |
@@ -125,8 +130,6 @@ var FilePickerController = exports.FilePickerController = Montage.create(require | |||
125 | } | 130 | } |
126 | 131 | ||
127 | if(!!storedUri){ | 132 | if(!!storedUri){ |
128 | // This is depracated -- use decodeURI instead | ||
129 | //aModel.currentRoot = unescape(storedUri); | ||
130 | aModel.currentRoot = decodeURI(storedUri); | 133 | aModel.currentRoot = decodeURI(storedUri); |
131 | } | 134 | } |
132 | 135 | ||
@@ -149,7 +152,7 @@ var FilePickerController = exports.FilePickerController = Montage.create(require | |||
149 | writable:false, | 152 | writable:false, |
150 | enumerable:true, | 153 | enumerable:true, |
151 | value:function(callback, aModel){ | 154 | value:function(callback, aModel){ |
152 | var pickerNavChoices = Montage.create(pickerNavigatorReel); | 155 | var pickerNavChoices = this.pickerNavChoices = Montage.create(pickerNavigatorReel); |
153 | var initUri = aModel.currentRoot; | 156 | var initUri = aModel.currentRoot; |
154 | 157 | ||
155 | //remove extra / at the end | 158 | //remove extra / at the end |
diff --git a/js/io/ui/file-picker/file-picker-model.js b/js/io/ui/file-picker/file-picker-model.js index 09c3ae9c..c92ec586 100755 --- a/js/io/ui/file-picker/file-picker-model.js +++ b/js/io/ui/file-picker/file-picker-model.js | |||
@@ -73,6 +73,12 @@ exports.FilePickerModel = (require("montage/core/core").Montage).create(require( | |||
73 | value:"" | 73 | value:"" |
74 | }, | 74 | }, |
75 | 75 | ||
76 | currentLogicalDrive:{ | ||
77 | writable:true, | ||