diff options
Diffstat (limited to 'js/io')
12 files changed, 275 insertions, 112 deletions
diff --git a/js/io/system/coreioapi.js b/js/io/system/coreioapi.js index f428a229..a06f45c6 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 |
@@ -1085,14 +1085,14 @@ exports.CoreIoApi = Montage.create(Component, { | |||
1085 | isValidUri:{ | 1085 | isValidUri:{ |
1086 | value: function(uri){ | 1086 | value: function(uri){ |
1087 | var isWindowsUri=false, isUnixUri=false,status=false; | 1087 | var isWindowsUri=false, isUnixUri=false,status=false; |
1088 | if(uri !== ""){ | 1088 | if((uri !== null) && (uri !== "")){ |
1089 | uri = uri.replace(/^\s+|\s+$/g,""); // strip any leading or trailing spaces | 1089 | uri = uri.replace(/^\s+|\s+$/g,""); // strip any leading or trailing spaces |
1090 | 1090 | ||
1091 | //for local machine folder uri | 1091 | //for local machine folder uri |
1092 | isWindowsUri = /^([a-zA-Z]:)([\\/][^<>:"/\\|?*]+)*[\\/]?$/gi.test(uri); | 1092 | isWindowsUri = /^([a-zA-Z]:)([\\/][^<>:"/\\|?*]+)*[\\/]?$/gi.test(uri); |
1093 | isUnixUri = /^(\/)?(\/(?![.])[^/]*)*\/?$/gi.test(uri);//folders beginning with . are hidden on Mac / Unix | 1093 | isUnixUri = /^(\/)?(\/(?![.])[^/]*)*\/?$/gi.test(uri);//folders beginning with . are hidden on Mac / Unix |
1094 | status = isWindowsUri || isUnixUri; | 1094 | status = isWindowsUri || isUnixUri; |
1095 | if(isWindowsUri && isUnixUri){status = false;} | 1095 | if((uri === "") || (isWindowsUri && isUnixUri)){status = false;} |
1096 | } | 1096 | } |
1097 | return status; | 1097 | return status; |
1098 | } | 1098 | } |
diff --git a/js/io/system/ninjalibrary.json b/js/io/system/ninjalibrary.json index 00ee7ed2..285444b5 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.1.0"} | 4 | {"name": "RDGE", "path": "/assets/descriptor.json", "version": "0.5.4.0"} |
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.html b/js/io/ui/file-picker/file-input-field.reel/file-input-field.html index 2fcaa075..00df1c11 100755 --- a/js/io/ui/file-picker/file-input-field.reel/file-input-field.html +++ b/js/io/ui/file-picker/file-input-field.reel/file-input-field.html | |||
@@ -10,13 +10,21 @@ | |||
10 | <link rel="stylesheet" type="text/css" href="file-input-field.css"> | 10 | <link rel="stylesheet" type="text/css" href="file-input-field.css"> |
11 | <script type="text/montage-serialization"> | 11 | <script type="text/montage-serialization"> |
12 | { | 12 | { |
13 | |||
14 | "newFileDirectory": { | ||
15 | "prototype": "montage/ui/textfield.reel", | ||
16 | "properties": { | ||
17 | "element": {"#": "newFileDirectory"} | ||
18 | } | ||
19 | }, | ||
20 | |||
13 | "owner":{ | 21 | "owner":{ |
14 | "module": "js/io/ui/file-picker/file-input-field.reel", | 22 | "module": "js/io/ui/file-picker/file-input-field.reel", |
15 | "name": "FileInputField", | 23 | "name": "FileInputField", |
16 | "properties": { | 24 | "properties": { |
17 | "element": {"#": "fileInputField"}, | 25 | "element": {"#": "fileInputField"}, |
18 | "findDirectory": {"#": "findDirectory"}, | 26 | "findDirectory": {"#": "findDirectory"}, |
19 | "newFileDirectory": {"#": "newFileDirectory"} | 27 | "newFileDirectory": {"@": "newFileDirectory"} |
20 | } | 28 | } |
21 | } | 29 | } |
22 | } | 30 | } |
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..9e77759f 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 | |||
@@ -14,12 +14,10 @@ var FileInputField = exports.FileInputField = Montage.create(Component, { | |||
14 | value: function() { | 14 | value: function() { |
15 | var that = this; | 15 | var that = this; |
16 | this.findDirectory.identifier = "findDirectory"; | 16 | this.findDirectory.identifier = "findDirectory"; |
17 | |||
18 | this.findDirectory.addEventListener("click", this, false); | 17 | this.findDirectory.addEventListener("click", this, false); |
19 | 18 | this.eventManager.addEventListener("pickerSelectionsDone", this.handleFileInputPickerSelectionsDone, false); | |
20 | this.eventManager.addEventListener("pickerSelectionsDone", function(evt){that.handleFileInputPickerSelectionsDone(evt);}, false); | 19 | this.addEventListener("change@newFileDirectory.value", this.handleNewFileDirectoryChange, false); |
21 | 20 | this.newFileDirectory.element.addEventListener("keyup", this, false); | |
22 | this.newFileDirectory.addEventListener("keyup", function(evt){that.handleNewFileDirectoryOnkeyup(evt);}, false); | ||
23 | } | 21 | } |
24 | }, | 22 | }, |
25 | 23 | ||
@@ -63,17 +61,31 @@ var FileInputField = exports.FileInputField = Montage.create(Component, { | |||
63 | } | 61 | } |
64 | }, | 62 | }, |
65 | 63 | ||
66 | handleNewFileDirectoryOnkeyup:{ | 64 | handleNewFileDirectoryChange:{ |
67 | value:function(evt){ | 65 | value:function(evt){ |
68 | if(this.newFileDirectory.value !== ""){ | 66 | var newFileDirectorySetEvent = document.createEvent("Events"); |
69 | var newFileDirectorySetEvent = document.createEvent("Events"); | 67 | newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false); |
70 | newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false); | 68 | newFileDirectorySetEvent.newFileDirectory = this.newFileDirectory.value; |
71 | newFileDirectorySetEvent.newFileDirectory = this.newFileDirectory.value; | 69 | newFileDirectorySetEvent.keyCode = evt.keyCode; |
72 | this.eventManager.dispatchEvent(newFileDirectorySetEvent); | 70 | this.eventManager.dispatchEvent(newFileDirectorySetEvent); |
73 | } | ||
74 | } | 71 | } |
75 | }, | 72 | }, |
76 | 73 | ||
74 | |||
75 | handleKeyup:{ | ||
76 | value: function(evt){ | ||
77 | if(evt.keyCode === 13){ | ||
78 | var enterKeyupEvent = document.createEvent("Events"); | ||
79 | enterKeyupEvent.initEvent("enterKey", false, false); | ||
80 | this.eventManager.dispatchEvent(enterKeyupEvent); | ||
81 | }else if(evt.keyCode === 27){ | ||
82 | var escKeyupEvent = document.createEvent("Events"); | ||
83 | escKeyupEvent.initEvent("escKey", false, false); | ||
84 | this.eventManager.dispatchEvent(escKeyupEvent); | ||
85 | } | ||
86 | } | ||
87 | }, | ||
88 | |||
77 | handleFileInputPickerSelectionsDone:{ | 89 | handleFileInputPickerSelectionsDone:{ |
78 | value: function(evt){ | 90 | value: function(evt){ |
79 | var selectedUri = ""; | 91 | var selectedUri = ""; |
@@ -95,7 +107,7 @@ var FileInputField = exports.FileInputField = Montage.create(Component, { | |||
95 | if(!!obj && obj.uri && obj.uri.length > 0){ | 107 | if(!!obj && obj.uri && obj.uri.length > 0){ |
96 | selectedUri = obj.uri[0]; | 108 | selectedUri = obj.uri[0]; |
97 | this.newFileDirectory.value = selectedUri; | 109 | this.newFileDirectory.value = selectedUri; |
98 | 110 | this.newFileDirectory.element.focus(); | |
99 | var newFileDirectorySetEvent = document.createEvent("Events"); | 111 | var newFileDirectorySetEvent = document.createEvent("Events"); |
100 | newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false); | 112 | newFileDirectorySetEvent.initEvent("newFileDirectorySet", false, false); |
101 | newFileDirectorySetEvent.newFileDirectory = this.newFileDirectory.value; | 113 | newFileDirectorySetEvent.newFileDirectory = this.newFileDirectory.value; |
diff --git a/js/io/ui/file-picker/file-picker-controller.js b/js/io/ui/file-picker/file-picker-controller.js index 105dc223..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" |
@@ -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 | } |