aboutsummaryrefslogtreecommitdiff
path: root/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js')
-rw-r--r--js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js48
1 files changed, 33 insertions, 15 deletions
diff --git a/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js b/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js
index a747b8de..467c5452 100644
--- a/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js
+++ b/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js
@@ -92,6 +92,14 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
92 92
93 this.selectedProjectType = {"uri":this.newFileModel.defaultProjectType, "element":null}; 93 this.selectedProjectType = {"uri":this.newFileModel.defaultProjectType, "element":null};
94 } 94 }
95
96 //update file Extension
97 if(!!this.newFileModel.projectTypeData[this.newFileModel.defaultProjectType].fileExtension){
98 var fileExtensionEl = this.element.querySelector(".fileExtension");
99 if(!!fileExtensionEl){
100 fileExtensionEl.innerHTML = ""+this.newFileModel.projectTypeData[this.newFileModel.defaultProjectType].fileExtension;
101 }
102 }
95 } 103 }
96 104
97 }, 105 },
@@ -128,7 +136,15 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
128 136
129 //clear current template selection 137 //clear current template selection
130 if((!!this.selectedTemplate) && (this.selectedTemplate.element.classList.contains("selected"))){ 138 if((!!this.selectedTemplate) && (this.selectedTemplate.element.classList.contains("selected"))){
131 this.selectedTemplate.element.classList.remove("selected"); 139 this.selectedTemplate.element.classList.remove("selected");
140 }
141
142 //update file Extension
143 if(!!this.newFileModel.projectTypeData[evt.uri].fileExtension){
144 var fileExtensionEl = this.element.querySelector(".fileExtension");
145 if(!!fileExtensionEl){
146 fileExtensionEl.innerHTML = ""+this.newFileModel.projectTypeData[evt.uri].fileExtension;
147 }
132 } 148 }
133 149
134 //disable ok 150 //disable ok
@@ -186,6 +202,7 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
186 projectWidth = this.newFileLocation.templateWidth, 202 projectWidth = this.newFileLocation.templateWidth,
187 projectHeight = this.newFileLocation.templateHeight, 203 projectHeight = this.newFileLocation.templateHeight,
188 204
205 newFilePath = "", fileExtension=this.newFileModel.projectTypeData[selectedProjectTypeID].fileExtension,
189 206
190 selectionlog= "selectedProjectTypeID="+selectedProjectTypeID +"\n"+ 207 selectionlog= "selectedProjectTypeID="+selectedProjectTypeID +"\n"+
191 "templateID="+templateID+ "\n"+ 208 "templateID="+templateID+ "\n"+
@@ -194,29 +211,30 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
194 "projectWidth="+projectWidth+"\n"+ 211 "projectWidth="+projectWidth+"\n"+
195 "projectHeight="+projectHeight; 212 "projectHeight="+projectHeight;
196 213
214
215 if(/[^/\\]$/g.test(projectDirectory)){
216 projectDirectory = projectDirectory + "/";
217 }
218 if(!!fileExtension && (projectName.lastIndexOf(fileExtension) !== (projectName.length - fileExtension.length))){
219 projectName = projectName+fileExtension;
220 }
221 newFilePath = "" + projectDirectory + projectName;
222
223
197 if(!!this.selectedProjectType && !!this.selectedTemplate 224 if(!!this.selectedProjectType && !!this.selectedTemplate
198 && this.isValidFileName(projectName) && this.isValidUri(projectDirectory) 225 && this.isValidFileName(projectName) && this.isValidUri(projectDirectory)
199 && !this.checkFileExists(projectName, projectDirectory, this.selectedProjectType) 226 && !this.checkFileExists(projectName, projectDirectory, this.selectedProjectType)
200 ){ 227 ){
201 this.error.innerHTML=""; 228 this.error.innerHTML="";
202 console.log("$$$ new file selections: \n" + selectionlog); 229 //console.log("$$$ new file selections: \n" + selectionlog);
203 if(!!this.newFileModel.callback && !!this.newFileModel.callbackScope){//inform document-controller if save successful 230 if(!!this.newFileModel.callback && !!this.newFileModel.callbackScope){//inform document-controller if save successful
204 this.newFileModel.callback.call(this.newFileModel.callbackScope, {"selectedProjectTypeID":selectedProjectTypeID, 231 this.newFileModel.callback.call(this.newFileModel.callbackScope, {"fileTemplateUri":selectedProjectTypeID,
205 "templateID":templateID, 232 "newFilePath":newFilePath});//document-controller api
206 "projectName": projectName,
207 "projectDirectory":projectDirectory,
208 "projectWidth":projectWidth,
209 "projectHeight":projectHeight});//document-controller api
210 }else{ 233 }else{
211 //send selection event 234 //send selection event
212 var newFileSelectionEvent = document.createEvent("Events"); 235 var newFileSelectionEvent = document.createEvent("Events");
213 newFileSelectionEvent.initEvent("createNewFile", false, false); 236 newFileSelectionEvent.initEvent("createNewFile", false, false);
214 newFileSelectionEvent.newFileOptions = {"selectedProjectTypeID":selectedProjectTypeID, 237 newFileSelectionEvent.newFileOptions = {"fileTemplateUri":selectedProjectTypeID, "newFilePath":newFilePath};
215 "templateID":templateID,
216 "projectName": projectName,
217 "projectDirectory":projectDirectory,
218 "projectWidth":projectWidth,
219 "projectHeight":projectHeight};
220 this.eventManager.dispatchEvent(newFileSelectionEvent); 238 this.eventManager.dispatchEvent(newFileSelectionEvent);
221 } 239 }
222 //store last selected project type 240 //store last selected project type
@@ -306,7 +324,7 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C
306 324
307 if(!!this.selectedProjectType && !!this.selectedTemplate 325 if(!!this.selectedProjectType && !!this.selectedTemplate
308 && this.isValidFileName(this.newFileName) && this.isValidUri(this.newFileDirectory) 326 && this.isValidFileName(this.newFileName) && this.isValidUri(this.newFileDirectory)
309 && !this.checkFileExists(this.newFileName, this.newFileDirectory, this.selectedProjectType) 327 && !this.checkFileExists(this.newFileName, this.newFileDirectory, this.newFileModel.projectTypeData[this.selectedProjectType.uri].fileExtension)
310 ){ 328 ){
311 status = true; 329 status = true;
312 this.okButton.removeAttribute("disabled"); 330 this.okButton.removeAttribute("disabled");