|
42 | 42 |
|
43 | 43 | /** |
44 | 44 | * Google Picker Creation Handler. |
45 | | - *@class gapi |
46 | 45 | * |
47 | 46 | *@return Returns Picker and Handles a callback once file is selected |
48 | 47 | */ |
|
63 | 62 |
|
64 | 63 | /** |
65 | 64 | * Google Picker Handler. |
66 | | - *@class gapi |
67 | 65 | * |
68 | 66 | *@see createPicker |
69 | 67 | *@param {string} data Passes authentication |
|
139 | 137 | 'userId':'me' |
140 | 138 | }); |
141 | 139 | request.execute(function(resp){ |
142 | | -name=resp.displayName |
143 | | -console.log('Retrieved profile for:'+name); |
| 140 | +name=resp.displayName; |
| 141 | +console.info('Successfully Logged In'); |
| 142 | +console.info('Retrieved profile for:'+name); |
144 | 143 | if(name!==undefined||name!=="undefined"){ |
145 | 144 | $('#nameLink').html('Hello '+name); |
146 | 145 | $('#nameLink').show(); |
|
157 | 156 | console.log('Success'); |
158 | 157 | } |
159 | 158 |
|
| 159 | +folderPicker=function(){ |
| 160 | +console.info('Loading FilePicker'); |
| 161 | +//enable docsView to allow user to pick and interact with Google Drive Folder(s) |
| 162 | +vardocsView=newgoogle.picker.DocsView() |
| 163 | +.setIncludeFolders(true) |
| 164 | +.setMimeTypes('application/vnd.google-apps.folder') |
| 165 | +.setSelectFolderEnabled(true); |
| 166 | +if(pickerApiLoaded&&oauthToken){ |
| 167 | +varpicker=newgoogle.picker.PickerBuilder(). |
| 168 | +addView(docsView). |
| 169 | +setOAuthToken(oauthToken). |
| 170 | +setDeveloperKey(developerKey). |
| 171 | +setCallback(function(data){ |
| 172 | +varfileName=$("#GFileName").val(); |
| 173 | +varfileType=$('#saveGFileMode option:selected').val(); |
| 174 | + |
| 175 | +if(fileName===""||fileName===null){ |
| 176 | +fileName="code";//default name set to code.<extension> if not selected |
| 177 | +} |
| 178 | +if(fileType===""||fileType===null){ |
| 179 | +fileType="mas";//default name set to <name>.mas if not selected |
| 180 | +} |
| 181 | + |
| 182 | +varcode=sessionStorage.getItem('code'); |
| 183 | +varpickerAction=data[google.picker.Response.ACTION]; |
| 184 | +varpickedState=google.picker.Action.PICKED; |
| 185 | +if(pickerAction===pickedState){ |
| 186 | +console.log(fileName,fileType); |
| 187 | +vardoc=data[google.picker.Response.DOCUMENTS][0];// set the variable doc as First document |
| 188 | +varlocationID=doc[google.picker.Document.PARENT_ID]// Folder ID Is the file's Parent ID |
| 189 | +console.log(locationID); |
| 190 | +varfullFileName=fileName+"."+fileType; |
| 191 | +console.log(fullFileName); |
| 192 | +saveToGDrive("",locationID,code,fullFileName); |
| 193 | +} |
| 194 | +}). |
| 195 | +build(); |
| 196 | +picker.setVisible(true); |
| 197 | +} |
| 198 | +} |
| 199 | + |
| 200 | + |
160 | 201 | /** |
161 | 202 | * saveToGDrive function |
162 | | - *@class gapi |
163 | 203 | * Load a file from Drive. Fetches both the metadata & content in parallel. |
164 | 204 | * |
165 | 205 | *@param {string} fileID Unique File ID from Google Drive which identifies it |
166 | 206 | *@param {string} folderId Unique Folder ID of File ID |
167 | 207 | *@param {string} text text to be updated |
168 | 208 | */ |
169 | | -saveToGDrive=function(fileID,folderId,text,callback){ |
| 209 | +saveToGDrive=function(fileID,folderId,text,filename,callback){ |
170 | 210 | //NProgress starts with 10% when entering this function |
171 | 211 |
|
172 | 212 | //GAPI POST/PUT REQUST CONSTs |
|
178 | 218 | varcontentType="plain/text"; |
179 | 219 | varmyToken=gapi.auth.getToken(); |
180 | 220 |
|
181 | | -varfilename=$("#GFileName").val(); |
182 | | -varfileType=$('#saveGFileMode option:selected').val(); |
183 | 221 |
|
184 | | -filename=filename+"."+fileType; |
| 222 | + |
185 | 223 | NProgress.inc(0.1); |
186 | 224 |
|
187 | 225 | if(fileID===""||fileID===null){ |
|
192 | 230 | varcontentType=fileData.type||'plain/text'; |
193 | 231 | varmetadata={ |
194 | 232 | 'title':filename, |
195 | | -'mimeType':contentType |
| 233 | +'mimeType':contentType, |
| 234 | +'parents':[{"id":folderId}] |
196 | 235 | }; |
197 | 236 |
|
198 | 237 | varbase64Data=btoa(reader.result); |
|
239 | 278 | NProgress.done(); |
240 | 279 | }); |
241 | 280 | } |
242 | | -}else{ |
| 281 | +}else{//attempt to update file |
243 | 282 | varmetadata={'mimeType':contentType,}; |
244 | 283 |
|
245 | 284 | varmultipartRequestBody= |
|
250 | 289 | close_delim; |
251 | 290 |
|
252 | 291 | if(!callback){ |
253 | | -callback=function(file){f |
| 292 | +callback=function(file){ |
254 | 293 | console.log("Update Complete ",file); |
255 | | -savedToURL=request.webViewLink; |
| 294 | +varsavedToURL=file.alternateLink; |
256 | 295 | console.log(savedToURL); |
| 296 | +text='The file is located to <a href="'+savedToURL+'" target="_blank">'+savedToURL+'</a>'; |
| 297 | +$('#linkText').html(text); |
| 298 | +$('#saveLink').modal('toggle'); |
257 | 299 | NProgress.done(); |
258 | 300 | }; |
259 | 301 | } |
|
267 | 309 | 'body':multipartRequestBody, |
268 | 310 | }); |
269 | 311 | request.execute(callback); |
| 312 | +console.log(request.alternateLink); |
270 | 313 | } |
271 | 314 | } |
272 | | - |
273 | 315 | }()); |