aboutsummaryrefslogtreecommitdiff
path: root/js/io
diff options
context:
space:
mode:
Diffstat (limited to 'js/io')
-rwxr-xr-xjs/io/system/coreioapi.js6
-rw-r--r--js/io/system/ninjalibrary.js10
-rw-r--r--js/io/system/ninjalibrary.json4
-rwxr-xr-xjs/io/ui/file-picker/file-input-field.reel/file-input-field.js10
-rwxr-xr-xjs/io/ui/file-picker/file-picker-controller.js11
-rwxr-xr-xjs/io/ui/file-picker/file-picker-model.js6
-rw-r--r--js/io/ui/file-picker/picker-navigator.reel/picker-navigator.js20
-rwxr-xr-xjs/io/ui/new-file-dialog/new-file-location.reel/new-file-location.js12
-rw-r--r--js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js80
-rwxr-xr-xjs/io/ui/new-file-dialog/new-file-workflow-controller.js25
-rw-r--r--js/io/ui/save-as-dialog.reel/save-as-dialog.js63
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 },